我想把hive的查询结果导出到一个带管道分隔符的本地文件。
hive查询中包含了排序子句。
我试过以下的解决方案。
解决方案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条答案
按热度按时间smtd7mpg1#
试着用这些设置来执行单个reducers的order by
或尝试手动设置reducers的数量。