配置单元concat函数不能以直线方式工作

qvsjd97n  于 2021-06-27  发布在  Hive
关注(0)|答案(1)|浏览(520)
${beeline_url} --silent=true --showHeader=false --outputformat=csv2 --showWarnings=false -e "select concat('invalidate metadata ', trim(table_name) , '; refresh ', trim(table_name) ,';') from my_Table " > /home/table_list.csv

我试图运行此查询,结果出错。同样的查询在hive、hue甚至beeline中运行良好。
在使用beeline时,下面的查询给出了结果

0: jdbc:hive2://host> select concat("invalidate metadata ", trim(table_name)) from my_Table;

我尝试将查询存储在一个文件中,但结果是错误的。

${beeline_url} --silent=true --showHeader=false --outputformat=csv2 --verbose=false --showWarnings=false -f get_table_list.hql > /home/table_list.csv

get\ U table\ U list.hql的位置

SELECT (CONCAT('invalidate metadata ', trim(table_name) , '; refresh ', trim(table_name) ,';')) from my_table;

错误:
错误:编译语句时出错:失败:parseexception行1:59无法识别select表达式中靠近“”的输入(状态=42000,代码=40000)

lmyy7pcs

lmyy7pcs1#

分号需要使用 \\ :

SELECT (CONCAT('invalidate metadata ', trim(table_name) , '\\; refresh ', trim(table_name) ,'\\;')) from my_table;

或者用 \073 :

SELECT (CONCAT('invalidate metadata ', trim(table_name) , '\073 refresh ', trim(table_name) ,'\073')) from my_table;

其中一个解决办法应该奏效。

相关问题