Hive Concat功能在Beeline中不起作用

时间:2019-02-05 15:11:36

标签: hive concat string-concatenation beeline

${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

我试图运行此查询最终导致错误。相同的查询在蜂巢,色调和甚至直线上运行都很好。

使用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_table_list.hql具有

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

错误:

  

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

1 个答案:

答案 0 :(得分:0)

分号需要使用\\进行屏蔽:

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;

这些变通办法之一应该起作用。