sql - Hive - 在 JOIN 条件下爆炸

标签 sql hadoop hive hiveql

我想在连接条件下对列进行爆炸。

select
t1.a,t2.b, t2.c
from table1 AS t1
join (select b,LATERAL VIEW explode(ABCD) AS c from person) AS t2 ON (t1.c=t2.c)

但是,这个查询失败了。我怀疑子查询没有按预期工作。 在子查询中,我选择了两列,一列是b列,另一列是c列,这是一个爆炸。

这样子查询的写法对吗?如果错了,我该如何实现。

错误:

Error while compiling statement: FAILED: SemanticException Cannot do equality join on different types: string and map<bigint,array<string>>

最佳答案

CREATE TABLE people(b int,abcd array<String> ); 

INSERT INTO people SELECT 1, ARRAY("bob", "alice", "tom") from dummy limit 1;
INSERT INTO people SELECT 2, ARRAY("john", "mike", "jack") from dummy limit 1;

create table table1(name string, salary int);
insert into table1 values("bob",1000);
insert into table1 values("alice",500);

hive> select b,c  from people LATERAL VIEW explode(ABCD) ep AS c;
OK
1       bob
1       alice
1       tom
2       john
2       mike
2       jack


hive> select
t1.salary,t2.b, t2.c
from table1 AS t1
join (select b,c  from people LATERAL VIEW explode(ABCD) ep AS c) AS t2 ON (t1.name=t2.c)

OK
1000    1       bob
500     1       alice

关于sql - Hive - 在 JOIN 条件下爆炸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41562824/

相关文章:

MySQL:无法添加或更新子行

脚本中的Mysql数据库错误

performance - Hadoop CDH5使用1个MapReduce TaskTracker在10个节点上的最高网络性能

sql - 如何在Hive上处理SQL中的数据偏斜?

c# - Hive 和 HBase 集成 - 数据访问问题

sql - 如何使重复值唯一?

sql - 将 psql 查询从 perl 传递到字符串

hadoop - Map-reduce JobConf - 添加 FileInputFormat 时出错

hadoop - ssh:连接到主机从端口22:连接超时

hadoop - 百分位数函数在 Hive 中如何工作?