Você define, você usa!

Introdução ao PySpark

Benjamin Schmidt

Data Engineer

UDFs para tarefas repetitivas

UDF (Função Definida pelo Usuário): função personalizada para trabalhar com dados usando dataframes PySpark

Vantagens das UDFs:

  • Reutilizar e repetir tarefas comuns
  • Registradas diretamente no Spark e podem ser compartilhadas
  • DataFrames PySpark (para conjuntos de dados menores)
  • UDFs pandas (para conjuntos de dados maiores)
Introdução ao PySpark

Definindo e registrando uma UDF

Todas as UDFs PySpark precisam ser registradas via a função udf().

# Defina a função
def to_uppercase(s):
    return s.upper() if s else None

# Registre a função to_uppercase_udf = udf(to_uppercase, StringType())
# Aplique a UDF ao DataFrame df = df.withColumn("name_upper", to_uppercase_udf(df["name"]))
# Veja os resultados df.show()

Lembre-se: UDFs permitem aplicar lógica Python personalizada em DataFrames PySpark

Introdução ao PySpark

UDF pandas

  • Elimina conversões custosas de código e dados
  • Não precisa ser registrada na SparkSession
  • Usa capacidades do pandas em conjuntos de dados extremamente 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
Introdução ao PySpark

UDFs PySpark vs. UDFs pandas

UDF PySpark

  • Melhor para conjuntos de dados relativamente pequenos
  • Transformações simples como limpeza de dados
  • Mudanças ocorrem no nível de coluna, não de linha
  • Deve ser registrada em uma Spark Session com udf()

UDF pandas

  • Conjuntos de dados relativamente grandes
  • Operações complexas além da simples limpeza de dados
  • Mudanças específicas no nível de linha sobre o nível de coluna
  • Pode ser chamada fora da Spark Session
Introdução ao PySpark

Vamos praticar!

Introdução ao PySpark

Preparing Video For Download...