org.apache.avro.SchemaParseException:无法重新定义:org.apache.avro.reflect.Pair620b9c15f622a7

时间:2017-08-03 05:32:19

标签: serialization avro

我有一个课程,如下所示

class A
{
private   Map<Long ,Set<Long>> x;
private   Map<Long ,Set<Long>> y;}

当avro尝试使用反射创建模式时,它会为这两个字段创建具有映射名称的模式为Pair620b9c15f622a7。因此我得到了例外

Schema s = ReflectData.get().getSchema(A.class);

虽然字段名称完全不同,但我不确定为什么会收到此错误。

1解决方案可能是使用@AvroSchema注释在架构中显式定义x和y的名称,但这是非常手动的任务,我必须在我的代码中为所有这样的映射执行此操作

1 个答案:

答案 0 :(得分:0)

与我刚刚在这里回答的Generate Avro file based on java file非常相似。尝试使用kite sdk util class