首页 > 解决方案 > 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     |
+--------------+-------+-----------------+

标签: apache-sparkapache-spark-sqlspark-streaming

解决方案


推荐阅读