RDD编程
RDD创建
- 从文件系统中加载数据
sc->sparkContext(指挥官)
分布式文件系统加载
第一行:系统默认去当前登录Ubuntu系统得用户在HDFS当中所对应得用户主目录中去寻找 - 通过并行集合(数组)
RDD操作
- 转换操作
RDD常用转换操作:
filter
map
从本地加载数据
flatmap
groupByKey
iterable:可迭代得值
将key相同的value归并为一个列表。(1,1,1)用pyspark.resultiterable.resultiterable对象
reduceByKey - 行动操作
- 惰性机制
执行到totalLength才从头开始执行数据的操作
持久化
RDD.cache() #将RDD存储在内存中
RDD.unpersist() #手动地把持久化地RDD从缓存中移除
分区
- 分区的作用
增加并行度
减少通信开销 - 分区原则
分区个数=集群中cpu核心数目 - 设置分区方法
spark.default.parallelism设置 - 自定义分区方法
分了10个分区,存储的时候生成10个文件,输出的时候是一个目录。
参考: