2016-09-27 4 views
0

Ich bin irgendwie ahnungslos, wie das folgende in Funken zu tun. Ich habe eine Textdatei, die Daten in folgendem Format enthält:Spark RDD Datenauswahl

timestamp A,B,C (\n) 
A,B,C (\n) 
A,B,C (\n) 
... 
timestamp A,B,C (\n) 
A,B,C (\n) 
... 

ich es in einer RDD mit sc.textFile(<path>) lese jede Zeile als separaten Eintrag der natürlich behandelt.

Wie kann ich den Zeitstempel von der ersten Zeile trennen, also im Grunde erstellen Sie eine Karte von Zeitstempel -> Eintrag1, Eintrag2 ... wo jeder Eintrag besteht aus A, B, C? A, B, C sind immer der gleiche Typ bzw. nicht der gleiche Wert.

+0

Was sind Eintrag1 und Eintrag2? Ist A, B, C in der Zeitstempelzeile gleich wie A, B, C in der nächsten Zeile? –

+0

'wo jeder Eintrag besteht aus A, B, C' so Eintrag 1 und Eintrag 2 sind A, B, C; ja – Dimebag

+0

Wenn alle A, B, C gleich sind, könnten Sie nicht einfach die Zeilen filtern, die mit einem Zeitstempel beginnen, und dann einfach die Karte mit diesen Zeilen erstellen? –

Antwort

0

Der einzige/beste Weg, wie mir in den Kommentaren angedeutet, ist wholeTextFiles() zu verwenden. Danach teile ich den String mit einem Regex des Timestamps und zuletzt einem weiteren Split auf \n.