Avro Mapreduce作业失败org.apache.avro.AvroTypeException

时间:2016-07-26 22:05:07

标签: hadoop mapreduce avro avro4s

我在地图中遇到问题 - 减少了包含字符串和数组值的avro文件。

           `Describe hdfs:/test/test.avro                                       
           number                      STRING
           totalProductFee            STRING
           productID                   STRING
           otherPartyId               STRING
           module                     STRING
           client                     STRING
           Event_DA                ARRAY
           Event_DA.recType           STRING
           Event_DA.AccountID         STRING
           Event_DA.Identifier        STRING
           Event_DA.ValueBefore       STRING
           Event_DA.ValueAfter        STRING
           Event_DA.Change            STRING
           Event_DA.ExpiryDate         STRING

但是,当我尝试运行作业以获取记录值的数组[Event_DA]时获得以下异常:

  

org.apache.avro.AvroTypeException:找到Event_DA,期待org.apache.avro.io.ResolvingDecoder.doAction(ResolvingDecoder.java:231)中的Event_DA

当结合字符串类型和记录数组时,看起来问题在于输入模式文件。

请为您提供有关这些类型的avro文件的示例模式文件的宝贵建议。

1 个答案:

答案 0 :(得分:0)

根据您的架构定义,Event_DA将是“记录”类型,但不是“数组”类型。 您的Avro架构如下所示:

#end