メインコンテンツへジャンプ

PySpark

Databricks 無料トライアル

PySpark とは

Apache Spark は、プログラミング言語 Scala で記述されています。PySpark とは、Spark を実行するための Python API です。Apache Spark とPython のコラボレーションをサポートするためにリリースされました。PySpark は、Apache Spark とプログラミング言語 Python での Resilient Distributed Dataset(RDD)とのインターフェイスもサポートしており、これは Py4J ライブラリを活用することで実現しています。Py4J は、PySpark に組み込まれた定評のあるライブラリで、Python の JVM 上のオブジェクトとの動的なインターフェースを可能にします。PySpark には、効率的にプログラミングするためのライブラリが数多く実装されており、互換性のある外部ライブラリもあります。PySpark ロゴ次にあげるのは、そのいくつかの例です。

PySparkSQL

PySpark SQL は、構造化・半構造化データに対して SQL ライクな分析を行う PySpark のライブラリです。PySparkSQL を使用して SQL クエリを実行することができ、Apache Hive との連携や、HiveQL の適用も可能です。さらに、PySparkSQL は、Pyspark Core のラッパーです。PySparkSQL では、リレーショナルデータベース管理システムのテーブルと類似の表形式で構造化データを表現する DataFrame を導入しています。

MLlib

MLlib は、PySpark のラッパーで、Spark の機械学習(ML)ライブラリです。このライブラリは、データの蓄積および集計に並列処理を行います。MLlib ライブラリが提供する機械学習APIは、簡単に利用することができます。MLlib は、分類、回帰、クラスタリング、協調フィルタリング、次元削減、基礎となる最適化プリミティブのための多くの機械学習アルゴリズムをサポートしています。

GraphFrames

GraphFrames は、グラフデータ処理ライブラリで、PySpark Coreと PySparkSQL を使用して、グラフ分析を効率的に行うためのAPIセットを提供します。また、高速な分散コンピューティングに最適化されています。 PySpark を使用するメリットは以下の通りです。
・Python の学習や実装は極めて容易
・シンプルで包括的な API を提供
・Python の使用で、コードの可読性、保守性、使いやすさが向上
・Scala やJava では困難なデータ可視化に多くの選択肢が充実

FAQ

1. PySparkとは何ですか?
PySparkは、Apache SparkをPythonから利用するための公式API(Pythonインターフェース)です。

2. PySparkがJVMのSparkと連携できる理由は?
PySparkはPy4Jを使ってPythonからJVM上のSparkオブジェクトを操作し、分散処理を実行できます。

3. PySparkでよく使う主要ライブラリは?
SQL処理のPySparkSQL、機械学習のMLlib、グラフ分析のGraphFramesが代表的で、用途別にPySparkの機能を拡張できます。

関連資料

用語集に戻る