本エントリでは、
Pythonのvenv仮想環境にpysparkをセットアップする手順を示します。

以下を参考に手順を示します。

Installation | Apache Spark
https://spark.apache.org/docs/latest/api/python/getting_started/install.html#manually-downloading

いろいろやり方があるとは思うのですが、
この手順で作った環境が、
PyCharmやIntelliJ IDEAで素直に扱えたので、メモとして残しておきます。

Apache Sparkのダウンロードと展開

spark.apache.orgから、Apache Sparkをダウンロードします。

Downloads | spark.apache.org
https://spark.apache.org/downloads.html

このエントリの手順では「spark-3.1.1-bin-hadoop2.7.tgz」をダウンロードしました。

このファイルを適当な場所に展開します。

$ tar zxf spark-3.1.1-bin-hadoop2.7.tgz

以下のようにspark-shellを実行してversionが表示されることを確認します。

$ export SPARK_HOME=※展開先※/spark-3.1.1-bin-hadoop2.7
$ $SPARK_HOME/bin/spark-shell --version

venv仮想環境の作成

以下のようにvenv環境を作ります。

$ python -m venv venv

作成したvenv環境のsite-packagesにpysparkライブラリへのフックを追加します。

$ ls $SPARK_HOME/python/lib/*.zip > venv/lib/python3.9/site-packages/pyspark.pth

※Pythonのversionが3.9の場合、versionは利用しているものに合わせて下さい。

参考: site — サイト固有の設定フック | docs.python.org https://docs.python.org/ja/3/library/site.html

サンプルコードを実行する

pyspark用に作成した、仮想環境に切り替えます。

$ source venv/bin/activate

サンプルコードを用意します。

main.py

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName('sample').getOrCreate()
df = spark.createDataFrame([(1, "one"), (2, "two"), (3, "three")], ["id", "body"])
df.show()

サンプルコードを実行します。

$ python main.py

以上。