0

次のようにデータをハイブ CLI にインポートできないのはなぜですか。hive_testテーブルにはusercomments列があります。

insert into table hive_test (user, comments) 
value ("hello", "this is a test query");

ハイブは、ハイブ CLI で次の例外をスローします

失敗: ParseException 行 1:28 は、select 句の '(' 'user' ',' の近くの入力を認識できません

テスト用に次のようにcsvファイルを介してデータをインポートしたくありません。

load data local inpath '/home/hduser/test_data.csv' into table hive_test;
4

2 に答える 2

4

Hive は、実際の SQL 構文ではなく、「SQL に似た」構文を宣伝していることに注意してください。純粋な SQL クエリが実際に Hive で実行されると考える特別な理由はありません。HiveQL の DML はWiki でここにVALUES文書化されており、列指定の構文または句をサポートしていません。ただし、次の構文はサポートしています。

INSERT INTO TABLE tablename1 SELECT ... FROM ...

これらのテスト クエリから推定すると、次のようなものが機能する可能性があります。

INSERT INTO TABLE hive_test SELECT 'hello', 'this is a test query' FROM src LIMIT 1

ただし、Hive は、この小規模なデータ操作に対して実際には最適化されていないようです。これをテストするための Hive インスタンスがありません。

于 2013-03-04T10:35:20.523 に答える
0

user組み込みの(予約済み)キーワードだからだと思います。

これを試して:

insert into table hive_test ("user", comments) 
value ('hello', 'this is a test query');
于 2013-03-04T10:22:04.323 に答える