Apache Hive--DDL--创建表--默认分隔符| 学习笔记

开发者学堂课程【大数据 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>

上一篇:如何查找SAP Fiori UI上某个字段对应的底层数据库表


下一篇:thinkphp四种url访问方式详解