我有一个带有数组列的spark Dataframe 。数组总是具有相同的长度,例如像这样:
输入df:
col1 |
---|
["a", "b", "c"] |
["d", "e", "f"] |
我想将dataframe转换为下面的静态列表中的索引:
第一个月
期望输出df:
| 新柱| new_column |
| --| ------------ |
| {1:“a”,1.5:|“B”,2:“c”} "b", 2: "c"} |
| {1:“d”,1.5:|“e”,2:“d”} "e", 2: "d"} |
- 注意 *:我正在寻找一个用PySpark编写的解决方案,我使用的是Spark版本3.3.0
我尝试过不同版本的struct、create_map和expr,但没有一个能达到我想要的效果。
最终目标是能够使用特定的键查询new_column中的值。
类似于这个的东西:df.select(col('new_column').getItem(key))
1条答案
按热度按时间u2nhd7ah1#
你可以使用
map_from_arrays
。Example
个字符串
Output
个型
然后,您可以使用以下表达式从map中获取键:
型
其给出:
型
祝你好运!