运行 通过 cli 使用包含特殊字符的列的配置单元查询
running a hive query via cli with columns containing special characters
我正在编写一个 bash 脚本,并且必须遍历大量包含特殊字符(主要是空格)的列的表
我想用下划线更改它们,到目前为止我有这段代码:
while read column;do
beeline -e "use DB; ALTER TABLE X CHANGE `${column}` ${column// /_} STRING;"
done < ./file_with_column_names.txt
我将列名用反引号括起来,一切正常,但我收到错误消息,无论脚本尝试更改的列是否包含特殊字符:
FAILED: ParseException line 1:49 cannot recognize input near '<EOF>' '<EOF>' '<EOF>' in column type (state=42000,code=40000)
但是,来自 HUE 的相同查询 运行(显然 bash 变量替换为列名)工作正常。
不知道beeline查询失败的原因。有任何想法吗?谢谢!
好的,我找到原因了。反引号也由 BASH 解释,所以我也需要像这样转义它们
\`${column}\`
我正在编写一个 bash 脚本,并且必须遍历大量包含特殊字符(主要是空格)的列的表 我想用下划线更改它们,到目前为止我有这段代码:
while read column;do
beeline -e "use DB; ALTER TABLE X CHANGE `${column}` ${column// /_} STRING;"
done < ./file_with_column_names.txt
我将列名用反引号括起来,一切正常,但我收到错误消息,无论脚本尝试更改的列是否包含特殊字符:
FAILED: ParseException line 1:49 cannot recognize input near '<EOF>' '<EOF>' '<EOF>' in column type (state=42000,code=40000)
但是,来自 HUE 的相同查询 运行(显然 bash 变量替换为列名)工作正常。
不知道beeline查询失败的原因。有任何想法吗?谢谢!
好的,我找到原因了。反引号也由 BASH 解释,所以我也需要像这样转义它们
\`${column}\`