通过直线传递变量到查询

时间:2018-05-31 15:38:58

标签: hiveql beeline

我需要帮助才能理解为什么我的hivevar没有在我的查询中设置?

这是我在shell脚本中的直线声明:

Start_Date="20180423"
End_Date="20180424"

beeline -u 'jdbc:hive2://#####/default;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=######;' -f ${my_queries}/Count_Query --showHeader=false --outputformat=csv2 --silent=false --hivevar start_date=$Start_Date --hivevar end_date=$End_Date  1>${my_data}/Data_File 2>${my_log}/Log_File

查询

use sample_db;
select count(*) from sample_table where data_dt>=${start_date} and data_dt<${end_date};

当我查看提供查询转储的数据文件时,变量未正确设置为值。

0: jdbc:hive2://####> use sample_db;
0: jdbc:hive2://####> select count(*) from sample_table where data_dt>=${start_date} and data_dt<${end_date};

1 个答案:

答案 0 :(得分:0)

问题在于

部分
**--hivevar start_date=$Start_Date --hivevar end_date=$End_Date** 

删除**,你很高兴。

Shell脚本。

Start_Date="20180423"
End_Date="20180424"

beeline_cmd="beeline -u 'jdbc:hive2://#####/default;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hiveserver2;principal=######;' --showHeader=false --outputformat=csv2 --silent=false"

${beeline_cmd} -f ${my_queries}/Count_Query --hivevar start_date=${Start_Date} --hivevar end_date=${End_Date}  1>${my_data}/Data_File 2>${my_log}/Log_File 

Hive查询