首页 > 解决方案 > 在点分隔符上拆分列

问题描述

如何拆分 PySpark 数据框列,分隔符为点 ( .)。split对我来说,当我在点上使用 used时它似乎不起作用。

例如,带有 value 的列abcd.efgh,应该分为带有 valueabcd和的两列efgh

标签: dataframeapache-sparkpysparksplitseparator

解决方案


这是df基于您的示例。

from pyspark.sql import SparkSession, functions as F
spark = SparkSession.builder.getOrCreate()

df = spark.createDataFrame([('abcd.efgh',)], ['c1'])
df.show()
#+---------+
#|       c1|
#+---------+
#|abcd.efgh|
#+---------+

对于拆分一个可以split这样使用:

splitCol = F.split('c1', '[.]', 2)
df = df.select(
    splitCol[0].alias('c1_0'),
    splitCol[1].alias('c1_1'),
)
df.show()
#+----+----+
#|c1_0|c1_1|
#+----+----+
#|abcd|efgh|
#+----+----+

推荐阅读