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

问题描述:

我有一个RDD结构,例如:

I have an RDD structure like:

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

并且我希望它成为:

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

如何编写地图或约简函数以使其正常工作?

How do I write a map or reduce function to make it work?

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

You can for example flatMap and use list comprehensions:

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

或使其更通用一些:

from itertools import chain

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