【发布时间】:2020-05-22 20:59:27
【问题描述】:
我创建了一个 rdd 并使用以下命令打印结果:
finalRDD = replacetimestampRDD.map(lambda x: (x[1], x[0:]))
print("Partitions structure: {}".format(finalRDD.glom().collect()))
输出(一个例子):
Partitions structure: [[('a', ['2020-05-22 15:17:10', 'John', '9535175']),
('b', ['2020-05-22 15:17:10', 'Nick', '7383554',]),
('c', ['2020-05-22 15:17:10', 'George', '8915433']),
('a', ['2020-05-22 15:17:10', 'Paul', '9615224'])
]]
我尝试按键对结果进行分组(按键我的意思是'a','b','c')。期望的输出:
Partitions structure: [[('a', [['2020-05-22 15:17:10', 'John', '9535175'],['2020-05-22 15:17:10', 'Paul', '9615224']]),
('b', ['2020-05-22 15:17:10', 'Nick', '7383554',]),
('c', ['2020-05-22 15:17:10', 'George', '8915433'])
]]
我尝试使用results = finalRDD.groupByKey().collect(),但它似乎不起作用?
谁能帮我解决这个问题?
【问题讨论】:
-
RDD 的结构是列表的列表吗?您给出的示例输出,它是显示单个输出元素还是应该显示一个包含 4 个元素的列表?
-
是的,结构如列表所示。示例输出必须是包含 4 个元素的列表
标签: apache-spark pyspark rdd