2016-12-02 19 views
0

我創建了一個外部Hive表格,該表格指向一個具有多個avro文件的位置。創建語句沒有任何問題,它創建了預期的列。但是,當我嘗試運行查詢時,該表沒有數據。我試圖用幾種不同的方式創建表格,但無法使其工作。我也驗證了目錄中有avro文件。AVRO文件中的外部Hive表格說明它沒有數據

CREATE EXTERNAL TABLE table_name 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' 
STORED as INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat' 
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat' 
LOCATION '/path/to/avro/data/' 
TBLPROPERTIES ('avro.schema.url'='/path/to/schema/ags.avsc'); 

CREATE EXTERNAL TABLE table_name 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe' 
STORED as AVRO 
LOCATION '/path/to/avro/data/' 
TBLPROPERTIES ('avro.schema.url'='/path/to/schema/ags.avsc'); 

任何想法?

+0

您的聲明看起來正確 除非LOCATION'/ path/to/avro/data /'與ags.svro數據有不同的數據? 或 確保架構和數據文件之間的格式相同。 –

+0

模式位於另一個位置。我相信這個模式是一樣的,因爲我從avro文件的頂部抓取模式。 – Carlos

回答

0

原來的模式文件(由sqoop生成)是不正確的。我最終通過使用「avro-tools getschema」創建了一個新的模式文件。一旦我使用該模式文件,所有事情都按預期工作。

相關問題