Sparkでのプログラミング
Sparkがサポートする言語
Sparkでは、以下の4つの言語がサポートされています。
- Scala
- Python
- Java
- R
また、以後の連載で触れますが、SparkではHiveメタストアを利用したSQLを扱うこともできます。
Sparkでもっとも利用されている言語はScalaで、次にPython、SQL、Java、Rと並びます(注1)。Sparkを利用する際、最も使いやすい言語を選択できますが、注意点として、Python、Rを利用する場合は一部APIが未実装のものがあります(注2)。利用する機能がPythonやRでサポートされているかは公式のドキュメントを参照しましょう。
本連載では人気の高いScala、Pythonを主に扱い、一部Rでの記述を紹介していきます。
注1
Spark Survey Report 2015 @databricksより。
注2
Apache Spark v1.6.1当時。
Sparkの実行とHelloWorld
ここからはSparkのインタラクティブシェルを用いて、実際にSpark上でのプログラミングを体験していきます。
まずSparkを起動しましょう。Scala、Python、Rを利用する場合で、起動するインタラクティブシェルがそれぞれ異なります。
Scalaのインタラクティブシェルの起動
spark-shell
spark-shell.cmd
補足
spark-shell.cmdを実行するWindowsのコマンドプロンプトは管理者権限で起動されている必要があります。
コマンドラインから上記コマンドを実行すると、Sparkのインタラクティブシェルが実行されます。下記はshark-shell実行時の画像です。

補足
Homebrewを利用してSparkをインストールした環境で、shark-shell起動時に例外が発生する場合は、.bash_profileや.bashrcファイルで、次のように自身のIPを登録してください。
export SPARK_MASTER_IP=127.0.0.1 export SPARK_LOCAL_IP=127.0.0.1
HelloWorldの表示
Sparkのインタラクティブシェルで、ScalaのHelloWorldを表示させてみます。
val test = "hello world" //変数の宣言と値の代入 println(test) //値をconsoleに出力
下記は上記コマンドの実行結果です。

インタラクティブシェルを抜ける場合は、次のように入力します。
exit
Pythonのインタラクティブシェルの起動
pyspark
pyspark.cmd
コマンドラインから上記コマンドを実行すると、Sparkのインタラクティブシェルが実行されます。下記はpyspark実行時の画像です。

HelloWorldの表示
SparkのインタラクティブシェルでPythonのHelloWorldを表示させてみます。
test = "hello world" #変数の宣言と値の代入 print test #値をconsoleに出力
上記コマンドを実行すると、下図のようになります。

インタラクティブシェルを抜ける場合は、次のように入力します。
exit()
【PR】

