2016-09-27 13 views
0

Avroファイル形式で保存されたハイブテーブルを作成しました。私はDUMPコマンドを使用して「hive_avro」を表示しようとしたとき、私は豚の下に使用して同じハイブテーブルをロードしようとしていますが、私は取得しています豚の読み込みハイブテーブルAvroとして保存

pig -useHCatalog; 
hive_avro = LOAD 'hive_avro_table' using org.apache.hive.hcatalog.pig.HCatLoader(); 

コマンドエラー「hive_avro_tableからの読み取りに失敗しました」。

この問題の解決方法を教えてください。事前のおかげで、返信用

答えて

0
create table hivecomplex 
(name string, 
phones array<INT>, 
deductions map<string,float>, 
address struct<street:string,zip:INT> 
) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
COLLECTION ITEMS TERMINATED BY '$' 
MAP KEYS TERMINATED BY '#' 
STORED AS AVRO 
; 

hive> select * from hivecomplex; 
OK 
John [650,999,9999] {"pf":500.0} {"street":"pleasantville","zip":88888} 
Time taken: 0.078 seconds, Fetched: 1 row(s) 

Now for the pig 

pig -useHCatalog; 

a = LOAD 'hivecomplex' USING org.apache.hive.hcatalog.pig.HCatLoader(); 
dump a; 

ne.util.MapRedUtil - Total input paths to process : 1 
(John,{(650),(999),(9999)},[pf#500.0],(pleasantville,88888)) 
+0

感謝。あなたの例が働いています。私はhive_avroテーブルに複雑なデータ型(配列、マップ、構造体)を使用しています。 Structデータ型のように見えて、問題を引き起こしています。何か考えていますか? –

+0

複合データ型はブタでサポートされています。別の関係を作成してLIMIT 5を使用し、その関係をダンプすることができます。 hive_avro_tableはハイブテーブルまたはビューですか?ビューはブタでサポートされていません。 hive_avro_tableが外部テーブルである場合は、ロケーションに対する/ tmp –

関連する問題