【发布时间】:2018-11-19 23:37:38
【问题描述】:
我的数据框看起来像这样。
我有一个 pyspark 数据框,我想使用正则表达式将 A 列拆分为 A1 和 A2,但这不起作用。
A | A1 | A2
20-13-2012-monday 20-13-2012 monday
20-14-2012-tues 20-14-2012 tues
20-13-2012-wed 20-13-2012 wed
我的代码是这样的
import re
from pyspark.sql.functions import regexp_extract
reg = r'^([\d]+-[\d]+-[\d]+)'
df=df.withColumn("A1",re.match(reg, df.select(['A'])).group())
df.show()
【问题讨论】:
-
您正在将 python 库中的
re与 spark 混合。pyspark.sql.functions.split可以在正则表达式上拆分:df=df.withColumn("A1",split(col("A"), reg)) -
我得到像 -- [ , monday] 这样的输出。我只想要星期一。没有逗号没有[]
-
它说语法无效
-
这是一个有用的帖子:Reference: what does this regex mean?。
标签: pyspark