如何使用pyspark将分数设置为3位数

gzszwxb4  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(299)

这个问题在这里已经有了答案

如何在pyspark dataframe show中设置显示精度(1个答案)
两个月前关门了。
我的表中有一列,我必须使用pyspark将分数保持在3位以内。如果小数点后的位数大于3,则将数字四舍五入到小数点后的3位数。如果小数点后的数字长度小于3,则附加零。下面是一个例子。
样本数据:

请注意,“col\u a”和“col\u b”都是字符串类型。
要求的结果:

如何使用pyspark实现它?

wmomyfyw

wmomyfyw1#

你可以用 format_number 获取3位小数位,但它将给出逗号作为千位分隔符,因此可以使用 regexp_replace .

import pyspark.sql.functions as F

df2 = df.withColumn('col_b', F.regexp_replace(F.format_number('col_b', 3), ',', ''))

df2.show()
+-----+------+
|col_a| col_b|
+-----+------+
|    A|10.000|
|    B|11.100|
|    C|12.340|
|    D|23.456|
|    E|34.568|
+-----+------+

相关问题