【问题标题】:how can we flatten a list in rdd, I am stuck at below status with my trial我们如何在 rdd 中展平列表,我的试用卡在以下状态
【发布时间】:2015-11-11 02:10:34
【问题描述】:

朋友.. 我有一个包含一行“[(1,0),(1,1),(1,0)]的rdd 为此,我的目标是获得一个具有 [(1,0,1,0)] 行的 rdd" 我已经尝试下面的代码来实现这一点并坚持以下状态

mylist = [(1,0), (1,1), (1,0)]
myrdd = sc.parallelize(mylist)
result = myrdd.groupByKey().mapValues(list)
result.collect()

输出为:[(1, [0, 1, 0])]

但我希望看到输出为 [(1,0,1,0)] .. 请帮忙 ..

【问题讨论】:

  • 你能解释为什么[(1,0), (1,1), (1,0)]变成[(1,0,1,0)]吗?你想要做的转变是什么?此外,您的输入并不是真正的一行,它是 3 个元素的列表,其中每个元素是 2 个整数的元组?

标签: pyspark


【解决方案1】:

采集前添加一行:

result = result.map(lambda (k, l): tuple([k] + l))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多