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

标签 sql hadoop export hive

我创建了一个这样的外部配置单元表:

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

最佳答案

您可以使用以下命令将任何表导出为 AVRO 文件,而不考虑 InputStorage 到本地位置或 HDFS 位置。

从 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-Writingdataintothefilesystemfromqueries

关于sql - 将配置单元表导出到 .avro 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22161536/

相关文章:

mysql - 除了一列外所有行都相似

hadoop - HBase Thrift 文件结束异常

Hadoop 源代码

r - 将大矩阵保存为 csv 文件 - excel 中多行的标题

php - 如何形成此 SQL 查询以检查多个特定值而不导致重复?

sql - 用于验证字符串是否为有效 SQL 列名称的正则表达式

sql - INSERT 语句中的死锁错误

python - 如何使用 Python 获取 hdfs 文件的创建日期

c# - 将 Excel 图表导出为图像

neo4j - Neo4j备份/恢复是否意味着图数据库的导出/导入?