Bry*_*ind -1 python regex apache-spark-sql pyspark
我需要从 pyspark 数据框中的字符串列中删除正则表达式
df = spark.createDataFrame(
[
("Dog 10H03", "10H03"),
("Cat 09H24 eats rat", "09H24"),
("Mouse 09H45 runs away", "09H45"),
("Mouse 09H45 enters room", "09H45"),
],
["Animal", "Time"],
)
Run Code Online (Sandbox Code Playgroud)
时间戳(例如10H03)是必须删除的正则表达式。
+--------------------+------------------+-----+
| Animal| Animal_strip_time| Time|
+--------------------+------------------+-----+
| Dog 10H03| Dog |10H03|
| Cat 09H24 eats rat| Cat eats rat|09H24|
|Mouse 09H45 runs ...| Mouse runs away|09H45|
|Mouse 09H45 enter...|Mouse enters room|09H45|
+--------------------+------------------+-----+
Run Code Online (Sandbox Code Playgroud)
该列中的时间戳Time可能与该列中的时间戳不同Animal。因此,它不能用于匹配字符串。
正则表达式应遵循 XXHXX 模式,其中 X 是 0-9 之间的数字
这应该可以完成工作:
from pyspark.sql import functions as F
df = df.withColumn("Animal_strip_time", F.regexp_replace("Animal", r"\d\dH\d\d", ""))
df.show()
+--------------------+-----+------------------+
| Animal| Time| Animal_strip_time|
+--------------------+-----+------------------+
| Dog 10H03|10H03| Dog |
| Cat 09H24 eats rat|09H24| Cat eats rat|
|Mouse 09H45 runs ...|09H45| Mouse runs away|
|Mouse 09H45 enter...|09H45|Mouse enters room|
+--------------------+-----+------------------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11651 次 |
| 最近记录: |