Parquet を理解する

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

Mike Metzger

Data Engineering Consultant

CSV の課題

  • スキーマ未定義
  • ネスト構造は特別な処理が必要
  • エンコーディング形式が限定的
PySpark でデータをクレンジングする

Spark と CSV

  • 解析が遅い
  • ファイルをフィルタできない(predicate pushdown なし)
  • 中間利用のたびにスキーマを再定義が必要
PySpark でデータをクレンジングする

Parquet 形式

  • 列志向データ形式
  • Spark を含む各種処理基盤でサポート
  • Predicate pushdown をサポート
  • スキーマ情報を自動保存
PySpark でデータをクレンジングする

Parquet の操作

Parquet の読み込み

df = spark.read.format('parquet').load('filename.parquet')
df = spark.read.parquet('filename.parquet')

Parquet の書き出し

df.write.format('parquet').save('filename.parquet')
df.write.parquet('filename.parquet')
PySpark でデータをクレンジングする

Parquet と SQL

SparkSQL の基盤ストアとしての Parquet

flight_df = spark.read.parquet('flights.parquet')
flight_df.createOrReplaceTempView('flights')
short_flights_df = spark.sql('SELECT * FROM flights WHERE flightduration < 100')
PySpark でデータをクレンジングする

演習に進みましょう!

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

Preparing Video For Download...