gpt4 book ai didi

mysql - 如何在 hive 查询中使用 collect_set

转载 作者:行者123 更新时间:2023-11-29 07:25:26 25 4
gpt4 key购买 nike

我在 hive 中有一个表,如下所示

id   name  sal
1 sam 2000
2 Ram 3000
3 Tim 4000
4 Ash 5000

我想从 name 列中获取所有值作为变量。

我做了如下

abc=`hive -e "select distinct name from db.tbl";`

当我喜欢下面的时候

echo $abc

我得到的结果是

Ash Ram Tim sam

我希望结果是这样的

'Ash', 'Ram', 'Tim', 'sam'

我试过如下

xyz=`hive -e "select concat_ws(',', collect_set(name)) from from db.tbl";`

echo $xyz

Ash,sam,Ram,Tim

我的想法是我想在 where in 子句中使用变量

下面是我要实现的

select * from db.tbl where name in (variable)

我怎样才能做到这一点?

最佳答案

您的问题

xyz=`hive -e "select concat_ws(',', collect_set(name)) from from db.tbl";`

在变量的每一项前后添加双引号

xyz_list=echo "\"${xyz//,/\",\"}\""

查询变量

echo $xyz_list

"Ash", "Ram", "Tim", "sam"

想要查询

hive -e "select * from db.tbl where name in ($xyz_list)";

另一种实现结果的方法

abc=`hive -e "select collect_set(concat_ws(',', name)) from db.tbl";`

test=${abc:1:-1}

hive -e "select * from db.tbl where name in ($test)";

关于mysql - 如何在 hive 查询中使用 collect_set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084878/

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