如何在pyspark数据框架中分割数字并添加连字符?



我想拆分一列中的所有数字。

编号:123456789012

123-4567890-12

所以我想在位置4和10添加-

我不想创建新列

您可以使用regexp_replace:

from pyspark.sql import functions as F
df1 = df.withColumn(
"number",
F.regexp_replace(F.col("number"), "(\d{3})(\d{7})(\d+)", "$1-$2-$3")
)
df1.show()
#+--------------+
#|        number|
#+--------------+
#|123-4567890-12|
#+--------------+

您可以使用substring分割字符串,并使用concat_ws:

将它们与分隔符'-'组合在一起。
import pyspark.sql.functions as F
df2 = df.withColumn(
'number', 
F.expr("""
concat_ws(
'-',
substring(number, 1, 3),
substring(number, 4, 7),
substring(number, 11, length(number))
)
""")
)
df2.show()
+--------------+
|        number|
+--------------+
|123-4567890-12|
+--------------+

相关内容

  • 没有找到相关文章