【发布时间】:2021-05-01 07:32:13
【问题描述】:
我试图在一堆分隔符上拆分 pyspark 中的一列:“_”、“-”、“|”、“\”、“/”等。所以如果数据框如下:
df = spark.createDataFrame([(1, "foo-23.aBD"), (2, "bar12/bg_$"),(3,"iO9_5Gh"),(4,"fg4555(dfd")],["id", "label"] )
我想在“标签”列中包含值“foo”、“bar12”、“i09”和“fg4555”。 我可以为每个分隔符单独执行此操作:
from pyspark.sql.functions import regexp_extract, col
split_col = functions.split(df['label'], '-')
df = df.withColumn('label', split_col.getItem(0))
split_col = functions.split(df['label'], '_')
df = df.withColumn('label', split_col.getItem(0))
split_col = functions.split(df['label'], '/')
df = df.withColumn('label', split_col.getItem(0))
但它看起来不太好。有没有可能以更紧凑的方式做到这一点?提前致谢。
【问题讨论】: