【问题标题】:How to flatten nested lists in PySpark?如何在 PySpark 中展平嵌套列表?
【发布时间】:2016-01-10 21:45:51
【问题描述】:

我有一个 RDD 结构,例如:

rdd = [[[1],[2],[3]], [[4],[5]], [[6]], [[7],[8],[9],[10]]]

我希望它变成:

rdd = [1,2,3,4,5,6,7,8,9,10]

如何编写 map 或 reduce 函数以使其工作?

【问题讨论】:

    标签: python apache-spark rdd


    【解决方案1】:

    您可以例如 flatMap 并使用列表推导:

    rdd.flatMap(lambda xs: [x[0] for x in xs])
    

    或者让它更通用一点:

    from itertools import chain
    
    rdd.flatMap(lambda xs: chain(*xs)).collect()
    

    【讨论】:

    • 非常感谢,我很新。抱歉这个愚蠢的问题。你给了我正确的答案!
    • 不知道为什么这被否决了,只是在我自己的代码中做了第一项!您只需将一个列表返回给 flatMap,它将许多数组展平为列表内容的一个 rdd。
    猜你喜欢
    • 1970-01-01
    • 2015-04-13
    • 2018-07-04
    • 2018-05-06
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    相关资源
    最近更新 更多