大数据 - 第十二课 : idea实现wordcount程序

(关键概念)RDD操作,惰性求值/

  1. 从本地文件系统中加载数据创建RDD
    1
    读取文件:val lines = sc.textFile(“file:///home/cmj/student00/test/wordcount.txt”)
    分词:val aftermap = lines.map(x=>x.split(" "))
    res1: Array[String] = Array(hello world yep, hello world, hello)
    将分词结果转换为键值对,例(hello,3)val mkKV=aftermap.map((_,1))
    2
    聚合:val afterreduce=mkKV.reduceByKey((x,y)=>(x+y))
    2
    保存:afterreduce.saveAsTextFile(“file:///home/cmj/student00/test/wordout1”)
    3

写在一行里面:sc.textFile("file:///home/cmj/student00/test/wordcount.txt").flatMap(x=>x.split(" ")).map((_,1)).reduceByKey((x,y)=>(x+y)).saveAsTextFile("file:///home/cmj/student00/test/wordout2")

  1. 全路径打开idea
    4
    新建project
    5

6
新建包
7
新建类
8
新建Object
9
实验主程序
11

12

添加java包

13
编辑Configurations,添加信息:
14
15
运行退出码是0说明运行成功
16
3. RDD分区
RDD是弹性分布式数据集,通常RDD很大,会被分成很多个分区,分别保存在不同的节点上
分区的作用(1)增加并行度(2)减少通信开销
RDD分区的一个原则是使得分区的个数尽量等于集群中的CPU核心(core)数目
对于不同的Spark部署模式而言(本地模式、Standalone模式、YARN模式、Mesos模式),都可以通过设置spark.default.parallelism这个参数的值,来配置默认的分区数目
创建RDD时手动指定分区个数
在调用textFile()和parallelize()方法的时候手动指定分区个数即可,语法格式如下:
sc.textFile(path, partitionNum)
其中,path参数用于指定要加载的文件的地址,partitionNum参数用于指定分区个数。

16
17

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值