rev*_*rev 4 sql hadoop hive bigdata hiveql
我有两个带有列的表,如下所示.
Posts:
user STRING,
tag_list ARRAY<STRING>
Tags:
tag STRING
Run Code Online (Sandbox Code Playgroud)
以下是这些表中的一些示例数据.
Posts:
user1 help, pig
user2 bigdata, hadoop, query, hiveql
user1 hive, hiveql, help
Tags:
hadoop
hiveql
Run Code Online (Sandbox Code Playgroud)
如果我只想过滤掉Posts表中包含Tags表中列出的标签的行,如下面的结果所示,我将如何在hive查询中执行此操作?我不确定如何使用array_contains连接这两个表.
Expected Query Result:
user2 bigdata, hadoop, query, hiveql
user1 hive, hiveql, help
Run Code Online (Sandbox Code Playgroud)
谢谢
我能够通过此查询获得预期的结果.
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);
Run Code Online (Sandbox Code Playgroud)