hive里面有个hive -e 命令可以传参数,但是当hql语句多了以后,整个shell脚本会显得比较凌乱,当然有人可能会说hive -f可以实现直接调用一个file,bingo的确如此,但是还是有个很大的缺陷,就是这个不能传参数了,不能传参数在实际的工作中是无法忍受的。于是想到了封装一个命令HiveF,既能直接传入file,又能传参数。其实实现很简单,下面就把代码分享出来。当然还不是很完善,抛砖引玉吧。
#!/bin/bash
. /etc/profile
cat $1 > $1.tmp
for arg in "$@"
do
echo "arg "$arg
flag=`echo $arg | grep '-'`
if [ $arg != $1 ];then
if [ $flag ];then
tmp=`echo $flag | sed s/-//`
else
sed -i s/{$tmp}/$arg/g $1.tmp
echo "nothing"
fi
fi
done
hive -f $1.tmp
rm -f $1.tmp
希望能对大家又说帮助。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。