zoukankan      html  css  js  c++  java
  • hive数据类型及其数据转换

    由于需要使用hive sql进行数据查询,同时涉及多个不同类型的字段的组合,看Hive sql的文档相关和资料才知道,hive是支持大部分基础数据类型之间的相互转换的。

    那么,hive本身支持哪些数据类型呢?

    hive内置数据类型中,Hive支持的数据类型包括以下这些:

    数据类型

    所占字节

    开始支持版本

    TINYINT

    1byte,-128 ~ 127

     

    SMALLINT

    2byte,-32,768 ~ 32,767

     

    INT

    4byte,-2,147,483,648 ~ 2,147,483,647

     

    BIGINT

    8byte,-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

     

    BOOLEAN

     

     

    FLOAT

    4byte单精度

     

    DOUBLE

    8byte双精度

     

    STRING

     

     

    BINARY

     

    从Hive0.8.0开始支持

    TIMESTAMP

     

    从Hive0.8.0开始支持

    DECIMAL

     

    从Hive0.11.0开始支持

    CHAR

     

    从Hive0.13.0开始支持

    VARCHAR

     

    从Hive0.12.0开始支持

    DATE

     

    从Hive0.12.0开始支持


    以及一些数据数据类型:包括array数组,map键值对,struct结构体,union联合等。

    可以看到,hive对平时用到的数据类型都有所支持。


    同时,hive也支持了以上大部分数据类型之间的转换

    其中部分基础数据类型支持隐式转换,意味着在使用过程中可以直接把源类型作为目标类型来使用,支持数据类型隐式的类型包括:

     

    boolean

    tinyint

    smallint

    int

    bigint

    float

    double

    decimal

    string

    varchar

    timestamp

    date

    binary

    boolean

    true

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    tinyint

    false

    true

    true

    true

    true

    true

    true

    true

    true

    true

    false

    false

    false

    smallint

    false

    false

    true

    true

    true

    true

    true

    true

    true

    true

    false

    false

    false

    int

    false

    false

    false

    true

    true

    true

    true

    true

    true

    true

    false

    false

    false

    bigint

    false

    false

    false

    false

    true

    true

    true

    true

    true

    true

    false

    false

    false

    float

    false

    false

    false

    false

    false

    true

    true

    true

    true

    true

    false

    false

    false

    double

    false

    false

    false

    false

    false

    false

    true

    true

    true

    true

    false

    false

    false

    decimal

    false

    false

    false

    false

    false

    false

    false

    true

    true

    true

    false

    false

    false

    string

    false

    false

    false

    false

    false

    false

    true

    true

    true

    true

    false

    false

    false

    varchar

    false

    false

    false

    false

    false

    false

    true

    true

    true

    true

    false

    false

    false

    timestamp

    false

    false

    false

    false

    false

    false

    false

    false

    true

    true

    true

    false

    false

    date

    false

    false

    false

    false

    false

    false

    false

    false

    true

    true

    false

    true

    false

    binary

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    false

    true


    同时,我们可以使用CAST显式的将一个类型的数据转换成另外一个类型的数据。

    如果hive不支持该类型的转换,在使用CAST进行转换时,就会报错:

    如将bigint转换为binary

            CAST((9223372036854775807-unix_timestamp()) as binary)                                               

    
    

    则会报“invalid cast from bigint to binary”错误。

    过往记忆总结的很好,上面的内容也多半出自此处,并进行了一定的加工汇总。

  • 相关阅读:
    Java读写.properties文件实例,解决中文乱码问题
    web项目的getContextPath()
    PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required
    Eclipse安装与配置
    Linux基础整理 + 注释
    git命令集合
    遍历List集合的三种方法
    使用jqueryUI和corethink实现的类似百度的搜索提示
    corethink功能模块探索开发(十八)前台页面插入jit前端数据可视化库
    corethink功能模块探索开发(十七)opencmf.php 配置文件
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205033.html
Copyright © 2011-2022 走看看