Tôi tự hỏi có thể có mảng tùy chọn hay không. Giả sử một sơ đồ như thế này:mảng tùy chọn trong lược đồ avro
{
"type": "record",
"name": "test_avro",
"fields" : [
{"name": "test_field_1", "type": "long"},
{"name": "subrecord", "type": [{
"type": "record",
"name": "subrecord_type",
"fields":[{"name":"field_1", "type":"long"}]
},"null"]
},
{"name": "simple_array",
"type":{
"type": "array",
"items": "string"
}
}
]
}
Đang cố gắng để viết một bản ghi Avro không có "simple_array" sẽ cho kết quả trong một NPE trong datafilewriter. Đối subrecord nó chỉ là tốt, nhưng khi tôi cố gắng để xác định các mảng như tùy chọn:
{"name": "simple_array",
"type":[{
"type": "array",
"items": "string"
}, "null"]
Nó không dẫn đến một NPE nhưng một ngoại lệ thời gian chạy:
AvroRuntimeException: Not an array schema: [{"type":"array","items":"string"},"null"]
Cảm ơn.
Có cùng vấn đề với danh sách java, câu trả lời của bạn đã giải quyết được sự cố của tôi. Cảm ơn! – forhas
Tôi gặp lỗi tương tự. Trong thiết lập của tôi, tôi đang cố gắng xử lý tệp Avro bằng chương trình Java MapReduce. Công việc đã thành công. Giai đoạn tiếp theo của datapipeline là tạo một bảng hive (avroSerde) trên dữ liệu được chuyển đổi, Bảng cũng được tạo thành công nhưng khi tôi cố gắng truy vấn bảng bằng cách sử dụng hql, (lần lượt thực hiện một công việc Mapreduce), công việc thất bại với "Lỗi: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException: Lỗi Runtime Hive khi xử lý có thể ghi" – venBigData