我想要的大致相当于
df.where(<condition>).count() != 0
但是,我敢肯定,一旦发现任何此类违规行为,它就不够聪明,无法停止。我希望某种聚合器能够做到这一点,但是我还没有找到?我可以通过max
和某种转换来做到这一点,但是我也不认为它一定会退出(不是专门针对bool,我不确定是否知道没有值大于true)。
更具体地说,我想检查一列是否仅包含单个元素。现在,我最好的主意是抓住第一个价值并进行比较。
我会尝试此选项,它应该快得多:
df.where(<condition>).head(1).isEmpty
您还可以尝试与scala exists
(在的第一次出现时停止)一起定义条件true
:
df.mapPartitions(rows => if(rows.exists(row => <condition>)) Iterator(1) else Iterator.empty).isEmpty
最后,您应该对替代方案进行基准测试
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句