Hive 失败:SemanticException[错误10008]:行5:16不明确的表别名';在2051年';

Hive 失败:SemanticException[错误10008]:行5:16不明确的表别名';在2051年';,hive,Hive,失败:SemanticException[错误10008]:行5:16不明确的表别名“in_2051_1” 这个错误是什么意思?我如何修复它?我可以发现,左外联接和右外联接两个具有相同列的表意味着“完全外联接” 将SQL更改为 INSERT OVERWRITE TABLE out_2051 SELECT in_2051_0.column1,in_2051_0.column2,in_2051_1.column2,in_2051_1.column1 FROM in_2051_0 RIGHT OU

失败:SemanticException[错误10008]:行5:16不明确的表别名“in_2051_1”


这个错误是什么意思?我如何修复它?

我可以发现,左外联接和右外联接两个具有相同列的表意味着“完全外联接”

将SQL更改为

INSERT  OVERWRITE  TABLE out_2051
SELECT in_2051_0.column1,in_2051_0.column2,in_2051_1.column2,in_2051_1.column1
FROM in_2051_0
RIGHT OUTER JOIN in_2051_1 ON (in_2051_0.column2 = in_2051_1.column1)
LEFT OUTER JOIN in_2051_1 ON (in_2051_0.column2 = in_2051_1.column1)
;
我认为你的错误意味着表格中的最后一行与第四行相同

在第五行的ON子句中。in_2051_1.column1模棱两可,hive不知道in_2051_1是右连接还是左连接。您可以在第5行为in_2051_1指定一个类似“in_2051_1_2”的别名


我认为完整的外部连接是您所需要的。

两列不同,需要左外部连接,这又如何?
INSERT  OVERWRITE  TABLE out_2051
SELECT in_2051_0.column1,in_2051_0.column2,in_2051_1.column2,in_2051_1.column1
FROM in_2051_0
FULL OUTER JOIN in_2051_1 ON (in_2051_0.column2 = in_2051_1.column1)