我有下面的imapala查询在shell脚本上运行,这是抛出错误。
带反引号的日期'date'
impala-shell -B -i $IMPALA_CON --ssl -q "use db_test ; select concat(substring(`date`,3,2),substring(`date`,6,2),substring(`date`,9,2)) id from db_test.date_d where `date`<=cast(current_timestamp() as string)" -o $FILE/abc.txt '--output_delimiter=,'
错误:分析异常:第1行语法错误:选择concat(子字符串(2023年1月17日星期二02:18:20 EST,3,2 ...
2条答案
按热度按时间6tqwzwtp1#
date
是一个shell命令,反引号用于命令替换。您将得到替换后的日期,但没有引号。尝试使用'
date'
,而不仅仅是date
(注意反引号周围的单引号)。q3qa4bjr2#
使用impala shell进行复杂的表达式查询可能会产生问题。
为了避免出现问题,最佳做法是将查询放在一个文件中,然后使用file -f参数而不是-q进行查询。
-f/路径/目标/我的/设备/我的查询文件. sql
my_query_file. sql文件只能包含sql查询
希望能有所帮助,这解决了我很多麻烦
注意:在组合中可以是引号语法也可以是' versus'