Spark

『Sparkによる実践データ解析』のサンプルコードの動かし方

More than 3 years have passed since last update.

オライリー・ジャパン様から 『Sparkによる実践データ解析――大規模データのための機械学習事例集』が,2016年1月に出版されました.

実践的なデータ分析の事例を通して,Spark と Scala を利用して大規模データでのデータサイエンスを学べる良書です. データサイエンスを学びたいエンジニアの方にも,Spark の使い方を学びたいデータサイエンティストの方にも,本書で学べることがたくさんあると思います.

本エントリーでは,原著者である Sandy Ryza や Sean Owen が公開している,本書のサンプルコードをビルドして実行する方法を解説します.また本エントリーは,本書に掲載されいている内容については解説せず,あくまで本書を補助するための内容となっていることをご了承ください.


サンプルコードのビルド方法

原著者が公開しているサンプルコードは,https://github.com/sryza/aas から手に入れることができます.サンプルコードのビルドに必要な環境はつぎになります.


  • Apache Maven 3.0.5+

  • Java 7+

ビルドをするには git コマンドでサンプルコードをチェックアウトして,mvn コマンドでビルドします.mvn コマンドでビルドすると,各章のディレクトリごとに JAR ファイルが生成されます.

$ cd "$SPARK_HOME"

$ git clone https://github.com/sryza/aas.git
$ cd aas
$ mvn clean package


サンプルコードの実行方法

本書の2章を例に,サンプルコードを実行する方法を解説します.本書では基本的に,Spark の対話型インタフェースである Spark Shell で実行する方法を解説しています.データの準備や対話型インタフェースの実行方法などは本書に書かれているので,そちらをご参照ください.

しかし,原著者が公開しているサンプルコードは,Spark アプリケーションとして実行することもできます.本エントリーでは,Spark アプリケーションとして実行する方法のみ解説します.

本書「2.4 始めてみよう:SparkシェルとSparkContext」に,データを準備する方法が書いてあります.これを基にデータを用意した上で原著者が公開しているサンプルコードを実行するには,つぎのようにコマンドを実行します.

$ cd "$SPARK_HOME"

$ ./bin/spark-submit --class com.cloudera.datascience.intro.RunIntro \
./aas/ch02-intro/target/ch02-intro-1.0.2-jar-with-dependencies.jar

spark-submit コマンドでサンプルコードの Spark アプリケーションが実行できます.--class オプションに,実行する Scala object を指定します.最後に実行したい Spark アプリケーションが含まれる JAR ファイルを指定します.

3章以降についても同様にして,実行する Spark アプリケーションとその JAR ファイルを指定してください.また本書の中で解説を省略してしまっているコードもあるので,サンプルコードの中身も確認してみてください.