我有一个格式为
的表格string_1 | id_array
"a" | [2,3,4]
"c" | [2,4,5]
和另一张表:
id | string_2
1 | s1
2 | s2
3 | s3
4 | s4
5 | s5
id_array
值对应于第二个表中的id值。
基本上我想用第二个表中相应的字符串值替换第一个表中的id_array
值,如下所示:
string_1 | id_array_string
"a" | [s2,s3,s4]
"c" | [s2,s4,s5]
答案 0 :(得分:0)
我不知道你尝试了什么,但这里是我身边的基本代码片段。 我将df1作为表1的数据帧,依此类推df2。
import pyspark.sql.functions as F
df1.select("string_1",F.explode("id_array").alias("id_array")).join(df2, df1.id_array = df2.id).groupBy("string_1").agg(F.collect_set("string_2").alias("id_array_string")).show()
我没有测试,但这对你有用。如需更多参考,请查看类似的答案Collect set by group?