分享知识,分享快乐

0%

hive数据导出,并指定分隔符,元素包含引号等

hive数据导出,并指定分隔符,元素包含引号等

语法格式

1
beeline -n username -p password -u jdbc:hive2://host:10000 --verbose=true  --showHeader=false --outputformat=tsv2  --color=true  -e "select * from ${database}.${tablename}" > ${tableName}.csv

通过 outputformat 指定输出格式

–outputformat=[table/vertical/csv/tsv/dsv/csv2/tsv2] == 指定输出格式

–delimiterForDSV="*" ‘&’ 前提(–outputformat=dsv) 指定分隔符

不同格式对应的分隔符如下表:

格式 分隔符
table 表格式
vertical 如下所示
csv ‘,’ 逗号(元素包含引号)
tsv ‘\t’ 制表符(元素包含逗号)
dsv 默认‘|’ 竖线分割,可通过delimiterForDSV指定分隔符
csv2 ‘,’ 逗号(不含引号)
tsv2 ‘\t’ 制表符(不含引号)

说明:

csv格式 == 查询元素有’'单引号

csv2格式没有单引号

tsv,tsv2同上

实例

impala , ‘|’ 竖线分割 (元素不包含引号)

1
impala-shell -i cdh85-43:21000 -u yarn -l --auth_creds_ok_in_clear   -B -o /opt/Z2007931000018_S3_N_20200311_00000001.TXT  --output_delimiter='|' -q " select c1,c3,c4,c5,c6,c7,COALESCE(c8,0),COALESCE(c9,0), COALESCE(c10,0),COALESCE(c11,0),'156' from baofoo_rm_regulator.hadoop_pbc_trans_order_aggregate"

hive ‘|’ 竖线分割 (元素包含双引号)

1
beeline -u "jdbc:hive2://172.20.15.12:10000/" -n yarn -p --outputformat=dsv --showHeader=false -e ' set mapreduce.job.queuename=bf_yarn_pool.production; SELECT  concat("\"", self_acc_name,"\"") ,  concat("\"",self_acc_no ,"\"") ,  concat("\"",bank_acc_name ,"\"") ,  concat("\"",join_code ,"\"") ,  concat("\"",`date` ,"\"") ,  concat("\"", `time`,"\"") ,  concat("\"", cur,"\"") ,  concat("\"",cast(amt as string) ,"\"") ,  concat("\"",cast(usd_amt as string) ,"\"") ,  concat("\"",lend_flag ,"\"") ,  concat("\"",prof_type ,"\"") ,  concat("\"", part_acc_name,"\"") ,  concat("\"",part_acc_no ,"\"") ,  concat("\"", acc_flag,"\"") ,  concat("\"",tran_flag ,"\"") ,  concat("\"",open_bank_name ,"\"") ,  concat("\"",ip_code ,"\"") ,  concat("\"",purpose ,"\"") ,  concat("\"",bord_flag ,"\"") ,  concat("\"",trade_order ,"\"") ,  concat("\"",trans_no ,"\"") FROM BAOFOO_STAT.tb_con_txn_2019_2020 ' > tb_con_txn_2019_2020.csv