栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PySpark-字符串匹配以创建新列

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PySpark-字符串匹配以创建新列

简而言之:

regexp_extract(col('Notes'), '(.)(by)(s+)(w+)', 4))

该表达式从其后面 的* 任意位置 提取 _ 雇员姓名_ 然后在文本column()中添加 空格

*

col('Notes')


详细地:

创建一个样本数据框

data = [('2345', 'Checked by John'),('2398', 'Verified by Stacy'),('2328', 'Verified by Srinivas than some random text'),        ('3983', 'Double Checked on 2/23/17 by Marsha')]df = sc.parallelize(data).toDF(['ID', 'Notes'])df.show()+----+--------------------+|  ID|    Notes|+----+--------------------+|2345|     Checked by John||2398|   Verified by Stacy||2328|Verified by Srini...||3983|Double Checked on...|+----+--------------------+

做所需的进口

from pyspark.sql.functions import regexp_extract, col

df
提取
Employee
从列名使用
regexp_extract(column_name, regex, group_number)

此处 regex

'(.)(by)(s+)(w+)'
)表示

  • (。) -任何字符(换行符除外)
  • (by) -文字中的单词 by
  • ( s +) -一个或多个空格
  • ( w +) -长度为一的字母数字或下划线字符

并且 group_number 为4,因为group

(w+)
在表达式中位于第4位

result = df.withColumn('Employee', regexp_extract(col('Notes'), '(.)(by)(s+)(w+)', 4))result.show()+----+--------------------+--------+|  ID|    Notes|Employee|+----+--------------------+--------+|2345|     Checked by John|    John||2398|   Verified by Stacy|   Stacy||2328|Verified by Srini...|Srinivas||3983|Double Checked on...|  Marsha|+----+--------------------+--------+

Databricks笔记本

注意:

regexp_extract(col('Notes'), '.bys+(w+)',1))
似乎更干净的版本,并在这里检查正则表达式



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/625078.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号