Hadoop 无法将列添加为配置单元查询的一部分

Hadoop 无法将列添加为配置单元查询的一部分,hadoop,hive,Hadoop,Hive,如果internal_id是select子句的一部分,则会出现以下错误 失败:语义分析错误:行5:8表达式不在按键内部\u id分组中 为了避免这种情况,我将internal_id添加到groupby列中,结果导致以下错误。 失败:语义分析错误:在多个表/子查询中找到列内部\u id 我如何克服这个问题?布里西 e1和e2都具有列内部_id 所以你必须指出你想要哪一列 例如: CREATE EXTERNAL TABLE old_events (day STRING, foo STRING, co

如果internal_id是select子句的一部分,则会出现以下错误 失败:语义分析错误:行5:8表达式不在按键内部\u id分组中

为了避免这种情况,我将internal_id添加到groupby列中,结果导致以下错误。 失败:语义分析错误:在多个表/子查询中找到列内部\u id

我如何克服这个问题?

布里西 e1和e2都具有列内部_id 所以你必须指出你想要哪一列 例如:

CREATE EXTERNAL TABLE old_events
(day STRING, foo STRING, count STRING, internal_id STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LOCATION '${INPUT}';;

CREATE EXTERNAL TABLE events
(internal_id, foo STRING, count STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LOCATION '${OUTPUT}';;

INSERT OVERWRITE TABLE events
SELECT internal_id, e2.foo, count(e1.foo)
FROM old_events e2
LEFT OUTER JOIN old_events e1
ON e1.foo = e2.foo
WHERE e1.event = 'event1'
AND e2.event = 'event2'
GROUP BY e2.foo;
INSERT OVERWRITE TABLE events
SELECT e2.internal_id, e2.foo, count(e1.foo)
FROM old_events e2
LEFT OUTER JOIN old_events e1
ON e1.foo = e2.foo
AND e1.event = 'event1'
WHERE e2.event = 'event2'
GROUP BY e2.internal_id, e2.foo;