HiveSQL/SparkSQL的 round() 、floor()和 ceil()的 用法

HiveSQL/SparkSQL的 round() 、floor()和 ceil()的 用法

1、概述

round  四舍五入
floor 取左值
ceil 取右值

2、在SparkSQL中的示例 

spark版本:

spark-2.3.4
Hive client (version 1.2.2)

spark-sql> select round(1.2356);
1
Time taken: 0.788 seconds, Fetched 1 row(s)
spark-sql> select round(1.6356);
2
Time taken: 0.046 seconds, Fetched 1 row(s)

spark-sql> select floor(1.2356);
1
Time taken: 0.082 seconds, Fetched 1 row(s)
spark-sql> select floor(1.6356);
1
Time taken: 0.038 seconds, Fetched 1 row(s)

spark-sql> select ceil(1.2356);
2
Time taken: 0.039 seconds, Fetched 1 row(s)
spark-sql> select ceil(1.6356);
2
Time taken: 0.035 seconds, Fetched 1 row(s)

3、在HiveSQL中的示例

hive版本:

Apache Hive (version 1.2.2-mdh2.0.2-SNAPSHOT)
Beeline version 1.2.2-mdh2.0.2-SNAPSHOT by Apache Hive

0: jdbc:hive2://test-hadoop.hive.m> select round(1.2356);
+------+--+
| _c0  |
+------+--+
| 1.0  |
+------+--+
1 row selected (2.521 seconds)
0: jdbc:hive2://test-hadoop.hive.m> select round(1.6356);
+------+--+
| _c0  |
+------+--+
| 2.0  |
+------+--+
1 row selected (0.093 seconds)


0: jdbc:hive2://test-hadoop.hive.m> select floor(1.2356);
+------+--+
| _c0  |
+------+--+
| 1    |
+------+--+
1 row selected (3.735 seconds)
0: jdbc:hive2://test-hadoop.hive.m> select floor(1.6356);
+------+--+
| _c0  |
+------+--+
| 1    |
+------+--+
1 row selected (0.092 seconds)


0: jdbc:hive2://test-hadoop.hive.m> select ceil(1.2356);
+------+--+
| _c0  |
+------+--+
| 2    |
+------+--+
1 row selected (0.096 seconds)
0: jdbc:hive2://test-hadoop.hive.m> select ceil(1.6356);
+------+--+
| _c0  |
+------+--+
| 2    |
+------+--+
1 row selected (2.294 seconds)
0: jdbc:hive2://test-hadoop.hive.m> 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: round()函数用于将一个数四舍五入到指定的小数位数。例如,round(3.14159, 2)将返回3.14。 floor()函数用于将一个数向下取整到最接近的整数。例如,floor(3.7)将返回3。 ceil()函数用于将一个数向上取整到最接近的整数。例如,ceil(3.2)将返回4。 ### 回答2: HiveSQLSparkSQL都提供了round()、floor()和ceil()函数来对数字进行四舍五入、向下取整和向上取整。 round()函数可以对一个数字进行四舍五入,可指定精度。例如,对一个小数进行四舍五入,可以写作round(数字, 精度),其中精度是可选参数,表示要保留的小数位数。如果省略精度,则默认为0,即对整数进行四舍五入。例如,round(3.14159, 2)将返回3.14,round(3, -1)将返回0,round(1234, 0)将返回1234。 floor()函数可以对一个数字向下取整,将其舍入为不超过该数字的最大整数。例如,floor(4.5)将返回4,floor(-4.5)将返回-5,floor(3.14159)将返回3。 ceil()函数可以对一个数字向上取整,将其舍入为不小于该数字的最小整数。例如,ceil(4.5)将返回5,ceil(-4.5)将返回-4,ceil(3.14159)将返回4。 这些函数都可以用于HiveSQLSparkSQL,并且在处理数值型数据时非常有用。例如,您可以使用round()函数来四舍五入价格数据,floor()函数来将小数减去整数部分,ceil()函数来将十进制向上调整到整数部分。这些函数让操纵数值数据变得更加简单和方便。 ### 回答3: hiveSQLSparkSQL中的round()、floor()和ceil()都是用于数值的舍入函数,有些语法和使用方法上有一些差异,我们需要分别加以理解。 round()函数用于对小数进行四舍五入。在hiveSQLSparkSQL中,round()函数都具有以下语法: round(expression, num_digits) 其中expression为要进行舍入操作的小数,num_digits为舍入的位数。如果为正整数,则对小数的第num_digits位进行四舍五入;如果为负整数,则对小数的小数点左边num_digits位进行四舍五入。 例如,在hiveSQL中,round(3.1456, 2)的返回值为3.15,round(3.0456, 2)的返回值为3.05。 在Spark SQL中round(3.1456, 2)返回3.15,而round(3.0456, 2)返回3.05,则可以使用以下表达式:round(expr, digits) floor函数用于对小数进行向下取整。在hiveSQLSparkSQL中的函数语法相同: floor(expression) 其中expression为要进行舍入操作的小数。 例如,在hiveSQL中,floor(3.8)的返回值为3,floor(-3.8)的返回值为-4。 在Spark SQLfloor(3.8) 返回3,floor(-3.8) 返回-4,可以使用以下语法floor(expr) ceil()函数用于对小数进行向上取整。在hiveSQLSparkSQL中的函数语法相同: ceil(expression) 其中expression为要进行舍入操作的小数。 例如,在hiveSQL中,ceil(3.2)的返回值为4,ceil(-3.2)的返回值为-3。 在SparkSQL中,ceil(3.2) 的返回值为4,ceil(-3.2) 的返回值为-3,可以使用以下语法 ceil(expr) 总之,hiveSQLSparkSQL中round()、floor()和ceil()都是用于对小数进行舍入操作的数值函数,hiveSQLSparkSQL中的函数语法略有不同,但使用方法大同小异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值