Hac*_*lic 5 scala apache-spark apache-spark-sql
我很困惑 round 和 bround 在 Spark sql 中是如何工作的。
scala> spark.sql("select round(1.5, 0), bround(1.5, 0)").show()
+-------------+--------------+
|round(1.5, 0)|bround(1.5, 0)|
+-------------+--------------+
| 2| 2|
+-------------+--------------+
scala> spark.sql("select round(2.5, 0), bround(2.5, 0)").show()
+-------------+--------------+
|round(2.5, 0)|bround(2.5, 0)|
+-------------+--------------+
| 3| 2|
+-------------+--------------+
scala> spark.sql("select round(3.5, 0), bround(3.5, 0)").show()
+-------------+--------------+
|round(3.5, 0)|bround(3.5, 0)|
+-------------+--------------+
| 4| 4|
+-------------+--------------+
Run Code Online (Sandbox Code Playgroud)
舍入模式向{@literal“最近邻居”}舍入,除非两个邻居等距,在这种情况下向上舍入。
RoundingMode.UP如果丢弃的分数 > 0.5,则行为与 {@code } 相同;否则,其行为与 {@codeRoundingMode.DOWN} 相同。请注意,这是学校通常教授的舍入模式。
例子 :
input=5.5 output=6
input=2.5 output=3
input=1.6 output=2
input=1.1 output=1
input=1.0 output=1
input=-1.0 output=-1
input=-1.1 output=-1
input=-1.6 output=-2
input=-2.5 output=-3
input=-5.5 output=-6
Run Code Online (Sandbox Code Playgroud)
舍入模式向{@literal“最近邻居”}舍入,除非两个邻居等距,在这种情况下,向偶数邻居舍入。
RoundingMode.HALF_UP如果丢弃的分数左边的数字是奇数,则行为与 {@code } 相同;如果它是偶数,则其行为与 {@codeRoundingMode.HALF_DOWN} 相同。请注意,这是一种舍入模式,当在一系列计算中重复应用时,它可以在统计上最小化累积误差。它有时被称为{@literal“银行家四舍五入”},主要在美国使用。这种舍入模式类似于 Java 中用于 {@code float} 和 {@code double} 算术的舍入策略。
例子
input=5.5 output=6
input=2.5 output=2
input=1.6 output=2
input=1.1 output=1
input=1.0 output=1
input=-1.0 output=-1
input=-1.1 output=-1
input=-1.6 output=-2
input=-2.5 output=-2
input=-5.5 output=-6
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5078 次 |
| 最近记录: |