0% encontró este documento útil (0 votos)
182 vistas27 páginas

Presentacion Curso Databricks

Este documento proporciona una introducción a Apache Spark y sus capacidades para el análisis de grandes datos. Explica conceptos clave como RDD, DataFrames y Machine Learning con Spark. También cubre herramientas como Databricks, una plataforma basada en Spark para análisis de datos en la nube.

Cargado por

Leonardo Chavez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
182 vistas27 páginas

Presentacion Curso Databricks

Este documento proporciona una introducción a Apache Spark y sus capacidades para el análisis de grandes datos. Explica conceptos clave como RDD, DataFrames y Machine Learning con Spark. También cubre herramientas como Databricks, una plataforma basada en Spark para análisis de datos en la nube.

Cargado por

Leonardo Chavez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 27

1/10/2023

Databricks y Apache Spark para


Big Data: de cero a experto

Introducción a Apache Spark

1
1/10/2023

Apache Spark

Spark es una solución Big Data de código abierto. Desarrollado por el laboratorio RAD de UC Berkeley
(2009).
Se ha convertido en una herramienta
de referencia en el campo del Big Data.

Apache Spark vs MapReduce

Más fácil y rápida que Hadoop MapReduce.


Diferencias:
• Spark mucho más rápido al almacenar en caché los datos en la memoria vs MapReduce en
el disco duro (más lectura y escritura )
• Spark optimizado para un mejor paralelismo, utilización CPU e inicio más rápido
• Spark tiene modelo de programación funcional más rico
• Spark es especialmente útil para algoritmos iterativos

2
1/10/2023

Cómo se Spark en un clúster

Componentes de Spark

Spark contiene un ecosistema de herramientas muy completo.

3
1/10/2023

PySpark

PySpark es una biblioteca Spark escrita en Python para ejecutar la aplicación Python usando las
capacidades de Apache Spark.
Ventajas de PySpark:
• Fácil de aprender
• Amplio conjunto de librerías para ML y DS
• Gran apoyo de la comunidad

Arquitectura de PySpark

Apache Spark funciona en una arquitectura maestro-esclavo. Las operaciones se ejecutan en los
trabajadores, y el Cluster Manager administra los recursos.

4
1/10/2023

Tipos de administradores de clústeres

Spark admite los siguientes administradores de clústeres:


• Standalone : administrador de clúster simple
• Apache Mesos : es un administrador de clústeres que puede ejecutar también Hadoop
MapReduce y PySpark.
• Hadoop YARN : el administrador de recursos en Hadoop 2
• Kubernetes: para automatizar la implementación y administración de aplicaciones en
contenedores.

RDDs de Apache Spark

10

5
1/10/2023

Apache Spark RDDs

Los RDD son los componentes básicos de cualquier aplicación Spark. RDD significa:
• Resiliente: es tolerante a fallos y es capaz de reconstruir datos en caso de fallo.
• Distribuido: los datos se distribuyen entre los múltiples nodos de un clúster.
• Conjunto de datos: colección de datos particionados con valores.

11

Operaciones en RDDs

Con los RDD, puede realizar dos tipos de operaciones:


• Transformaciones: estas operaciones se aplican para crear un nuevo RDD.
• Acciones: estas operaciones se aplican en un RDD para indicarle a Apache Spark que aplique el
cálculo y devuelva el resultado al controlador.

12

6
1/10/2023

DataFrames en Apache Spark

13

Introducción a DataFrames

Los DataFrames son de naturaleza tabular. Permiten varios formatos dentro de una misma tabla
(heterogéneos), mientras que cada variable suele tener valores con un único formato (homogéneos).
Similares a las tablas SQL o a las hojas de calculo.

14

7
1/10/2023

Ventajas de los DataFrames

Algunas de las ventajas de trabajar con Dataframes en Spark son:


• Capacidad de procesar una gran cantidad de datos estructurados o semiestructurados
• Fácil manejo de datos e imputación de valores faltantes
• Múltiples formatos como fuentes de datos
• Compatibilidad con múltiples lenguajes

15

Características de los DataFrames

Los DataFrames de Spark se caracterizan por: ser distribuidos, evaluación perezosa, inmutabilidad y
tolerancia a fallos.

16

8
1/10/2023

Fuentes de datos de DataFrames

Los marcos de datos en Pyspark se pueden crear de varias formas: a través de archivos, utilizando RDDs
o a través de bases de datos.

17

Funciones avanzadas de Spark

18

9
1/10/2023

Funciones avanzadas

Spark contiene numerosas funciones avanzadas para optimizar su rendimiento y realizar


transformaciones complejas en los datos. Algunas de ellas son: las expresiones de selectExpr(), UDF,
cache ( ), etc

19

Optimización del rendimiento

Una de las técnicas de optimización son los métodos cache() y persist(). Estos métodos se usan para
almacenar un calculo intermedio de un RDD, DataFrame y Dataset para que puedan reutilizarse en
acciones posteriores.

1 2

20

10
1/10/2023

Databricks

21

Introducción a Databricks

Databricks es la plataforma analítica de datos basada en Apache Spark desarrollada por los precursores de
Spark. Permite analítica avanzada, Big Data y ML de forma sencilla y colaborativa.
Disponible como servicio cloud en Azure, AWS y GCP.

22

11
1/10/2023

Características de Databricks

Permite auto-escalar y dimensionar entornos de Spark de forma sencilla. Facilita los despliegues y se acelera la
instalación y configuración de los entornos.

23

Arquitectura de Databricks

24

12
1/10/2023

Databricks Community

Databricks community es la versión gratuita. Permite usar un pequeño clúster con recursos limitados y
notebooks no colaborativos. La versión de pago aumenta las capacidades.

25

Terminología

Términos importantes que debemos conocer:

1. Workspaces
2. Notebooks
3. Librerías
4. Tablas
5. Clusters
6. Jobs

26

13
1/10/2023

Machine Learning con Spark

27

Spark Machine Learning

Machine Learning: es la construcción de algoritmos que pueden aprender de los datos y hacer
predicciones sobre ellos.
Spark MLlib se usa para realizar aprendizaje automático en Apache Spark. MLlib consta de algoritmos y
funciones habituales.

28

14
1/10/2023

Herramientas Spark Machine Learning

Herramientas de MLlib:
• spark.mllib contiene la API original construida sobre RDD
• spark.ml proporciona una API de nivel superior construida sobre DataFrames para construcción
de pipelines de ML. La API de ML principal.

Fuente: https://www.r-bloggers.com/

29

Componentes Spark Machine Learning

Spark MLlib proporciona las siguientes herramientas:


• Algoritmos ML: Incluyen algoritmos de aprendizaje comunes como clasificación, regresión,
agrupamiento y filtrado colaborativo.
• Caracterización: Incluye: extracción, transformación,
reducción de dimensionalidad y selección de características.
• Pipelines: son herramientas para construir modelos de ML en
etapas.
• Persistencia: permite guardar y cargar algoritmos, modelos
y pipelines.
• Utilidades: para álgebra lineal, estadística y manejo de datos.

30

15
1/10/2023

Proceso de Machine Learning

Fuente: https://www.r-bloggers.com/

31

Ingeniería de características con Spark

Las técnicas de preprocesamiento de datos más utilizadas en los enfoques de Spark son las siguientes
• VectorAssembler
• Agrupamiento
• Escalado y normalización
• Trabajar con características categóricas
• Transformadores de datos de texto
• Manipulación de funciones
• PCA

32

16
1/10/2023

Ingeniería de características con Spark

• Vector Asembler: Se utiliza básicamente para concatenar todas las características en un solo vector que se
puede pasar al estimador o al algoritmo ML
• Agrupamiento: es el método más sencillo para convertir las variables continuas en variables categóricas. Se
puede realizar con la clase Bucketizer.
• Escalado y normalización: es otra tarea común en variables continuas. Permite que los datos tengan una
distribución normal.
• MinMaxScaler y StandardScaler: estandarizan las características con una media cero y una desviación estándar
de 1.
• StringIndexer : para convertir características categóricas en
numéricas.

33

Pipelines en PySpark

En los Pipelines (canalizaciones) las diferentes etapas del trabajo de aprendizaje automático se pueden
agrupar como una sola entidad y se pueden considerar como un flujo de trabajo ininterrumpido.
Cada etapa es un Transformador . Se ejecutan en secuencia y los datos de entrada se transforman
mientras pasan por cada etapa.

34

17
1/10/2023

Apache Spark Koalas

35

Introducción a Koalas

Koalas proporciona un reemplazo directo de Pandas, lo que permite un escalado eficiente a cientos de
nodos para la ciencia de datos y el Machine Learning.
Pandas no se escala a Big data.
PySpark DataFrame es más compatible con SQL y Koalas DataFrame está más cerca de Python

36

18
1/10/2023

Koalas y PySpark DataFrames

Koalas y PySpark DataFrames son diferentes. Koalas DataFrames sigue la estructura de Pandas e
implementa un índice. El PySpark DataFrame es más compatible con las tablas en las bases de datos
relacionales y no tiene índices.
Koalas traduce las API de pandas al plan
lógico de Spark SQL.

37

Ejemplo: Ingeniería de características con Koalas

En ciencia de datos a menudo se necesita la función de get_dummies( ) de pandas para codificar


variables categóricas como variables ficticias (numéricas).
Gracias a Koalas se puede hacer esto en Spark con solo unos pocos ajustes.

Pandas

Koalas

38

19
1/10/2023

Ejemplo: Ingeniería de características con Koalas

En ciencia de datos a menudo se necesita trabajar con datos de tiempo. Pandas permite trabajar con
este tipo de datos de forma fácil, en PySpark es más complicado.

Pandas

Koalas

39

Spark Streaming

40

20
1/10/2023

Fundamentos Spark Streaming

PySpark Streaming es un sistema escalable y tolerante a fallos que sigue el paradigma de lotes RDD.
Opera en intervalos de lotes, recibiendo un flujo de datos de entrada continuo de fuentes como
Apache Flume , Kinesis, Kafka, sockets TCP, etc.
Spark Engine se encarga de procesarlos.

41

Funcionamiento Spark Streaming

Spark Streaming recibe datos de varias fuentes y los agrupa en pequeños lotes (Dstreams) en un
intervalo de tiempo. El usuario puede definir el intervalo. Cada lote de entrada forma un RDD y se
procesa mediante trabajos de Spark para crear otros RDD.

42

21
1/10/2023

Ejemplo: contar palabras

43

Modos de salida

Spark usa varios modos de salida para almacenar los datos:

• Modo completo (Complete): toda la tabla se almacenará

• Modo de adición (Append): solo las nuevas filas del último proceso se alamcenará. Solo para
las consultas en las que no se espera que cambien las filas existentes.
• Modo de actualización (Update): solo las filas que se actualizaron desde el último proceso se
almacenarán. Este modo solo genera las filas que han cambiado desde el último proceso. Si la
consulta no contiene agregaciones, será equivalente al modo append.

Complete,
Append,
Update

44

22
1/10/2023

Tipos de transformaciones

Para tolerancia a fallos los datos recibidos se copian en dos nodos y hay también un mecanismo
llamado checkpointing.
Las transformaciones se pueden agrupar en :
• sin estado: no depende de los datos
de lotes anteriores.
• con estado: utilizan datos
de lotes anteriores

45

Capacidades de Spark Streaming

46

23
1/10/2023

Delta Lake

47

Introducción a Delta Lake

Delta Lake es la capa de almacenamiento open source desarrollada para Spark y Databricks.
Proporciona transacciones ACID y gestión avanzada de metadatos.
Incluye un motor de consultas compatible con Spark que permite acelerar las operaciones y mejoran el
rendimiento. Los datos almacenados en formato Parquet.

48

24
1/10/2023

Funcionamiento Delta Lake

Delta Lake se basa principalmente en dos tecnologías: Apache Spark y Apache Parquet.
• De Spark tenemos las APIs. Estas aseguran que se mantenga la confiabilidad de los datos mediante
transacciones en ACID, aplicación de esquemas, etc.
• Apache Parquet se utiliza para almacenar los metadatos utilizados para la calidad de los datos,
transacciones ACID, gobernanza, control de versiones, etc.

49

Funcionamiento Delta Lake

Delta Lake ofrece:


• Transacciones ACID: garantizan que no haya datos inconsistentes.
• Manejo escalable de metadatos: utiliza el procesamiento distribuido de Spark para manejar todos los metadatos de
petabytes de datos
• Transmisión y unificación de lotes
• Aplicación del esquema: gestiona las variaciones del esquema y evita la inserción de registros incorrectos
• Viaje en el tiempo: tiene control de versiones que permite reversiones, auditoría de históricos, experimiento de ML
reproducibles
• Actualizaciones y eliminaciones: admite operaciones de fusión, actualización y eliminación

50

25
1/10/2023

Arquitectura Delta Lake con Azure

51

Recursos

52

26
1/10/2023

Recursos:
• https://spark.apache.org/docs/2.2.0/index.html Documentación oficial de Spark
• https://colab.research.google.com/ Google Colab para poder tener capacidad de computo
adicional

53

27

También podría gustarte