gpt4 book ai didi

java - 如何使用 avro IDL 为枚举指定默认值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:50 34 4
gpt4 key购买 nike

我没有在文档中找到任何关于此的内容,只有关于默认值的通用 bla。我的假设是它应该像这样工作:

enum MyEnum {
UNSPECIFIED,
SPECIFIED
}

record Test {
MyEnum e = "UNSPECIFIED";
}

不幸的是,Java 中的 GenericDatumReader 提示说他找到的是一个字符串,但期望的是一个 MyEnum。

任何人都可以确认这是使用 avro IDL 使用具有默认值的枚举的正确方法吗?在那种情况下,我在其他地方有一个错误。任何人都可以确认这不是这样做并纠正我的方法吗?感谢任何输入!

更新:在我的真实世界版本中,似乎新添加到记录中的枚举导致了问题,即使它具有默认值。这意味着我的读者模式需要一个枚举,而记录不包含一个。模式进化应该能够解决这个问题,但似乎失败了。更多细节:我在这里使用 Pig,而不是直接使用 Java。

最佳答案

好的,事实证明这确实是在 avro IDL 中为枚举指定默认值的正确方法。在我的例子中,一个 union {null, string} 被一个 enum 取代,导致了所有的麻烦。所以请记住:不要更改 avro 中的字段类型!

关于java - 如何使用 avro IDL 为枚举指定默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17854810/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com