Spark 2将多列爆炸成值行

时间:2018-10-02 11:56:52

标签: apache-spark pyspark apache-spark-sql

我正在使用Spark 2(Python),并且想要将输入表转换为输出表,如下所示。

我正在尝试分解“ OrderType”和“ OrderItems”列中的值。当我分解列值时,顺序对于两个列都很重要。也就是说,对于订单ID 1,订单项1001使用快递,1002使用溢价等。

我在pyspark中查找了爆炸功能。爆炸功能似乎只能爆炸1列,而不能爆炸多列。

执行此类转换应使用哪些功能?

+---------+------------------------+----------------+
| OrderId |       OrderType        |   OrderItems   |
+---------+------------------------+----------------+
|       1 | Express,Premium,Normal | 1001,1002,1003 |
|       2 | Normal                 |           1004 |
|       3 | Express,Premium        |      1005,1006 |
+---------+------------------------+----------------+

+---------+-----------+------------+
| OrderId | OrderType | OrderItems |
+---------+-----------+------------+
|       1 | Express   |       1001 |
|       1 | Premium   |       1002 |
|       1 | Normal    |       1003 |
|       2 | Normal    |       1004 |
|       3 | Express   |       1005 |
|       3 | Premium   |       1006 |
+---------+-----------+------------+

0 个答案:

没有答案