¿Lo defines? ¡Úsalo!

Introducción a PySpark

Benjamin Schmidt

Data Engineer

UDFs para tareas repetitivas

UDF (Función Definida por el Usuario): función personalizada para trabajar con datos usando dataframes de PySpark

Ventajas de las UDFs:

  • Reutilizar y repetir tareas comunes
  • Registradas directamente en Spark y compartibles
  • DataFrames de PySpark (para conjuntos de datos pequeños)
  • UDFs de pandas (para conjuntos de datos grandes)
Introducción a PySpark

Definir y registrar una UDF

Todas las UDFs de PySpark deben registrarse con la función udf().

# Definir la función
def to_uppercase(s):
    return s.upper() if s else None

# Registrar la función to_uppercase_udf = udf(to_uppercase, StringType())
# Aplicar la UDF al DataFrame df = df.withColumn("name_upper", to_uppercase_udf(df["name"]))
# Ver los resultados df.show()

Recuerda: Las UDFs te permiten aplicar lógica Python personalizada en DataFrames de PySpark

Introducción a PySpark

UDF de pandas

  • Elimina conversiones costosas de código y datos
  • No necesita registrarse en SparkSession
  • Usa capacidades de pandas en conjuntos de datos muy grandes
from pyspark.sql.functions import pandas_udf

@pandas_udf("float")
def fahrenheit_to_celsius_pandas(temp_f):
    return (temp_f - 32) * 5.0/9.0
Introducción a PySpark

UDFs de PySpark vs. UDFs de pandas

UDF de PySpark

  • Mejor para conjuntos de datos relativamente pequeños
  • Transformaciones simples como limpieza de datos
  • Cambios a nivel de columna, no de fila
  • Debe registrarse en una Spark Session con udf()

UDF de pandas

  • Conjuntos de datos relativamente grandes
  • Operaciones complejas más allá de la limpieza de datos
  • Cambios específicos a nivel de fila sobre columna
  • Puede llamarse fuera de la Spark Session
Introducción a PySpark

¡Vamos a practicar!

Introducción a PySpark

Preparing Video For Download...