美文网首页大数据开发
Hive数据类型和文件格式

Hive数据类型和文件格式

作者: 奋斗的蛐蛐 | 来源:发表于2021-02-06 18:27 被阅读0次

    Hive数据类型和文件格式

    Hive支持关系型数据库的绝大多数基本数据类型和4和几个集合


    image.png image.png

    隐似转换

    Hive隐似转换.png

    显示转换:

    hive> select cast('1111s' as int);
    OK
    NULL
    hive> select cast('1111' as int);
    OK
    1111
    
    集合数据类型

    Hive集合类型:array、map、struct、union


    image.png
    hive> select array(1,2,3);
    OK
    [1,2,3]
    -- 使用 [] 访问数组元素
    hive> select arr[0] from (select array(1,2,3) arr) tmp;
    hive> select map('a', 1, 'b', 2, 'c', 3);
    OK
    {"a":1,"b":2,"c":3}
    -- 使用 [] 访问map元素
    hive> select mymap["a"] from (select map('a', 1, 'b', 2, 'c', 3) as mymap) tmp;
    -- 使用 [] 访问map元素。 key 不存在返回 NULL
    hive> select mymap["x"] from (select map('a', 1, 'b', 2, 'c', 3) as mymap) tmp;
    NULL
    hive> select struct('username1', 7, 1288.68); OK {"col1":"username1","col2":7,"col3":1288.68}
    -- 给 struct 中的字段命名
    hive> select named_struct("name", "username1", "id", 7, "salary", 12880.68);
    OK
    {"name":"username1","id":7,"salary":12880.68}
    -- 使用 列名.字段名 访问具体信息 
    hive> select userinfo.id
    > from (select named_struct("name", "username1", "id", 7, "salary", 12880.68) userinfo) tmp;
    -- union 数据类型
    hive> select create_union(0, "zhansan", 19, 8000.88) uinfo;
    
    文件文件数据编码
    vim /home/hadoop/data/s1.dat
    ### 输入下面内容
    666^Alisi^A18^Aread^Bgame^Ajava^C97^Bhadoop^C87
    ### 进入hive
    create table s1(
      id int,
      name string,
      age int,
      hobby array<string>,
      score map<string, int>
    );
    load data local inpath '/home/hadoop/data/s1.dat' into table s1; 
    select * from s1;
    

    Hive默认分隔符

    image.png

    在 vi 中输入特殊字符:

    • (Ctrl + v) + (Ctrl + a) => ^A
    • (Ctrl + v) + (Ctrl + b) => ^B
    • (Ctrl + v) + (Ctrl + c) => ^C
    读时模式

    传统数据库:写数据检测,不符合拒绝加载数据(写时模式)

    Hive:读数据不合法显示NULL,加载数据不校验。优点:加载数据快,缺点:有NULL值(读时模式)

    相关文章

      网友评论

        本文标题:Hive数据类型和文件格式

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