hive字符串的分割,截取,正则提取与替换。
一,字符串的分割。
split函数(分割字符串)
语法: split(string str, string pat)
返回值: array
说明: 按照pat字符串分割str,会返回分割后的字符串数组
举例:
1.基本用法
hive> select split('abcdef', 'c') from test;
["ab", "def"]
2.截取字符串中的某个值
hive> select split('abcdef', 'c')[0] from test;
ab
3.特殊字符
如正则表达式中的特殊符号作为分隔符时,需做转义 (前缀加上)
hive> select split('ab_cd_ef', '\_')[0] from test;
ab
hive> select split('ab?cd_ef', '\\?')[0] from test;
ab
如果是在shell中运行,则(前缀加上\)
hive -e "select split('ab?cd_ef', '\\\\?')[0] from test"
注:有些特殊字符转义只需\,而有些需\\,eg.?。可能在语句翻译过程中经历经历几次转义。
二,字符串的截取。
substr函数格式 (俗称:字符截取函数)
格式1: substr(string string, int a, int b);
格式2:substr(string string, int a) ;
解释:
格式1:
1、string 需要截取的字符串
2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3、b 要截取的字符串的长度
格式2:
1、string 需要截取的字符串
2、a 可以理解为从第a个字符开始截取后面所有的字符串。
当有三个参数时。
1、select substr('HelloWo