hive:如果行中存在字符串/模式,则替换它,否则什么也不做

yfwxisqw  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(403)

我有一张有身份证,姓名,年龄的table。

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

我需要删除{}周围的'id'字段。我试过这个:
translate(regexp\u extract(id,'([^{])([^}])'),2),'{',')
但对于没有{}的值返回null。

id
3
12

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

id
20
3
12
54
10
qvsjd97n

qvsjd97n1#

请尝试以下select语句:

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

pn9klfpd2#

您可以使用regexp\u replace udf来删除“{}”,如:

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

相关问题