Smile Engineering Blog

ジェイエスピーからTipsや技術特集、プロジェクト物語を発信します

PySpark環境構築メモ

はじめに

ローカル(Windows10)上でApache Spark(PySpark)を試してみたかったので、環境構築手順を備忘録として記載します。

Apach Sparkとは

Apache Spark(以降Spark)は簡単に言うとオンメモリで高速分散処理を可能とするオープンソースフレームワークです。
分散処理ではHadoopもありますが、HadoopHDFSにアクセスして処理するのに対してSparkはメモリ上で処理が可能です。
また、Spark自体はScalaで実装されていますがPythonJava、R、Scalaに対応しています。

Sparkは、Spark Coreを中心とした複数のコンポーネントから構成されています。

  1. Spark Core:Sparkのエンジンで基本機能を提供。
  2. Spark SQL:構造化データに対して、SQLを使用してアクセス。
  3. Spark Streaming:Spark上でストリーミングデータの処理機能を提供。
  4. MLlib:機械学習の機能を提供。
  5. GraphX:グラフデータの処理機能を提供。

環境構築

JRE

Sparkの動作にはJREが必要。
JREがインストールされているか確認する。

C:\>java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) Client VM (build 25.251-b08, mixed mode, sharing)

既にインストール済みでした。
もし、入っていなければJREのインストールを行う。

Python

PySparkを試すためPythonも必要。
Pythonがインストールされているか確認する。

C:\>python --version
Python 3.7.3

こちらもインストール済みでした。

Spark

Sparkの公式ページからダウンロードする。
https://spark.apache.org/downloads.html

f:id:jspnet:20200506233003p:plain

Windowsで動かすにはwinutilsが必要なので、以下よりダウンロードする。

https://github.com/steveloughran/winutils

ダウンロードした「spark-2.4.5-bin-hadoop2.7.tgz」を解凍し、適当なディレクトリに配置する。
winutilsは、展開後のbin配下に格納する。

C:\spark-2.4.5-bin-hadoop2.7

環境設定

環境変数を設定する。
* HADOOP_HOME:C:\spark-2.4.5-bin-hadoop2.7
* PATH:$HADOOP_HOME\binを追加

起動確認

spark-shellコマンドを実行し起動確認する。

C:\>spark-shell
[中略]
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.4.5
      /_/

Using Scala version 2.11.12 (Java HotSpot(TM) Client VM, Java 1.8.0_251)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

jupyter notebookでPySparkを起動させるには以下の環境変数を追加する。
* PYSPARK_DRIVER_PYTHON:jupyter
* PYSPARK_DRIVER_PYTHON_OPTS:'notebook'

pysparkコマンドを実行するとjupyter notebookが起動される。

C:\work>pyspark

f:id:jspnet:20200507004255p:plain

簡単なプログラムでSparkが使用できることを確認する。
SparkSQLにて「HelloWorld」を表示されます。
f:id:jspnet:20200507005731p:plain