我想要的是将列名Map到键中。例如:
# +-------+----------+
# |key1 |key2 |
# +-------+----------+
# |value1 |value2 |
# |value3 |value4 |
# +-------+----------+
将转化为
# +-------+----------+
# | keys|values |
# +-------+----------+
# |key1 |value1 |
# |key1 |value2 |
# |key2 |value3 |
# |key2 |value4 |
# +-------+----------+
在hiveql中,我可以编写类似于
select distinct key, velue
from xxx
lateral view explode(map(
'key1', key1,
'key2', key2) tab as key, value
但是如何在Pypark写。我可以使用createtentable,但我认为这不是最好的解决方案/
2条答案
按热度按时间sycxhyv71#
像这样的?
把它放好
spark.sql()
.tjvv9vkg2#
使用
create_map
函数创建一个Map列,然后将其分解。create_map
需要按键值对分组的列表达式列表。可以使用创建这样的列表,以便理解Dataframe列: