spark01--scala 的wordcount的过程是怎样的

spark,scala,wordcount"/>第一版:原始版本def main(args: Array[String]): Unit = {
val conf = new SparkConf()
con

今天就跟大家聊聊有关spark01 - scala的字数的过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

第一版:原始版本

defmain(args :数组[String]):单位={ 0

valconf=newSparkConf()

conf.setAppName('workcount ')

conf.setMaster(')本地)

//SparkContext是通往发动集群的唯一通道

valsc=Newark context(conf)

/**加载配置当前项目下话文件的内容

*内容为:

hellojava

地狱方舟

hellohdfs

hellomr

hellojava

地狱方舟

*/

vallines=sc.textFile(' ./字数)

//行为每一行,每一行经过''空格切分成当纳利类型

vallist 3360 rdd[String]=line。平面图(直线={直线。拆分(')})

//单词转换成二元元组

valvalues:RDD[(String,Int)]=list。map(word={新元组2(word,1)})

/**

*reduceByKey函数是先把相同的单词(键)进行分组,如

hello1

hello1

hello1

hello1

hello1

hello1

java1

java1

迷你图一

迷你图一

hdfs1

mr1

(v1:Int,v2:Int)={v1 v2}表示经过分组后的单词元组(Sring,Int),相同键的价值进行累加,返回v1 v2就是累加的值

*/

valresult:RDD[(String,Int)]=值。按键减少((v 1: Int,v2:Int)={v1 v2})

//遍历结果

result.foreach(println)

//关闭

sc.stop()

}第二版:

defmain(args :数组[String]):单位={ 0

valconf=newSparkConf()

conf.setAppName('workcount ')

conf.setMaster(')本地)

valsc=Newark context(conf)

valresult=sc.textFile(' ./words ').flatMap(line=line.split(')).地图(世界=新地图2(世界,1))。reduceByKey((v1:Int,v2:Int)={v1 v2})

result.foreach(println)

sc.stop()

}第三版本:最简版本

defmain(args :数组[String]):单位={ 0

valconf=newSparkConf()

conf.setAppName('workcount ')

conf.setMaster(')本地)

valsc=Newark context(conf)

valresult=sc.textFile(' ./words ').flatMap(_ .拆分("")。map((_,1)).reduceByKey(_ _)

result.foreach(println)

sc.stop()

}简化后解释:

xxx.flatMap(line=line.split('))中参数线条只在=后面使用一次,可以用'_' 符号来表示该参数,xxx.flatMap(_ .拆分("")

xxx.map(world=new Tuple2(world,1))中世界参数也是在=后只使用一次,可以使用'_'来表示,元组可以省略新的,也可以省略图普勒2,XXX。map(_,1))

xxx.reduceByKey((v1:Int,v2:Int)={v1 v2})中v1、v2也是在=后只使用一次,均可以使用'_'来表示,xxx.reduceByKey((_ _)

看完上述内容,你们对spark01 - scala的字数的过程是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/36011.html

(0)