Модель MLlib (RandomForestModel) сохраняет модель с многочисленными небольшими файлами паркета

Я пытаюсь обучить модель MLlib RandomForestRegression с помощью API RandomForest.trainRegressor.

После тренировки, когда я пытаюсь сохранить модель, полученная папка модели имеет размер 6,5 МБ на диске, но в папке данных есть 1120 небольших файлов паркета, которые кажутся ненужными и медленно загружаются / загружаются в s3.

Это ожидаемое поведение? Я конечно перераспределяю помеченные точки, чтобы иметь 1 раздел, но это происходит независимо.

1 ответ

Перераспределение с rdd.repartition(1) перед тренировкой не сильно помогает. Это делает обучение потенциально более медленным, потому что все параллельные операции эффективно последовательны, так как весь процесс параллелизма основан на разделах.

Вместо этого я придумал простой взлом и установил spark.default.parallelism в 1 в качестве процедуры сохранения используйте sc.parallelize метод для создания потока для сохранения.

Имейте в виду, что это повлияет на бесчисленные места в вашем приложении, как groupBy а также join, Мое предложение состоит в том, чтобы извлечь обучающую и сохраненную модель в отдельное приложение и запустить его отдельно.

Другие вопросы по тегам