天天看點

21-大資料-hive存儲格式

hive從兩個角度對表的存儲進行管理,分别是行格式(row format)和檔案格式(file format),行格式指行和一行中的字段如何存儲

1、預設存儲格式:分割的文本

在建立表時沒有 row format或 sored as 子句,那麼hive所使用的資料格式是分割的文本,每行存儲一個資料行

預設的行内分隔符不是制表符,二是ASCII控制碼集合中的Control-a。表中各行之間用換行符分割

集合類元素的預設分隔符是ontrol-b,用于分割array或struct或map的鍵-值對中的元素。預設的映射鍵(map key)分隔符為字元 control-c,用于分割map的鍵和值

預設存儲格式通過屬性:hive.default.fileformat設定,預設是 TextFile

create table …

等價于:使用八進制來表示分隔符,如001表示control-a

create table

row format delimited

fields terminated by ‘\001’

collection items terminated by ‘\002’

map keys terminated by ‘\003’

lines terminated by ‘\n’

sored as textfile;

2、二進制存儲格式:順序檔案、avro資料檔案、parquet檔案、rcFile與ORCFile

3、使用定制的SerDe: RegexSerDe

4、存儲句柄

繼續閱讀