Hive通过正则表达式替换字段中的IP和端口号

场景:

        表中有个字段存的是1个或者多个URL地址,现在需要把字段中所有URL中的IP和端口号替换成新的IP和端口号。

原始数据如下图:

Hive通过正则表达式替换字段中的IP和端口号_第1张图片

 需要将  ftps://192.168.85.222:990  替换成  http://233.146.24.111:9001

运行SQL:

select
old_fj,
regexp_replace(old_fj,'ftps://(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\:([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])','http://233.146.24.111:9001/buckets/jsscssmx')  as new_fj
FROM
表名

运行结果:

Hive通过正则表达式替换字段中的IP和端口号_第2张图片

 总结:

最主要的是通过正则表达式把数据中的IP加端口识别出来

正则表达式如下:

(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d?\\d)\:([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])

你可能感兴趣的:(大数据,hive,hadoop,正则表达式)