Hive 的 CSV Serde介绍和使用
CSV格式的文件也称为逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号。在本文中的CSV格式的数据就不是简单的逗号分割的),其文件以纯文本形式存储表格数据(数字和文本)。
CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。
通常,所有记录都有完全相同的字段序列。
默认的分隔符是
分隔符:DEFAULT_SEPARATOR ,
引号符:DEFAULT_QUOTE_CHARACTER "
转义符:DEFAULT_ESCAPE_CHARACTER \
可以通过separatorChar、quoteChar以及escapeChar指定数据的分割。
1、建表:
hive> CREATE TABLE csv1_table(a string, b string) > ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' > WITH SERDEPROPERTIES ( > "separatorChar" = ",", > "quoteChar" = "'", > "escapeChar" = "\\" > ) > STORED AS TEXTFILE; OK Time taken: 1.151 seconds
2、加载数据:
hive> load data local inpath "/usr/local/haha.csv" into table csv1_table; Loading data to table default.csv1_table Table default.csv1_table stats: [numFiles=1, totalSize=63] OK Time taken: 1.125 seconds
3、查询表数据:
hive> select a,b from csv1_table; OK hadoop hadoop hive hive hbase hbase solr solr redis redis Time taken: 0.077 seconds, Fetched: 5 row(s) hive>
CSV的数据如下: