Ich habe nichts in der Dokumentation darüber gefunden, nur generische bla über Standardwerte. Meine Vermutung war, dass es sollte wie folgt funktionieren:Wie definiere ich einen Standardwert für eine Enumeration mit avro IDL?
enum MyEnum {
UNSPECIFIED,
SPECIFIED
}
record Test {
MyEnum e = "UNSPECIFIED";
}
Die GenericDatumReader in Java leider beklagt, dass er einen String findet, erwartet aber eine MyEnum.
Kann jemand bestätigen, dass dies der richtige Weg ist, eine Enum mit einem Standardwert mit avro IDL zu verwenden? In diesem Fall habe ich einen Fehler woanders. Kann mir jemand bestätigen, dass dies nicht der richtige Weg ist, um mich zu korrigieren? Jede Eingabe wird geschätzt!
Update: In meiner realen Version von diesem scheint es, dass eine neu hinzugefügte enum zum Datensatz das Problem verursacht, obwohl es einen Standardwert hat. Das bedeutet, dass mein Leserschema eine Aufzählung erwartet, während der Datensatz keine enthält. Die Schemaevolution sollte das beheben können, scheint aber zu scheitern. Mehr Details: Ich arbeite mit Pig hier, nicht direkt Java.
Danke für die Antwort, aber das ist keine Option für mich, da ich von der avro-Schema-Entwicklung abhängig bin (was bei einem neu hinzugefügten Enum gerade fehlzuschlagen scheint). – LiMuBei