• 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”错误。

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

  • 相关阅读:
    在jenkins中新建节点,启动方式中没有“通过java web启动”
    在jenkins上执行web自动化脚本出现cannot find Chrome binary
    修改禅道的默认端口
    jmeter修改字体大小
    电脑中安装了两个版本的jdk,后装的会把第一个覆盖掉
    各种浏览器的驱动
    js中的null和undefined总结
    关于 es6的 let 特性在 for 循环结构 的个人理解
    ajax五,jsonp跨域的本质
    ajax四,封装ajax并优化
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6205033.html
Copyright © 2020-2023  润新知