Начиная с spark 2.3:
Вы можете сделать это, используя метод setParallelism(n)
с CrossValidator
или при создании. то есть:
cv.setParallelism(2)
or
cv = CrossValidator(estimator=lr, estimatorParamMaps=grid, evaluator=evaluator, \
parallelism=2) // Evaluate up to 2 parameter settings in parallel
До искры 2.3:
Вы не можете сделать это в Spark Scala. Вы не можете распараллелить перекрестную проверку в Scala Spark.
Если вы хорошо прочитали документацию spark-sklearn
, GridSearchCV распараллелен, а обучение модели — нет. Таким образом, это бесполезно в масштабе. Кроме того, вы можете распараллелить перекрестную проверку для Spark Scala API благодаря знаменитому SPARK-5063
:
Преобразования и действия RDD могут вызываться только драйвером, а не внутри других преобразований; например, rdd1.map(x => rdd2.values.count() * x) недействителен, поскольку преобразование значений и действие подсчета не могут быть выполнены внутри преобразования rdd1.map. Дополнительные сведения см. в SPARK-5063.
Выдержка из README.md : сильный>
Этот пакет содержит некоторые инструменты для интеграции вычислительной среды Spark с популярной машинной библиотекой scikit-learn. Среди других инструментов:
обучайте и оценивайте несколько моделей scikit-learn параллельно. Это распределенный аналог многоядерной реализации, включенной по умолчанию в scikit-learn. легко конвертировать кадры данных Spark в пустые ndarrays или разреженные матрицы. (экспериментальный) распространять разреженные матрицы Scipy как набор данных разреженных векторов. Он фокусируется на задачах с небольшим объемом данных, которые можно выполнять параллельно.
для небольших наборов данных распределяет поиск параметров эстиматора (GridSearchCV в scikit-learn), используя Spark, для наборов данных, не помещающихся в памяти, рекомендуем использовать распределенную реализацию в Spark MLlib.
ПРИМЕЧАНИЕ. Этот пакет распределяет простые задачи, такие как перекрестная проверка поиска в сетке. Он не распространяет отдельные алгоритмы обучения (в отличие от Spark MLlib).
person
eliasah
schedule
05.01.2017