私はapache avroを使用していて、自分のスキーマから論理型を取得したいと考えています。私は関数getLogicalType()
を使ってみましたが、nullを返します。私は何が間違っているのか分からない。私のスキーマは以下の通りです。続きapacheのgetLogicalType()関数avroapiが存在する場合でもnullを返します。
{
"namespace": "example.avro",
"type": "record",
"name": "User",
"fields": [
{"name": "name", "type": "string"},
{"name": "favorite_number", "type": "int", "logicalType": "decimal", "precision": 2, "scale": "2"},
{"name": "favorite_color", "type": ["string", "null"]}
]
}
私は
for(Schema.Field currField : schema.getFields()) {
field = createFieldList(currField.name(), currField.schema().getType().toString(), currField.schema().getLogicalType());
fields.add(field);
}
を与えます2番目のフィールドに対してのみ* logicalType *を定義したので、getLogicalType()は少なくとも1番目と3番目のフィールドでnullを返します。 createFieldList()で使用する代わりに、各フィールドにgetLogicalTypeの結果を出力してみてください。 – LLL
いいえ、すべてnullになります – Hazzard