見出し画像

サンプルを通じたPandasとPySparkデータフレームの比較



Pandasとは?

Pandasは分析のために構造化表データを取り扱うために最も使用されているオープンソースのPythonライブラリの一つです。Pandasライブラリは、データ分析、機械学習、データサイエンスプロジェクトなどで多く使われています。

Pandasは、CSV、JSON、SQLなどのフォーマットからデータをロードすることができ、(SQLテーブルと同じように)行と列を含む構造化オブジェクトであるデータフレームを作成します。

分散処理をサポートしていないので、増大するデータをサポートするために追加の馬力を必要とした際には、常にリソースを追加する必要があります。

Pandasデータフレームは可変であり、遅延評価されず、デフォルトで統計関数がそれぞれのカラムに適用されます。pandasに関しては、pandas DataFrame Tutorial For Beginners Guideで学習することができます。


PySparkとは?

とても簡単に言うと、Pandasはシングルマシンでオペレーションを実行し、PySparkは複数台のマシンで処理を実行します。より大きなデータセットを取り扱う機械学習アプリケーションに取り組んでいるのであれば、Pandasよりもはるかに高速(100倍)オペレーションを実行できるPySparkが最適です。

PySparkは、NumPyを含み多くのデータサイエンスライブラリがPytohnで記述されていることから、PySparkはデータサイエンス、機械学習コミュニティで広く利用されています。また、Tensorflowも大規模データセットを効率的に処理できることから利用されています。PySparkはWalmart、Trivago、Sanofi、Runtasticなどの多くの企業で活用されています。

PySparkは、Apache Sparkの機能を用いてPythonを実行するための、Pythonで記述されたライブラリです。PySparkを用いることで、分散クラスター(マルチノード)あるいはシングルノードでもアプリケーションを並列に実行することができます。

Apache Sparkは大規模かつパワフルな分散データ処理、機械学習アプリケーションのための分析処理エンジンです。

PySparkの機能

  • インメモリの計算処理

  • 並列化による分散処理

  • さまざまなクラスターマネージャ(Spark、Yarn、Mesosなど)で利用可能

  • フォールトトレラント

  • イミュータブル

  • 遅延評価

  • キャッシュ & 永続化

  • データフレームを使う際のビルトインの最適化処理

  • ANSI SQLのサポート

PySparkの利点

  • PySparkは、分散によってデータを効率的に処理できる汎用、インメモリ、分散処理エンジンです。

  • PySparkで実行するアプリケーションは、従来システムより100倍高速です。

  • データ取り込みパイプラインにおいてPySparkを用いることで非常に大きな効果を得ることができます。

  • PySparkを用いることで、Hadoop HDFS、AWS S3など数多くのファイルシステムのデータを処理することができます。

  • また、PySparkはストリーミングやKafkaを用いてリアルタイムデータを処理することに使うことができます。

  • PySparkのストリーミングを用いることで、ファイルシステムやソケットからのストリームからファイルをストリーミングすることができます。

  • PySparkはネイティブで機械学習、グラフライブラリを持っています。

PySparkのモジュールとパッケージ

PySparkデータフレームの例

PySparkデータフレームはイミュータブル(不変:作成すると変更できません)、フォールトトレンラントであり、変換処理は遅延評価されます(アクションが呼び出されるまで実行されません)。PySparkデータフレームはクラスターで分散され(PySparkデータフレームのデータはクラスターの異なるマシンに格納されることを意味します)、PySparkのいかなるオペレーションは全てのマシン上で並列に実行されます。

続きは下記リンクへ!

それじゃーね!










ref


この記事が気に入ったらサポートをしてみませんか?