Hive Serde - CSV、TSV

CSV

hive-0.14.0内置支持CSV Serde,以前的版本需要引入第三方库的jar包(http://https://github.com/ogrodnek/csv-serde

现在有个文本文件a.csv(从数据库中导出的数据通常都是这种格式),里面的内容如下:
  1. [hive@vm1 ~]$ more a.csv 
  2. '1','zhangsan','20','beijing,shanghai,shandong',1
  3. '2','lisi','22','guangdong,hainan',1
  4. '3','wangwu','23','shandong,jiangsu,xizang',0
现在需要将它加载到hive中进行处理,步骤如下:

1)引入第三方jar包(0.14之前的版本)
  1. add jar /xx/yy/zz.jar;
2)创建表
  1. 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)加载数据
  1. load data local inpath '${env:HOME}/a.csv' into table t_csv;
4)查询
  1. select name, address from t_csv;

TSV
    目前没有专门Tsv Serde的jar包,不过可以使用CSV Serde,设置它的separatorChar='\t'





posted @ 2015-06-08 14:21  lishouguang  阅读(1972)  评论(0编辑  收藏  举报