字符串连接运算符(||)在配置单元中抛出错误
Posted
技术标签:
【中文标题】字符串连接运算符(||)在配置单元中抛出错误【英文标题】:string concat operator(||) throwing error in hive 【发布时间】:2021-03-11 00:01:46 【问题描述】:我正在尝试使用 concat 运算符 || 连接表中的字符串列并抛出错误。
Here is the query: select "Bob"||'~'||"glad" from table
its throwing error as : ParseException - cannpt recognize input near '|' '"~"' '|' in expression specification
它适用于 concat 函数,但不适用于 concat 运算符。
select concat("bob","~","glad") from table - its working
我使用的是 hive 2.1 版,谁能告诉我为什么这个运算符不起作用?
谢谢,巴布
【问题讨论】:
【参考方案1】:Hive 不支持 concat 运算符 ||
,它的 oracle 语法。请使用concat
函数连接多个值。您可以使用 concat_ws
与分隔符连接。
连接
select concat ('this','~','is','~','hello','~','world');
Output : this~is~hello~world
select concat_ws ('~','hello','world','is','not','enough');
Output : hello~world~is~not~enough
【讨论】:
您好 Koushik,感谢您的快速回复。我正在使用 ||在 hive 3.x 及其工作中。我正在将我的代码移动到 hive 2.x 版本并面临这个问题。我通过 shell 脚本传递这个 sql 语句来执行,你认为它是 shell 脚本的问题吗? 嗯,很有趣。可能的,你能看看它生成的最终 SQL 是什么吗?然后在 hive 2.x 中触发 SQL。如果 SQL 工作,那么 shell 有问题。如果 SQL 不起作用,那么看看问题出在哪里 - 是 shell 还是 sql。 是的,我尝试过连接运算符 || 的 SQL 看起来有问题。所有的文件都说我们可以使用||用于连接,但在使用时抛出错误。不确定是什么问题。当我将其更改为 concat_ws 时,它工作正常。 您的蜂巢的确切版本是什么?我在 2.1.1 及其工作上进行了测试。 是蜂巢 1.2.1000.2.6.1.40-4以上是关于字符串连接运算符(||)在配置单元中抛出错误的主要内容,如果未能解决你的问题,请参考以下文章