hier nicht zu beschleunigen scheint ich pyspark bin mit einem einfachen wordcount zu tun, habe ich den Cache-Methode, aber scheint nicht das zweite Mal zu beschleunigen betreibe ich den Code:pyspark Cache
from pyspark import SparkContext
from time import time
if __name__=='__main__':
sc=SparkContext()
rdd=sc.textFile("shakespear.txt")
rdd.cache()
t1=time()
rdd.flatMap(lambda r:r.split(" "))\
.map(lambda w:(w,1))\
.reduceByKey(lambda x,y:x+y)\
.collect()
t2=time()
print t2-t1
t3=time()
rdd.flatMap(lambda r:r.split(" "))\
.map(lambda w:(w,1))\
.reduceByKey(lambda x,y:x+y)\
.collect()
t4=time()
print t4-t3
dann ist das Ergebnis:
3.87242698669
2.49692296982
Wenn ich die rdd.cache Kommentar aus(), das Ergebnis ist:
3.58677482605
2.52048921585
Beim Lesen des Funken tun Ich habe gehört, dass Cache den Prozess sehr beschleunigen würde, richtig? Aber hier macht es keinen großen Unterschied, könnte mir jemand einen Hinweis auf dieses spezielle Thema geben? Eine allgemeine Einführung in die Funktionsweise von Spark-Cache wäre großartig! Vielen Dank!