2016-07-28 17 views
-5

Ich habe dieses Stück Code in ScalaPython Equivalence des Scala-Code in Spark-

val file = sc.textFile(filelocation) 

    //Inital edge list that is to be passed to Iterate function 
    var edges : RDD[(Int, Int)] = file.flatMap{ 
     s => val nodes = s.split("\\s+") 
     Seq((nodes(0).toInt, nodes(1).toInt)) 
    } 

    edges.collect() 

Ich bin eine lokale Datei, deren Eingang zu lesen ist

1 0 
0 3 
3 4 
2 4 

Der Ausgang des Codes ist:

Array[(Int, Int)] = Array((1,0), (0,3), (3,4), (2,4)) 

Ich möchte dasselbe in Python erreichen. Ich tue dies gerade jetzt

filelocation = "/FileStore/tables/nr8rkr051469528365715/cc_test-3be20.txt" 
file = sc.textFile(filelocation) 
def tokenize(text): 
    row = text.split('\\s+') 
    return row 

result = file.flatMap(tokenize) 

Und ich bin immer dies als eine Ausgabe

Out[5]: [u'1 0', u'0 3', u'3 4', u'2 4'] 
+1

ändern Sie einfach Ihre Split-Zeichenfolge in "" ein einzelnes Leerzeichen. In Python erhält der Split eine Zeichenfolge. – Aquiles

+0

Ich habe das @Aquiles probiert. Es würde mir dies als eine Ausgabe geben [22]: [u '1', u '0', u '0', u '3', u '3', u '4', u '2', u '4'] Aber ich möchte etwas eine Liste von Tupeln für jede Zeile in der Datei – jems

+0

listen das ist einfache Lösung, aber ich weiß nicht, ob es was Sie wollen, aber Sie könnten immer versuchen, [Zeile] oder Liste (Zeile) und sehen Was das tut ... Ich habe nicht die Bibliothek sc, also kann ich nicht testen – Aquiles

Antwort

0

Ändern der flatMap zu map

Das wird an die Arbeit!

Verwandte Themen