インポート性能を改善する

PySpark でデータをクレンジングする

Mike Metzger

Data Engineering Consultant

Spark クラスター

Spark クラスターは2種類のプロセスで構成されます

  • ドライバープロセス
  • ワーカープロセス
PySpark でデータをクレンジングする

インポート性能

重要なパラメータ:

  • オブジェクト数(ファイル、ネットワーク位置など)
    • 大きいもの少数より小さいもの多数が有利
    • ワイルドカードでインポート可能
      airport_df = spark.read.csv('airports-*.txt.gz')
      
  • オブジェクトの概ねのサイズ
    • 似たサイズの方が Spark は高性能
PySpark でデータをクレンジングする

スキーマ

適切に定義したスキーマはインポート性能を大幅に向上させます

  • データの重複読み取りを回避
  • インポート時に検証を提供
PySpark でデータをクレンジングする

オブジェクトの分割方法

  • OS のユーティリティ/スクリプトを使用(split, cut, awk)
    split -l 10000 -d largefile chunk-
    
  • カスタムスクリプトを使用
  • Parquet に書き出す
    df_csv = spark.read.csv('singlelargefile.csv')
    df_csv.write.parquet('data.parquet')
    df = spark.read.parquet('data.parquet')
    
PySpark でデータをクレンジングする

演習に進みましょう!

PySpark でデータをクレンジングする

Preparing Video For Download...