spark run machine locally learning docs scala apache-spark apache-spark-mllib

scala - run - spark sql



Diferencia entre org.apache.spark.ml.classification y org.apache.spark.mllib.classification (2)

Estoy escribiendo una aplicación de chispa y me gustaría usar algoritmos en MLlib. En el documento API encontré dos clases diferentes para el mismo algoritmo.

Por ejemplo, hay un LogisticRegression en org.apache.spark.ml.classification también un LogisticRegressionwithSGD en org.apache.spark.mllib.classification.

La única diferencia que puedo encontrar es que la de org.apache.spark.ml se hereda de Estimator y se pudo usar en la validación cruzada. Estaba bastante confundido de que se colocan en diferentes paquetes. ¿Hay alguien que sepa la razón de ello? ¡Gracias!


Es boleto de jira

Y desde Design Doc :

MLlib ahora cubre una selección básica de algoritmos de aprendizaje automático, por ejemplo, regresión logística, árboles de decisión, mínimos cuadrados alternos y k-medias. El conjunto actual de API contiene varias fallas de diseño que nos impiden avanzar hacia direcciones prácticas de aprendizaje automático, lo que convierte a MLlib en un proyecto escalable.

El nuevo conjunto de API vivirá en org.apache.spark.ml , y oasmllib quedará en desuso una vez que hayamos migrado todas las funciones a oasml .


La guía mllib chispa dice:

spark.mllib contiene la API original construida sobre RDDs.

spark.ml proporciona una API de nivel superior construida sobre DataFrames para construir tuberías de ML.

y

Se recomienda usar spark.ml porque con DataFrames la API es más versátil y flexible. Pero seguiremos apoyando spark.mllib junto con el desarrollo de spark.ml. Los usuarios deben sentirse cómodos al usar las funciones de spark.mllib y esperar que vengan más funciones. Los desarrolladores deben contribuir con nuevos algoritmos a spark.ml si se ajustan bien al concepto de canalización ML, por ejemplo, extractores de características y transformadores.

Creo que el documento lo explica muy bien.