我在Apache Spark 2.x中有两个表格。每个表格都有一个共同的行“IDNUM”。称它们为A表格和B表格。
以下是Apache SparkSQL中的快速查询:
SELECT COUNT(*) FROM A where IDNUM IN (SELECT IDNUM FROM B);
这非常慢:
SELECT COUNT(*) FROM A where IDNUM NOT IN (SELECT IDNUM FROM B);
这个操作太慢了,直接完成反而更快:
total = SELECT COUNT(*) FROM A;
quan = SELECT COUNT(*) FROM A where IDNUM IN (SELECT IDNUM FROM B);
print(total-quan)
但我无法理解为什么使用 NOT IN
会如此缓慢。