spark01--scala 的wordcount的过程是怎样的
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,今天就跟大家聊聊有关spark01--scala 的wordcount的过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一版:原始
千家信息网最后更新 2026年11月02日spark01--scala 的wordcount的过程是怎样的
今天就跟大家聊聊有关spark01--scala 的wordcount的过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
第一版:原始版本
def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.setAppName("workcount") conf.setMaster("local") //SparkContext 是通往spark 集群的唯一通道 val sc = new SparkContext(conf) /** 加载配置当前项目下words文件的内容 * 内容为: hello java hello spark hello hdfs hello mr hello java hello spark */ val lines = sc.textFile("./words") //line为每一行,每一行经过" "空格切分成RRD类型 val lists: RDD[String] = lines.flatMap(line => {line.split(" ")}) //单词转换成二元元组 val values: RDD[(String, Int)] = lists.map(word=>{new Tuple2(word,1)}) /** * reduceByKey 函数是先把相同的单词(key)进行分组,如 hello 1 hello 1 hello 1 hello 1 hello 1 hello 1 java 1 java 1 spark 1 spark 1 hdfs 1 mr 1 (v1:Int, v2:Int)=>{v1+v2} 表示经过分组后的单词元组(Sring,Int),相同key的 value进行累加,返回v1+v2 就是累加的值 */ val result: RDD[(String, Int)] = values.reduceByKey((v1:Int, v2:Int)=>{v1+v2}) //遍历结果 result.foreach(println) //关闭 sc.stop() }第二版:
def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.setAppName("workcount") conf.setMaster("local") val sc = new SparkContext(conf) val result = sc.textFile("./words").flatMap(line=>line.split(" ")).map(world=>new Tuple2(world,1)).reduceByKey((v1:Int, v2:Int)=>{v1+v2}) result.foreach(println) sc.stop() }第三版本:最简版本
def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.setAppName("workcount") conf.setMaster("local") val sc = new SparkContext(conf) val result = sc.textFile("./words").flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_) result.foreach(println) sc.stop() }简化后解释:
xxx.flatMap(line=>line.split(" "))中参数line只在=>后面使用一次,可以用 "_" 符号来表示该参数,xxx.flatMap(_.split(" "))
xxx.map(world=>new Tuple2(world,1))中world参数也是在=>后只使用一次,可以使用 "_"来表示,元组可以省略new,也可以省略Tuple2,xxx.map((_,1))
xxx.reduceByKey((v1:Int, v2:Int)=>{v1+v2})中v1,v2也是在=>后只使用一次,均可以使用"_"来表示,xxx.reduceByKey((_+_)
看完上述内容,你们对spark01--scala 的wordcount的过程是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
内容
单词
参数
版本
过程
相同
一行
是在
分组
原始
函数
就是
文件
更多
知识
空格
符号
第一版
篇文章
类型
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网与科技
互联网络科技
互联网与科技发展
青岛互联网科技公司
互联网科技媒体
润盈互联网科技
互联网巨头投资的硬核科技
华中科技有哪些互联网大佬
互联网汽车科技小镇
中盈科技互联网信息有限公司
互联网科技教育视频
互联网时代科技改变生活
长沙茂晟互联网科技有限公司
群盈汇互联网科技有限公司
山东子淼互联网科技有限公司
梅州GM互联网络科技有限公司
广州智享互联网科技
长沙渺峰互联网科技有限公司
北京互联网科技类企业分布
恒生互联网科技趋势
手磨咖啡
互联网科技公司排名
互联网电商科技
金融科技还是互联网
互联网科技logo
厦门千工互联网科技有限公司
赶超互联网科技 微信多开
工业互联网山东科技大学
互联网科技资金流入
现代互联网科技公司