【发布时间】:2020-08-28 14:20:26
【问题描述】:
我有一个 status 数据集,如下所示:
我想从该数据集中选择在这 5 个状态列中的任何一个中具有“FAILURE”的所有行。
因此,我希望结果仅包含 ID 1、2、4,因为它们在其中一个状态列中有 FAILURE。
我想在 SQL 中我们可以做如下的事情:
SELECT * FROM status WHERE "FAILURE" IN (Status1, Status2, Status3, Status4, Status5);
在 spark 中,我知道我可以通过将每个状态列与“FAILURE”进行比较来进行过滤
status.filter(s => {s.Status1.equals(FAILURE) || s.Status2.equals(FAILURE) ... and so on..})
但我想知道在 Spark SQL 中是否有更聪明的方法。
提前致谢!
【问题讨论】:
-
sql和spark sql有什么区别?我认为在这种情况下它们几乎相同。
-
看看答案可能是个好主意
标签: scala apache-spark apache-spark-sql