一个典型的任务是读取数据,以其他非纯文本格式以JSON或XML序列化。为了详细说明这个任务,建议使用几个Hive SerDe:
XML Serde:https://github.com/dvasilen/Hive-XML-SerDe/wiki/XML-data-sources
JSON Serde:https://cwiki.apache.org/confluence/display/Hive/Json+SerDe
等
问题是:
为什么我们可以在我们的InputFormat中修改RecordReader以便以我们想要的方式形成行(这是RecordReader之后的值)?
我们可以读取我们认为是单行的XML标记,拆分它们并形成一个以默认SerDe会理解的方式编码的String,如果需要,添加key的列(默认情况下被Hive忽略),以及因此有一个简单的JSON和XML处理设置。 为什么要创建特殊的SerDe?