我们在AWS EMR中使用Hive 0.13.1,并且在我们必须使用UTF-16编码文件之前一切正常。
症状是:
在开始时有一些带有“特殊符号”的字符串条目,很可能这些是文件中的第一个条目,包括BOM字符。
对于每个行条目,紧跟在后面都有一个全NULL项。很可能是由于ITEMS TERMINATED BY'\ n'表创建指令以UTF-16编码文件的有趣方式工作。
每当我尝试查找特定条目时,指定“provider_name ='provider1'” - 即使我可以看到表中存在这样的条目,也没有任何结果,同时选择“select * from” mytable limit 5“。 看起来像桌子的STRING和hive cli的STRING不匹配。当我从另一个查询的输出中专门复制该值时,它们甚至不匹配 - 找不到任何内容。
除此之外,一切正常:计数,选择不同,选择..限制等。
我尝试应用修正建议here,将“GBK”替换为“UTF-16”,但没有运气。也许问题是 - 此修复程序适用于Hive 0.14.0,而AWS EMR仅支持1.13.1 atm。
(但是,这个解决方案似乎相当旧 - 检查here。但是,它没有任何帮助。)
有人会提出什么建议吗?