如何在PySpark中展平嵌套列表?

10

我有一个类似于RDD的结构:

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

and I want it to become:

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

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

1个回答

15

你可以例如使用flatMap和列表推导:

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

或者让它更加通用一些:

from itertools import chain

rdd.flatMap(lambda xs: chain(*xs)).collect()

非常感谢,我很新,对于这个愚蠢的问题感到抱歉。你给了我正确的答案! - axinggu
1
不知道为什么这个被踩了,我只是在我的代码中做了第一项!你只需返回一个列表到flatMap中,它会将许多数组平铺成一个列表的内容的rdd。 - rjurney

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接