LoginSignup
9
1

More than 1 year has passed since last update.

PyCon JP 2022 day1 Pandas卒業?大規模データを様々なパッケージで高速処理してみる

Posted at

現地参加したPyCon JP 2022のセッションのまとめ3本目です。

今回は、Day1の「Pandas卒業?大規模データを様々なパッケージで高速処理してみる」です。

動画

スライド

スピーカー

  • fujineさん
    • みずほリサーチ&テクノロジーズ株式会社
      • 先端技術研究部
      • データ分析、クラウド(AWS、GCP)の技術研究に従事

内容まとめ

  • 大規模データを扱うパッケージとしてPandasが代表的ですが、他のパッケージについて解説

背景

  • Pandasは超便利だが、大きいデータにはスケールしにくいというデメリットがある
    • シングルスレッド
      • CPUコアが何十個あっても、基本1コアしか使用しない
    • インメモリ処理
      • データ規模が大きいとファイル読込すら失敗
  • そこで、以下4つのパッケージを試してみた
    • Pandas
    • dask
    • vaex
    • Spark

Pandas

  • 大規模データを扱うパッケージのdefect standard
  • 小~中規模(1000万)のデータ件数なら、十分有用
  • テーブル結合は、mergeよりjoinの方が高速

Dask

  • タスクグラフによる並列処理を行う
  • Pandasと(ほぼ)同じAPIで、Pandasより大規模なデータを処理できる
  • テーブル結合は、joinよりmergeの方が高速

Vaex

  • APIがPandasと異なる
  • 処理速度が早い

PySpqrk

  • 低メモリでのデータ処理に有効
  • 処理時間はPandasとあまり変わらない
  • SparkやSQLに慣れてる人向け

それでもPandasを使いたいあなたに

  • evalで並列化
    • 数式に近い形で記述でき、可読性の面でも恩恵あり
    • numexprインストールを忘れずに!
  • Pandas統合の並列処理パッケージを使用
    • apply/mapの並列化に有効

感想

  • Pandasに限らず、defect standardになっているツールにはdefect standardになっている理由があると思いますが、それだけでは対応しきれないことは往々にして起こると思います。
  • その時に他のツールの特性も把握した上で選択肢を持っておくのは、大事だなと思いました。
9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1