Preparación del entorno de desarrollo
Entorno Python
- Instalación del entorno de desarrollo: instalar Anaconda y PyCharm CE
- Otros entornos recomendados: Eclipse, Spyder (incluido en anaconda y Aton)
- Configurar y cambiar el entorno virtual
- Importar paquetes: pip install & import
- Crear un directorio si no existe: os.start(…) os.mkdir(…)
- Entorno virtual para Python -m venv nombre_entorno
Entorno Spark Python
- Instalación de Apacke Spark
- Uso de Apache Spack online: databricks community edition
- Librerías habituales
- Instalación de Apache Spark con distribución libre (Hortonworks)
Conceptos básicos
- Funciones
- Funciones con Spark
- Bucles: for, while
- Incluir argumentos: argparse. Ejemplo: copiar.py fichero_origen.txt fichero_destino.txt
- Fechas
Carga y lectura de ficheros
- Lectura y escritura de ficheros: csv, facta
- Carga y lectura de CVS en Databricks – Spark
- Leer y escribir JSON incluso comprimidos
- Leer y escribir Parquet incluso comprimidos
Estructuras de datos
DATAFRAMES (simples)
- DataFrames: import pandas as pd datos = pd.DataFrame(columns=(‘datos1’, ‘datos2’))
MATRICES (simples)
- Matrices: import numpy as np datos = np.array([[1,2,3],[4,5,6]])
LISTAS (simples)
- Listas: list(), [1,2,3], append(), extend(), remove(), count(), index(), set()
RDD (Spark)
Creación de RDD
- RDD a partir de colecciones de datos
- RDD a partir de diccionarios
- RDD a partir de la lectura de ficheros
Almacenamiento de RDD
Operaciones con RDD
- Operaciones básicas con una lista RDD
- Operaciones basicas con una diccionario RDD
- Ordenar RDDs
- Filtrado de RDDs
- Muestreo de datos
- Operaciones con conjuntos
- Operaciones Map/Reduce
Procesamiento de datos
Procesamiento de datos por lotes (batch)
Procesamiento en tiempo real (streaming)
- Preparación de datos que simulan tiempo real
- Realizar agrupaciones sobre datos
- Establecer la configuración de flujo de datos del cluster
- Realizar consultas SQL
Tuberías (Pipelines)
Machine Learning
Aprendizaje supervisado
- Arboles de decisión (Simples) – Spark
- Regresión lineal simple
- Regresión lineal simple – Spark
- Regresión Logística
Aprendizaje no supervisado
Ejecución distribuida en Spark