2017-12-16 3 views
0

Java-Neuling hier. Ich habe Mühe zu verstehen, wie man ParseJsons in meiner Apache Beam-Pipeline verwendet, um eine Zeichenfolge PCollection in eine Objekt PCollection zu analysieren.Wie verwende ich ParseJsons in Apache Beam/Google Dataflow?

Mein Verständnis ist, dass ich zuerst eine Klasse definieren muss, die der JSON-Struktur entspricht, und dann ParseJsons verwenden, um die JSON-Zeichenfolgen Objekten dieser Klasse zuzuordnen.

Die ParseJsons Dokumentation sieht mir jedoch kryptisch. Ich bin mir nicht sicher, wie ich die Transformation mit Apache Beam tatsächlich durchführen soll. Könnte mir jemand ein schnelles und schmutziges Beispiel geben, wie man Zeilen getrennte JSON-Strings analysiert?

Hier ist einer der Versuche, die ich gemacht habe, aber leider ist die Syntax falsch.

class Product { 
    private String name = null; 
    private String url = null; 
} 

p.apply("ReadLines", TextIO.read().from(options.getInputFile())) 
.apply(new ParseJsons.of(Product)) 
.apply("WriteCounts", TextIO.write().to(options.getOutput())); 
+0

bitte immer die komplette Fehlermeldung Sie bekommen. – jkff

Antwort

0

Ich glaube, Sie wollen:

PCollectoion<Product> = 
    p.apply("ReadLines", TextIO.read().from(options.getInputFile())) 
    .apply(new ParseJsons.of(Product.class)) 
    .setCoder(SerializableCoder.of(MyPojo.class)); 
Verwandte Themen