2017-10-20 135 views
-1

如何更改以下命令,以便我可以将输出文件导出为管道分隔文件。配置单元导出到管道分隔文件

shellcommand='''hive -e 'set hive.cli.print.header=true; set hive.resultset.use.unique.column.names=false; use hivedb1; %s; ' | sed 's/[\t]/,/g' > %s '''%(selectqry,'path/outputfile.txt') 

回答

0

您可以用linux重定向重定向配置单元输出。标准输出是结果集。你可以用concat_ws函数连接输出列。像:

CMD=`hive -e "set hive.cli.print.header=true; set hive.resultset.use.unique.column.names=false; use hivedb1; select concat_ws('|',col_1,col_2,col_3) from tbl" 1> output_file.txt 2> log.txt` 
+0

是的。但我的专栏数量是动态的,所以这将是非常困难的。但我找到了解决方案。而不是** sed's/[\ t] /,/ g'**使用** sed's/[\ t]/|/g'**。不管怎样,谢谢 – kten

相关问题