2014-03-04 40 views
2

我創建了一個外部蜂巢表是這樣的:出口蜂巢表.avro文件

CREATE EXTERNAL TABLE some_hive_table 
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 '/hdfs/path/some_hive_table/' 
TBLPROPERTIES ('avro.schema.literal'='{json schema here}'); 

我想運行一些蜂巢查詢就可以了,出口數據到Avro的文件。我知道我可以導出這樣的數據:

INSERT 
OVERWRITE DIRECTORY '/hdfs/path/avrofileoutput/' 
SELECT * FROM some_hive_table; 

但我希望我的輸出文件是一個avro文件 - 而不是csv。這可以做到,如果是的話如何?

回答

1

您可以嘗試以下選項。

插入覆蓋表some_hive_table_avro select * from some_hive_table_text;

+0

但出口到其他蜂巢表。我正在尋找導出到avro文件。會有這個表創建的基礎avro文件,這將是我在找什麼? – Tucker

+0

是的。您可以使用底層的.avro文件。如果你仍然希望它是單個avro文件,你可以嘗試下面的命令.. hadoop fs -cat//*> student.avro – Venkatesh