我创建了一个外部蜂巢表,如下所示:
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。能否做到这一点,如果是的话,如何做到?
发布于 2014-03-04 07:31:49
您可以在下面的选项中试用。
插入覆盖表some_hive_table_avro选择*从some_hive_table_text;
发布于 2017-07-07 18:16:23
您可以使用下面的命令将任何表导出到本地位置或InputStorage位置,而不需要将其作为AVRO文件导出。
从蜂巢0.11.0开始
INSERT OVERWRITE LOCAL DIRECTORY '<Local directory>'
STORED AS AVRO SELECT * FROM some_hive_table;https://stackoverflow.com/questions/22161536
复制相似问题