我在 pySpark 工作,我有一个变量 LATITUDE,它有很多小数位。我需要从中创建两个新变量,一个是四舍五入的,一个是截断的。均为小数点后三位。
截断值的最简单方法是什么?
为了四舍五入,我做了:
raw_data = raw_data.withColumn("LATITUDE_ROUND", round(raw_data.LATITUDE, 3))
这似乎有效,但如果有更好的方法,请告诉我。
最佳答案
尝试:
>>> from pyspark.sql.functions import pow, lit
>>> from pyspark.sql.types import LongType
>>>
>>> num_places = 3
>>> m = pow(lit(10), num_places).cast(LongType())
>>> df = sc.parallelize([(0.6643, ), (0.6446, )]).toDF(["x"])
>>> df.withColumn("trunc", (col("x") * m).cast(LongType()) / m).
关于apache-spark - PySpark 截断小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38751457/