2017-10-20 11 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関数を使用して出力列を連結できます。 Like:

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の/ [\ t] /、/ g '**の代わりに** sedの/ [\ t]/|/g' **を使用してください。とりあえずありがとう – kten

関連する問題