Python 根据pyspark或koalas中的正则表达式匹配拆分字符串列 问题是:

Python 根据pyspark或koalas中的正则表达式匹配拆分字符串列 问题是:,python,regex,dataframe,pyspark,Python,Regex,Dataframe,Pyspark,我试图处理一个数据性质混合的字符串列。除此之外,我在熊猫身上尝试了一些东西,但是使用了大量的内存,这就是我希望切换到考拉或Spark的地方 数据: 假设这是我的数据帧: 期间 等级 00:00:09 AAB 00:00:08 AAB 00:37:55 AAB 00:10:20 AAB 00:18:29 AAB 00:18:20 AAB 00:10:41 AAB 00:18:20 AAB 00:16:29 AAB 00:08:09 AAB 00:18:19 AAB 00:01:39 AAB 1.

我试图处理一个数据性质混合的字符串列。除此之外,我在熊猫身上尝试了一些东西,但是使用了大量的内存,这就是我希望切换到考拉或Spark的地方

数据: 假设这是我的数据帧:

期间 等级 00:00:09 AAB 00:00:08 AAB 00:37:55 AAB 00:10:20 AAB 00:18:29 AAB 00:18:20 AAB 00:10:41 AAB 00:18:20 AAB 00:16:29 AAB 00:08:09 AAB 00:18:19 AAB 00:01:39 AAB 1. RRE 1. RRE 234 生病的 452 INL 11220 INL 100 AAB 122 AAB 00:18:29 BRQ 1. BRQ 2. AKK 8. AKK
在pyspark中,您可以将
rlike
一起使用
when
表达式:

from pyspark.sql import functions as F

df1 = df.withColumn(
    "data",
    F.when(F.col("duration").rlike("^[0-9]*$"), F.col("duration")).otherwise(0)
).withColumn(
    "call_duration",
    F.when(F.col("duration").rlike(r"^*\d{2}:\d{2}:\d{2}$"), F.col("duration"))
).select(
    "data", "call_duration", "Class"
)

df1.show(20)

#+-----+-------------+-----+
#| data|call_duration|Class|
#+-----+-------------+-----+
#|    0|     00:00:09|  AAB|
#|    0|     00:00:08|  AAB|
#|    0|     00:37:55|  AAB|
#|    0|     00:10:20|  AAB|
#|    0|     00:18:29|  AAB|
#|    0|     00:18:20|  AAB|
#|    0|     00:10:41|  AAB|
#|    0|     00:18:20|  AAB|
#|    0|     00:16:29|  AAB|
#|    0|     00:08:09|  AAB|
#|    0|     00:18:19|  AAB|
#|    0|     00:01:39|  AAB|
#|    1|         null|  RRE|
#|    1|         null|  RRE|
#|  234|         null|  ILL|
#|  452|         null|  INL|
#|11220|         null|  INL|
#|  100|         null|  AAB|
#|  122|         null|  AAB|
#|    0|     00:18:29|  BRQ|
#+-----+-------------+-----+

你在熊猫身上尝试了什么?@JackTaylor因为我比PySpark或KoalasNo更熟悉它,你在熊猫身上尝试了什么?什么代码导致了你的内存问题?哦,对不起,我尝试了和我在考拉做的相同的事情