2017-11-09 2 views
-1

Ich versuche, eine bestimmte Spalte aus einer RDD-Daten auszuwählen. Meine Daten sehen so aus:Auswählen einer Spalte in RDD

colA | colB 
1 | cat,bat 
2 | cat 
3 | horse,elephant, mouse 

Ich möchte ColB extrahieren, die unterschiedliche Länge hat. dabei habe ich versucht:

coldata = rdd.map(lambda x: x[1]) 

Das extrahiert nur cat,cat,horse ich die extrahierten Daten werden wollen:

colB 
cat,bat 
cat 
horse,elephant,mouse 

ich die RDD erstellen, indem Sie folgendermaßen vorgehen:

sqlContext = SQLContext(sc) 
data = sc.textFile("filename").map(lambda line: line.split(",")) 
+0

Can Sie zeigen, wie RDD erstellt wird? –

+0

Ich habe den Code zu meinem ursprünglichen Beitrag hinzugefügt. Vielen Dank. – Nivi

+0

ok, und wie colA und colB getrennt sind? Ich nehme an, mit Komma ','? –

Antwort

1

So nach der Diskussion In Kommentaren habe ich herausgefunden, dass Ihre Spalten ein Komma als Trennzeichen haben. Gleichzeitig haben Sie ein Komma, um die Werte in der Spalte "colB" zu trennen. In Ihrem Skript versuchen Sie Spalten zu analysieren, indem Sie sie durch Komma trennen. Also entweder tun Verwendung Semikolon (oder irgendetwas anderes als Trennzeichen für Spalten) oder ändern Trennzeichen für Werte in colB:

Datei:

colA;colB 
1;cat,bat 
2;cat 
3;horse,elephant, mouse 

Dann diesen Code verwenden RDD zu erhalten:

rdd = sc.textFile("filename").map(lambda line: line.split(";")) 
+1

Das funktioniert. Vielen Dank für Ihre Zeit. – Nivi

Verwandte Themen