Más sobre Spark DataFrames

Introducción a PySpark

Benjamin Schmidt

Data Engineer

Creando DataFrames desde varias fuentes de datos

  • Archivos CSV: Comunes para datos estructurados y delimitados
  • Archivos JSON: Formato de datos semiestructurado y jerárquico
  • Archivos Parquet: Optimizado para almacenamiento y consultas, usado en ingeniería de datos
  • Ejemplo:
    spark.read.csv("path/to/file.csv")
    
  • Ejemplo:
    spark.read.json("path/to/file.json")
    
  • Ejemplo:
    spark.read.parquet("path/to/file.parquet")
    
1 https://spark.apache.org/docs/latest/api/python/reference/pyspark.pandas/api/pyspark.pandas.read_csv
Introducción a PySpark

Inferencia de esquemas y definición manual

  • Spark puede inferir esquemas de datos con inferSchema=True

  • Define esquemas manualmente para mayor control - útil para estructuras de datos fijas

Esquema a Escala

Introducción a PySpark

Tipos de datos en PySpark DataFrames

  • IntegerType: Números enteros
    • Ej., 1, 3478, -1890456
  • LongType: Números enteros grandes
    • Ej., números firmados de 8 bytes, 922334775806
  • FloatType y DoubleType: Números de punto flotante para valores decimales
    • Ej., 3.14159
  • StringType: Usado para texto o datos de cadena
    • Ej., "Este es un ejemplo de una cadena."
  • ...
Introducción a PySpark

Sintaxis de tipos de datos para PySpark DataFrames

# Importa los tipos necesarios como clases
from pyspark.sql.types import (StructType,
                            StructField, IntegerType,
                            StringType, ArrayType)

# Construye el esquema
schema = StructType([
    StructField("id", IntegerType(), True),
    StructField("name", StringType(), True),
    StructField("scores", ArrayType(IntegerType()), True)
])

# Establece el esquema
df = spark.createDataFrame(data, schema=schema)
Introducción a PySpark

Operaciones de DataFrame - selección y filtrado

  • Usa .select() para elegir columnas específicas
  • Usa .filter() o .where() para filtrar filas según condiciones
  • Usa .sort() para ordenar por columnas
# Selecciona y muestra solo las columnas name y age
df.select("name", "age").show()
# Filtra por age > 30
df.filter(df["age"] > 30).show()
# Usa Where para filtrar un valor específico
df.where(df["age"] == 30).show()
# Usa Sort para ordenar por age
df.sort("age", ascending=False).show()
Introducción a PySpark

Ordenar y eliminar valores nulos

  • Ordena datos usando .sort() o .orderBy()
  • Usa na.drop() para eliminar filas con valores nulos
# Ordena usando la columna age
df.sort("age", ascending=False).show()

# Elimina valores nulos
df.na.drop().show()

Introducción a PySpark

Guía rápida

  • spark.read_json(): Cargar datos desde JSON
  • spark.read.schema(): Definir esquemas explícitamente
  • .na.drop(): Eliminar filas con valores nulos
  • .select(), .filter(), .sort(), .orderBy(): Funciones básicas de manipulación de datos
Introducción a PySpark

¡Vamos a practicar!

Introducción a PySpark

Preparing Video For Download...