我正在使用Hadoop执行查询。
我想要在查询中使用BASH变量。这是一个示例:
export month="date +%m"
export year="date +%Y"
beeline -u jdbc:hive2://clustername.azurehdinsight.net:443/tab'
-n myname -e "select * from mytable where month = '$month' and
year = '$year';"
但是查询为空,因此实际上,Hive中不是这种情况。
select * from mytable where month = '$month' and
year = '$year';
在Hive中不是空查询。
我的bash脚本有问题吗?
答案 0 :(得分:1)
您需要使用date
执行$()
命令,更改
export month="date +%m"
export year="date +%Y"
与
export month=$(date +%m)
export year=$(date +%Y)
您可以将hivevar
自变量与beeline一起使用
beeline -u jdbc:hive2://clustername.azurehdinsight.net:443/tab \
-n myname \
--hivevar month=$month \
--hivevar year=$year \
-e "select * from mytable where month = '${hivevar:month}' and year = '${hivevar:year}';"