Dataframe 如何在pyspark数据帧中拆分数字并添加连字符?
我想把所有的数字分成一列 编号:Dataframe 如何在pyspark数据帧中拆分数字并添加连字符?,dataframe,apache-spark,pyspark,split,apache-spark-sql,Dataframe,Apache Spark,Pyspark,Split,Apache Spark Sql,我想把所有的数字分成一列 编号:123456789012 将成为123-4567890-12 所以我想在位置4和10添加- 我不想创建新列您可以使用子字符串对字符串进行切片,并使用concat\ws将它们与分隔符'-'组合起来: import pyspark.sql.functions as F df2 = df.withColumn( 'number', F.expr(""" concat_ws( '-'
123456789012
将成为123-4567890-12
所以我想在位置4和10添加-
我不想创建新列您可以使用
子字符串
对字符串进行切片,并使用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|
+--------------+
您可以使用:
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|
#+--------------+