Pyspark:如何遍历包含列表元素的数据框列?

时间:2019-12-03 13:52:48

标签: list pyspark comparison

我有2个数据框(all_posts和顶篷)。如何遍历all_posts ['tagged_persons']列以查看列表中的元素和相应的年份是否等于顶行数据框的一行?

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以首先refer explode标记人专栏。之后,将其与基于tag_person,Artist和year列的标题一起加入,然后过滤掉Artist为空的行,将为您提供结果数据。

from pyspark.sql.functions import explode
all_posts = all_posts.select(all_posts.Artist, explode(all_posts.tagged_persons))
cond = [all_posts.tagged_persons == headliners.Artist, all_posts.year == headliners.Year]
join_df = all_posts.join(headliners, cond, 'left')
filter_df = join_df.filter(col("Artist").isNotNull())