• Hive数据类型


    1. 基本数据类型

    hive数据类型java数据类型长度栗子
    TINYINTbyte1byte 有符号整数10
    SMALINTshort2byte 有符号整数10
    INTint4byte 有符号整数10
    BIGINTlong8byte 有符号整数10
    BOOLEANboolean布尔类型,true 或者 falsetrue\false
    FLOATfloat单精度浮点数3.1415
    DOUBLEdouble双精度浮点数3.1415
    STRINGstring字符系列‘hello world’
    TIMESTAMP时间类型
    BINARY字节数组

    2. 集合数据类型

    数据类型描述栗子
    STRUCT和 c 语言中的 struct 类似,都可以通过“点”符号访 问元素内容。例如,如果某个列的数据类型是 STRUCT{first STRING, last STRING},那么第 1 个元素可以通过字段.first 来 引用。struct
    MAPMAP 是一组键-值对元组集合,使用数组表示法可以 访问数据。例如,如果某个列的数据类型是 MAP,其中键 ->值对是’first’->’John’和’last’->’Doe’,那么可以 通过字段名[‘last’]获取最后一个元素map
    ARRAY数组是一组具有相同类型和名称的变量的集合。这些 变量称为数组的元素,每个数组元素都有一个编号,编号从 零开始。例如,数组值为[‘John’, ‘Doe’],那么第 2 个 元素可以通过数组名[1]进行引用。array

    3. 举个例子

    3.1 原始数据

    {
     "name": "zhangsan",
     "friends": ["lisi" , "wangwu"] , 
     "children": { //键值 Map,
         "zhangsi": 20 ,
         "zhangwu": 21
     }
     "address": { 
         "streetid": 1,
         "city": "beijing"
     }
    }
    
    test.txt
    zhangsan,lisi_wnangwu,zhangsi:20_zhangwu:21,1_beijing
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    3.2 创建表

    create table test(
    	name string,
        friends array<string>,
        children map<string, int>,
        address struct<streetid: int, city: string>
    )
    row format delimited fields terminated by ','
    collection items terminated by '_'
    map keys terminated by ':'
    lines terminated by '\n';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.3 导入数据

    load data local inpath '/tmp/test.txt' into table test;
    
    • 1

    4. 类型转换

    4.1 隐式转换

    1. 任何整数类型都可以隐式地转换为一个范围更广的类型,如 TINYINT 可以转换成 INT,INT 可以转换成 BIGINT。

    2. 所有整数类型、FLOAT 和 STRING 类型都可以隐式地转换成 DOUBLE。

    3. TINYINT、SMALLINT、INT 都可以转换为 FLOAT。

    4. BOOLEAN 类型不可以转换为任何其它的类型。

    4.2 CAST转换

    CAST(‘1’ AS INT)将把字符串’1’ 转换成整数 1;

    如果强制类型转换失败,如执行 CAST(‘X’ AS INT),表达式返回空值 NULL。

  • 相关阅读:
    如何在2023年开启React项目
    Java基础知识点面试专题
    【STK】手把手教你利用STK进行仿真-STK软件简介03 STK扩展接口
    插值与拟合的区别以及如何选取
    AWS认证SAA-C03每日一题
    JAVA设计模式6:代理模式,用于控制对目标对象的访问
    揭秘计算机奇迹:探索I/O设备的神秘世界!
    【配置】如何在打包Spring Boot项目时按需使用日常、测试、预发、正式环境的配置文件
    回文数 洛谷 - P1015
    8、AI医生案例
  • 原文地址:https://blog.csdn.net/weixin_46376562/article/details/126315585