首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >中断SQL查询提高Spark效率

问中断SQL查询提高Spark效率
EN

Stack Overflow用户
提问于 2018-12-24 14:35:01
回答 1查看 100关注 0票数 3

我有一个非常大的HIVE查询,它将被迁移到spark。

是否可以通过对查询进行分割来节省性能?

合并:

代码语言:javascript
复制
Dataset<Row> sqlDF = spark.sql("select c.name from order o join customer c on o.orderID=c.orderID where o.productPrice > 100");

与之相比:

代码语言:javascript
复制
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会降低可读性,但我不知道sure如何优化请求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-24 21:43:44

考虑到一个未完成的查询也缺乏性能,那么答案是肯定的。

我见过Spark有一个70个表联接,但是内存错误导致了失败。通过缓存将其分解为更小的集合,从而使其能够随后执行。

催化剂越来越好,但落后于imho,为传统的RDBMS提供了最好的品种优化器。它或其后继者将迎头赶上。

同样的问题也适用于Oracle。

我认为您的示例不会显示出任何优点,但更复杂的查询有时需要拆分,但这是逐个案例进行的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53914729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档