基本数据类型
- TINYINT
1 byte 有符号整数 - SMALLINT
2 byte 有符号整数 - INT
4 byte 有符号整数 - BIGINT
8 byte 有符号整数,类似Pig中long - BOOLEAN
布尔类型,true或者false - FLOAT
单精度 - DOUBLE
双精度 - STRING
字符类型 - TIMESTAMP
时间戳类型 - BINARY
字节数组
复杂数据类型
- STRUCT
STRUCT{name:String,age:Int},构造的话可以用struct('xuzhang',27),取值的话可以用.name或者.age来进行取值。 - MAP
键值对,构造:map('xuzhang',27,'mating',27),
取值字段名['xuzhang']加键值。 - ARRAY
构造Array('xuzhang','mating'),取值与普通数组是一样的。我们可以通过下标来进行取值。
John Doe^A100000.0^AMary Smith^BTodd Jones^AFederal Taxes^C.2^BStateTaxes^C.05^BInsurance^C.1^A1 Michigan Ave.^BChicago^BIL^B60600
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 '\001' #分隔列
COLLECTION ITEMS TERMINATED BY '\002' #分隔成 array
MAP KEYS TERMINATED BY '\003' #分隔成map
LINES TERMINATED BY '\N'
STORED AS TEXTFILE;
\001 -> ^A
\002 -> ^B
\003 -> ^C