天天看點

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