5 Spark III
10 Questions
4 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿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?

  • 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?

  • 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?

<p>Estimator. (A)</p> Signup and view all the answers

¿A qué interfaz pertenecen los modelos de Spark ML cuando ya han sido entrenados con datos?

<p>Transformer. (D)</p> Signup and view all the answers

¿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?

<p>Podríamos obtener codificaciones distintas de la misma etiqueta en los datos de entrenamiento y en los de test, lo que falsearía los resultados de las predicciones. (C)</p> Signup and view all the answers

¿Cuál es la estructura principal que maneja Spark Structured Streaming?

<p>Streaming DataFrames. (B)</p> Signup and view all the answers

Spark Streaming permite leer flujos de datos:

<p>Desde fuentes como Apache Kafka y HDFS, si activamos la inferencia de esquema. (D)</p> Signup and view all the answers

En Spark Streaming, una vez se ejecuta la acción start:

<p>Hay que ejecutar un método para indicar al <code>driver</code> que no finalice automáticamente y que espere a que concluya la recepción del flujo. (A)</p> Signup and view all the answers

¿Qué acciones pueden realizarse en Spark Structured Streaming?

<p>start. (B)</p> Signup and view all the answers

Flashcards

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

Implementación distribuida de modelos de machine learning usando Spark.

Pipelines en Spark

Herramienta de Spark para encapsular etapas de preprocesamiento y entrenamiento de modelos.

Despliegue de modelos en producción con Spark

Spark no está diseñado para dar respuestas rápidas (predicciones) a un nuevo ejemplo recibido a través de peticiones directas.

Signup and view all the flashcards

Transformador en Spark ML

Objeto que transforma DataFrames, añadiendo una nueva columna con la transformación.

Signup and view all the flashcards

Estimador en Spark ML

Objeto que requiere que ciertos parámetros se ajusten a partir de los datos antes de la transformación.

Signup and view all the flashcards

StringIndexer

Convierte una columna de tipo string o numérica a números reales, con la parte decimal a 0 y empezando en 0.0.

Signup and view all the flashcards

OneHotEncoderEstimator

Convierte columnas categóricas indexadas a un conjunto de variables dummy con codificación one-hot.

Signup and view all the flashcards

Modelos de predicción (Machine learning)

Algoritmos cuyo método fit(df) lanza el aprendizaje con muchos parámetros configurables (hiperparámetros).

Signup and view all the flashcards

Pipeline de Spark ML

Secuencia de etapas (estimator o transformer) que se ejecutan en un cierto orden para transformar un DataFrame.

Signup and view all the flashcards

Spark Structured Streaming

Spark Structured Streaming utiliza streaming DataFrames, que son iguales que un DataFrame, en la cual se les van agregando filas automáticamente.

Signup and view all the flashcards

Procesamiento de flujos de datos

Proceso de incorporar continuamente datos nuevos para actualizar en tiempo real un resultado.

Signup and view all the flashcards

Fuentes de datos de entradas permitidas

Kafka, HDFS, Amazon S3 y sockets son ejemplos de ello.

Signup and view all the flashcards

Fuentes de datos de salidas permitidas

Kafka y ficheros, junto con la de ‘memoria’ son ejemplos de ello.

Signup and view all the flashcards

Modos de salida en Spark Structured Streaming

Añadir, actualizar y reemplazo completo.

Signup and view all the flashcards

¿Qué diferencia Spark MLlib de Spark ML?

ML ofrece interfaz para DataFrames en todos sus componentes

Signup and view all the flashcards

¿Qué tipo de componentes ofrece Spark ML?

Estimadores y transformadores para ingeniería de variables y para normalizar datos

Signup and view all the flashcards

¿Cuál es el método principal de un estimator de Spark ML?

El método fit.

Signup and view all the flashcards

¿A qué interfaz pertenecen los algoritmos de machine learning de Spark cuando aún no han sido entrenados?

Estimator.

Signup and view all the flashcards

¿A qué interfaz pertenecen los modelos de Spark ML cuando ya han sido entrenados con datos?

Transformer.

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?

Podríamos obtener codificaciones distintas de la misma etiqueta en los datos de entrenamiento y en los de test, lo que falsearía los resultados de las predicciones.

Signup and view all the flashcards

¿Cuál es la estructura principal que maneja Spark Structured Streaming?

Streaming DataFrames.

Signup and view all the flashcards

Spark Streaming permite leer flujos de datos

Desde fuentes como Apache Kafka y HDFS, si activamos la inferencia de esquema.

Signup and view all the flashcards

En Spark Streaming, una vez se ejecuta la acción start

Hay que ejecutar un método para indicar al driver que no finalice automáticamente y que espere a que concluya la recepción del flujo.

Signup and view all the flashcards

¿Qué acciones pueden realizarse en Spark Structured Streaming?

start.

Signup and view all the flashcards

Función que combina varias columnas en una sola columna de tipo vector

VectorAssembler

Signup and view all the flashcards

StringIndexer

Convierte variables tipo string, a una variable numérica.

Signup and view all the flashcards

Función Pipeline

Secuencia de pasos, Estimators o Transformers se transforman los datos.

Signup and view all the flashcards

Spark Structured Streaming

Leer un fichero, hacer agregaciones y volcar el resultado a la salida.

Signup and view all the flashcards

Pipeline de Spark ML

Estándar, aprendizaje y se puede utilizar cualquier algoritmos.

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 tipo model.

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.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser