我遇到的问题是我有多个文件有不同的字符集,比如一个文件有中文字符集,另一个文件有法语字符集,我怎样才能在一个单独的hive表中加载它们?我在网上搜索了一下,发现了这个: -
ALTER TABLE mytable SET SERDEPROPERTIES('serialization.encoding'='SJIS');
有了这个,我可以处理中文或法文文件之一的字符集。有没有办法处理这两个字符集?
[UPDATE]
好的我正在使用RegexSerde用于固定宽度文件,而使用的编码方案是 - ISO 8859-1。似乎Regex Serde没有考虑这种编码方案,并且考虑默认的UTF-8编码方案来分割字符。有没有办法将编码方案与Regex serde一起考虑。
答案 0 :(得分:4)
我不确定这是否可行(我认为它不是基于https://github.com/apache/hive/blob/master/serde/src/java/org/apache/hadoop/hive/serde2/AbstractEncodingAwareSerDe.java)。解决方法可以创建两个具有不同enconding的表,并在其上创建一个视图。