如何将配置单元查询结果导出到单个本地文件?

Posted

技术标签:

【中文标题】如何将配置单元查询结果导出到单个本地文件?【英文标题】:How to export hive query result to single local file? 【发布时间】:2020-09-25 16:34:29 【问题描述】:

我想用管道分隔符将 hive 查询结果导出到单个本地文件。

Hive 查询包含 order by 子句。

我尝试了以下解决方案。

解决方案 1:

hive -e 'insert overwrite local directory '/problem1/solution' fields terminated by '|' select * from table_name order by rec_date'

此解决方案是创建多个文件。合并文件后,数据顺序丢失。

解决方案 2:

beeline -u 'jdbc:hive2://server_ip:10000/db_name' --silent --outputformat=dsv --delimiterForDSV='|' -e 'select * from table_name order by rec_date' > /problem1/solution

此解决方案正在创建单个文件,但顶部有 2 行空,底部有 2 行。

我正在使用 sed 命令删除空行。这需要很长时间。

有没有其他有效的方法来实现这一点?

【问题讨论】:

【参考方案1】:

尝试这些设置以在单个减速器上执行 ORDER BY:

set hive.optimize.sampling.orderby=false; --disable parallel ORDER BY

或者尝试手动设置reducer的数量:

set mapred.reduce.tasks=1;

【讨论】:

以上是关于如何将配置单元查询结果导出到单个本地文件?的主要内容,如果未能解决你的问题,请参考以下文章

pl/sql 把查询结果导出为dmp文件

无法将 Google BigQuery 导出到本地计算机中的 CSV 文件

如何将单张 PDF 文件直接下载到我的本地设备(不导出到 Google Drive)?

几种保存Hive查询结果的方法

Python:将大型 SQL Server 查询结果导出到 .txt 文件

SparkStreaming python 读取kafka数据将结果输出到单个指定本地文件