koji/メガネ男の日誌

日々の学び、活動状況を記録します。仕事のことは少なめ。

PySparkの環境構築に成功したのでまとめてみた

f:id:kj_man666:20200313184859j:plain

 GCIセミナーでpythonで大規模データを扱えるPySparkの存在を知りました。

 環境構築は各自挑戦とのことでしたので、やってみたところ、うまくいったのでまとめます。

 前提は以下のとおりです。

 ・ローカル環境での構築には成功したが、Anacondaなどの仮想環境上の構築はうまくいっていない  ・Windows10 Home 64bit  ・Python3.7.1

 手順は以下のとおり。

Sparkをインストールする

 こちらのサイトからSparkをダウンロードします。

spark.apache.org

 いくつかバージョンがあるようですが、私はこちらで設定しました。

f:id:kj_man666:20200313191721p:plain

 ダウンロードされた圧縮ファイルの拡張子が .tgz と私には見慣れないものでしたが、Lhaplus で無事解凍。

 解凍したフォルダはとりあえず C ドライブに配置しました。

 加えて、WindowsでSparkを実行するためには、Hadoopの依存関係を解決するため(よくわかってない)winutils.exe というファイルを取得しする必要があるそうです。

winutils.exe

 ダウンロードしたら、winutils.exeファイルを、先ほど展開したSparkのフォルダの直下にある、binフォルダの直下に保存します。

Spark の環境変数を設定する

 このままですと環境変数が設定されておらず、うまくプログラムが開かれません。

 ウィンドウズの設定画面から、環境変数の設定画面を開きます。

f:id:kj_man666:20200313192813p:plain
左下の歯車のアイコンをクリック
f:id:kj_man666:20200313204848p:plain
環境 と入力すると、環境変数の設定画面を出せる

 HADOOP_HOME のパスを、 先ほど展開した Spark のフォルダのアドレスに設定しましょう。

(例:C:\spark-2.4.5-bin-hadoop2.7)

 参考サイトですと、コマンドプロンプトで設定する方法もあったのですが、自分はなぜか保存がうまくいかなかったので、設定画面でやってみました。

 同じ様に、 SPARK_HOME のパスも、同様に先ほど展開した Spark のフォルダのアドレスに設定します。

 こんな感じになるはず。

f:id:kj_man666:20200313193902p:plain

f:id:kj_man666:20200313193904p:plain

java 8もインストールする

 次に java をインストールします。

 ブログを書いている時点ですと、java13 が最新ですが、java13でやるとエラーが発生しました。

 調べると、java10でやったらエラーが出たので、java8で環境を構築した、という記事を見つけました。

 現時点ではjavaのどのバージョンまで対応しているのかわかりませんでしたので、java8 で環境構築しました。

 ダウンロードには Oracle のアカウント作成を求められるので、事前に登録してください。

www.oracle.com

 

java の環境変数も設定する

 Spark のデータと同じように、java も環境変数を設定する必要があります。

 JAVA_HOME のパスを、java の Runtime Environment (JRE) のフォルダに設定します。

(例:C:\Program Files\Java\jre1.8.0_241)

こんな感じになるはず。 f:id:kj_man666:20200315122405p:plain  

コマンドプロンプトでSpark と PySpark を立ち上げてみる

 これで Spark の設定は完了です。

 コマンドプロンプトを立ち上げて、次のコマンドを打ち込んでSpark を立ち上げてみましょう。

spark-shell

 この画面が出れば成功です!

f:id:kj_man666:20200313195217p:plain

 Spark を停止するときは次のコマンドを入力します。

:quit

 次にPySpark も立ち上げてみましょう。

 コマンドプロンプトで、次のコマンドを入力してみましょう。

pyspark

 次の画面が表示されれば成功です!

f:id:kj_man666:20200313195438p:plain

 PySpark を停止するときは、先ほどと違い、

exit()

と入力しましょう。  

コマンドプロンプトで立ち上げたjupyter notebook上でPySparkを立ち上げてみる

 これで環境構築は無事終了です!

 最後に jupyter notebook で PySpark が動くかどうか見てみましょう!

 jupyter notebook のインストールはこちらのサイトが参考になりました! water2litter.net

 ついでに、findspark ライブラリもインストールしておきましょう!

 コマンドプロンプトに下記のコマンドを打ち込んで、jupyter notebook を立ち上げます。

jupyter notebook

 立ち上がったjupyter の画面に、下記のコマンドを打ち込みます。

import pyspark # only run after findspark.init()
from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

df = spark.sql('''select 'spark' as hello ''')
df.show()

 次の結果が出力されれば完成です! f:id:kj_man666:20200315122157p:plain

参考サイト

codezine.jp qiita.com www.programmersought.com goodbyegangster.hatenablog.com stackoverflow.com   最後までお読みいただきありがとうございました!