继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

<<Hive编程指南>>学习笔记(一)----数据类型和文件格式

慕码人8056858
关注TA
已关注
手记 1092
粉丝 350
获赞 1320

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

一、数据类型

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

1.1 数值类型

webp

Hive数值类型

1.2 日期/时间类型

webp

Hive日期/时间类型

1.3字符串类型

webp

Hive字符串类型

1.4其他类型

webp

Hive其他类型

1.5 复杂类型

webp

Hive复杂类型

二、文本文件数据编码

2.1 Hive默认的分隔符

webp

Hive默认分隔符

2.2 用户自定义分隔符

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

webp

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 DELIMITEDFIELDS 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;

结果如下:


webp

插入结果.png

成功插入到Hive表中。

四、读时模式

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



作者:小北觅
链接:https://www.jianshu.com/p/d57a76960192


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP