2017-07-11 3 views
0

Ich mache einen Benchmark, um Experimente einiger berühmter Zeitungen zu wiederholen.So ändern Sie den Persistlevel im Spark Machine Learning-Beispiel.

Dazu verwende ich Beispiele gebündelt mit Funkenquelle und einen Befehl wie unten, um logistische Regression auszuführen.

./bin/spark-submit --driver-Speicher 6g --conf "spark.memory.fraction = 0,6" examples/src/main/Python/mllib/logistic_regression.py svm.txt 100

Allerdings möchte ich die Speicherebene der Zwischendaten (wie persistent MEMORY_ONLY oder DISK_ONLY) ändern, konnte aber nicht Weg finden. Ich habe logistic_regression.py, classification.py und common.py überprüft, aber diese Dateien enthalten keinen Code für persistente oder Zwischenspeicher für Zwischendaten.

Können Sie mir sagen, wo ist die Datei zu beheben? Vielen Dank im Voraus.

Antwort

1

Natürlich tut es das. Wenn Sie in den Code schauen. Sie können die rdd persistent:

if __name__ == "__main__": 
    if len(sys.argv) != 3: 
     print("Usage: logistic_regression <file> <iterations>", file=sys.stderr) 
     exit(-1) 
    sc = SparkContext(appName="PythonLR") 
    points = sc.textFile(sys.argv[1]).map(parsePoint) 
    # persist rdd 
    points.persist(pyspark.StorageLevel.MEMORY_ONLY) 
+0

Oh, so dass es keinen Cache oder beharrte im ursprünglichen Code immerhin. Töricht mich. Ich dachte, es gibt irgendwo Cache oder Persistenz, weil es so etwas wie //////// 17/07/12 17:36:47 WARN MemoryStore: Nicht genug Platz, um rdd_5_24 im Speicher zwischenzuspeichern! (bisher 29,6 MB berechnet) 17/07/12 17:36:47 INFO MemoryStore: Speicherverbrauch = 441,9 MB (Blöcke) + 73,9 MB (über 2 Aufgaben gemeinsam genutzter Arbeitsspeicher) = 515,9 MB. Speicherlimit = 516,1 MB. 17/07/12 17:36:47 WARN BlockManager: Block rdd_5_24 stattdessen auf Platte festhalten. //////// immer wieder. Vielen Dank! – GSaint

Verwandte Themen