В чем разница между пакетами Spark ML и MLLIB

я заметил, что есть два LinearRegressionModel классы в SparkML, один в ML и другой в MLLib пакета.

эти два реализованы совершенно по-разному-например, один из MLLib осуществляет Serializable, в то время как другой не делает.

кстати ame правда о RandomForestModel.

почему существует два класса? Что "правильного"? И есть ли способ превратить одно в другое?

2 ответов


o.a.s.mllib содержит старый API на основе RDD в то время как o.a.s.ml содержит новую сборку API вокруг Dataset и ML трубопроводов. ml и mllib достигнут паритет функций в 2.0.0 и mllib медленно устарела (это уже произошло в случае линейной регрессии) и скорее всего будут удалены в следующем выпуске.

поэтому, если ваша цель не обратная совместимость, то "правильный выбор" -o.a.s.ml.


Искра Mllib

Искра.mllib содержит устаревший API, построенный поверх RDDs.

Spark ML

Искра.ml предоставляет API более высокого уровня, построенный поверх фреймов данных для построения трубопроводов ML.

начиная с Spark 2.0, API на основе RDD в spark.пакет mllib есть введен режим обслуживания. Основной API машинного обучения для Spark теперь API на основе DataFrame в spark.пакет ml. Apache spark рекомендуется использовать spark.ml

  • MLlib по-прежнему будет поддерживать API на основе RDD в spark.mllib с исправлениями ошибок.
  • MLlib не будет добавлять новые функции в API на основе RDD.

  • в Искре 2.X releases, MLlib добавит функции в API на основе DataFrames для достижения паритета функций с API на основе RDD.

  • после достижения четности функции (приблизительно оцененной для Spark 2.3), API на основе RDD будет устаревшим.
  • ожидается, что API на основе RDD будет удален в Spark 3.0.

почему MLlib переключается на API на основе фрейма данных?

  • DataFrames обеспечивают более удобный API, чем RDDs. Многие преимущества фреймов данных включают источники данных Spark, запросы SQL/DataFrame, оптимизацию Tungsten и Catalyst и единообразные API на разных языках.

  • в API на основе фреймов данных для MLlib обеспечивает единый API для алгоритмов ML и нескольких языков.

  • DataFrames облегчают практически трубопроводы ML, в частности преобразования характеристики. Подробные сведения см. В руководстве по трубопроводам.

Подробнее читайте doc -https://spark.apache.org/docs/latest/ml-guide.html