如何将配置单元查询结果导出到单个本地文件?
How to export hive query result to single local file?
我想使用管道分隔符将配置单元查询结果导出到单个本地文件。
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 命令删除空行。需要很长时间。
还有其他有效的方法吗?
尝试这些设置以在单个减速器上执行 ORDER BY:
set hive.optimize.sampling.orderby=false; --disable parallel ORDER BY
或者尝试手动设置reducer数量:
set mapred.reduce.tasks=1;
我想使用管道分隔符将配置单元查询结果导出到单个本地文件。
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 命令删除空行。需要很长时间。
还有其他有效的方法吗?
尝试这些设置以在单个减速器上执行 ORDER BY:
set hive.optimize.sampling.orderby=false; --disable parallel ORDER BY
或者尝试手动设置reducer数量:
set mapred.reduce.tasks=1;