apache avro를 사용하고 있으며 내 스키마에서 논리 유형을 가져 오려고합니다. 나는 함수 getLogicalType()
을 사용해 보았지만 null을 리턴한다. 나는 틀린 것을 이해하지 못한다. 내 스키마는 다음과 같습니다. 다음apache avro api의 getLogicalType() 함수가 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);
}
을 제공
해야한다 루프를 모든 필드에 대해 정의하고 * logicalType *을 두 번째 필드에만 정의한 경우 getLogicalType()은 적어도 첫 번째 및 세 번째 필드에 대해 null을 반환합니다. createFieldList()에서 사용하는 대신 각 필드에 대해 getLogicalType의 결과를 인쇄 해보십시오. – LLL
아니요, 모두 null로 인쇄됩니다. – Hazzard