遍历dict RDD并将值分配给dataframe列

时间:2018-11-14 13:30:55

标签: python pyspark

所以我有一个像这样的数据框target_link_libraries(Foo PRIVATE Bar Car )

Car

我也有这样的格言:

df

现在,我要做的是用dict中的键更新df,dict是新的列名,而key的值是该列的重要值。

预期df应该像:

+---+-----+
| ID|COL_A|
+---+-----+
|  1|  123|
+---+-----+

现在这是我的python代码,可以正常工作...

{"COL_B":"abc","COL_C":""}

现在我要将这段代码迁移到pyspark,并想知道如何在pyspark中做到这一点

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

要合并RDD,请使用zipjoin。以下是使用zip的说明。 zip是为了吸引他们,map是为了扁平化。

from pyspark.sql import Row

rdd_1 = sc.parallelize([Row(ID=1,COL_A=2)])
rdd_2 = sc.parallelize([Row(COL_B="abc",COL_C=" ")])

result_rdd = rdd_1.zip(rdd_2).map(lamda x: [j for i in x for j in i])

注意,我目前没有与payspark合作,因此未经测试。