apache-spark - Spark中GroupByKey.MapGroups的逆?
问题描述
因此,在 spark 中使用 GroupByKey 和 MapGroups,我基本上可以在数据帧中获取 N 行,按某个键对它们进行分组,执行一些自定义逻辑,并输出一些较少数量的行作为新数据帧。我想知道是否有相反的方法,换句话说,将每一行转换为多行?我基本上想用自定义逻辑手动定义我自己的explode方法。
例如,我想转换以下数据框
+--------------+-------+------------------------+
| body | ID | array_column |
+--------------+-------+------------------------+
| (large data) | guid1 | (entry1,entry2) |
+--------------+-------+------------------------+
| (large data) | guid2 | (entry3,entry4,entry5) |
+--------------+-------+------------------------+
进入
+--------------+-------+-----------------+
| body | ID | array_column |
+--------------+-------+-----------------+
| (large data) | guid1 | entry1 |
+--------------+-------+-----------------+
| null | guid1 | entry2 |
+--------------+-------+-----------------+
| (large data) | guid2 | entry3 |
+--------------+-------+-----------------+
| null | guid2 | entry4 |
+--------------+-------+-----------------+
| null | guid2 | entry5 |
+--------------+-------+-----------------+
解决方案
推荐阅读
- ssl - 使用 Elixir 和 Erlang ssl 模块获取 SSL 证书
- python-3.x - 在 Pandas DataFrame 对象中是否提供 Excel 工作表名称?
- sql - 如何将一组 DISTINCT 列数据复制到新表中并将新数据的 ID 写回第一个表
- python - 保存标记为越来越多的文件
- java - 为什么我的 JavaFX 项目无法导入库,即使我可以看到它们?
- node.js - No matching version found for gatling@^2.0.0
- r - R 中带有 rmgarch 包的 ADCC GARCH 模型的不对称参数
- rancher - Rancher:在命名空间检查期间无法与 API 服务器通信
- azure-devops - 如何使 MSBuild MakeDir 任务在 Azure Pipeline YAML 模板中工作?
- node.js - “npm help update”(在 Windows 中)给出无效 URL 错误