zoukankan      html  css  js  c++  java
  • hive数据类型(翻译自Hive Wiki)

    翻译自 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types

    列类型

    Hive支持的数据类型如下:

    原生类型:

    • TINYINT
    • SMALLINT
    • INT
    • BIGINT
    • BOOLEAN
    • FLOAT
    • DOUBLE
    • STRING
    • BINARY (Hive 0.8.0以上才可用)
    • TIMESTAMP (Hive 0.8.0以上才可用)

    复合类型:

    • arrays: ARRAY<data_type>
    • maps: MAP<primitive_type, data_type>
    • structs: STRUCT<col_name : data_type [COMMENT col_comment], ...>
    • union: UNIONTYPE<data_type, data_type, ...>

    时间戳

    支持传统的unix时间戳,可选的纳秒级精度。

    支持的转换:

    • 整型数值类型:解读为以秒为单位的UNIX时间戳
    • 浮动点数值类型:解读为以秒和小数精度为单位的UNIX时间戳。
    • 字符串:JDBC兼容的java.sql.Timestamp格式“YYYY-MM-DD HH:MM:SS.fffffffff”(9位小数位精度)

    时间戳被解释是与timezone无关,存储为从UNIX纪元的偏移量。提供便利的UDF和时区转换(to_utc_timestamp,from_utc_timestamp)。
    所有现有datetime的UDF(月,日,年,小时,等)可以工作于TIMESTAMP数据类型。

     

    Union类型

    Union类型可以在同一时间点,保持恰好有一个指定的数据类型。您可以使用create_union的UDF创建一个实例的类型:

    复制代码
    CREATE TABLE union_test(foo UNIONTYPE<int, double, array<string>, struct<a:int,b:string>>);
    SELECT foo FROM union_test;
    
    {0:1}
    {1:2.0}
    {2:["three","four"]}
    {3:{"a":5,"b":"five"}}
    {2:["six","seven"]}
    {3:{"a":8,"b":"eight"}}
    {0:9}
    {1:10.0}
    复制代码

    第一部分,对于union的发序列化来说是一个tag,让它知道哪个union的部分被使用。在例子0,表明声明的第一个数据类型,即是int,其他如此。

    创建union,必须提供为create_union UDF提供tag。

    SELECT create_union(0, key), create_union(if(key<100, 0, 1), 2.0, value), create_union(1, "a", struct(2, "b")) FROM src LIMIT 2;
    
    {0:"238"}    {1:"val_238"}    {1:{"col1":2,"col2":"b"}}
    {0:"86"}    {0:2.0}    {1:{"col1":2,"col2":"b"}}

    常量

    数值类型

    默认,数值类型认为是INT,除非INT超出了INT的范围,那么会被解释为BIGINT,或者是如下的后缀在数值中被使用。

    Type Postfix Example
    TINYINT Y 100Y
    SMALLINT S 100S
    BIGINT L 100L

    字符串类型

    字符串可以用单引号(')或双引号(“)。Hive在字符串中使用C-Style的转义。

    浮点类型

    浮点类型数值,被假定为双浮点类型。目前还不支持科学记数法。

    NULL值的处理

    遗漏的值被代表为特殊值NULL。 要导入NULL字段的数据,需要查阅使用的SerDe的文档。 (默认的文本格式使用LazySimpleSerDe的解释字符串 N为NULL)

  • 相关阅读:
    Android 2.2 r1 API 中文文档系列(11) —— RadioButton
    Android API 中文 (15) —— GridView
    Android 中文 API (16) —— AnalogClock
    Android2.2 API 中文文档系列(7) —— ImageButton
    Android2.2 API 中文文档系列(6) —— ImageView
    Android 2.2 r1 API 中文文档系列(12) —— Button
    Android2.2 API 中文文档系列(8) —— QuickContactBadge
    [Android1.5]TextView跑马灯效果
    [Android1.5]ActivityManager: [1] Killed am start n
    Android API 中文(14) —— ViewStub
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786644.html
Copyright © 2011-2022 走看看