İsteğe bağlı bir dizinin mümkün olup olmadığını merak ediyorum. en bir şema böyle varsayalım:avro şemada isteğe bağlı dizi
{
"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"
}
}
]
}
"simple_array" datafilewriter bir NPE neden olacaktır olmadan bir avro rekor yazmaya çalışıyorum. subrecord için gayet güzel, ama ben isteğe bağlı olarak diziyi tanımlamak çalıştığınızda:
{"name": "simple_array",
"type":[{
"type": "array",
"items": "string"
}, "null"]
Bir NPE ama çalışma zamanı istisnası yol açmaz:
AvroRuntimeException: Not an array schema: [{"type":"array","items":"string"},"null"]
teşekkürler.
java listeleri ile aynı sorun, cevap sorunumu çözdü vardı. Teşekkürler! – forhas
Aynı hatayı alıyorum. Kursumda MapReduce Java programını kullanarak bir Avro dosyasını işlemeye çalışıyorum. İş başarıyla geçti. Veri yolunun bir sonraki aşaması, dönüştürülmüş veriler üzerinde bir kovan tablosu (avroSerde) oluşturmaktır. Tablo da başarıyla oluşturulmaktadır, ancak tabloyu hql kullanarak sorgulamaya çalıştığımda (bu da bir mapreduce İşi yürütmektedir), iş başarısız olur. "Hata: java.lang.RuntimeException: org.apache.hadoop.hive.ql.metadata.HiveException ile: yazılabilir işlenirken Hive Runtime Error" – venBigData