PySpark关于如何组织RDD的建议

时间:2015-05-20 00:12:03

标签: apache-spark rdd

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

我的rdd中的每个对象都包含时间,ID和位置。

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

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

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

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:0)

首先,如果你想要idtime作为关键,只需将它们放入关键部分,而不是按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