web-dev-qa-db-ja.com

エラーメッセージ:TOK_ALLCOLREFは現在のコンテキストではサポートされていません-HIVEでDISTINCTを使用している間

私は簡単なコマンドを使用しています:SELECT DISTINCT * FROM first_working_table; Hive 0.11で、次のエラーメッセージが表示されます。

失敗:SemanticExceptionTOK_ALLCOLREFは現在のコンテキストではサポートされていません。

なぜこれが起こっているのか誰かが知っていますか?どうすればそれを解決できますか?

ありがとう、ギャル。

14
user3107144

HiveはDISTINCT *構文をサポートしていません。テーブルのすべてのフィールドを手動で指定して、同じ結果を得ることができます。

SELECT DISTINCT field1, field2, ...., fieldN
  FROM first_working_table
30
Nigel Tufnel

以前のコメントで指定されているように、個別*はサポートされていません。それは本当です。 1つのトリックはこのようにすることができます。

Distinct *は、次のように使用できます。

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

私はこの構文をHive2.xで使用しました。したがって、これが機能することを確認できます。

4
kalpesh