为什么在蜂房中两个bigint类型数据的拆分在整数除法截断时不会发生,而是先发生
答案 0 :(得分:2)
Presto机械师:
通过connectors
将来自各种数据源的数据加载到Presto JVM中。 (配置单元连接器,Mysql连接器等,请参见this)
使用Java
代码处理(标量函数或聚合函数)数据。
从JVM(或磁盘,如果启用spill
,则输出结果)。
在Java 1/2=0
中,因此Presto将相同。在Hive中,我认为是因为像overrive operator
这样的UDF:LanguageManual+UDF
为避免被截断,只需“在Java中思考”:
int a = 1
int b = 2
c = 1.0*a/b
在Presto SQL中
-- result: 0.3333333333333333
select cast(1 as double) / 3 from table_name
答案 1 :(得分:0)
这也可以通过这种方式完成。 从table_name中选择1.0 * 1/3而不是强制转换值