这个问题在这里已经有了答案:
如何在pyspark dataframe show中设置显示精度(1个答案)两个月前关门了。我的表中有一列,我必须使用pyspark将分数保持在3位以内。如果小数点后的位数大于3,则将数字四舍五入到小数点后的3位数。如果小数点后的数字长度小于3,则附加零。下面是一个例子。样本数据:请注意,“col\u a”和“col\u b”都是字符串类型。要求的结果:如何使用pyspark实现它?
wmomyfyw1#
你可以用 format_number 获取3位小数位,但它将给出逗号作为千位分隔符,因此可以使用 regexp_replace .
format_number
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| +-----+------+
1条答案
按热度按时间wmomyfyw1#
你可以用
format_number
获取3位小数位,但它将给出逗号作为千位分隔符,因此可以使用regexp_replace
.