gpt4 book ai didi

sql - Hive - 检查表中每一行中的数组是否包含另一个表中列中的任何匹配数据

转载 作者:可可西里 更新时间:2023-11-01 14:21:46 28 4
gpt4 key购买 nike

我有两个表,各列如下所示。

Posts:
user STRING,
tag_list ARRAY<STRING>

Tags:
tag STRING

这是这些表中的一些示例数据。

Posts:
user1 help, pig
user2 bigdata, hadoop, query, hiveql
user1 hive, hiveql, help

Tags:
hadoop
hiveql

如果我只想过滤掉 Posts 表中包含 Tags 表中列出的标签的行,如下面的结果所示,我将如何在配置单元查询中执行此操作?我不确定如何使用 array_contains 连接这两个表。

Expected Query Result:
user2 bigdata, hadoop, query, hiveql
user1 hive, hiveql, help

谢谢

最佳答案

我能够通过此查询获得预期的结果。

select distinct b.user, b.tag_list from 
(select tag from tags) a
join
(select user, tag_list, exp from posts
lateral view explode(tag_list) exploded_table as exp) b
on (a.tag = b.exp);

关于sql - Hive - 检查表中每一行中的数组是否包含另一个表中列中的任何匹配数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389107/

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