所以我有两个查询来实现相同的目标。使用Spark-SQL。
查询A:
SELECT * FROM inspex.defect_parquet a
INNER JOIN inspex.layer_parquet b
ON a.id = b.id
AND b.name = 'Example1';
查询B:
SELECT * FROM inspex.defect_parquet
WHERE inspex.layer_scan_index
IN (SELECT layer_scan_index
FROM inspex.layer_parquet
WHERE name = 'Example1');
defect_parquet
是一张非常大的表格,而layer_parquet
是一张数百kb的小桌子。
查询B比A快80%。当我看到Spark如何运行时的解释。这是查询A: 这是查询B:
似乎Spark处理这些不同。有人可以向我解释一下吗?为什么查询B更快?
答案 0 :(得分:1)
我认为统计数据可以说明一切: