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 |