如何用pyspark.rdd组合成("word", (1, 2))这样的数据格式?
How to use pyspark.rdd to combine the data format like ("word", (1, 2))?
使用pyspark处理数据时,想计算一个词的两个属性。例如,数据如下所示:
("word1", (1, 2))
("word1", (2, 3))
("word2", (3, 4))
("word2", (5, 6))
我想将它们汇总为:
("word1", (3, 5))
("word2", (8, 10))
表示按单词组合元组值。我试过使用
rdd.reduceByKey(lambda: a, b:(a[0] + b[0], a[1], b[1]))
但是没用。
用pyspark.rdd处理这样的数据结构应该怎么做?谢谢!
快完成了
rdd.reduceByKey(lambda a, b: (a[0] + b[0], a[1] + b[1])).collect()
# [('word1', (3, 5)), ('word2', (8, 10))]
使用pyspark处理数据时,想计算一个词的两个属性。例如,数据如下所示:
("word1", (1, 2))
("word1", (2, 3))
("word2", (3, 4))
("word2", (5, 6))
我想将它们汇总为:
("word1", (3, 5))
("word2", (8, 10))
表示按单词组合元组值。我试过使用
rdd.reduceByKey(lambda: a, b:(a[0] + b[0], a[1], b[1]))
但是没用。 用pyspark.rdd处理这样的数据结构应该怎么做?谢谢!
快完成了
rdd.reduceByKey(lambda a, b: (a[0] + b[0], a[1] + b[1])).collect()
# [('word1', (3, 5)), ('word2', (8, 10))]