В чем разница между пакетами 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