sparkDataFrame正则表达式
spark DataFrame正则表达式
注意 在spark中使⽤正则的时候,需要时时刻刻加上转义⾃符
'\'需要使⽤'\\',例如'\w'需要使⽤'\\w'
正则表达式,使⽤的库在sql.funtions 下,如导⼊split和regexp_extract
import org.apache.spark.sql.functions.{regexp_extract,split}
1.1 split
split 切分字符串
可通过下⾯的,形如udf函数实现
val splitFunc=udf((arg:String)=>{arg.split(',|[| ')[0]})
也可使⽤
var data1 = data.withColumn(colName,split(col(colName), pattern=',|[| ')(0))
1.2 regexp_extract
regexp_extract(string subject, string pattern, int index) 将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符例⼦:匹配⾄少有两个⾮数字的gid
val data =fake_data.select(regexp_extract(fake_data("gid"),"^\\d{2}",0).alias("gid"))
1.3 like & rlike的区别
1.3.1 like:
%:匹配零个及多个任意字符
regexp like_:与任意单字符匹配
[]:匹配⼀个范围
[^]:排除⼀个范围
ESCAPE 关键字定义转义符 WHERE ColumnA LIKE ‘%5/%%’ ESCAPE ‘/’
like不是正则,⽽是通配符
1.3.2 rlike
rlike是正则,正则的写法与java⼀样。’‘需要使⽤’\’,例如’\w’需要使⽤’\w’A rlike ‘\d+’ 匹配⼀个或多个数字, not A rlike ‘\d+’ 匹配⾮数字
** 参考链接**

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。