Serializacja Avro jest popularna wśród użytkowników Hadoop, ale przykłady są tak trudne do znalezienia.Korzystanie z apache avro reflect
Czy ktoś może mi pomóc w tym przykładowym kodzie? Najczęściej interesuję się korzystaniem z interfejsu Reflect API do odczytywania/zapisywania plików i używania adnotacji Union i Null.
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);
}
}
Widziałem to. To jest przeznaczone do pisania do strumienia. Tak więc, jeśli zapisano do pliku, podejrzewam, że nie będzie zawierać nagłówka. Jeśli tak, prawdopodobnie nie będzie można zinterpretować tego w innym opóźnieniu programowania. Również przykład nie dotyczy użycia bardziej złożonych struktur danych z polami lub związkami zerowymi. – fodon
Zgadzam się z @fodon. Chciałbym zobaczyć bardziej szczegółowe przykłady, ponieważ uważam, że istnieją pewne błędy, których testy nie uwzględniają. – Dan
@LordAragon link już nie działa. Jest to kolejny powód, dla którego dobrą praktyką jest dzielenie się faktyczną treścią również z referencją. – Sankalp