我正在使用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 |
+---------+-----------+------------+