La serializzazione di Avro è popolare con gli utenti di Hadoop, ma gli esempi sono così difficili da trovare.Utilizzo di apro avro reflect
Qualcuno può aiutarmi con questo codice di esempio? Sono principalmente interessato all'utilizzo dell'API di Reflect per leggere/scrivere in file e utilizzare le annotazioni Union e 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);
}
}
Visto quello. Questo è pensato per scrivere su un flusso. Quindi, se scritto su un file, sospetto che non contenga l'intestazione. Se è così, probabilmente non sarà possibile interpretarlo in un diverso lagnguage di programmazione. Inoltre, l'esempio non affronta l'uso di strutture dati più complesse con campi o unioni nullable. – fodon
Sono d'accordo con @fodon. Mi piacerebbe essere in grado di vedere più esempi prolissi poiché credo che esistano alcuni bug che i test non stanno tenendo in considerazione. – Dan
@LordAragon il collegamento non funziona più. Questo è un altro motivo per cui è buona norma condividere contenuti reali anche dal riferimento. – Sankalp