1.groupByKey
|
|
2.reduceByKey
|
|
3.flatMap-join-groupBy pattern
|
|
4.suffles
|
|
5.repartitionAndSortWithInPartitions
|
|
6.flatmap
flatmap函数是两个操作的集合——先映射后扁平化。
操作1:同map函数一样,对每一条输入进行指定操作,然后为每一条输入返回一个对象。
操作2:最后为每一条输入返回一个对象。
flatmap会将字符串看成是一个字符串数组。
7.foldByKey
在使用flodByKey算子时,需特别注意映射函数及zeroValue的取值
8.reduceByKeyLocally
该函数将RDD[k,v]中每个k对应的v值,根据映射函数来运算,运算结果映射到一个Map[k,v]中,而不是RDD[k,v]
9.foreach
如果对RDD执行foreach,只会在Executor端有效,而不是Driver端
10.persist()
If we also wanted to use lineLengths again later,we could add :lineLengths.persist() before the reduce.
11.checkpoint
RDD需要加检查点的原因:
1.DAG中Lineage过长,如果重算,则开销太大(如在PageRank中)
2.在shuffle dependency上做checkpoint 获得的收益更大
12.HashPartitioner和RangePartitioner
使用HashPartitioner和RangePartitioner来减少网络通信开销