【问题标题】:Passing parameters to Impala shell将参数传递给 Impala shell
【发布时间】:2016-05-12 13:24:17
【问题描述】:

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

我的问题是:我们可以在查询文件中传递与 impala 查询匹配的 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}"

但没有获得成功的结果。

【问题讨论】:

    标签: hadoop hive impala


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      您的查询应该是:

      impala-shell -q "$A"
      

      参考:

      impala-shell Configuration Options

      similar post

      【讨论】:

      • 我们已经尝试过了,但它可能不起作用,因为 $A 是 unix 变量,而 impala 需要查询文件中存在的查询变量 ${Query_variable_Q1}。还有其他解决方案吗?
      【解决方案3】:
      impala-shell -i node.domain:port -B --var"table=metadata" --var="db=retail" -f "file.sql"
      

      文件.sql:

      SELECT * FROM ${var:db}.${var:table}"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-09
        • 1970-01-01
        • 2016-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多