Podcast
Questions and Answers
¿Qué diferencia Spark MLlib de Spark ML?
¿Qué diferencia Spark MLlib de Spark ML?
- Spark MLlib es más rápida entrenando modelos que Spark ML.
- Spark MLlib no permite cachear los resultados de los modelos, mientras que Spark ML sí.
- Spark MLlib ofrece interfaz para DataFrames en todos sus componentes, mientras que Spark ML sigue utilizando RDD y ha quedado obsoleta. (correct)
- Ninguna de las respuestas anteriores es correcta.
¿Qué tipo de componentes ofrece Spark ML?
¿Qué tipo de componentes ofrece Spark ML?
- Solo pipelines que no dan acceso a los estimadores internos.
- Estimadores y transformadores para preparar los datos para el formato requerido por los algoritmos de aprendizaje automático de Spark.
- Las respuestas A y B anteriores son correctas. (correct)
- Estimadores y transformadores para ingeniería de variables y para normalizar datos.
¿Cuál es el método principal de un estimator de Spark ML?
¿Cuál es el método principal de un estimator de Spark ML?
- El método transform.
- El método fit. (correct)
- El método describe.
- El método estimate.
¿A qué interfaz pertenecen los algoritmos de machine learning de Spark cuando aún no han sido entrenados?
¿A qué interfaz pertenecen los algoritmos de machine learning de Spark cuando aún no han sido entrenados?
¿A qué interfaz pertenecen los modelos de Spark ML cuando ya han sido entrenados con datos?
¿A qué interfaz pertenecen los modelos de Spark ML cuando ya han sido entrenados con datos?
¿Qué ocurre si creamos un StringIndexer para codificar las etiquetas de una variable en el dataset de entrenamiento y después creamos otro StringIndexer para codificar los datos de test en el momento de elaborar predicciones?
¿Qué ocurre si creamos un StringIndexer para codificar las etiquetas de una variable en el dataset de entrenamiento y después creamos otro StringIndexer para codificar los datos de test en el momento de elaborar predicciones?
¿Cuál es la estructura principal que maneja Spark Structured Streaming?
¿Cuál es la estructura principal que maneja Spark Structured Streaming?
Spark Streaming permite leer flujos de datos:
Spark Streaming permite leer flujos de datos:
En Spark Streaming, una vez se ejecuta la acción start
:
En Spark Streaming, una vez se ejecuta la acción start
:
¿Qué acciones pueden realizarse en Spark Structured Streaming?
¿Qué acciones pueden realizarse en Spark Structured Streaming?
Flashcards
Spark MLlib
Spark MLlib
Módulo de Spark para limpieza de datos, ingeniería de variables, aprendizaje de modelos distribuidos y ajuste de parámetros.
Esencia de MLlib
Esencia de MLlib
Implementación distribuida de modelos de machine learning usando Spark.
Pipelines en Spark
Pipelines en Spark
Herramienta de Spark para encapsular etapas de preprocesamiento y entrenamiento de modelos.
Despliegue de modelos en producción con Spark
Despliegue de modelos en producción con Spark
Signup and view all the flashcards
Transformador en Spark ML
Transformador en Spark ML
Signup and view all the flashcards
Estimador en Spark ML
Estimador en Spark ML
Signup and view all the flashcards
StringIndexer
StringIndexer
Signup and view all the flashcards
OneHotEncoderEstimator
OneHotEncoderEstimator
Signup and view all the flashcards
Modelos de predicción (Machine learning)
Modelos de predicción (Machine learning)
Signup and view all the flashcards
Pipeline de Spark ML
Pipeline de Spark ML
Signup and view all the flashcards
Spark Structured Streaming
Spark Structured Streaming
Signup and view all the flashcards
Procesamiento de flujos de datos
Procesamiento de flujos de datos
Signup and view all the flashcards
Fuentes de datos de entradas permitidas
Fuentes de datos de entradas permitidas
Signup and view all the flashcards
Fuentes de datos de salidas permitidas
Fuentes de datos de salidas permitidas
Signup and view all the flashcards
Modos de salida en Spark Structured Streaming
Modos de salida en Spark Structured Streaming
Signup and view all the flashcards
¿Qué diferencia Spark MLlib de Spark ML?
¿Qué diferencia Spark MLlib de Spark ML?
Signup and view all the flashcards
¿Qué tipo de componentes ofrece Spark ML?
¿Qué tipo de componentes ofrece Spark ML?
Signup and view all the flashcards
¿Cuál es el método principal de un estimator de Spark ML?
¿Cuál es el método principal de un estimator de Spark ML?
Signup and view all the flashcards
¿A qué interfaz pertenecen los algoritmos de machine learning de Spark cuando aún no han sido entrenados?
¿A qué interfaz pertenecen los algoritmos de machine learning de Spark cuando aún no han sido entrenados?
Signup and view all the flashcards
¿A qué interfaz pertenecen los modelos de Spark ML cuando ya han sido entrenados con datos?
¿A qué interfaz pertenecen los modelos de Spark ML cuando ya han sido entrenados con datos?
Signup and view all the flashcards
¿Qué ocurre si creamos un StringIndexer para codificar las etiquetas de una variable en el dataset de entrenamiento y después creamos otro StringIndexer para codificar los datos de test en el momento de elaborar predicciones?
¿Qué ocurre si creamos un StringIndexer para codificar las etiquetas de una variable en el dataset de entrenamiento y después creamos otro StringIndexer para codificar los datos de test en el momento de elaborar predicciones?
Signup and view all the flashcards
¿Cuál es la estructura principal que maneja Spark Structured Streaming?
¿Cuál es la estructura principal que maneja Spark Structured Streaming?
Signup and view all the flashcards
Spark Streaming permite leer flujos de datos
Spark Streaming permite leer flujos de datos
Signup and view all the flashcards
En Spark Streaming, una vez se ejecuta la acción start
En Spark Streaming, una vez se ejecuta la acción start
Signup and view all the flashcards
¿Qué acciones pueden realizarse en Spark Structured Streaming?
¿Qué acciones pueden realizarse en Spark Structured Streaming?
Signup and view all the flashcards
Función que combina varias columnas en una sola columna de tipo vector
Función que combina varias columnas en una sola columna de tipo vector
Signup and view all the flashcards
StringIndexer
StringIndexer
Signup and view all the flashcards
Función Pipeline
Función Pipeline
Signup and view all the flashcards
Spark Structured Streaming
Spark Structured Streaming
Signup and view all the flashcards
Pipeline de Spark ML
Pipeline de Spark ML
Signup and view all the flashcards
Study Notes
Spark III: Ingeniería para el Procesamiento Masivo de Datos
- Tema 5 se enfoca en módulos de Spark que ofrecen funcionalidad de alto nivel.
Introducción y Objetivos
- Se centra en Spark MLlib, Spark Streaming, y Apache Hive.
- Introduce a los módulos de alto nivel de Spark.
- Presenta las capacidades de Spark MLlib con ejemplos prácticos.
- Explica las ideas básicas de Spark Structured Streaming.
Spark MLlib
- Modulo de Spark para tareas de limpieza de datos e ingeniería de variables.
- Facilita el aprendizaje de modelos en datasets grandes y distribuidos.
- Permite ajuste de parámetros y evaluación de modelos.
Implementación en Spark
- Implementa modelos de manera distribuida.
- Preprocesa variables en datasets grandes.
- Limpia y normaliza los datos.
- Filtra y pasa el dataset resultante al driver para su almacenamiento local si ya no es masivo.
Bibliotecas Adicionales
- Se puede utilizar Scikit-learn de Python o paquetes de R para "machine learning" no distribuido.
Ciclo de Ajuste de Modelo
- Spark proporciona herramientas para cada etapa del ciclo.
- Pipelines encapsulan todas las etapas para asegurar la consistencia del preprocesamiento, refiriéndose a estos pasos como un "all-in-one pipeline".
- La etapa de preprocesamiento adecua los datos al formato esperado por los algoritmos en la API de Spark ML.
Despliegue de Modelos en Producción con Spark
- No está diseñado para explotación online de modelos entrenados, sino para entrenar modelos en modo “batch”.
- Utiliza datos offline almacenados en HDFS para entrenar el modelo y luego predecir en batch otro conjunto de datos.
- La etapa de predicción es más rápida que el entrenamiento.
- Las predicciones precalculadas se almacenan en HDFS o bases de datos indexadas para un acceso rápido.
Predicciones
- Se puede hacer predicciones en batch cuando se tengan suficientes datos nuevos.
- Guarda el modelo entrenado y usarlo desde Spark para hacer predicciones una a una (poco recomendable por la sobrecarga).
- Exporta el modelo a un formato de intercambio (ej. PMML) para usarlo con otras herramientas no distribuidas.
- Entrena en modo online con Structured Streaming (requiere reentrenamiento o algoritmos de "online learning").
API de Spark MLlib
org.apache.spark.mllib
(pyspark.mllib): API antigua basada en RDDs con la estructura LabeledPoint (obsoleta).org.apache.spark.ml
(pyspark.ml): API actual basada en DataFrames, preferible para uso general.- La mayoría de spark.mllib ha migrado a spark.ml
Creación de Variables y Preprocesamiento
- Utiliza la API de Spark SQL, también Spark ML ofrece una transformación para incluir código SQL arbitrario en un pipeline.
- Transformaciones de preprocesamiento estadístico (normalización, estandarización, "one-hot" encoding) están disponibles en Spark ML.
- Preparación de datos: transforma las columnas del DataFrame a los tipos adecuados requeridos por los algoritmos de Machine Learning de Spark:
- La columna de características se debe representar como un vector.
- La columna objetivo real
double
. - En problemas de clasificación, las clases empiezan desde 0.0.
Características del Preprocesamiento
- Extracción: Variables extraídas de los datos.
- Transformación: Rescala, convierte o modifica variables.
- Selección: Selecciona un buen subconjunto de variables.
- LSH: Combina transformaciones con otros algoritmos.
- Documentación de Spark: https://spark.apache.org/docs/latest/ml-features.html
Transformadores en Spark ML
- Transformer: toma un DataFrame de Spark y transforma una o varias columnas existentes.
- Su salida es el mismo DataFrame con una columna añadida a la derecha.
- Interfaz Transformer: tiene un único método
transform(df)
, transforma los DataFrame, y están predefinidos para transformar un DataFrame.
Transformadores Habituales
- VectorAssembler: concatena varias columnas en una sola columna de tipo vector.
- Se usa para algoritmos de aprendizaje supervisado.
Modelos Entrenados
- El resultado es un objeto model, que implementa la interfaz Transformer y es capaz de transformar un dataframe cuando tenga tipos de datos en los nombres de las columnas y en los datos utilizados para entrenar.
- Las predicciones se añaden como datos de ejemplo.
- Se puede entrenar un pipeline completo, y se puede aplicar un transformer.
Estimadores en Spark ML
- Estimator: Transforma con ciertos parámetros pre procesados a partir de los datos.
- Requiere una pasada para transformar los datos.
- Interfaz Estimator: tiene un único método
fit(df)
, que retorna un objeto de tipomodel
.
Estimadores Comunes
- StringIndexer: convierte columnas categóricas a números reales.
- Añade metadatos al DataFrame para indicar que la columna es categórica.
- Algoritmos soportados: DecisionTree, RandomForest, GradientBoostedTrees.
- Algoritmos no soportaods: LinearRegression, LogisticRegression.
Modelos en SparkML
- OneHotEncoderEstimator: Convierte columnas de una codificación en forma dummy.
- Precisa de Spark siempre asume que los valores provienen de un indexación previa con StringIndexer.
- Spark ML llama modelo a cualquier cosa que requiera
fit
previo.
Pipelines en Spark ML
- Permite extraer características y prepararlas antes del entrenamiento.
- Facilita replicar los pasos exactos de preprocesamiento.
- Spark ofrece el mecanismo de pipeline.
- Un pipeline de SparkML es una acción secuencial de etapas, cada vez se transforma un nuevo DataFrame.
- Un pipeline es un estimador que recorre cada etapa llamando a una transformación o a un ajuste que lo tranforma.
Spark Structured Streaming
- Módulo que ha reemplazado el “Spark streaming” creando una estructura de DataFrame, que se va creando automáticamente con la entrada en tiempo real.
- Facilita la disminución de la latencia.
- El procesamiento de flujos de datos integra continuamente nuevos datos y actualiza el resultado, en tiempo real.
- Structured Streaming: se esfuerza por mantener un API idéntica a los DataFrames, debe comenzar un flujo start() para su ejecución indefinidamente.
Fuentes de Datos
- Lee datos desde Kafka, HDFS, Amazon S3, y sockets.
- Utiliza el método readStrem.
- Se debe activar o bien especificar explicitamente el esquema del fichero de entrada o inferencia de esquema con Spark.
- Para versiones de datos guardada, lectura previa a un DataFrame y obtener esquema para el streaming Dataframe.
Salida
- Escribe en Kafka, ficheros y en otras salidas, elegir el modo de salida, añadir, actualizar o el reemplazo completo.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.