首页 > 解决方案 > PySpark:如何检查数据框中是否存在字符串值列表并将值打印到列表中

问题描述

我有一个 df NAMES,如果我通过以下方式输出display(NAMES)

NAMES

John

Sarah

Michael

Sean

我也有一个 学生名单,print(students)

{约翰,艾伦,安迪}

问题

基于此列表(学生),我如何使用“NAMES”列遍历 df,并将列表中以及 DF 中的学生姓名输出到另一个列表。

列表的预期输出:“John”

我试过了

list2 = []
for i in NAMES:
     for g in students:
        if i == g:
          list2.append(i)

但我最终遇到了一个错误,我该如何通过 pyspark 来实现呢?

谢谢。

标签: pythonapache-sparkpysparkapache-spark-sql

解决方案


一般来说,循环输入数据pyspark不会很有效。尽可能使用本机pyspark函数。对于您的具体问题,您可以使用filter按学生列表中的名称过滤 DataFrame 的功能:

df_names.filter(col("name").isin(students)).select("name")

在您的示例中,唯一的返回值将是 John。


推荐阅读