本文介绍了访问AVRO GenericRecord(Java/Scala)中的嵌套字段的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有嵌套字段的GenericRecord.当我使用 genericRecord.get(1)时,它返回一个包含嵌套AVRO数据的对象.

I have a GenericRecord with nested fields. When I use genericRecord.get(1) it returns an Object that contains the nested AVRO data.

我希望能够访问 genericRecord.get(1).get(0)之类的对象,但是我不能,因为AVRO返回了一个对象.

I want to be able to access that object like genericRecord.get(1).get(0), but I can't because AVRO returns an Object.

有没有解决这个问题的简单方法?

Is there an easy way around this?

当我做类似 returnedObject.get("item")的操作时,它说 item不是returnObject的成员.

When I do something like returnedObject.get("item") it says item not a member of returnedObject.

推荐答案

我想出了一种方法.将返回的 Object 强制转换为 GenericRecord .

I figured out one way to do it. Cast the returned Object as a GenericRecord.

示例(标量):

val data_nestedObj =(data.get("nestedObj")).asInstanceOf [GenericRecord]

然后我可以通过执行以下操作来访问该新GenericRecord中的嵌套字段:

Then I can access a nested field within that new GenericRecord by doing:

data_nestedObj.get("nestedField")

这对我来说足够好了.

这篇关于访问AVRO GenericRecord(Java/Scala)中的嵌套字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-11 17:24