apache-spark - PySpark 截断小数

标签 apache-spark pyspark

我在 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/

相关文章:

apache-spark - 如何从 PySpark MultilayerPerceptronClassifier 获取分类概率?

apache-spark - UserWarning : pyarrow. open_stream 已弃用,请使用 pyarrow.ipc.open_stream 警告

python - 用 Cython 激发 Spark

pyspark - 将 int 列转换为列表类型 pyspark

apache-spark - 在 PySpark 中编写增量表时如何使用 Zorder 聚类?

Scala Spark - 任务不可序列化

Azure Blob 存储 Spark

python - Spark 在 Scala 中打印 DataFrame 的形状

hadoop - 如何使用具有 ((key1,value),(key2,value)) 模式的 Apache Spark 查找键的所有值的总和

java - Spark 使用 sc.textFile ("s3n ://. ..) 从 S3 读取文件