开发者学堂课程【大数据 Hive 教程精讲:Apache Hive--DDL--创建表--默认分隔符】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/90/detail/1368
Apache Hive--DDL--创建表--默认分隔符
内容介绍:
一、ROW FORMAT DELIMITED
一、ROW FORMAT DELIMITED
[FIELDS TERMINATED By char]
[COLLECTION ITEMS TERMINATED BY char]
[MAP KEYS TERMINATED BY char]
[LINES TERMINATED BY char] | SERDE serde_name
[WITH SERDEPROPERTIES
(property_name=property_value, property_name=property_value,.
…)]
hive 建表的时候默认的分割符是'\001',若在建表的时候没有指明分隔符,load 文件的时候文件的分隔符需要是’\001’﹔若文件分隔符不是'001',程序不会报错,但表查询的结果会全部为'null';
用 vi 编辑器 Ctrl+v然后 Ctrl+a即可输入’\001’----------->^A
SerDe是Serialize/Deserilize 的简称,目的是用于序列化和反序列化。
Hive 读取文件机制:首先调用 InputFormat(默认TextInputFormat),返回一条一条记录(默认是一行对应一条记录)。然后调用 SerDe(默认LazySimpleSerDe) 的Deserializer,将一条记录切分为各个字段(默认'\001’)。
Hive写文件机制:将 Row 写入文件时,主要调用 OutputFormat、SerDe 的 Seriliaz.er.顺序与读取相反。
1: jdbc:hive2: //node-1:10000>
Crcreate cross
1: jdbc:hive2: //node-1:10000> create table t_t5(id int,name string)
1: jdbc:hive2:/node-1:10000>
No rows affectel (o.083 seconds)
1: jdbc:hive2: //node-1: 10000> show tables ;
tab_name
comp 1ex_array
t_t1
t_t2
t_t3
t_t5
5 rows selected (o.039 seconds)
1: jdbc:hive2:/l/node-1:10000>