gpt4 book ai didi

hadoop - 将 hive IN subselect 查询与 WHERE 替换相结合

转载 作者:可可西里 更新时间:2023-11-01 16:26:45 26 4
gpt4 key购买 nike

我知道需要用半左连接替换 IN 查询(​​例如 Hive doesn't support in, exists. How do I write the following query? ),但我不知道如何将它与 WHERE 子句组合:

SELECT * 
from foo
WHERE userId IN
(SELECT distinct(userId) FROM foo WHERE x=true ORDER BY RAND() LIMIT 100);

谢谢。

编辑:更改查询。目的是创建一个随机的条目样本(统计方面)。

最佳答案

(为完整性发布替代方法。)

要从表中抽取一组记录,您可以使用 Hive 的 TABLESAMPLE 语法。例如,您也可以选择 100 个不同用户 ID 的随机样本:

SELECT userId 
FROM (SELECT DISTINCT(userId) as userId FROM foo) f
TABLESAMPLE(100 ROWS);

语法允许您以不同的方式指定样本大小。以下内容也是有效的:

SELECT userId 
FROM (SELECT DISTINCT(userId) as userId FROM foo) f
TABLESAMPLE(1 PERCENT);

有关更多详细信息,请查看 the manual page for this topic .

获得 userId 样本后,您可以使用 Manuel Aldana 之前的回答从原始表中选择相应的记录。

关于hadoop - 将 hive IN subselect 查询与 WHERE 替换相结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17548062/

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