【问题标题】:avro with an array of nested schema带有嵌套模式数组的 avro
【发布时间】:2016-10-23 09:05:03
【问题描述】:

我试图在 apache avro 中表示“订单”及其相关条目。有关架构,请参见下文。尝试在 Eclipse 中构建它时出现以下错误。任何帮助表示赞赏。

[ERROR] Failed to execute goal org.apache.avro:avro-maven-plugin:1.8.1:schema (default) on project avrosample: Execution default of goal org.apache.avro:avro-maven-plugin:1.8.1:schema failed: Undefined name: "com.company.domain.entry" -> [Help 1]

**Schema For Entry:**
{"namespace": "com.company.domain",
 "type": "record",
 "name": "entry",
 "fields": [
     {"name": "id", "type": "long"},
     {"name": "description",  "type": "string"},
     {"name": "quantity", "type: “int”}

 ]
}

**Schema for Order:**
{"namespace": "com.company.domain",
 "type": "record",
 "name": "order",
 "fields": [
     {"name": "id", "type": "long"},
     {"name": "date",  "type": "long"},
     {"name": "entries", "type": {"items": "array", "items": "com.company.domain.entry"} }}

 ]
}

【问题讨论】:

    标签: schema avro


    【解决方案1】:

    如果我没记错的话,您不能以这种方式将 Entry-schema 链接到 Order-schema。为什么不使用联合模式来代替 Order?像这样的:

    {
      "type": "record",
      "name": "Order",
      "namespace": "com.company.domain",
      "fields": [
        {
          "name": "id",
          "type": "long"
        },
        {
          "name": "date",
          "type": "long"
        },
        {
          "name": "entries",
          "type": {
            "type": "array",
            "items": {
              "type": "record",
              "name": "Entry",
              "fields": [
                {
                  "name": "id",
                  "type": "long"
                },
                {
                  "name": "description",
                  "type": "string"
                },
                {
                 "name": "quantity",
                  "type": "int"
                }
              ]
            },
            "java-class": "java.util.List"
          }
        }
      ]
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-12
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-11
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      相关资源
      最近更新 更多