Ich habe eine Textdatei sherlock.txt mit mehreren Zeilen Text. Ich lade es in Spark-Shell mit:Effizienz von flatMap vs Karte gefolgt von reduzieren in Spark
val textFile = sc.textFile("sherlock.txt")
Mein Zweck ist es, die Anzahl der Wörter in der Datei zu zählen. Ich bin auf zwei alternative Wege gestoßen, um den Job zu machen.
Zuerst mit flatMap:
textFile.flatMap(line => line.split(" ")).count()
Zweite mit Karte, gefolgt von verringern:
textFile.map(line => line.split(" ").size).reduce((a, b) => a + b)
Beide richtig das gleiche Ergebnis liefern. Ich möchte die Unterschiede in der zeitlichen und räumlichen Komplexität der obigen beiden alternativen Implementierungen kennen, wenn es überhaupt welche gibt?
Konvertiert der Scala-Interpreter beide in die effizienteste Form?