#regex #apache-spark #pyspark #apache-spark-sql #regex-group
Вопрос:
Я хочу вставить символ между двумя группами регулярных выражений.
Мой код выглядит следующим образом:
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)
Есть ли какой-нибудь лучший способ?
Ответ №1:
Вы можете использовать regexp_replace
с группами захвата:
import pyspark.sql.functions as F
df.select(F.regexp_replace('str', r'(w)(w)', '$1 $2').alias('d')).show()
---
| d|
---
|a b|
---
Комментарии:
1. Спасибо. Я попробовал
regexp_replace('str', r'(w)(w)', '1 2')
использовать стандартныеre
маркеры групп, но это не сработало. Где-нибудь задокументировано использование$
in pyspark ?