给定一个pysparkDataframe,我想知道是否 A
存在一个值(例如。 5
). 第一种方法是
df.filter("A = 5")
但是通过这种方式,函数将查找所有具有该值的记录,所花费的时间比预期的要多。相反,如果我知道我在第一条记录中找到了值,我就不需要继续迭代了。
例如:
+---+
| A |
+---+
| 0 |
| 5 |
| 1 |
| 9 |
| 1 |
| 4 |
| 1 |
...
| 5 |
| 1 |
假设它包含了数千条记录,我想得到一个快速结果,因为第二条记录是5,不需要检查整个DF(当然,没有保证性能,因为我可能不走运,5只不过是最后一条记录,但是如果我能节省资源,那就太好了!)
你知道怎么做到吗?
1条答案
按热度按时间s6fujrry1#
一种方法可能是
通过一些测试,我发现在执行时间上有一个明显的差异,而spark引擎似乎只以这种方式返回满足条件的第一个事件。
如果它回来了
null
记录不存在(显然它必须遍历所有的datframe),否则将返回一个row对象。