Presentacion Curso Databricks
Presentacion Curso Databricks
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.
2
1/10/2023
Componentes de Spark
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
10
5
1/10/2023
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
12
6
1/10/2023
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
15
Los DataFrames de Spark se caracterizan por: ser distribuidos, evaluación perezosa, inmutabilidad y
tolerancia a fallos.
16
8
1/10/2023
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
18
9
1/10/2023
Funciones avanzadas
19
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
1. Workspaces
2. Notebooks
3. Librerías
4. Tablas
5. Clusters
6. Jobs
26
13
1/10/2023
27
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 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
30
15
1/10/2023
Fuente: https://www.r-bloggers.com/
31
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
• 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
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 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
Pandas
Koalas
38
19
1/10/2023
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
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
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
43
Modos de salida
• 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
46
23
1/10/2023
Delta Lake
47
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
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
50
25
1/10/2023
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