2016-07-13 14 views
1

Ich versuche, JSON-Datei in Spark-Streaming durch Kafka zu analysieren.Ich muss org.apache.spark.rdd.RDD konvertieren [Array [Byte]] zu Array [Byte] in Spark Streaming

Ich schrieb eine Funktion, die Array[Byte] erfordert.

stream.foreachRDD(rdd=> 
    parseAVROToString(rdd) 
) 

ssc.start 

parseAVROToString nutzen zu können, ich Array[Byte] benötigen. ich die folgende Fehlermeldung erhalten:

found : org.apache.spark.rdd.RDD[Array[Byte]] required: Array[Byte] parseAVROToString(rdd) 

Antwort

0

können Sie dies versuchen:

stream.foreachRDD(rdd => { 
    rdd.foreach(record = > parseAVROToString(record)) 
}) 

Aber foreachRDD eine Ausgabeoperation ist die RDDs auf externe Dateien oder Datenbanken verwendet zu speichern unterstreichen. Ich denke, stream.transform könnte in Ihrem Fall nützlich sein.

+0

Ich bin in der Lage, diese Funktion zu übergeben, aber ich bin nicht in der Lage, die Zeichenfolge, die ich durch parseAVROToString Funktion bekommen, wie es in den Stream kommt, gibt es keine Möglichkeit? –

+0

versuchen, dieses 'stream.foreachRDD (RDD => { rdd.foreach (record => { println (parseAVROToString (Aufnahme)) }) })' ** Beachten Sie, dass diese Aufzeichnungen gedruckt wird in Slave-Konsole Knoten ** – avr

+0

funktioniert ohne Fehler, aber ich kann keine Ausgabe sehen !!! –