hive使用beeline将hql结果导出为csv文件

编写shell脚本自动化导出指定hql结果到csv文件并删除sql语句和关闭连接日志

1. hql文件准备

select a.enodebid as enodebid,
	   sum(xdrsize) as totalXdrSize,
	   sum(failed) as totalFailed,
	   sum(success) as totalSuccess
  from test.imsiBackFill a
 where date_id = 20180920
   and hour = 10
 group by enodebid;

2. shell脚本编写

#!/bin/bash
#要查询的sql语句 eg: *.hql
sqlFile=$1
#导出文件完整路径 eg: */resultData.csv
exportFilePath=$2
#导入hive查询结果命令 注意beeline使用完整路径
/usr/local/hive-1.2.2/bin/beeline -u jdbc:hive2://mace:10000 --outputformat=csv2 --showHeader=true -f ${sqlFile} >${exportFilePath}
#处理导出文件 删除sql及最后一行
rowNum=$(cat ${sqlFile}|wc -l)
#删除sql语句(默认为sql文件的行数)
$(sed -e "1,${rowNum}d" $exportFilePath -i)
exportFileRowNum=$(cat ${exportFilePath}|wc -l)
#删除关闭beeline连接(最后一行)
$(sed -e "${exportFileRowNum}d" $exportFilePath -i)

3.执行命令

sh exportHiveDataBySQL.sh */select.hql */resultData.csv

注: sed命令 是linux下利用脚本处理文件。详细参考:http://www.runoob.com/linux/linux-comm-sed.html

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值