问题描述
我有一个带有嵌套字段的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)中的嵌套字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!