spark01--scala 的wordcount的过程是怎样的
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,今天就跟大家聊聊有关spark01--scala 的wordcount的过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一版:原始
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
违反网络安全教育
软件开发费用测算标准
改机型数据库
如何做软件开发的职业规划
word中试题导入数据库
网络安全股的机会在哪里
黄玫瑰伴奏软件开发
sci数据库检索
国家对网络安全教育日的规定
火炬租房软件开发
无死角的加强网络安全工作
sql找不到服务器
网络安全公司需要备案吗
服务器两个ip的设置
数据库实体图描述
软件开发绩效是什么
开服务器需要多久
数据库身份证什么类型
软件开发周期分为哪几个阶段
神经网络技术优缺点
面向对象对软件开发优点
pb添加ms数据库驱动
北京群力天成网络技术有限公
数据库表字段之间关系有哪些
联想服务器虚拟机在哪个目录
数据库按重复项计数
电子竞技软件开发
暴雪服务器检索内容出现问题
软件开发周期分为哪几个阶段
软件开发经理验收管理