Hive Serde - CSV、TSV
CSV
现在有个文本文件a.csv(从数据库中导出的数据通常都是这种格式),里面的内容如下:
[hive@vm1 ~]$ more a.csv
'1','zhangsan','20','beijing,shanghai,shandong',1
'2','lisi','22','guangdong,hainan',1
'3','wangwu','23','shandong,jiangsu,xizang',0
现在需要将它加载到hive中进行处理,步骤如下:
1)引入第三方jar包(0.14之前的版本)
add jar /xx/yy/zz.jar;
2)创建表
create table t_csv(id int, name string, address string, sex tinyint) row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde' with serdeproperties("separatorChar"=",","quoteChar"="'","escapeChar"= "\\") stored as textfile;
separatorChar是字段之间的分隔符
quoteChar是包括字段的符号,比如单引号、双引号
escapeChar是不处理的字符
3)加载数据
load data local inpath '${env:HOME}/a.csv' into table t_csv;
4)查询
select name, address from t_csv;
TSV
目前没有专门Tsv Serde的jar包,不过可以使用CSV Serde,设置它的separatorChar='\t'