2017-10-20 42 views
-1

Comment modifier la commande ci-dessous afin de pouvoir exporter le fichier de sortie sous forme de fichier délimité par des tubes.Exportation de la ruche vers un fichier délimité par des tuyaux

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') 

Répondre

0

Vous pouvez rediriger la sortie de la ruche avec la redirection linux. La sortie standard est resultset. Vous pouvez concaténer les colonnes de sortie avec la fonction concat_ws. Comme:

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

Oui. mais mes colonnes sont dynamiques. Donc ce serait très difficile. Mais j'ai trouvé la solution. Au lieu de ** sed 's/[\ t] /,/g' ** utilisez ** sed 's/[\ t]/|/g' **. En tout cas merci – kten