Ich teste das funke default PageRank-Beispiel und setze die Iteration auf 1024, dann stößt es stackoverflowerror. Ich habe auch dieses Problem in meinem anderen Programm getroffen. Wie kann ich es lösen.
%Vor%Ich poste den Fehler hier.
%Vor%Es liegt daran, dass diese Transformationen in der for-Schleife sehr lange Abhängigkeiten in Ihrer rdd erzeugen. Wenn Sie versuchen, Ihren Spark-Job auszuführen, würde der rekursive Besuch auf Ihrer RDD Stackoverflow-Fehler verursachen.
Um dieses Problem zu lösen, können Sie checkpoint()
auf Ihrer rdd verwenden. cache()
würde dir nicht helfen, deine rdd sofort auszuwerten.
Sie sollten daher cache()
und checkpoint()
nach bestimmten Iterationen auf Ihrer Zwischen-rdd aufrufen und sie manuell auswerten, um ihre Abhängigkeiten zu löschen.
Tags und Links scala apache-spark iteration stack-overflow