项目进行了大半后发现悲剧了,利用sqoop默认的从oracle数据库到处的数据表,如果其中的数据精度大于15位,而导入的表有些字段默认
项目进行了大半后发现悲剧了,利用sqoop默认的从Oracle数据库到处的数据表,如果其中的数据精度大于15位,而导入的表有些字段默认的是double类型,结果导致大于16的数导入到了hive中,查询时只有15位的精度,悲哀啊,,切记。
相关阅读:
基于Hadoop集群的Hive安装
Hive内表和外表的区别
Hadoop + Hive + Map +reduce 集群安装部署
Hive本地模式安装
Hive学习之WordCount单词统计
public class HelloWorld {
public static void main(String args[]){
// double dou = 9813113054842628;
String s = "9813113054842628";
System.out.println(Double.valueOf(s));
String s1 = "9813113054842627";
System.out.println(Double.valueOf(s1));
}
}
输出结果
9.813113054842628E15
9.813113054842628E15
原因是oracle的Number精度大于java中的double类型。
Hive 的详细介绍:请点这里
Hive 的下载地址:请点这里
本文永久更新链接地址:
Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务