2016-09-18 4 views
0

Ich lerne Spark, und versuche, ganz einfache App zu schreiben. Als Eingabe habe ich log-String, der String Transformation mit Spark

INFO - {timestamp} - {path} - {json message} 
INFO - 124534234534534 - test.class - {"message": "something happened"] 

ich es Elasticsearch geben wollen wie

aussieht. Also muß ich {Zeitstempel} nehmen und es zu neuem Feld {json-Nachricht}, so sollte es aussehen

{"timestamp": "1234343132", "message": "something happened"} 

mir jemand mit dieser Transformation helfen kann mit Hilfe von Java?

+1

Können Sie auch Ihre eigenen Versuche, dieses Problem zu lösen verwenden? –

+0

Ich mache es einfach in reinem Java, ohne Funken. Versucht, einige Beispiele mit Transformation zu finden (keine Wortzählung) - alle auf scala. Wenn ich etwas verpasst habe - bitte weisen Sie mich auf einen Artikel oder eine ähnliche Probe hin – Andriy

Antwort

1
  1. Erstellen einer Function<String, String>, die eine Reihe von Protokoll nimmt und JSON-String.

    Function<String, String> f = new Function<String, String>() { 
        public String call(String s) { return ...; } 
    } 
    
  2. Daten lesen SparkContext.textFile

    JavaSparkContext sc = ...; 
    JavaRDD<String> rdd = sc.textFile(...) 
    
  3. map erstellt RDD-Funktion definiert in Punkt 1.

    rdd.map(f); 
    
Verwandte Themen