【发布时间】:2016-06-15 03:43:50
【问题描述】:
使用 pyspark,我有一个看起来像这样的 RDD
[("a", 0), ("b", 1), ("a", 1), ("a", 0)]
我想做的是构建另一个 RDD,其中第一个字段的计数基于第三个字段。如此有效的是:
[("a", 0, 2), ("a", 1, 1), ("b", 1, 1)]
这意味着有两个“a”实例,第三个字段等于 0,一个“a”实例,第三个字段等于 1,一个“b”实例,第三个字段等于 1 .
我可以通过使用 reduceByKey as 轻松获得第一个字段的不同计数
rdd = sc.parallelize([("a", 0, 2), ("a", 1, 1), ("b", 1, 1)])
.map(lambda 行: (row[0], 1))
.reduceByKey(add)
但这只会给我“a”和“b”的计数,而不考虑第三个字段。我将如何获得它?
【问题讨论】:
标签: apache-spark pyspark rdd