首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >配置单元中具有Join或Where子句的条件

配置单元中具有Join或Where子句的条件
EN

Stack Overflow用户
提问于 2015-09-15 22:29:16
回答 1查看 7.1K关注 0票数 2

我想了解hive是如何执行这两个查询的。我们在Hive中有没有查询优化器?

代码语言:javascript
代码运行次数:0
运行
复制
select * from A JOIN B on A.a = B.b 

select * from A JOIN B where A.a = B.b

请让我知道配置单元查询是如何执行的(工作流)?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-09-15 23:29:47

不幸的是,看起来Hive在这里并没有做任何好的后端优化。我给自己写了几个例子,并比较了阶段计划和抽象语法树。

代码语言:javascript
代码运行次数:0
运行
复制
select * from A JOIN B on A.a = B.b 

在上面的查询中,hive找到了A.a = B.b的位置,然后将两者连接在一起。

代码语言:javascript
代码运行次数:0
运行
复制
select * from A JOIN B where A.a = B.b

在这个查询中,每个value - hive上的hive连接A到B执行一个交叉连接,这是一个大规模的映射阶段(假设您的表很大)。然后在reduce阶段,hive过滤掉A.a != B.b的行

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

https://stackoverflow.com/questions/32588695

复制
相关文章

相似问题

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