shell中循环调用hive sql 脚本

hive -S -e 'use logdb; show tables;'>table.txt

while read table

do

echo $table

hive -S -e "use logdb;show create table $table"

done < table.txt

 

脚本tt.sh的内容如下:

#!/bin/bash
params=$1
for param in $params
do
  echo $param
done
 

#运行方式为:
sh tt.sh "1 2 3 4 5"
 

#输出为:
1
2
3
4
5
 

所以参考上面的命令,可以把hql的脚本写为如下方式,就可以循环执行sql:

功能:查找字符串 comments 中的param第一次出现的位置 ,返回的是位置数字

#!/bin/bash
params=$1
for param in $params
do
  hive -e "insert overwrite local directory '/tmp/$param'
  row format delimited fields terminated by '\t'
  select locate('$param',comments) as position from tb_a;"
done

功能:查找评论中出现关键字的内容,没有关键词的内容过滤掉

 
#!/bin/bash
params=$1
for param in $params
do
    hive -e "insert overwrite local directory '/tmp/$param'
    row format delimited fields terminated by '\t'
    select position from 
      (select locate('$param',comments) as position from tb_a  where position  != '0') a 
    where a.position !='0' ;"
done
原文:https://blog.csdn.net/dear_csdn/article/details/69389403 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值