首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >配置单元-在regexp_replace中替换为$时出错

配置单元-在regexp_replace中替换为$时出错
EN

Stack Overflow用户
提问于 2018-06-07 08:06:31
回答 1查看 733关注 0票数 0

运行下面的代码行:regexp_replace('Hello from zzz','zzz','$15000')会给出一个错误消息:

错误的参数''$15000'':org.apache.hadoop.hive.ql.metadata.HiveException:无法在类org.apache.hadoop.hive.ql.udf.UDFRegExpReplace的对象org.apache.hadoop.hive.ql.udf.UDFRegExpReplace@6e85e0dd上使用参数{Hello org.apache.hadoop.io.Text,org.apache.hadoop.io.Text,大小为3的zzz:org.apache.hadoop.io.Text、$15000:org.apache.hadoop.io.Text}

$是否不受支持?对此有什么替代方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 08:42:35

尝试使用两个反斜杠(\)转义$(是一个正则表达式特殊字符)

代码语言:javascript
复制
 hive> select regexp_replace('Hello from zzz','zzz','\\$15000');
    +--------------------+--+
    |        _c0         |
    +--------------------+--+
    | Hello from $15000  |
    +--------------------+--+

在Hive-1.3.0+相关的寻址替换功能中引入了jira替换功能

如果替换字符串来自中的字段,则使用concat函数将字段值与反斜杠(\)连接在一起,另一个参数为字段名

代码语言:javascript
复制
   hive> select regexp_replace('Hello from zzz','zzz',concat('\\',"$15000"));
    +--------------------+--+
    |        _c0         |
    +--------------------+--+
    | Hello from $15000  |
    +--------------------+--+

(或)

代码语言:javascript
复制
hive> select regexp_replace('Hello from zzz','zzz',concat('\\',field/column-name))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50731281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档