将配置单元表导出到.avro文件

ztigrdn8  于 2021-06-04  发布在  Hadoop
关注(0)|答案(2)|浏览(308)

我创建了一个外部配置单元表,如下所示:

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。这可以做到吗?如果可以,怎么做?

p5cysglq

p5cysglq1#

您可以使用下面的命令将任何表作为avro文件导出到本地位置或hdfs位置,而不考虑inputstorage。
从hive 0.11.0开始

INSERT OVERWRITE LOCAL DIRECTORY '<Local directory>'
    STORED AS AVRO SELECT * FROM some_hive_table;

https://cwiki.apache.org/confluence/display/hive/languagemanual+dml#languagemanualdml-将数据从查询写入文件系统

7gs2gvoe

7gs2gvoe2#

你可以试试下面的选项。
插入覆盖表某个配置单元\u表\u avro选择*从某个配置单元\u表\u文本;

相关问题