Spark
Python3

Mac上でPySparkのテスト環境を整える

動機

Sparkの環境はAzureのHDinsightを使っていたが、お金がかかって仕方ないのでローカル環境に作ることにした。
↓の本の付録通りやっていけばできるのだが、いくつかハマったのでメモ。
https://www.oreilly.co.jp/books/9784873118185/

動作環境

  • macOS High Sierra
  • java version "1.8.0_171"
    • java7とかだとエラーが出るので要注意だ!
  • Python3.5
    • Python3.6とかだとエラーが出るので要注意だ!
  • Spark2.1.0
  • sbt最新版
    • 必須ではないがScalaで書きたくなったときに必要だ!

Java8のインストール

ここだ!
https://www.java.com/ja/download/

Python3.5のインストール

macユーザーだと最初から3.6がインストールされていると思うがこれだとnumpyがナンタラカンタラとエラーが出るぞ!
python3.5を準備しよう!作戦としてはanacondaでpython3.5の環境を作る。

anacondaのインストール

こっからダウンロードだ!
https://www.anaconda.com/download/#macos

python3.5の環境作成

このコマンドを打て!
conda create -n py35 python=3.5 anaconda
するとここにpython3.5の環境ができあがるぞ!
$HOME/anaconda3/envs/py35/bin/python

sbtのインストール

参考:
https://www.scala-sbt.org/1.0/docs/ja/Installing-sbt-on-Mac.html
このコマンドを打て!
brew install sbt@1
brewは予めインストールしておけ!

sparkのインストール

ここでコンパイル済みのSpark2.1を選択してダウンロードして解凍だ!
https://spark.apache.org/downloads.html
ここでは$HOME/spark-2.1.0-bin-hadoop2.7に解凍したとしよう!

PATHを通せ!

vi ~/.bash_profile
に以下を書き込む
1行目はSparkを解凍した場所
2行目はPython3.5の環境のpythonコマンドの場所
3行目はjupyterノートのコマンドの場所
4行目はよくわからんがPYSPARK_DRIVER_PYTHON_OPTSは、Jupyterに対してnotebookパラメータをJupyterに渡し、それをpysparkの新しいインスタンスにリンクさせるためのものです。 入門PySaprk p.252 だそうです。

export PATH=$PATH:$HOME/spark-2.1.0-bin-hadoop2.7/bin
export PYSPARK_PYTHON=$HOME/anaconda3/envs/py35/bin/python
export PYSPARK_DRIVER_PYTHON=$HOME/anaconda3/envs/py35/bin/jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook' pyspark

これでpysparkとコマンドを打つとjupyternotebookでSparkの作業ができるぞ!

#疲れた