Avro-Serialisierung ist bei Hadoop-Benutzern beliebt, aber Beispiele sind so schwer zu finden.Verwenden von Apache avro reflect
Kann mir jemand mit diesem Beispielcode helfen? Ich bin hauptsächlich daran interessiert, die Reflect-API zum Lesen/Schreiben in Dateien und zum Verwenden der Union- und Null-Anmerkungen zu verwenden.
public class Reflect {
public class Packet {
int cost;
@Nullable TimeStamp stamp;
public Packet(int cost, TimeStamp stamp){
this.cost = cost;
this.stamp = stamp;
}
}
public class TimeStamp {
int hour = 0;
int second = 0;
public TimeStamp(int hour, int second){
this.hour = hour;
this.second = second;
}
}
public static void main(String[] args) throws IOException {
TimeStamp stamp;
Packet packet;
stamp = new TimeStamp(12, 34);
packet = new Packet(9, stamp);
write(file, packet);
packet = new Packet(8, null);
write(file, packet);
file.close();
// open file to read.
packet = read(file);
packet = read(file);
}
}
Das gesehen. Das ist zum Schreiben in einen Stream gedacht. Wenn ich also in eine Datei geschrieben habe, vermute ich, dass sie den Header nicht enthalten wird. Wenn dies der Fall ist, wird es wahrscheinlich nicht möglich sein, sie in einer anderen Programmiersprache zu interpretieren. Das Beispiel behandelt auch nicht die Verwendung komplexerer Datenstrukturen mit nullbaren Feldern oder Vereinigungen. – fodon
Ich stimme @fodon zu. Ich würde gerne ausführlichere Beispiele sehen, da ich glaube, dass einige Fehler existieren, die die Tests nicht berücksichtigen. – Dan
@LordAragon der Link funktioniert nicht mehr. Dies ist ein weiterer Grund dafür, dass Sie den tatsächlichen Inhalt auch von der Referenz weitergeben. – Sankalp