如何在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()