HIVE:如果存在则替换行中的字符串/模式,否则啥也不做

Posted

技术标签:

【中文标题】HIVE:如果存在则替换行中的字符串/模式,否则啥也不做【英文标题】:HIVE : Replace string/ pattern in row if it exists else do nothingHIVE:如果存在则替换行中的字符串/模式,否则什么也不做 【发布时间】:2016-02-18 23:24:38 【问题描述】:

我有一张表 A,里面有 id、name、age。

> id       name    age
> 20    Joan     12 
> 3       James    12 
> 12       Jill   12
> 54     Adam    12 
> 10     Bill    12

我需要删除围绕“id”字段的 。 我试过这个:

翻译(regexp_extract(id, '([^])([^])', 2), '', '')

有效,但对于没有 的值返回 null。

id
3
12

有没有办法我可以得到输出???

id
20
3
12
54
10

【问题讨论】:

【参考方案1】:

您可以使用 regexp_replace udf 来删除“”,例如:

select regexp_replace(id, '\\|\\','');

【讨论】:

酷..这工作..谢谢!【参考方案2】:

请尝试以下选择语句:

select regexp_replace(col1,'[]','') as replaced,col2,col3 from table_name;

【讨论】:

以上是关于HIVE:如果存在则替换行中的字符串/模式,否则啥也不做的主要内容,如果未能解决你的问题,请参考以下文章

Mongo:如果文档不存在则创建,否则啥也不做

在 2 个分隔线之间操作多行(如果不存在则附加,否则替换)

shell的替换运算符和模式匹配运算符

Hive 从 json 行中选择一个特定的字符串

Shell参数展开

JavaScript 颜色加深或减淡