substring_index(str,delim,count)
其中:str:要处理的字符串;delim:分隔符;count:计数
①count为正数的情况下,从左往右数,第count个分隔符的左边的全部内容
例子:str=www.baidu.com
substring_index(str,’.’,1) 结果是:www
substring_index(str,’.’,2) 结果是:www.baidu
②count为负数的情况下,从右往左数,第count个分隔符的右边的全部内容
例子:
substring_index(str,’.’,-1) 结果是:com
③如果想要中间的,则嵌套操作
例子:
substring_index(substring_index(str,’.’,2),’.’,-1) 结果是:baidu
参考:https://blog.csdn.net/bowenlaw/article/details/102484978
substr(string A, int start,int len),substring(string A, int start,int len) 两者用法一致
其中:A:处理的字符串;start:截取的开始位置(坐标从1开始)
len:截取的长度,若函数为两个参数,则默认截取到末尾。
例子
spark.sql("select substring('abcdeffff',3) from data1").show()
+-----------------------------------+
|substring(abcdeffff, 3, 2147483647)|
+-----------------------------------+
| cdeffff|
| cdeffff|
+-----------------------------------+
spark.sql("select substring('abcdeffff',-1) from data1").show()
+------------------------------------+
|substring(abcdeffff, -1, 2147483647)|
+------------------------------------+
| f|
| f|
+------------------------------------+
spark.sql("select substring('abcdeffff',3,5) from data1").show()
+--------------------------+
|substring(abcdeffff, 3, 5)|
+--------------------------+
| cdeff|
| cdeff|
+--------------------------+
2. 字符串查找
2.1 字符串查找函数之instr函数
instr(String str,string substr)
返回值:int(返回字符串substr在str中首次出现的位置,坐标从1开始)
例子:
instr(‘sbacba’,‘ba’) 结果是:2
locate(string substr, string str,[int pos])
返回值:int(返回字符串 substr 在 str 中从 pos 开始查找,首次出现的位置,坐标从1开始)
例子:
locate(‘a’,‘abcda’,1) 结果是:1
locate(‘a’,‘abcda’,2) 结果是:5



