PySpark 2 - 正则表达式替换 <BR> 之前的所有内容
PySpark 2 - Regex replace everything before <BR>
我有一个类似
的记录
"_row"\n"<BR>Datetime:2018.06.30^
Name:ABC^
Se:4^
Machine:XXXXXXX^
InnerTrace:^
AdditionalInfo:^
<ER>
我想删除每条记录中
之前的所有内容。有没有一种简单的方法可以使用 spark dataframe
import pyspark.sql.functions as f
data.select(f.regexp_replace(pattern='\n<BR>',replacement="<BR>",str="row")
像这样的?模式应该是什么?
要匹配直到字符串开头的所有字符,您可以使用 .*<BR>
。但是,这不匹配换行符 (\n
)。我找到了 here 的解决方案,所以我们的模式可以是 (?s).*<BR>
。下面给出了一个工作示例,希望对您有所帮助!
import pyspark.sql.functions as F
df = spark.createDataFrame([('''"_row"\n"<BR>Datetime:2018.06.30^
Name:ABC^
Se:4^
Machine:XXXXXXX^
InnerTrace:^
AdditionalInfo:^
<ER>''',), ],schema=['text'])
df = df.withColumn('text_cleaned',
F.regexp_replace(F.col('text'),pattern='(?s).*<BR>',replacement="<BR>"))
让我们验证一下是否有效;
print(df.select('text').collect()[0][0])
产出
"_row"
"<BR>Datetime:2018.06.30^
Name:ABC^
Se:4^
Machine:XXXXXXX^
InnerTrace:^
AdditionalInfo:^
<ER>
和
print(df.select('text_cleaned').collect()[0][0])
输出:
<BR>Datetime:2018.06.30^
Name:ABC^
Se:4^
Machine:XXXXXXX^
InnerTrace:^
AdditionalInfo:^
<ER>
我有一个类似
的记录"_row"\n"<BR>Datetime:2018.06.30^
Name:ABC^
Se:4^
Machine:XXXXXXX^
InnerTrace:^
AdditionalInfo:^
<ER>
我想删除每条记录中
之前的所有内容。有没有一种简单的方法可以使用 spark dataframe
import pyspark.sql.functions as f
data.select(f.regexp_replace(pattern='\n<BR>',replacement="<BR>",str="row")
像这样的?模式应该是什么?
要匹配直到字符串开头的所有字符,您可以使用 .*<BR>
。但是,这不匹配换行符 (\n
)。我找到了 here 的解决方案,所以我们的模式可以是 (?s).*<BR>
。下面给出了一个工作示例,希望对您有所帮助!
import pyspark.sql.functions as F
df = spark.createDataFrame([('''"_row"\n"<BR>Datetime:2018.06.30^
Name:ABC^
Se:4^
Machine:XXXXXXX^
InnerTrace:^
AdditionalInfo:^
<ER>''',), ],schema=['text'])
df = df.withColumn('text_cleaned',
F.regexp_replace(F.col('text'),pattern='(?s).*<BR>',replacement="<BR>"))
让我们验证一下是否有效;
print(df.select('text').collect()[0][0])
产出
"_row"
"<BR>Datetime:2018.06.30^
Name:ABC^
Se:4^
Machine:XXXXXXX^
InnerTrace:^
AdditionalInfo:^
<ER>
和
print(df.select('text_cleaned').collect()[0][0])
输出:
<BR>Datetime:2018.06.30^
Name:ABC^
Se:4^
Machine:XXXXXXX^
InnerTrace:^
AdditionalInfo:^
<ER>