本文介绍 SparkSQL 中的字符串函数语法。
推荐使用FineDataLink 新增计算列中的LEN-返回字符长度。
CHAR_LENGTH(s):返回字符串 s 的字符数
CHARACTER_LENGTH(s):返回字符串 s 的字符数
LENGTH(S):返回字符串 s 的字符数
例如获取二级渠道名称的字符数,使用语句:select `二级渠道名` ,CHAR_LENGTH(`二级渠道名` ) FROM DB表输入,如下图所示:
推荐使用FineDataLink 新增计算列中的 CONCATENATE-字符拼接
也可以使用 SparkSQL 中的语法:
CONCAT(s1,s2...sn):字符串 s1,s2... 等多个字符串合并为一个字符串。
示例:SELECT CONCAT('Fine','Data','Link')。
REVERSE(S):返回字符串 S 的反转结果。
例如将二级渠道名字段的字符串进行反转,使用语句:select `二级渠道名` ,reverse(`二级渠道名` ) FROM DB表输入,如下图所示:
推荐使用FineDataLink 新增计算列中的 RIGHT-截取后几个字符串、MID-返回指定位置字符串、LEFT-截取前几个字符串
也可以使用 SparkSQL 语法:
LEFT(expr, len)
示例:SELECT LEFT('FineDataLink',4)
例如截取「二级渠道名」左侧两个字符,使用语句:select `二级渠道名` ,LEFT(`二级渠道名`,2) FROM DB表输入,如下图所示:
RIGHT(expr, len)
示例:SELECT RIGHT('FineDataLink',8)
例如截取「二级渠道名」右侧两个字符,使用语句:select `二级渠道名` ,RIGHT(`二级渠道名`,2) FROM DB表输入,如下图所示:
SUBSTR(expr, pos, len)
示例:SELECT SUBSTR('FineDataLink',5,4)
例如截取「二级渠道名」D第三个字符开始的两个字符,使用语句:select `二级渠道名` ,SUBSTR(`二级渠道名`,3,2) FROM DB表输入,如下图所示:
推荐使用FineDataLink 新增计算列中的 UPPER-转为大写字符、LOWER-大写转小写
UPPER(expr)
示例:SELECT UPPER('FineDataLink')
LOWER(expr)
示例:SELECT LOWER('FineDataLink')
推荐使用FineDataLink 新增计算列中的:REPEAT-重复显示文本
REPEAT(S,N):返回重复字符串 S 的次数 N。
示例:select repeat('xiao 小',2)
LPAD(S1, LEN, S2):左补足,将 S1 用 S2 进行左补足到 LEN 位。
示例:
select `一级渠道名` ,`二级渠道名` ,lpad(`二级渠道名`,10,`一级渠道名` ) FROM
DB表输入
将二级渠道名用一级渠道名进行左补足到 10 位,返回的结果集如下图所示:
RPAD(S1, LEN, S2):右补足,将 S1 用 S2 进行右补足到 LEN 位。
select `一级渠道名` ,`二级渠道名` ,rpad(`二级渠道名`,10,`一级渠道名` ) FROM
将二级渠道名用一级渠道名进行右补足到 10 位,返回的结果集如下图所示:
示例:select find_in_set('a 小 b','cd,ef,a 小 b,de') as ttt from DB表输入
推荐使用FineDataLink 新增计算列中的:FIND-返回字符所在位置
POSITION(S1 IN S):返回字符串 S1 在字符串 S 中开始出现的位置,没有则返回 0。
示例:select POSITION('b' IN 'abcb') as ttt from DB表输入
推荐使用FineDataLink 新增计算列中的 :FIND-返回字符所在位置
REGEXP_REPLACE(S1, S2, S3):将字符串 S1 中的符合 java 正则表达式 S2 的部分替换为 S3。
示例:select regexp_replace("xiaoming", "ia|min", "tt") as ttt from DB表输入
即将 xiaoming 字符中 ia 和 min 替换为 tt ,结果如下图所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy