Impala實踐之八:指令碼中引號問題
阿新 • • 發佈:2019-02-15
前言
寫指令碼,遇到一個小坑,python和seven幫忙填了一下,突然想起來之前貌似遇到過類似的情況。
版本一
指令碼:
sql=$1
coordinator=$2
output_file=$3
echo $sql
echo "------"
echo $output_file
echo "------"
echo $coordinator
impala-shell -i $coordinator -q $sql -o $output_file
執行命令:
bash impala-exec.sh "select distinct dt from table" ip:21000 /tmp/test.txt
結果:
$ bash impala-exec.sh "select distinct dt from tablename" "ip1:21000" "tmp/test.txt"
select distinct dt from tablename
------
tmp/test.txt
------
ip1:21000
Error, could not parse arguments "distinct dt from tablename"
Usage: impala_shell.py [options]
Options:
-h, --help show this help message and exit
-i IMPALAD, --impalad=IMPALAD
<host:port> of impalad to connect to
[default: hadoop-cluster-8-228:21000]
......
可以看到,指令碼獲取到了,但是impala-shell識別不了。
版本二
仔細想了一下,應該是impala在解析sql語句時候的語法規範問題,修改一下指令碼。
改成如下即可。
impala-shell -i $coordinator -q "$sql" -o $output_file
2016-04-11 19:08:00 hzct