将参数传递给Impala shell

时间:2016-05-12 13:24:18

标签: hadoop hive impala

我在while循环中运行impala查询,为此我创建了一个单独的查询文件,我从shell脚本调用它。

我的问题是:我们可以在查询文件中传递与变量匹配的shell变量吗?

A="INSERT_SBP_ME_VS_ME_INCOME_LAST_THIRTY_DAYS_Q"${Count}

echo "value of A is $A"

source ${SBP2_MNY_IN_LAST_THIRTY_DAYS_QF}

${IMPALA_CON}  -q "${${A}}"

' A'值类似于INSERT_SBP_ME_VS_ME_INCOME_LAST_THIRTY_DAYS_Q1(计数为1)

我这样做是为了获得bad substitution error而我也尝试了

${IMPALA_CON}  -q "${A}"

但没有取得成功。

3 个答案:

答案 0 :(得分:0)

您的查询应该是:

impala-shell -q "$A"

参考:

impala-shell Configuration Options

similar post

答案 1 :(得分:0)

您似乎在寻找--var(IMPALA-2179)。要从命令行替换,您可以执行以下操作:

impala-shell -f test.q --var = L = 2;

test.q是: select * from p_test limit $ {VAR:L};

答案 2 :(得分:0)

impala-shell -i node.domain:port -B --var"table=metadata" --var="db=retail" -f "file.sql"

file.sql:

  

SELECT * FROM $ {var:db}。$ {var:table}“