我写了下面的shell脚本。 这不起作用。
无法识别参数YRMTH_1
。
失败:ParseException行1:89无法识别谓词'as'。 失败的规则:表或列标识符中的“标识符”
YRMTH=$(hive -e "select cast(concat(substr(cast(add_months(current_date, -1) as string),1,4),substr(cast(add_months(current_date, -1) as string),6,2)) as int);")
echo $YRMTH
YRMTH_1=$YRMTH
hive -e "SELECT cust_name as cust_name_${hiveconf:YRMTH_1} from xmb_db.customer where ym=CAST(${hiveconf:YRMTH_1} as INT);" | sed 's/[\t]/,/g' >/tmp/data.csv
请帮帮我。
提前致谢。
答案 0 :(得分:0)
如果您使用-e" script&#34 ;, shell将替换所有$变量。
因此,解决方案是直接使用shell变量而不使用hiveconf:
{{1}}