将零添加到PySpark中的值 [英] Prepend zeros to a value in PySpark
本文介绍了将零添加到PySpark中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个数据框df
:
val1 val2 val3
271 70 151
213 1 379
213 3 90
213 6 288
20 55 165
我想将此数据帧转换为:
I want to transform this data frame as:
val1 val2 val3
271 70 0151
213 01 0379
213 03 0090
213 06 0288
020 55 0165
如何在pyspark中做到这一点?并且可以使用Spark SQL做到这一点吗?欢迎任何帮助.
How can I do that in pyspark? And is it possible to do it with Spark SQL? Any help is welcome.
推荐答案
对于数字类型,可以使用format_string
:
For numeric types you can use format_string
:
from pyspark.sql.functions import format_string
(sc.parallelize([(271, ), (20, ), (3, )])
.toDF(["val"])
.select(format_string("%03d", "val"))
.show())
+------------------------+
|format_string(%03d, val)|
+------------------------+
| 271|
| 020|
| 003|
+------------------------+
对于字符串lpad
:
from pyspark.sql.functions import lpad
(sc.parallelize([("271", ), ("20", ), ("3", )])
.toDF(["val"])
.select(lpad("val", 3, "0"))
.show())
+---------------+
|lpad(val, 3, 0)|
+---------------+
| 271|
| 020|
| 003|
+---------------+
这篇关于将零添加到PySpark中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文