python - 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 来实现呢?
谢谢。
解决方案
一般来说,循环输入数据pyspark
不会很有效。尽可能使用本机pyspark
函数。对于您的具体问题,您可以使用filter
按学生列表中的名称过滤 DataFrame 的功能:
df_names.filter(col("name").isin(students)).select("name")
在您的示例中,唯一的返回值将是 John。
推荐阅读
- typescript - 数组对象分配问题
- json - 如何在颤振中使用硬编码的json响应
- java - 暂停 AnimationDrawable 并恢复
- tableau-api - 无法使集合成为成员的总和
- r - 使用验证功能在闪亮中给出错误消息
- amazon-web-services - 无法删除已删除主题的订阅
- json - 无法让 ESP8266 从互联网上获取 JSON
- ansible - ansible正则表达式抓取目标机器IP地址
- javascript - 将数据从 PHP 发送到 Javascript 到 PHP
- wordpress - 使用 http 和 https 访问 wordpress