• 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。

  • 相关阅读:
    如何使用腾讯云GPU云服务器搭建训练 ViT 模型?
    总结:Tomcat的IO模型
    父组件明明使用了v-model,子组件竟然可以不用定义props和emit抛出事件,快来看看吧
    使用可接受gitlab参数的插件配置webhook
    说一说axi的几个典型特性
    ptmalloc源码分析 - malloc/free函数的实战篇(12)
    使用html和css实现个人简历表单的制作
    DataGrip 如何导出和恢复整个数据库数据,使用单个 SQL 文件
    采用PHP开发的一套(项目源码)医疗安全(不良)事件报告系统源码:统计分析,持续整改,完成闭环管理
    JavaScript 基础语法
  • 原文地址:https://blog.csdn.net/weixin_46376562/article/details/126315585