首页 > 解决方案 > 如何舍入 Spark sql 中的值

问题描述

我正在使用以下查询查询 postgres sql。我 需要四舍五入min(months_between(current_date,somedate))

例如:13.83应该是13而不是14,甚至13.9应该13也是。是否有任何函数可以将这个值四舍五入sparksql?任何帮助将不胜感激。

标签: javafloating-pointapache-spark-sqldouble

解决方案


您可以使用该floor()功能。它四舍五入了它的论点。

请注意,floor(x)给出最大整数≤x。所以floor(5.8)返回 5,但floor(-5.8)返回 -6。如果您的值可能是负数并且您想将它们四舍五入为 0,则必须测试它们的符号并使用floor()ceil()(四舍五入到上限值)。

int()另请注意,无论其符号如何,将浮点数转换为 int都会将其舍入为零。不确定 spark-sql 中的实际行为,但它也可以解决您的问题。


推荐阅读