美文网首页
Hive-3.1.2(三)数据类型

Hive-3.1.2(三)数据类型

作者: _大叔_ | 来源:发表于2021-08-07 21:07 被阅读0次

    常用的基本数据类型

    基本数据类型 所占字节
    int
    boolean
    float
    double
    string

    复杂数据类型

    基本数据类型 说明
    array array 类型是由一系列相同数据类型的元素组成。并且可以通过下标来进行访问。下标从0开始计
    map map包含key-value键值对,可以通过key来访问元素
    struct struct 可以包含不同的数据类型元素。相当于一个对象结构。可以通过 对象.属性 来访问

    array类型

    现有外部数据路径为 /a1/a1.txt 结构如下:

    100,300,200 aa,v,cc
    442,245,214 dd,ee,dd
    

    把外部数据创建到hive里,terminated by ' ' 为列分隔符,terminated by ',' 集合元素分隔符

    create external table table_name(t1 array<int>,t2 array<string>) row format delimited fields terminated by ' ' collection items terminated by ',' location '/a1'
    

    查看 t1 列的元素个数

    select size(t1) from table_name;
    

    通过下标获取 t1 列的集合元素的第一个数据

    select t1[0] from table_name;
    

    map类型

    现有外部数据路径为 /a2/a2.txt 结构如下:

    test1,100
    test2,200
    test3,300
    test1,200
    test2,200
    

    把外部数据创建到hive里,terminated by '\t' 为列分隔符(必须),terminated by ',' key-value 分隔符

    create external table table_name(t1 map<string,int>) row format delimited fields terminated by '\t' map keys terminated by ',' location '/a2'
    

    查询 t1 列 为 test2 的key的值,并去重,distinct 函数会触发 mapreduce。

    select distinct(t1['test2']) from table_name where  t1['test1' is not null;
    

    struct类型

    现有外部数据路径为 /a3/a3.txt 结构如下:

    1 zs 22
    1 ls 23
    1 ww 18
    1 zl 25
    

    把外部数据创建到hive里,terminated by '\t' 为列分隔符(必须),terminated by ',' key-value 分隔符

    create external table table_name(t1 struct<id:int,name:string,age:int>) row format delimited collection items terminated by ' ' location '/a2'
    

    查看 ls 的年龄

    select t1.age from table_name y1.name = 'ls';
    

    相关文章

      网友评论

          本文标题:Hive-3.1.2(三)数据类型

          本文链接:https://www.haomeiwen.com/subject/yepyjltx.html