Hadoop-如何从实现可写接口切换到使用Avro对象?

Hadoop-如何从实现可写接口切换到使用Avro对象?,hadoop,mapreduce,avro,writable,Hadoop,Mapreduce,Avro,Writable,我正在使用Hadoop将JSON转换为CSV文件,以便通过Hive访问它们 目前,映射程序正在填充自己的数据结构,用JSON Smart解析JSON。然后,减速器读取该对象并将其写入一个文件,文件之间用逗号分隔。 为了加快速度,我已经在数据结构中实现了可写接口 现在,我想将Avro用于数据结构对象,以提高灵活性和性能。如何更改类以使它们交换Avro对象而不是可写对象?Hadoop通过提供了一种可插入的序列化机制 默认情况下,Hadoop使用类来处理实现可写接口的类的反序列化,但是您可以通过设置H

我正在使用Hadoop将JSON转换为CSV文件,以便通过Hive访问它们

目前,映射程序正在填充自己的数据结构,用JSON Smart解析JSON。然后,减速器读取该对象并将其写入一个文件,文件之间用逗号分隔。 为了加快速度,我已经在数据结构中实现了可写接口


现在,我想将Avro用于数据结构对象,以提高灵活性和性能。如何更改类以使它们交换Avro对象而不是可写对象?

Hadoop通过提供了一种可插入的序列化机制

默认情况下,Hadoop使用类来处理实现可写接口的类的反序列化,但是您可以通过设置Hadoop配置属性来注册实现接口的自定义序列化程序

Avro在类中有一个
序列化
接口的实现-因此这将是您在
io.serializations
属性中配置的类

Avro实际上有一大堆帮助器类,它们可以帮助您编写映射/减少作业,以使用Avro作为输入/输出—有一些

目前我似乎找不到任何关于Avro&Map-Reduce的好文档,但我确信还有其他一些好的例子