说明
Hive默认是所有文件都是UTF8的。Hive将按照UTF8编码格式对数据文件进行解析和查询。
如果数据文件不是UTF8,则需要SerDe支持指定编码格式。对于常用的LazySimpleSerDe是支持指定字符集的。
SerDe is a short name for “Serializer and Deserializer.”
Hive uses SerDe (and !FileFormat) to read and write table rows.
HDFS files –> InputFileFormat –> –> Deserializer –> Row object
Row object –> Serializer –> –> OutputFileFormat –> HDFS files
使用
指定SerDe和字符集。
1 |
CREATE EXTERNAL TABLE student8(id STRING, name STRING) |
注意:为指定字符集,必须显式指定SERDE的类。指定SerDe类后,则不允许使用"FIELDS TERMINATED BY",而是要显式通过"field.delim"属性指定分隔符。
文章转载地址:http://blog.whohelpme.com/bbs/topic/singleIndex/23757/1.html