Python 根据pyspark或koalas中的正则表达式匹配拆分字符串列 问题是:
我试图处理一个数据性质混合的字符串列。除此之外,我在熊猫身上尝试了一些东西,但是使用了大量的内存,这就是我希望切换到考拉或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. AKKPython 根据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.
在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更熟悉它,你在熊猫身上尝试了什么?什么代码导致了你的内存问题?哦,对不起,我尝试了和我在考拉做的相同的事情