spark01--scala 的wordcount的过程是怎样的
发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,今天就跟大家聊聊有关spark01--scala 的wordcount的过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第一版:原始
千家信息网最后更新 2025年02月07日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安全错误
数据库的锁怎样保障安全
ldap数据库设置账号
徐汇区第三方软件开发承诺守信
新网络安全法 阿里云
哪些专业学习软件开发
阳江通讯软件开发商家
中国电信服务器在哪里
岑溪数据库修复
神龙软件开发靠谱吗
大连泉网络安全公司
xampp创建数据库
大学数据库要认真学吗
富士康服务器内存报错如何查看
武汉网络安全基地一期配电
自行开发ocr识别软件开发价格
mssql链接服务器
软件开发入股
数据库基础知识汇总
梁平区工商软件开发服务常见问题
数据库开发技术标准教程课后
计算机网络技术专业怎么介绍
天地劫分多少种服务器
奉贤区项目软件开发定制平均价格
阳台柜设计软件开发
创建新数据库
电脑服务器代理如何永久关闭
一维条形码的使用需要依赖数据库
做医疗软件开发累吗
腾讯dns公共服务器地址
华为智能服务器排名
access数据库排名