我有一个df NAMES ,如果我通过display(NAMES)
输出,则在其中:
NAMES
John
Sarah
Michael
Sean
我还有一个列表学生,print(students)
:
{John,Alan,Andy}
问题:
如何基于此列表(学生),如何在df中使用“ NAMES”列进行循环,然后将列表中以及DF中的学生姓名输出到另一个列表中。
列表的预期输出:“约翰”
我已经尝试
list2 = []
for i in NAMES:
for g in students:
if i == g:
list2.append(i)
但是我最终遇到一个错误,如何通过pyspark来实现呢?
谢谢。
答案 0 :(得分:1)
通常,pyspark
中的数据循环不是很有效。尽可能使用本机pyspark
函数。对于您的特定问题,您可以使用filter
函数,该函数将按学生列表中的名称过滤您的DataFrame:
df_names.filter(col("name").isin(students)).select("name")
在您的示例中,唯一的返回值将是John。