pyspark - 在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.sql.functions.flatten
. 文档在这里。例如results
,假设您的数据框变量被调用,这将创建一个名为 flatten 结果的新列df
。
import pyspark.sql.functions as F
...
df.withColumn('results', F.flatten('collect_list(results)')
推荐阅读
- python - 使用 IIS 和 Django 提供静态文件
- nginx - cgit + uwsgi + nginx 不为存储库生成页面
- wordpress - 如何在 Wordpress 中添加自定义导航栏?
- powerbi - 带条件的 SUM LOOKUPVALUE
- python - Python - 将列表项附加到字典中的不同键
- sql - eSQL 多重连接但有条件
- php - 如何在自定义插件开发中显示产品过滤器
- excel - 收到无效的限定符错误。我正在尝试借助数组将常用品牌从工作簿打印到另一个
- docker - 如何在 docker 中存储和检索数据(文件、图像等)?
- sapui5 - 如何更改 SAP Fiori Elements 扩展应用程序中的 UI5 库源路径?