将字符串元素数组与pyspark中的字符串列匹配

mm9b1k5b  于 2021-07-14  发布在  Spark
关注(0)|答案(1)|浏览(381)

将字符串元素数组与Dataframe中的字符串列匹配(并联接)的最佳方法是什么?
string\u columnarray\u of\u stringsstring1element1:string4,element 2:string 2string2element1:string1,element 2:string 4
预期产出将是:
字符串\u列数组\u的\u stringsstring1element1:string1,元素2:string 4string2element1:string4,元素2:string 2
我没有匹配,而是使用这个Dataframe进行自连接,在这个Dataframe中,我匹配字符串数组中具有重叠字符串的所有字符串。
任何建议都将不胜感激!

jum4pzuy

jum4pzuy1#

可以使用 array_contains 条件:

import pyspark.sql.functions as F

result = df.select('String_column').join(
    df.select('Array_of_strings'), 
    F.array_contains('Array_of_strings', F.col('String_column'))
)

result.show()
+-------------+------------------+
|String_column|  Array_of_strings|
+-------------+------------------+
|      string1|[string1, string4]|
|      string2|[string4, string2]|
+-------------+------------------+

相关问题