我正在尝试在我的pyspark数据框中的列中添加前导零
输入:-
ID 123
预期输出:
000000000123
答案 0 :(得分:0)
有lpad功能。 用垫将字符串列左移至宽度len。
from pyspark.sql.functions import lpad
df.select(lpad(df.ID, 12, '0').alias('s')).collect()
答案 1 :(得分:0)
使用format_string
函数在开头填充零。
from pyspark.sql.functions import col, format_string
df = spark.createDataFrame([('123',),('1234',)],['number',])
df.show()
+------+
|number|
+------+
| 123|
| 1234|
+------+
如果数字为string
,请确保将其强制转换为integer
。
df = df.withColumn('number_padded', format_string("%012d", col('number').cast('int')))
df.show()
+------+-------------+
|number|number_padded|
+------+-------------+
| 123| 000000000123|
| 1234| 000000001234|
+------+-------------+