SparkSql内置函数---字符串函数的使用(1)

1. 字符串的拼接: concat

concat(str1, str2, …, strN) - 返回由 str1, str2, …, strN 组成的字符串。
Note: at logic for arrays is available since 2.4.0.

spark-sql> SELECT concat('xinji', 'xiaolin');
xinjixiaolin
spark-sql> SELECT concat(array(1, 2, 3), array(4, 5), array(6));
[1,2,3,4,5,6]

2. 字符串的拼接: concat_ws

concat_ws(sep, [str | array(str)]+) - 返回由 sep 分隔组成的字符串连接。–Since: 1.5.0

Time taken: 0.065 seconds, Fetched 1 row(s)
spark-sql> SELECT concat_ws(', ', 'xiaolin', 'xinji');
xiaolin, xinji
Time taken: 0.07 seconds, Fetched 1 row(s)
spark-sql> SELECT concat_ws('++', 'xiaolin', 'xinji');
xiaolin++xinji

3. 字符串的截取: substr /substring

substr(str,pos[,len])-返回从pos开始且长度为len的str的子字符串,或返回从pos开始且长度为len的字节数组片段–Since: 1.5.0

> SELECT substr('Spark SQL', 5);
 k SQL
> SELECT substr('Spark SQL', -3);
 SQL
> SELECT substr('Spark SQL', 5, 1);
 k
 > SELECT substring('Spark SQL', 5);
 k SQL
> SELECT substring('Spark SQL', -3);
 SQL
> SELECT substring('Spark SQL', 5, 1);
 k

4. 截取字符串,从分隔符开始: substring_index

substring_index(str,delim,count)-在分隔符delim出现计数之前,从str返回子字符串。如果count为正,则返回最后一个分隔符左侧的所有内容(从左侧开始计数)。如果count为负,则返回最后一个分隔符右侧的所有内容(从右侧开始计数)。函数substring_index在搜索delim时执行区分大小写的匹配。–Since: 1.5.0

spark-sql> SELECT substring_index('www.apache.org', '.', 2);
www.apache
Time taken: 0.04 seconds, Fetched 1 row(s)
spark-sql> SELECT substring_index('www.apache.org', '.', 1);
www
Time taken: 0.042 seconds, Fetched 1 row(s)
spark-sql> SELECT substring_index('www.apache.org', '.', 3);
www.apache.org
Time taken: 0.037 seconds, Fetched 1 row(s)
spark-sql> SELECT substring_index('www.apache.org', '.', -1);
org

5. 返回截取字符串的位置: instr / locate

instr(str,substr)-返回str中第一个substr的(基于1的)索引 --Since: 1.5.0

spark-sql> SELECT instr('SparkSQL', 'SQL');
6
> SELECT locate('bar', 'foobarbar');
 4
> SELECT locate('bar', 'foobarbar', 5);
 7
> SELECT POSITION('bar' IN 'foobarbar');
 4

6. 字符串的复制: repeat

repeat(str,n)-返回重复给定字符串值n次的字符串。–Since: 1.5.0

spark-sql> SELECT repeat('123', 2);
123123
Time taken: 0.052 seconds, Fetched 1 row(s)
spark-sql> SELECT repeat('123', 1);
123
Time taken: 0.034 seconds, Fetched 1 row(s)
spark-sql> SELECT repeat('123', 3);
123123123

7. 字符串的长度: length / CHAR_LENGTH/CHARACTER_LENGTH

length(expr)-返回字符串数据的字符长度或二进制数据的字节数。字符串数据的长度包括尾随空格。二进制数据的长度包括二进制零。–Since: 1.5.0

> SELECT length('Spark SQL ');
 10
> SELECT CHAR_LENGTH('Spark SQL ');
 10
> SELECT CHARACTER_LENGTH('Spark SQL ');
 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值