美文网首页大数据HiveHive在简书
<<Hive编程指南>>学习笔记(一)-

<<Hive编程指南>>学习笔记(一)-

作者: 小北觅 | 来源:发表于2018-09-12 16:19 被阅读0次

    Hive支持关系型数据库中的大多数基本数据类型,同时也支持关系型数据库中很少出现的3种集合数据类型。

    一、数据类型

    以下截图内容来自Hive官方文档

    1.1 数值类型

    Hive数值类型

    1.2 日期/时间类型

    Hive日期/时间类型

    1.3字符串类型

    Hive字符串类型

    1.4其他类型

    Hive其他类型

    1.5 复杂类型

    Hive复杂类型

    二、文本文件数据编码

    2.1 Hive默认的分隔符

    Hive默认分隔符

    2.2 用户自定义分隔符

    由于默认的分隔符可读性并不好,所以可以在创建表的时候指定自定义的分隔符(但是行与行之间的分隔符只能是'\n',不能改变)。

    Hive自定义分隔符

    比如可以使用'\t'作为字段的分割,使用','作为集合项的分割,使用':'作为map的key和value之间的分割。后面会给出例子。

    三、集合数据类型实战

    3.1 创建表

    create table employees(
        name string,
        salary float,
        subordinates array<string>,
        deductions map<string,float>,
        address struct<street:string, city:string, state:string, zip:int>
    )
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t'
    COLLECTION ITEMS TERMINATED BY ','
    MAP KEYS  TERMINATED  BY ':'
    LINES  TERMINATED  BY '\n';
    
    

    其中,name是一个简单字符串;salary(薪水)是浮点数;subordinates(下属员工)列表是一个字符串值数组;字段deduction(扣除)是map类型;address(家庭地址)使用struct数据类型存储。

    3.2 创建测试数据

    john 100000.0 mary,alice Federal Taxes: .2, State Taxes: .05 1 Michigan Ave,Chicago,IL,60600
    tracy 100000.0 yram,ecila Federal Taxes: .3, State Taxes: .08 2 Michigan Eva,Bhicago,IL,70700
    注:每个字段之间用制表符分割,复制到简书上格式可能有错误。

    3.3将数据加载到Hive中

    load data local inpath '/home/hadoop/zhb/employees.txt' overwrite into table employees;
    

    结果如下:


    插入结果.png

    成功插入到Hive表中。

    四、读时模式

    传统的数据库时写时模式(schema on write),即数据在写入数据库时对模式进行检查。
    Hive对底层存储并没有这样的控制,所以,对于Hive查询的数据,有很多方式对其进行创建、修改、甚至损坏。因此Hive会在查询时进行验证,也就是读时模式(schema on read)。例如:如果每行记录中的字段个数少于对应的模式中定义的字段个数的话,那么用户将会看到查询结果中有很多的null值。

    相关文章

      网友评论

        本文标题:<<Hive编程指南>>学习笔记(一)-

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