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

读取 Avro 文件会给出 AvroTypeException:缺少必填字段错误(即使新字段在架构中声明为 null)

马银龙
2023-03-14

我正在尝试反序列化/读取avro文件,Avro数据文件没有新字段。即使新字段在模式中被声明为null,它也应该是可选的。但是它仍然给我一个强制性的错误。

线程“main”org . Apache . avro . avrotypeexception中出现异常:找到com.kiran.avro.User,应为com.kiran.avro.User,缺少必需字段loc

AVRO 架构声明:

{"name": "loc", "type": ["string", "null"]}

使用代码读取文件:

DatumReader<User> userDatumReader = new SpecificDatumReader<User>(User.class);
DataFileReader<User> dataFileReader = new DataFileReader<User>(file, userDatumReader);

还有其他方法可以声明可选字段吗?

感谢您的提示/建议!!

共有1个答案

燕元明
2023-03-14

“文件”的内容是什么?

我可能错了,但是如果您将schema中的一个字段定义为< code>{"name": "loc "," type": ["string "," null"]},您仍然需要定义一个< code>loc字段,即使对于< code>null。它应该类似于文件中的< code >“loc”:null 。

尝试将“默认”添加到此字段声明中:

{"name" : "loc",
"type" :  ["null","string"] ,
"default" : null}

然后,应该可以在文件中省略此字段。

您还可以看到这个问题Avro:反序列化json - 带有可选字段的架构,以获取一些其他信息和示例。

 类似资料:
  • 我使用的是NiFi(v1.2)处理器ConvertJSONToAvro。我无法解析一个“记录”类型中仅包含2个元素中的1个元素的记录。数据中也允许完全缺少该元素。我的Avro模式不正确吗? 架构片段: 如果“personname”同时包含“first”和“last”,它就可以工作,但是如果它只包含其中一个元素,它就会失败,错误是:无法转换字段personname:无法解析联合:{“last”:“S

  • 我正在使用pdfbox-1.8.12从PDF中读取内容以获取XFA。我已经能够成功地为大多数文件获取XFA,而没有遗漏任何字段值。 问题在于一些文件,如错误。pdf。我有许多字段没有像CIN这样的值,但当我在任何PDF查看器、foxit或Acrobat中打开文件时,它会显示该字段。 然后将字节[]转换为字符串。 这是此文件的xfa,如果您在此搜索“U72300DL1996PLC075672”,它将

  • 请帮忙。注册页面一直显示此字段是必需的错误。我是初学者谢谢 模型。派克 来自django。数据库导入模型 从django.contrib.auth.models导入AbstractBaseUser, BaseUserManager 类用户管理器(BaseUserManager): 类帐户(AbstractBaseUser): views.py 来自django。快捷方式导入、渲染、重定向 来自dj

  • 问题内容: 我从我的android应用程序中的新功能开始,这将有助于填写某些PDF表格。 我发现最好的解决方案是使用iText库。 我可以读取文件,也可以从文档中读取AcroFields,但是是否有可能发现特定字段标记为必填项? 我试图在API文档和Internet上找到此选项,但是没有什么可以帮助解决此问题。 问题答案: 请查看我的书的 13.3.4节,标题为“ AcroForms重新访问”。清

  • 下面是XSD。 下面是xml文件。 当尝试使用http://www.utilities-online.info/xsdvalidation验证它时,我得到以下错误 第2行62:org.xml.sax.SAXParseException;行号:2;列号:62;CVC-ELT.1:找不到元素“Message”的声明。

  • 我已经建立了一个字段声明列表,需要找出每个字段的名称: 我找不到任何检索字段名称的方法。 奇怪的是,其中一个构造函数确实接受一个字段参数,所以不确定为什么它没有getter。我需要从另一个节点获取它吗? FieldDeclaration(节点列表修饰符、类型、字符串名称)创建一个FieldDeclaration。https://www.javadoc.io/doc/com.github.javap