1.RDD创建有哪几种方法?
通过并行化集合的方式(本地集合转分布式集合)
或者读取数据的方式创建(TextFile\WholeTextFile)
2.RDD分区数如何查看?
通过getNumPartitions API 查看,返回值int
3.Transformation和Action的区别?
转换算子的返回值100%是RDD,而Action算子的返回值100%不是RDD
转换算子是懒加载的,只有遇到Action才会执行。
ACTION就是转换算子处理链条的开关。
4.哪两个Action算子的结果不经过Driver,直接输出?
foreach和saveASTextFile直接由Executor执行后输出
不会将结果发送到Driver
5.redueByKey和groupByKey的区别?
redueByKey自带聚合逻辑,groupByKey不带
如果做数据聚合redueByKey的效率更好,因为可以先聚合后shuffle再最终聚合,传输的IO更小
6.mapPartitions 和 foreachPartitions 的区别?
mapPartitions带有返回值
foreachPartitions不带
7.对于分区操作有什么要注意的地方?
尽量不要增加分区,可能破坏内存迭代的计算管道。