大数据 - 第十二课 : 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

猜你喜欢

转载自blog.csdn.net/qq_44702847/article/details/106723839