如何从list1创建变量,并使用pyspark将list2中的值分配给相同的变量



我有两个列表列表列表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)

如果你喜欢我的解决方案,请投赞成票,或者如果你对此有任何问题,请告诉我。

最新更新