【发布时间】:2021-05-14 14:55:37
【问题描述】:
我有一个这样的 PySpark 数据框:
+------+------+
| A| B|
+------+------+
| 1| 2|
| 1| 3|
| 2| 3|
| 2| 5|
+------+------+
我想对表进行查找以查看是否存在特定行。例如,对于A = 2、B = 5 的测试,代码应返回True,对于A = 2、B = 10,代码应返回False。
我试过这个:
df[(df['A'] == 1) & (df['B'] == 2)].rdd.isEmpty()
不幸的是,这段代码需要很长时间才能执行,而且由于这是一个将执行多次的查找(对于不同的 A 和 B 值),我希望有一个更快的方法来完成这项任务。
我正在考虑的其他解决方案是:
- 将 PySpark 数据帧转换为 Pandas 数据帧,因为行查找速度更快
- 使用
.where()或.filter()虽然根据我的尝试,我预计两者都不会明显更快 - 在
isEmpty()上使用.count()
【问题讨论】:
标签: python apache-spark pyspark apache-spark-sql