首页 > 解决方案 > 在pyspark中展平sql.dataframe.DataFrame的数组(不同维度)

问题描述

我有一个pyspark.sql.dataframe.DataFrame是这样的:

+---------------------------+--------------------+--------------------+
|collect_list(results)      |        userid      |         page       |
+---------------------------+--------------------+--------------------+
|       [[[roundtrip, fal...|13482f06-9185-47f...|1429d15b-91d0-44b...|
+---------------------------+--------------------+--------------------+

在 collect_list(results) 列内有一个 len = 2 的数组,元素也是数组(第一个有一个 len = 1,第二个有一个 len = 9)。

有没有办法使用pyspark将这个数组数组展平成一个len = 10的唯一数组?

谢谢!

标签: pyspark

解决方案


您可以使用pyspark.sql.functions.flatten. 文档在这里。例如results,假设您的数据框变量被调用,这将创建一个名为 flatten 结果的新列df

import pyspark.sql.functions as F
...
df.withColumn('results', F.flatten('collect_list(results)')

推荐阅读