2

ハイブ ストリーミング ジョブを使用して、MAP データ型の列を含むテーブルにデータを挿入しようとしています。

テーブル定義ですべての区切り記号を設定してから、ストリーミング ジョブから正しい形式でデータを出力しようとしました。

ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','
MAP KEYS TERMINATED BY '|'
LINES TERMINATED BY '\n'

また、Hive がマップを保存する正確な形式でデータを出力しようとしました({key:value})

これが私が見続けるエラーです:

FAILED: Error in semantic analysis: Line 7:23 Cannot insert into target table because column number/types are different 'table_name': Cannot convert column 2 from string to map<string,string>.

ハイブでこれを行うことは可能ですか?

4

1 に答える 1

0

データ サンプルと完全なテーブル スキーマがないと、エラーの原因を説明できません。

どうやらあなたの ROW FORMAT 定義に従っているようです。データのマップ構造は次のようになります (サイズ 2 のマップを想定):

....\tkey1|value2,key2|value2\t...other columns\n

于 2014-01-27T12:37:13.257 に答える