PySpark 关于如何组织 RDD 的建议

PySpark Suggestion on how to organize RDD

我是 Spark 新手,我正在尝试在 Spark 上测试一些东西,看看我使用的数据大小是否有任何性能提升。

我的 rdd 中的每个对象都包含一个时间、id 和位置。

我想比较包含相同id的相同时间组的位置。所以,我首先 运行 以下内容按 id

分组
grouped_rdd = rdd.map(lambda x: (x.id, [x])).groupByKey()

然后我想把它分解成每个对象的时间。

有什么建议吗?谢谢!

首先,如果你想把idtime都作为key,就把它们都放在key部分,而不是先按id分组,再分别按时间分组。

m = sc.parallelize([(1,2,3),(1,2,4),(2,3,5)])
n = m.map(lambda x: ((x[0], x[1]), x[2]))

其次,Avoid GroupByKey表现不好,尽可能使用combineByKeyreduceByKey