Melhore o desempenho de importação

Limpeza de dados com o PySpark

Mike Metzger

Data Engineering Consultant

Clusters Spark

Clusters Spark são compostos por dois tipos de processos

  • Processo driver
  • Processos worker
Limpeza de dados com o PySpark

Desempenho de importação

Parâmetros importantes:

  • Número de objetos (arquivos, locais de rede, etc.)
    • Mais objetos são melhores do que maiores
    • Pode importar com curinga
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • Tamanho geral dos objetos
    • O Spark tem melhor desempenho se os objetos tiverem tamanhos semelhantes
Limpeza de dados com o PySpark

Schemas

Um schema bem definido melhora muito o desempenho de importação

  • Evita ler os dados várias vezes
  • Fornece validação na importação
Limpeza de dados com o PySpark

Como dividir objetos

  • Use utilitários/scripts do SO (split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • Use scripts personalizados
  • Grave em Parquet
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
Limpeza de dados com o PySpark

Vamos praticar!

Limpeza de dados com o PySpark

Preparing Video For Download...