我有一个如下给出的类
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