如何在 pyspark 中使用多个正则表达式组?
How to use multiple regex groups in pyspark?
我想在两个正则表达式组之间插入一个符号。
我的代码如下:
df = spark.createDataFrame([('ab',)], ['str'])
df = df.select(
concat(
regexp_extract('str', r'(\w)(\w)', 1), # extract the first group
lit(' '), # add symbol
regexp_extract('str', r'(\w)(\w)', 2) # add the second group
).alias('d')).collect()
print(df)
有没有更好的方法?
您可以将 regexp_replace
与捕获组一起使用:
import pyspark.sql.functions as F
df.select(F.regexp_replace('str', r'(\w)(\w)', ' ').alias('d')).show()
+---+
| d|
+---+
|a b|
+---+
我想在两个正则表达式组之间插入一个符号。
我的代码如下:
df = spark.createDataFrame([('ab',)], ['str'])
df = df.select(
concat(
regexp_extract('str', r'(\w)(\w)', 1), # extract the first group
lit(' '), # add symbol
regexp_extract('str', r'(\w)(\w)', 2) # add the second group
).alias('d')).collect()
print(df)
有没有更好的方法?
您可以将 regexp_replace
与捕获组一起使用:
import pyspark.sql.functions as F
df.select(F.regexp_replace('str', r'(\w)(\w)', ' ').alias('d')).show()
+---+
| d|
+---+
|a b|
+---+