我有如下的Dataframe。
当前Dataframe
+---+--------+---------=+
| id|size |variantID |
+---+----+---+----------+
| 1| [10,20]| [150,160]|
| 2| [2] | [1] |
| 3| [] | [] |
+---+--------+----------+
我想添加一个新的列,将size数组和variantid数组按位置合并到这个符号(|)中。从这里我想要一个名为sizemap的新数组。大小中的元素数与variantid列相同。
预期产量:
+---+--------+---------------------------+
| id|size |variantID |sizeMap |
+---+----+---+---------------------------+
| 1| [10,20]| [150,160]|[10|150, 20|160]|
| 2| [2] | [1] | [2|1] |
| 3| [] | [] | [] |
+---+--------+----------------------------+
你能帮我解决这个问题吗。。。!
2条答案
按热度按时间xiozqbni1#
我有下面的解决办法,这将工作。但由于自定义项的存在,对于大数据来说可能会很慢。最后一列也是字符串,因为它具有字符串管道字符“|”。
e0uiprwp2#
也许这很有用(用scala编写,但是可以在pyspark中使用,只需很少的修改)
加载提供的测试数据
按位置的zip 2数组(不带udf)