gpt4 book ai didi

apache-spark - 分解 SQL 查询以提高 Spark 效率

转载 作者:行者123 更新时间:2023-12-04 04:46:03 25 4
gpt4 key购买 nike

我有一个非常大的 HIVE SQL 查询,要迁移到 spark。
拆分查询是否可以节省性能?

合并:

Dataset<Row> sqlDF = spark.sql("select c.name from order o join customer c on o.orderID=c.orderID where o.productPrice > 100");

相比于:

Dataset<Row> order = spark.sql("select o.orderID from order where where o.productPrice > 100");   
Dataset<Row> customer= spark.sql("select c.orderID, c.name from customer);
Dataset<Row> joinedTable = order.join(customer, customer("orderID"));

使用 Dataframes 会降低可读性,但我不确定 spark 如何优化请求。

最佳答案

鉴于未完成的查询也表现出性能不足,那么答案是肯定的。

我见过 Spark SQL 的 70 个表连接因内存错误而失败。通过缓存将其分解为更小的集合,以便随后全部执行。

Catalyst 正在变得越来越好,但在传统 RDBMS 的同类最佳优化器方面落后于恕我直言。它或它的继任者将会迎头 catch 。

同样的问题也适用于 Oracle。

我认为您的示例不会显示出任何优势,但有时需要拆分更复杂的查询,但这要视具体情况而定。

关于apache-spark - 分解 SQL 查询以提高 Spark 效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53914729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com