当前位置: 首页 > 知识库问答 >
问题:

如何为嵌套集合创建avro模式?

邢修明
2023-03-14

我确实有这样的身体-

{
    {
        "name":"abc",
        "eventName": "abc",
        "pl": {
             "name": "xyz",
             "age": 21,
             "address": {
                 "line1" : "h.no - ",
                 "line2": "state"
             }
         }
    }
}

有人能帮我为这种类型的主体创建一个有效的Avro模式吗。我找到了一个创建类似这样的嵌套模式的示例-

[
{
"type": "record",
"name": "Address",
"fields": [
  {
    "name": "streetaddress",
    "type": "string"
  },
  {
    "name": "city",
    "type": "string"
  }
]
 },


 {
"type": "record",
"name": "person",
"fields": [
  {
    "name": "firstname",
    "type": "string"
  },
  {
    "name": "lastname",
    "type": "string"
  },
  {
    "name": "address",
    "type": "Address"
  }
]

}]

当我提供这种模式时,它在下面的行中为我提供了错误-

GenericRecord avroRecord=新的GenericData。记录(模式);

错误是-org。阿帕奇。阿夫罗。AvroRuntimeException:不是记录架构:

共有1个答案

乐正心水
2023-03-14

您可以像这样定义您的记录以支持嵌套对象。

{

    "type": "record",
    "name": "person",
    "fields": [{
            "name": "firstname",
            "type": "string"
        }, {
            "name": "lastname",
            "type": "string"
        }, {
            "name": "address",
            "type": {
                "type": "record",
                "name": "Address",
                "fields": [{
                        "name": "streetaddress",
                        "type": "string"
                    }, {
                        "name": "city",
                        "type": "string"
                    }
                ]
            }
        }
    ]
}
 类似资料:
  • 问题内容: 我在Scala和Java之间遇到编译问题。 我的Java代码需要一个 我的scala代码有一个 我收到编译错误: 似乎scala.collection.JavaConversions不适用于嵌套集合,即使Vector可以隐式转换为Iterable。除了遍历scala集合并手动进行转换之外,我还能做些什么使这些类型起作用? 问题答案: 应该弃用恕我直言。您最好使用来明确说明转换的时间和地

  • 问题内容: 我正在尝试让Python解析如下的Avro模式… …并且出现以下异常: 我究竟做错了什么? 问题答案: 根据网络上的其他消息来源,我将重写您的第二个地址定义:

  • 问题内容: 我有一个代码可以使用功能将我的avro记录转换为Row 此功能不适用于嵌套模式。 谁能建议我如何将复杂的架构转换为ROW? 问题答案: 有,但是不幸的是私人的。有一些PR可以将其公开,但是它们从未合并: https://github.com/databricks/spark-avro/pull/89 https://github.com/databricks/spark-avro/pu

  • 了解如何在 Dreamweaver 中创建用于控制共享设计元素的页面中的内容的嵌套模板。 嵌套模板是指其设计和可编辑区域都基于另一个模板的模板。嵌套模板对于控制共享许多设计元素的站点页面中的内容很有用,但在各页之间有些差异。例如,基本模板中可能包含更宽广的设计区域,并且可以由站点的许多内容提供者使用,而嵌套模板可能进一步定义站点内特定部分的页面中的可编辑区域。 基本模板中的可编辑区域被传递到嵌套模

  • 本文向大家介绍Python 语言嵌套集合,包括了Python 语言嵌套集合的使用技巧和注意事项,需要的朋友参考一下 示例 导致: 而是使用frozenset:            

  • 假设我有一个包含集合的对象,所述集合上的每个元素都包含一个集合,每个集合都包含一个集合。 我想在最深的对象上迭代,并对其应用相同的代码。 命令式的方法是微不足道的,但有没有一种方法来完成这一切? 我可以看到如何从最深的循环中生成lambda: 但我能做得更多吗?