首页 > 解决方案 > 我正在尝试使用 Apache Beam 的 SchemaCreate 注释。未推断架构

问题描述

我一直在探索 Beam 的 Schema 相关功能。我尝试@SchemaCreate在 POJO 和 JavaBean 上实现注释,但没有推断出架构。我不断收到以下异常:

Exception in thread "main" java.lang.RuntimeException: Creator parameter arg0 Doesn't correspond to a schema field
    at org.apache.beam.sdk.schemas.utils.ByteBuddyUtils$InvokeUserCreateInstruction.<init>(ByteBuddyUtils.java:1398)
    at org.apache.beam.sdk.schemas.utils.ByteBuddyUtils$StaticFactoryMethodInstruction.<init>(ByteBuddyUtils.java:1335)
    at org.apache.beam.sdk.schemas.utils.POJOUtils.createStaticCreator(POJOUtils.java:242)

我尝试了以下 Beam 文档中的示例代码SchemaCreate。如果我将代码更改为不使用SchemaCreate,它可以工作。SchemaCreate注释文档中的示例代码:

      @DefaultSchema(JavaBeanSchema.class)
  class MyClass {
    public final String user;
    public final int age;

    private MyClass(String user, int age) { this.user = user; this.age = age; }

    @SchemaCreate
    public static MyClass create(String user, int age) {
      return new MyClass(user, age);
    }
 }

我也覆盖了equals()andhashCode()方法,但仍然没有运气。

标签: schemaapache-beam

解决方案


推荐阅读