Сообщение об ошибке: TOK_ALLCOLREF не поддерживается в текущем контексте - при использовании DISTINCT в HIVE

Я использую простую команду: SELECT DISTINCT * FROM first_working_table; в HIVE 0.11, и я получаю следующее сообщение об ошибке:

FAILED: SemanticException TOK_ALLCOLREF не поддерживается в текущих контекст.

Кто-нибудь знает, почему это происходит? Как мы можем его решить?

Спасибо, Гал.

Ответ 1

Hive не поддерживает синтаксис DISTINCT *. Вы можете вручную указать каждое поле таблицы, чтобы получить тот же результат:

SELECT DISTINCT field1, field2, ...., fieldN
  FROM first_working_table

Ответ 2

Как указано в предыдущем комментарии, отдельный * не поддерживается. Что является правдой. Один трюк может быть таким.

Distinct * можно использовать следующим образом:

select distinct * from (
select t1.col1,t1.col2,t1.col3,t2.* from t1,t2
)tbl;

Я использовал этот синтаксис в Hive 2.x. Поэтому я могу подтвердить, что это работает.