为什么Hive查询不支持IN / EXIST运算符? [英] Why Hive query doesn't support IN/EXIST operator?

查看:1031
本文介绍了为什么Hive查询不支持IN / EXIST运算符?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看 Hive Language Manual



并识别Hive查询不支持IN / EXIST运算符,并且他们建议使用LEFT SEMI JOIN作为替换。你知道为什么吗?

解决方案

这让我想起Eric Lippert的形式为什么不C#有Java特性X?人们不会通过从另一个开始创建语言并删除东西,他们从一开始就决定要实现哪些功能。



在某些时候,蜂巢既不支持IN \ EXISTS子查询,也不是LEFT SEMI JOIN。然后,有人建议他们添加LEFT SEMI JOIN 。既然这是语言,那么它就会带走实现IN \ EXISTS子查询的一些原因,因为它们在语义上是等价的。


I take look at Hive Language Manual

and recognize Hive query doensn't support IN/EXIST operator and they suggest using LEFT SEMI JOIN as a replacement. Do you know the reason why ?

解决方案

This reminds me of the questions Eric Lippert gets of the form "Why doesn't C# have Java feature X?" People don't build a language by starting with another one and removing stuff, they start with nothing and decide what features to implement.

At some point, hive supported neither IN\EXISTS subqueries, nor LEFT SEMI JOIN. Then, someone suggested they add LEFT SEMI JOIN. Now that that's in the language, it takes away some of the reason for implementing IN\EXISTS subqueries, since the two are semantically equivalent.

这篇关于为什么Hive查询不支持IN / EXIST运算符?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆