【问题标题】:Avro schema object - recursionAvro 模式对象 - 递归
【发布时间】:2021-10-04 06:23:54
【问题描述】:

这是否可以在 avro 模式中创建具有他的参数之一的类?

java 中的示例:

public class Example {

private Integer value;
private Example example;

}

【问题讨论】:

    标签: java recursion schema avro


    【解决方案1】:

    Avro 模式不是在 java 中定义的,而是在一个通常带有 .avsc 文件扩展名的 json 文件中定义的。下面是一个表示树的递归 avro 模式示例:

    {
      "type": "record",
      "name": "Node",
      "fields": [
        {
          "name": "value",
          "type": "long"
        },
        {
          "name": "children",
          "type": { "type": "array", "items": "Node" }
        }
      ]
    }
    

    所以是的,创建递归模式是完全可能的。

    另请参阅this issue,其中定义了更短的架构:

    {
      "type": "record",
      "name": "RecursiveRecord",
      "fields": [{"name": "child", "type": "RecursiveRecord"}]
    }
    

    【讨论】:

    • Avro 模式可以在 Java 中定义,但是使用反射注解
    猜你喜欢
    • 1970-01-01
    • 2021-12-19
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多