如何将包含空格的变量传递给配置单元?

9udxz4iz  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(502)

我试图通过一个变量通过shell脚本向我的配置单元脚本发送一个完整的select语句,比如

QUERY="select * from abc;"
hive -f hive_script.hql -hivevar QUERY=${QUERY}

我的配置单元脚本如下:

CREATE table AS ${QUERY}

但是这给了我一个错误。我检查了配置单元日志,查询结果如下

CREATE table AS select

,即忽略 * from ; 第二部分如何将带有空格的变量传递给配置单元脚本?

ruarlubt

ruarlubt1#

这是一个很好的解释
https://unix.stackexchange.com/questions/131766/why-does-my-shell-script-choke-on-whitespace-or-other-special-characters
本质上,您需要像这样在变量之间加双引号以保留多个值

QUERY="select * from abc;"
hive -f hive_script.hql -hivevar QUERY="${QUERY}"

相关问题