DataFrame pyspark 只有groupByKey,容易在shuff中爆掉,改用RDD的reduceByKey、aggregateByKey相关算子
对类似实现sql的group by的相关算子进行区别分析
一:DataFrame.groupBy() 操作不会在partition中自己合并计算,会整个分组后进行shullf,
如下一个partition数据
groupBy()前:
key | value |
---|---|
a | 1 |
b | 4 |
a | 2 |
c | 5 |
a | 3 |
groupBy()后
key | value |
---|---|
a | 1 |
a | 2 |
a | 3 |
key | value |
---|---|
b | 4 |
key | value |
---|---|
c | 5 |
一起进行shuff网络传输,针对亿级数据,