你好,我有一个列的表是这样的:
VER:some_ver DLL:some_dll as:bcd,2.sc4 OR:SCT SG:3 SLC:13
从这一行数据中,
输出应为maptype列:
| Map列| MapColumn |
| --| ------------ |
| {“VER”:“65010000”,“DLL”:“some_dll”,“as”:“bcd,2.sc4”,“OR”:“SCT”,“SG”:“3”,“SLC”:“13”}| {"VER": "65010000", "DLL":"some_dll", "as":"bcd,2.sc4", "OR":"SCT", "SG":"3", "SLC":"13"} |
我尝试使用explode,但我得到的每个键,值对只有一行
df= df.withColumn("map_col", f.explode(f.split(f.col("data")," ")))\
.withColumn("key", f.trim(f.split(f.col("data"),":").getItem(0)))\
.withColumn("value", f.trim(f.split(f.col("data"),":").getItem(1)))\
.withColumn("map_col", f.create_map(f.col("key"),f.col("value")))
字符串
1条答案
按热度按时间az31mfrm1#
请注意,您必须确保:
':'
分隔键/值对,它不会显示在其他任何地方1.一个空格分隔条目,它不会显示在其他任何地方
字符串