org.apache.avro.SchemaParseException: Can't redefine: org.apache.avro.reflect.Pair620b9c15f622a7



我有一个如下给出的类

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 的名称,但这是非常手动的任务,我必须为代码中的所有此类映射执行此操作

与我刚刚在这里回答的非常相似 基于 java 文件生成 Avro 文件。TRy using kite sdk util class

相关内容

最新更新