PySparkの環境構築に成功したのでまとめてみた
GCIセミナーでpythonで大規模データを扱えるPySparkの存在を知りました。
環境構築は各自挑戦とのことでしたので、やってみたところ、うまくいったのでまとめます。
前提は以下のとおりです。
・ローカル環境での構築には成功したが、Anacondaなどの仮想環境上の構築はうまくいっていない ・Windows10 Home 64bit ・Python3.7.1
手順は以下のとおり。
Sparkをインストールする
こちらのサイトからSparkをダウンロードします。
いくつかバージョンがあるようですが、私はこちらで設定しました。
ダウンロードされた圧縮ファイルの拡張子が .tgz と私には見慣れないものでしたが、Lhaplus で無事解凍。
解凍したフォルダはとりあえず C ドライブに配置しました。
加えて、WindowsでSparkを実行するためには、Hadoopの依存関係を解決するため(よくわかってない)winutils.exe というファイルを取得しする必要があるそうです。
ダウンロードしたら、winutils.exeファイルを、先ほど展開したSparkのフォルダの直下にある、binフォルダの直下に保存します。
Spark の環境変数を設定する
このままですと環境変数が設定されておらず、うまくプログラムが開かれません。
ウィンドウズの設定画面から、環境変数の設定画面を開きます。
HADOOP_HOME のパスを、 先ほど展開した Spark のフォルダのアドレスに設定しましょう。
(例:C:\spark-2.4.5-bin-hadoop2.7)
参考サイトですと、コマンドプロンプトで設定する方法もあったのですが、自分はなぜか保存がうまくいかなかったので、設定画面でやってみました。
同じ様に、 SPARK_HOME のパスも、同様に先ほど展開した Spark のフォルダのアドレスに設定します。
こんな感じになるはず。
java 8もインストールする
次に java をインストールします。
ブログを書いている時点ですと、java13 が最新ですが、java13でやるとエラーが発生しました。
調べると、java10でやったらエラーが出たので、java8で環境を構築した、という記事を見つけました。
現時点ではjavaのどのバージョンまで対応しているのかわかりませんでしたので、java8 で環境構築しました。
ダウンロードには Oracle のアカウント作成を求められるので、事前に登録してください。
java の環境変数も設定する
Spark のデータと同じように、java も環境変数を設定する必要があります。
JAVA_HOME のパスを、java の Runtime Environment (JRE) のフォルダに設定します。
(例:C:\Program Files\Java\jre1.8.0_241)
こんな感じになるはず。
コマンドプロンプトでSpark と PySpark を立ち上げてみる
これで Spark の設定は完了です。
コマンドプロンプトを立ち上げて、次のコマンドを打ち込んでSpark を立ち上げてみましょう。
spark-shell
この画面が出れば成功です!
Spark を停止するときは次のコマンドを入力します。
:quit
次にPySpark も立ち上げてみましょう。
コマンドプロンプトで、次のコマンドを入力してみましょう。
pyspark
次の画面が表示されれば成功です!
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()
次の結果が出力されれば完成です!
参考サイト
codezine.jp qiita.com www.programmersought.com goodbyegangster.hatenablog.com stackoverflow.com 最後までお読みいただきありがとうございました!