所以,我有以下数据:
我希望将其转换为以下形式,以便进一步处理。
[ (1, data1), (1, data2), (2, data3), (1, data4), (2, data5) ]
我希望将其转换为以下形式,以便进一步处理。
[ (1, [data1, data2, data4]), (2, [data3, data5]) ]
一种方法是使用groupByKey
。另一种方法是使用hashPartitioner
将RDD根据键进行分区,然后使用mapPartitions
处理每个键的值。哪种方法更有效呢?
reduceByKey
而不是groupByKey
。请参考http://databricks.gitbooks.io/databricks-spark-knowledge-base/content/best_practices/prefer_reducebykey_over_groupbykey.html。 - jarandaf