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

How to flatten nested lists in PySpark?

我的 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 函数使其工作?

例如,您可以 flatMap 并使用列表理解:

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

或者让它更通用一点:

from itertools import chain

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