Модель Spark не видна ОС после сохранения в pyspark - PullRequest
0 голосов
/ 20 октября 2018

Моя цель - сохранить модель искры и затем сжать ее, но у меня возникли проблемы, потому что os.exists(path) не находит только что созданную модель.Это код:

...
model.write().save(model_location)
model2 = PipelineModel(PipelineModel).load(model_location)  # the model is loaded
print(os.path.exists(model_location))  # prints False
shutil.make_archive(model_location, 'zip', model_location)  # this fails, file not found

Я думаю, что причина проблемы заключается в следующем: os.path.exists () лежит , но я до сих пор не знаю, как это исправить.Очевидно, что модель создана, поскольку я могу затем загрузить ее в модель2, и после завершения прогона папка с моделью будет там.Но, кроме того, что-то вроде ожидания, пока папка не будет создана, не работает.

Или, может быть, это проблема с конфигурацией искры, я делаю это в кластере Ambari, и код работает на моей локальной машинено не там, так что я не уверен, в чем проблема.

1 Ответ

0 голосов
/ 20 октября 2018

Ваша ошибка заключается в предположении, что модель будет сохранена в локальной файловой системе, совместимой с POSIX.

Модели ML сохраняются с использованием стандартных утилит Spark SQL, поэтому будут использовать файловую систему по умолчанию, которая при обычных операцияхбудет указывать на распределенную файловую систему, такую ​​как HDFS.

Скорее всего, вам придется скопировать модель (которая хранится в виде файлов Parquet) в локальную файловую систему и использовать ее оттуда, хотя и из общего кода.описание вам скорее нужен один из методов, описанных в Как обслуживать модель Spark MLlib?

...