Home  >  Article  >  Database  >  Java中的double精度,sqoop从Oracle导出到Hive

Java中的double精度,sqoop从Oracle导出到Hive

WBOY
WBOYOriginal
2016-06-07 16:47:591664browse

项目进行了大半后发现悲剧了,利用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 的下载地址:请点这里

本文永久更新链接地址:

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn