我有两个列表列表列表1和列表2
path1=/mnt/path1
path2=/mnt/path2
path3=/mnt/path3
list1=['value1','value2','value3']
list2=['/mnt/path1','/mnt/path2','/mnt/path3']
我想从列表1中创建变量,并将列表2中的值分配给那些变量
**output:**
value1=/mnt/path1
value2=/mnt/path2
value3=/mnt/path3
其中value1、value2、value3是变量
If I do print(value1)
I need to get output as '/mnt/path1'
如何使用pyspark 实现这一点
@harshith
我已经获取了伪数据
Solution
data=[("1",),("2",),("3",)]
schema=["id"]
df=spark.createDataFrame(data,schema)
list1=['value1','value2','value3']
list2=['/mnt/path1','/mnt/path2','/mnt/path3']
fnl_lst = list(zip(list1,list2))
columns_mapping = [F.lit(fnl_lst[i][j]) for i in range(len(list2)) for j in range(2)]
map_column = F.create_map(*columns_mapping)
df=df.withColumn("path_mapping",map_column)
df.select("id","path_mapping.value1").show(10,0)
如果你喜欢我的解决方案,请投赞成票,或者如果你对此有任何问题,请告诉我。