我试图将数据从配置单元表复制到我的本地目录。 我正在使用的代码是:
nohup hive -e "set hive.cli.print.header=true; set hive.resultset.use.unique.column.names=false; select * from sample_table;" | sed 's/[\t]/|/g' > /home/sample.txt &
问题是该文件大约为400 GB,并且该过程需要永远完成。
有没有更好的方法,比如在生成文件时压缩文件。
我需要将数据作为.txt文件,但我无法快速解决此问题。
任何聪明的想法都会非常有用。
答案 0 :(得分:1)
您是否尝试使用-getmerge
命令的hadoop
选项进行操作?这通常是我用来合并Hive文本表并导出到本地共享驱动器的。
hadoop fs -getmerge ${SOURCE_DIR}/table_name ${DEST_DIR}/table_name.txt
我认为sed
命令也会显着降低速度。如果在提取数据之前在Hive中执行字符替换,则会比在边缘节点上运行的单线程sed
命令更快。