インストール#

PySpark は、Apache Spark ウェブサイト の公式リリースに含まれています。Python ユーザー向けに、PySpark は PyPI からの pip インストールも提供しています。これは通常、ローカルでの使用や、クラスター自体のセットアップではなく、クラスターに接続するためのクライアントとして使用されます。

このページには、pip、Conda、手動ダウンロード、ソースからのビルドを使用して PySpark をインストールする手順が含まれています。

サポートされている Python バージョン#

Python 3.9 以降。

PyPI の使用#

PyPI (pyspark) を使用した PySpark のインストールは次のとおりです。

pip install pyspark

特定のコンポーネントの追加の依存関係をインストールしたい場合は、以下のようにインストールできます。

# Spark SQL
pip install pyspark[sql]
# pandas API on Spark
pip install pyspark[pandas_on_spark] plotly  # to plot your data, you can install plotly together.
# Spark Connect
pip install pyspark[connect]

追加の依存関係の詳細については、オプションの依存関係 を参照してください。

特定の Hadoop バージョンが含まれる/含まれない PySpark の場合、PYSPARK_HADOOP_VERSION 環境変数を使用して以下のようにインストールできます。

PYSPARK_HADOOP_VERSION=3 pip install pyspark

デフォルトのディストリビューションは Hadoop 3.3 および Hive 2.3 を使用します。ユーザーが異なるバージョンの Hadoop を指定した場合、pip インストールは自動的に別のバージョンをダウンロードして PySpark で使用します。ダウンロードには、ネットワークと選択されたミラーによっては時間がかかる場合があります。PYSPARK_RELEASE_MIRROR を設定すると、ダウンロードを高速化するためにミラーを手動で選択できます。

PYSPARK_RELEASE_MIRROR=http://mirror.apache-kr.org PYSPARK_HADOOP_VERSION=3 pip install

インストールおよびダウンロードのステータスを追跡するには、pip-v オプションを使用することをお勧めします。

PYSPARK_HADOOP_VERSION=3 pip install pyspark -v

PYSPARK_HADOOP_VERSION でサポートされている値は次のとおりです。

  • without: ユーザー提供の Apache Hadoop で事前にビルドされた Spark

  • 3: Apache Hadoop 3.3 以降で事前にビルドされた Spark (デフォルト)

注意: 特定の Hadoop バージョンが含まれる/含まれない PySpark のこのインストールは実験的です。マイナーリリース間で変更または削除される可能性があります。

Spark Connect をデフォルトにする#

Spark Connect をデフォルトにしたい場合は、PyPI (pyspark-connect) を介して追加のライブラリをインストールし、次のコマンドを実行してください。

pip install pyspark-connect

これにより、pyspark ライブラリと Spark Connect に必要な依存関係が自動的にインストールされます。pyspark をカスタマイズしたい場合は、事前に上記の手順で pyspark をインストールする必要があります。

このパッケージは、ローカルで実行されている Spark Connect サーバーを持つ spark.master (--master) と、local[*] のようなローカルクラスターを含む spark.remote (--remote)、および sc:// のような接続 URI をサポートします。使用方法については、クイックスタート: Spark Connect も参照してください。

Python Spark Connect クライアント#

Python Spark Connect クライアントは、環境内の jar や JRE のような非 Python 依存関係に依存しない、純粋な Python ライブラリです。Python Spark Connect クライアントを PyPI (pyspark-client) を介してインストールするには、次のコマンドを実行してください。

pip install pyspark-client

このパッケージは、接続 URI (例: sc://) を持つ spark.remote のみをサポートします。使用方法については、クイックスタート: Spark Connect も参照してください。

Conda の使用#

Conda は、オープンソースのパッケージ管理および環境管理システム (Anaconda によって開発された) で、Miniconda または Miniforge を通じてインストールするのが最適です。このツールはクロスプラットフォームで言語に依存せず、実際には conda は pipvirtualenv の両方を置き換えることができます。

Conda は、パッケージを配布するためにいわゆるチャンネルを使用します。Anaconda 自体のデフォルトチャンネルと並んで、最も重要なチャンネルは conda-forge です。これはコミュニティ主導のパッケージングの取り組みであり、最も広範で最新のものであり、ほとんどの場合 Anaconda チャンネルの上流としても機能します。

ターミナルから新しい conda 環境を作成し、アクティブ化するには、以下のように進めてください。

conda create -n pyspark_env
conda activate pyspark_env

環境をアクティブ化した後、次のコマンドを使用して pyspark、選択した Python バージョン、および同じセッションで pyspark と一緒に使用したい他のパッケージをインストールします (複数ステップでインストールすることもできます)。

conda install -c conda-forge pyspark  # can also add "python=3.9 some_package [etc.]" here

注意: conda 用の PySpark はコミュニティによって個別にメンテナンスされています。新しいバージョンは通常すぐにパッケージ化されますが、conda(-forge) 経由での利用可能性は PySpark のリリースサイクルと直接同期していません。

conda 環境で pip を使用することは技術的に可能ですが (上記と同じコマンドで)、pip は conda と相互運用しないため、このアプローチは 推奨されません

便利な conda コマンドの簡単な概要については、チートシート を参照してください。

手動ダウンロード#

PySpark は、Apache Spark ウェブサイト で利用可能なディストリビューションに含まれています。サイトから目的のディストリビューションをダウンロードできます。その後、tar ファイルを Spark をインストールしたいディレクトリに解凍します。例を以下に示します。

tar xzvf spark-\ |release|\-bin-hadoop3.tgz

SPARK_HOME 環境変数が、tar ファイルが解凍されたディレクトリを指していることを確認してください。PYTHONPATH 環境変数を更新して、SPARK_HOME/python/lib の下の PySpark と Py4J を見つけられるようにします。これを実行する例を以下に示します。

cd spark-\ |release|\-bin-hadoop3
export SPARK_HOME=`pwd`
export PYTHONPATH=$(ZIPS=("$SPARK_HOME"/python/lib/*.zip); IFS=:; echo "${ZIPS[*]}"):$PYTHONPATH

ソースからのインストール#

ソースから PySpark をインストールするには、Spark のビルド を参照してください。

依存関係#

必須の依存関係#

PySpark には、以下の依存関係が必要です。

パッケージ

サポートされているバージョン

注意

py4j

>=0.10.9.9

JVM との対話に必要

機能性を強化する追加ライブラリですが、インストールパッケージには含まれていません。

  • memory-profiler: PySpark UDF のメモリプロファイリング、spark.profile.show(...)、および spark.sql.pyspark.udf.profiler に使用されます。

  • plotly: PySpark のプロット、DataFrame.plot に使用されます。

注意: PySpark には Java 17 以降が必要で、JAVA_HOME が正しく設定されている必要があります。ダウンロード を参照してください。

オプションの依存関係#

PySpark には、特定のモジュールの機能を強化するいくつかのオプションの依存関係があります。これらの依存関係は特定の機能にのみ必要であり、PySpark の基本的な機能には不要です。これらのオプションの依存関係がインストールされていない場合、PySpark は基本的な操作では正常に機能しますが、これらの依存関係を必要とする機能を使用しようとすると ImportError が発生します。

Spark Connect#

pip install "pyspark[connect]" でインストール可能です。

パッケージ

サポートされているバージョン

注意

pandas

>=2.0.0

Spark Connect に必要

pyarrow

>=11.0.0

Spark Connect に必要

grpcio

>=1.67.0

Spark Connect に必要

grpcio-status

>=1.67.0

Spark Connect に必要

googleapis-common-protos

>=1.65.0

Spark Connect に必要

graphviz

>=0.20

Spark Connect にオプション

Spark SQL#

pip install "pyspark[sql]" でインストール可能です。

パッケージ

サポートされているバージョン

注意

pandas

>=2.0.0

Spark SQL に必要

pyarrow

>=11.0.0

Spark SQL に必要

機能性を強化する追加ライブラリですが、インストールパッケージには含まれていません。

  • flameprof: UDF パフォーマンスプロファイリングのデフォルトレンダラーを提供します。

Pandas API on Spark#

pip install "pyspark[pandas_on_spark]" でインストール可能です。

パッケージ

サポートされているバージョン

注意

pandas

>=2.2.0

Pandas API on Spark に必要

pyarrow

>=11.0.0

Pandas API on Spark に必要

機能性を強化する追加ライブラリですが、インストールパッケージには含まれていません。

  • mlflow: pyspark.pandas.mlflow に必要です。

  • plotly: 可視化のためのプロットを提供します。matplotlib よりも plotly の使用が推奨されます。

  • matplotlib: 可視化のためのプロットを提供します。デフォルトは plotly です。

MLlib DataFrame ベース API#

pip install "pyspark[ml]" でインストール可能です。

パッケージ

サポートされているバージョン

注意

numpy

>=1.21

MLlib DataFrame ベース API に必要

機能性を強化する追加ライブラリですが、インストールパッケージには含まれていません。

  • scipy: SciPy 統合に必要です。

  • scikit-learn: 機械学習アルゴリズムの実装に必要です。

  • torch: 機械学習モデルのトレーニングに必要です。

  • torchvision: 画像およびビデオ処理のサポートに必要です。

  • torcheval: モデル評価メトリクスを容易にするために必要です。

  • deepspeed: 高パフォーマンスなモデルトレーニングの最適化を提供するために必要です。非 Darwin システムにインストール可能です。

MLlib#

pip install "pyspark[mllib]" でインストール可能です。

パッケージ

サポートされているバージョン

注意

numpy

>=1.21

MLlib に必要