gpt4 book ai didi

hadoop - 如何在 Hive 中编写子查询和使用 "In"子句

转载 作者:可可西里 更新时间:2023-11-01 14:08:55 34 4
gpt4 key购买 nike

如何在 Hive 中使用 In 子句我想在 Hive 中写这样的东西 select x from y where y.z in (select distinct z from y) order by x;但我没有找到任何方法来做到这一点..我在 Hive 0.7 中尝试了 In 子句,它抛出了错误,我也尝试了 Find_in_Set ..使用 find_in_set(y.z,subquery).. 但作业失败了。

我想在 Hive 上执行此操作。如果有人知道如何在 Hive 中执行此操作,请帮助我。

感谢和问候,阿图尔

最佳答案

你可以使用半连接(https://cwiki.apache.org/Hive/languagemanual-joins.html):

LEFT SEMI JOIN 以高效的方式实现相关的 IN/EXISTS 子查询语义。由于 Hive 当前不支持 IN/EXISTS 子查询,您可以使用 LEFT SEMI JOIN 重写查询。使用 LEFT SEMI JOIN 的限制是右侧表只能在连接条件(ON 子句)中引用,而不能在 WHERE 或 SELECT 子句等中引用。

SELECT a.key, a.value
FROM a
WHERE a.key in
(SELECT b.key
FROM B);

可以重写为:

   SELECT a.key, a.val
FROM a LEFT SEMI JOIN b on (a.key = b.key)

关于hadoop - 如何在 Hive 中编写子查询和使用 "In"子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7677333/

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