2016-06-29 10 views
0

einzelnes Element Trans habe ich eine RDD von Zeichenketten wie untereine RDD von n Elementen in eine RDD von

val rdd1: RDD[String] = RDD("a","b","c","d") 

Ich möchte die Elemente der oben RDD verketten und in ein RDD von einzelnen Element transformieren wie unter

RDD("a,b,c,d") 

Was ist der beste Weg, dies zu tun?

+0

Möchten Sie wirklich eine 'RDD' eines einzelnen Elements? Was ist der Wert für die Verwendung einer _distributed_-Sammlung, wenn sie nur einen Eintrag enthält? Wenn nicht, und Sie nur an diesem einzelnen Datensatz interessiert sind, können Sie 'rdd1.collect() aufrufen. MkString (", ")' –

+0

Ich wollte das Ergebnis in HDFS mit der Methode rdd saveAsTextFile speichern. Aus diesem Grund wollte ich es in eine andere RDD umwandeln. – yAsH

+0

@raHul Sie müssen das nicht tun. Wenn Sie, wie bereits erwähnt, alle Daten in eine einwertige RDD zerquetschen, macht es keinen Sinn, ein verteiltes Verarbeitungs-Framework zu verwenden. 'saveAsTextFile' übernimmt das für Sie und verteilt Ihre Ergebnisse auf HDFS. –

Antwort

4

Verwenden Sie die glom Funktion: mit der mkString Funktion

val res: RDD[Array[String]] = RDD("a","b","c","d").glom 
// > res = RDD(Array("a", "b", "c", "d")) 

Anschließend können Sie das Array in eine Zeichenfolge konvertieren.

Verwandte Themen