При локальном сохранении модели PySpark ALS происходит сбой - «Py4JJavaError»: произошла ошибка при вызове o1030.save. : org. apache .spark.SparkException: задание прервано " - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь сохранить модель ALS pyspark, которую я создал локально (в записной книжке Google Colab), чтобы позже использовать ее в облачном экземпляре. Я использую Spark 2.4.5. и Java 8

Я определил модель здесь:

from pyspark.mllib.recommendation import ALS
import math

model = ALS.train(training_RDD, best_rank, seed=seed, iterations=iterations,
                      lambda_=regularization_parameter)
predictions = model.predictAll(test_for_predict_RDD).map(lambda r: ((r[0], r[1]), r[2]))
rates_and_preds = test_RDD.map(lambda r: ((int(r[0]), int(r[1])), float(r[2]))).join(predictions)
error = math.sqrt(rates_and_preds.map(lambda r: (r[1][0] - r[1][1])**2).mean())

с определением здесь training_rdd:

training_RDD, validation_RDD, test_RDD = small_ratings_data.randomSplit([6, 2, 2], seed=42)
validation_for_predict_RDD = validation_RDD.map(lambda x: (x[0], x[1]))
test_for_predict_RDD = test_RDD.map(lambda x: (x[0], x[1])

и данные проанализированы следующим образом:

small_ratings_data = small_ratings_raw_data.filter(lambda line: line!=small_ratings_raw_data_header)\
  .map(lambda line: line.split(",")).map(lambda tokens: (tokens[0],tokens[1],tokens[2])).cache()

(данные взяты из набора данных movielens)

наконец, я пытаюсь сохранить его здесь:

from pyspark.mllib.recommendation import MatrixFactorizationModel

model_path = os.path.join('[my path in google drive]', 'models', 'movie_lens_als')

# Save and load model
model.save(sc, model_path)

Путь диска Google работает для других команд сохранения ( например .to_csv для pandas df

Код ошибки (ниже), к сожалению, для меня непонятен. Может кто-нибудь указать мне, в чем может быть проблема здесь?


Py4JJavaError Traceback (последний последний вызов) в () 5 6 # Сохранение и загрузка модели ----> 7 model.save (s) c, model_path) 8 #same_model = MatrixFactorizationModel.load (s c, model_path)

3 кадра /content/spark-2.4.5-bin-hadoop2.7/python/lib/py4j- 0.10.7-sr c .zip / py4j / protocol.py в get_return_value (ответ, gateway_client, target_id, name) 326 повысить Py4JJavaError (327 "Произошла ошибка при вызове {0} {1} {2}. \ N ". -> 328 формат (target_id,". ", Name), value) 329 else: 330 повысить Py4JError (

Py4JJavaError: Произошла ошибка при вызове o1030.save.: Org. apache. spark.SparkException: задание прервано. в орг. apache .spark.internal.io.SparkHadoopWriter $ .write (SparkHadoopWriter. scala: 100) в орг. apache .spark.rdd.PairRDDФункции $$ anonfun $ saveAsHadoopDase $ 1.apply $ mcV $ sp (PairRDDFunctions. scala: 1096) в орг. apache .spark.rdd.PairRDDFunctions $$ anonfun $ saveAsHadoopDataset $ 1.apply (PairRDDFunctions . scala: 1094) в орг. apache .spark.rdd.PairRDDFunctions $$ anonfun $ saveAsHadoopDataset $ 1.apply (PairRDDFunctions. scala: 1094) в орг. apache .spark.rdd.RDDOperationScope $. withScope (RDDOperationScope. scala: 151) в орг. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 112) в орг. apache .spark.rdd.RDD.withScope (RDD . scala: 385) в орг. apache .spark.rdd.PairRDDFunctions.saveAsHadoopDataset (PairRDDFunctions. scala: 1094) в орг. apache .spark.rdd.PairRDDFunctions $$ anonfun $ saveAsHadoopFile $ mcV $ sp (PairRDDFunctions. scala: 1067) в орг. apache .spark.rdd.PairRDDFunctions $$ anonfun $ saveAsHadoopFile $ 4.apply (PairRDDFunctions. scala: 1032) в орг. apache .spark .rdd.PairRDDFunctions $$ anonfun $ saveAsHadoopFile $ 4.apply (PairRDDFunctions. scala: 1032) в org. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 151) в org. * .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 112) в org. apache .spark.rdd.RDD.withScope (RDD. scala: 385) в org. apache .spark .rdd.P airRDDFunctions.saveAsHadoopFile (PairRDDFunctions. scala: 1032) в орг. apache .spark.rdd.PairRDDFunctions $$ anonfun $ saveAsHadoopFile $ 1.apply $ mcV $ sp (PairRDDFunctions. scala: 958) в 1066 или 958). * .spark.rdd.PairRDDFunctions $$ anonfun $ saveAsHadoopFile $ 1.apply (PairRDDFunctions. scala: 958) в орг. apache .spark.rdd.PairRDDFunctions $$ anonfun $ saveAsHadoopFile $ 1.apply (10). : 958) в орг. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 151) в орг. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 112 ) в org. apache .spark.rdd.RDD.withScope (RDD. scala: 385) в org. apache .spark.rdd.PairRDDFunctions.saveAsHadoopFile (PairRDDFunctions. scala: 957) в орг. apache .spark.rdd.RDD $$ anonfun $ saveAsTextFile $ 1.apply $ mcV $ sp (СДР. scala: 1544) в орг. apache .spark.rdd.RDD $$ anonfun $ saveAsTextFile $ 1.apply (СДР. scala: 1523) в орг. apache .spark.rdd.RDD $$ anonfun $ saveAsTextFile $ 1.apply (СДР. scala: 1523) в орг. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. * 1 086 *: 151) в орг. apache .spark.rdd.RDDOperationScope $ .withScope (RDDOperationScope. scala: 112) в орг. apache .spark.rdd.RDD. withScope (RDD. scala: 385) в org. apache .spark.rdd.RDD.saveAsTextFile (RDD. scala: 1523) в org. apache .spark.mllib.recommendation.MatrixFactorizationModel $ SaveLoadV1_0 $ .save (MatrixFactorizationModel. scala: 378) в орг. apache .spark.mllib.recommendation.MatrixFactorizationModel.save (MatrixFactorizationModel. scala: 216) в sun.reflect.NativeMethodAccessorImpl.invoke .reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl. java: 62) в sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl. java: 43) в java method.hoke : 498) в py4j.reflection.MethodInvoker.invoke (MethodInvoker. java: 244) в py4j.reflection.ReflectionEngine.invoke (ReflectionEngine. java: 357) в py4j.Gateway.invoke (Gateway. java: 282) в py4j.commands.AbstractCommand.invokeMethod (AbstractCommand. java: 132) в py4j.commands.CallCommand.execute (CallCommand. java: 79) в py4j.GatewayConnection.run (GatewayConnection. java: 238 ) на java .lang.T hread.run (Thread. java: 748) Причина: org. apache .spark.SparkException: задание прервано из-за сбоя этапа: задание 0 на этапе 1441.0 не выполнено 1 раз, последний сбой: потерянное задание 0.0 на этапе 1441.0 (TID 1843, localhost, драйвер исполнителя): java .io.IOException: Mkdirs не удалось создать файл: / content / drive / My% 20Drive / Data-Engineering / indiv_d-eng / models / movie_lens_als / metadata / _tevent / 0 / _tevent / попытки_20200416133708_1730_m_000000_0 (существует = false, cwd = file: / content) в org. apache .had oop .fs.ChecksumFileSystem.create (ChecksumFileSystem. java: 455) в org. * 1114. имел oop .fs.ChecksumFileSystem.create (ChecksumFileSystem. java: 440) в орг. apache .had oop .fs.FileSystem.create (FileSystem. java: 911) в орг. apache .had oop .fs.FileSystem.create (FileSystem. java: 804) в орг. apache .had oop .mapred.TextOutputFormat.getRecordWriter (TextOutputFormat. java: 123) в орг. apache .spark.internal.io.HadoopMapRedWriteConfigUtil.initWriter (SparkHadoopWriter. scala: 230) в орг. apache .spark.internal.i o.SparkHadoopWriter $ .org $ apache $ spark $ internal $ io $ SparkHadoopWriter $$ executeTask (SparkHadoopWriter. scala: 120) в организации. apache .spark.internal.io.SparkHadoopWriter $$ anonfun $ 3.apply (SparkHard . scala: 83) в орг. apache .spark.internal.io.SparkHadoopWriter $$ anonfun $ 3.apply (SparkHadoopWriter. scala: 78) в орг. apache .spark.scheduler.ResultTask.runTask (ResultTask. scala: 90) в org. apache .spark.scheduler.Task.run (Task. scala: 123) в org. apache .spark.executor.Executor $ TaskRunner $$ anonfun $ 10 .apply (Исполнитель. scala: 408) в орг. apache .spark.util.Utils $ .tryWithSafeFinally (Utils. scala: 1360) в орг. apache .spark.executor.Executor $ TaskRunner. выполнить (Executor. scala: 414) в java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. *: 624) в java .lang.Thread.run (Тема. java: 748)

Отслеживание стека драйверов: в орг. apache .spark.scheduler.DAGScheduler.org $ apache $ spark $ планировщик $ DAGScheduler $$ неудачу JobAndIndependentStages (DAGScheduler. scala: 1891) в орг. apache .spark.scheduler.DAGScheduler $$ anonfun $ abortStage $ 1.apply (DAGScheduler. scala: 1879) в орг. apache .spark.scheduler. DAGScheduler $$ anonfun $ abortStage $ 1.apply (DAGScheduler. scala: 1878) в scala .collection.mutable.ResizableArray $ class.foreach (ResizableArray. scala: 59) в scala .collection.mutable. ArrayBuffer.foreach (ArrayBuffer. scala: 48) в орг. apache .spark.scheduler.DAGScheduler.abortStage (DAGScheduler. scala: 1878) в орг. apache .spark.scheduler.DAGScheduler $$ anonfun $ handleTaskSetFailed $ 1.apply (DAGScheduler. scala: 927) в орг. apache .spark.scheduler.DAGScheduler $$ anonfun $ handleTaskSetFailed $ 1.apply (DAGScheduler. scala: 927) в scala .Option. foreach (Option. scala: 257) в орг. apache .spark.scheduler.DAGScheduler.handleTaskSetFailed (DAGScheduler. scala: 927) в орг. apache .spark.scheduler.DAGSchedulerEventProcessL oop .doOnReceive (DAGScheduler. scala: 2112) в орг. apache .spark.scheduler.DAGSchedulerEventProcessL oop .onReceive (DAGScheduler. * 11) org. apache .spark.scheduler.DAGSchedulerEventProcessL oop .onReceive (DAGScheduler. scala: 2050) в org. apache .spark.util.EventLoop $$ anon $ 1.run (EventL oop. scala: 49) в орг. apache .spark.scheduler.DAGScheduler.runJob (DAGScheduler. scala: 738) в орг. apache .spark.SparkContext.runJob (SparkContext. scala: 2061) в org. apache .spark.SparkContext.runJob (SparkContext. scala: 2082) в org. apache .spark.SparkContext.runJob (SparkContext. scala: 2114) в org. apache .spark. internal.io.SparkHadoopWriter $ .write (SparkHadoopWriter. scala: 78) ... еще 41 Причина: java .io.IOException: Mkdirs не удалось создать файл: / content / drive / My% 20Drive / Data- Инженерное дело / indiv_d-eng / models / movie_lens_als / metadata / _teven / 0 / _tevent / попытки_20200416133708_1730_m_000000_0 (существует = false, cwd = file: / content) в организации. apache .had oop .fs.ChecksumFileSystem.create (ChecksumFileSystem. java: 455) в орг. apache .had oop .fs.ChecksumFileSystem.create (ChecksumFileSystem. java: 440) в орг. apache .had oop .fs.FileSystem.create (FileSystem. java: 911) в org. apache .had oop .fs.FileSystem.create (FileSystem. java: 804) в org. apache. имел oop .mapred.TextOutputFormat.getRecordWriter (TextOutputFormat. java: 123) в орг. apache .spark.internal.io.HadoopMapRedWriteConfigUtil.initWriter (SparkHadoopWriter. scala: 230) или .spark.internal.io.SparkHadoopWriter $ .org $ apache $ spark $ internal $ io $ SparkHadoopWriter $$ executeTask (SparkHadoopWriter. scala: 120) в орг. apache .spark.internal.io.SparkHadoopWriter $$ anonfun $ 3.apply (SparkHadoopWriter. scala: 83) в орг. apache .spark.internal.io.SparkHadoopWriter $$ anonfun $ 3.apply (SparkHadoopWriter. scala: 78) в орг. apache .spark. scheduler.ResultTask.runTask (ResultTask. scala: 90) в орг. apache .spark.scheduler.Task.run (Task. scala: 123) в орг. apache .spark.executor.Executor $ TaskRunner $$ anonfun $ 10.appl y (Исполнитель. scala: 408) в орг. apache .spark.util.Utils $ .tryWithSafeFinally (Utils. scala: 1360) в орг. apache .spark.executor.Executor $ TaskRunner.run (Исполнитель. scala: 414) в java .util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor. java: 1149) в java .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor. * : 624) ... еще 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...