Spark 2.0の回帰分析アプリをScalaのSBTで実装し、EMRで実行:Amazon EMRで構築するApache Spark超入門(2)(1/3 ページ)
本連載では、Sparkの概要や、ローカル環境でのSparkのクラスタの構築、Sparkの基本的な概念やプログラミングの方法を説明していきます。今回は、簡単な機械学習のSparkアプリケーションを作成し、Amazon EMRで実行するまでを説明します。
Amazon S3に置いてあるデータファイルを読み込み、Spark 2.0で回帰分析を行う
本連載「Amazon EMRで構築するApache Spark超入門」では、Apache Spark(以下、Spark)の概要や、ローカル環境でのSparkのクラスターの構築、Sparkの基本的な概念やプログラミングの方法を説明していきます。前回の「Apache Sparkとは何か――使い方や基礎知識を徹底解説」では、Sparkについての概要と、ローカル環境でのクラスターの構築方法、spark-shellの使い方を簡単に説明しました。
今回は、簡単な機械学習のSparkアプリケーションを作成し、Amazon EMR(Elastic MapReduce)(以下、EMR)で実行するまでを説明します。今回作成するアプリケーションは、Amazon S3(以下、S3)に置いてあるデータファイルを読み込み、回帰分析を行うものです。Scalaで実装します。
サンプルコードの実行には、AWSのアカウントが必要になるので、ご用意の上で本稿を読むことをお勧めします。しかし、面倒な方はそのまま読んでいただいても構いません。Sparkで簡単に機械学習のアプリケーションが作成できることが実感できると思います。
分析データの作成
話を分かりやすく簡単にするため、三角関数の「sin関数」を元にした下記のような分布データを作成します。
下記のコマンドで作成してみてください(Rubyの実行環境が必要です)。
ruby -e 'puts "x,y";Range.new(0,5).step(0.05).each {|i| puts "#{i},#{Math.sin(i)+Random.rand(-0.3..0.3)}"}' > data.csv
これでデータの用意ができました。
Scalaの便利ツール「SBT」のインストール
Sparkのアプリケーションの開発のために、Scalaの開発環境を整えます。
今回は、「SBT(Simple Build Tool)」を使います。SBTはScalaのコードをビルドしたり、依存ライブラリを管理したりすることができる便利なツールです。
Macであれば、下記のコマンドでインストールできます。
brew install sbt
SBTプロジェクトの骨組みを作成
SBTプロジェクトを作成します。適当な場所に、下記のようにファイルとディレクトリの配置を行ってください。
mkdir SparkExampleApp cd SparkExampleApp mkdir -p src/main/scala touch build.sbt
SBTのプロジェクトでは、ルートディレクトリに「build.sbt」というファイルを作ります。build.sbtではプロジェクトの概要や依存関係を記載します。
早速、build.sbtを下記のように編集してください。
name := "Spark Sample Project" // プロジェクトの名前 version := "1.0" // プロジェクトのバージョン scalaVersion := "2.11.8" // 使用するscalaのバージョン(執筆時点で最新) // 依存ライブラリです。 libraryDependencies ++= Seq( "org.apache.spark" %% "spark-core" % "2.0.0", "org.apache.spark" %% "spark-mllib" % "2.0.0", "org.apache.spark" %% "spark-sql" % "2.0.0", "com.databricks" %% "spark-csv" % "1.4.0" )
これでプロジェクトの骨組みが完成しました。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 知らないと大損する、Apache Sparkの基礎知識と3つのメリット
社会一般から大きな注目を集めているIoT(Internet of Things)。だが、その具体像はまだ浸透しているとはいえない。今回は、IoTやビッグデータのキーテクノロジとして注目されている「Apache Spark」について、Sparkを製品に取り込んでいる日本IBMの土屋敦氏と、数多くの企業のデータ分析を担うブレインパッドの下田倫大氏に話をうかがった。 - Sparkのエンタープライズ対応が「成熟」――Clouderaが宣言
HadoopディストリビューターもあらためてSparkへの注力をアピール。既に800ノード超のSparkクラスターを運用するユーザーも存在するという。 - Sparkは“誰”に例えられる?──多様化と進化を続ける「Hadoop」、人気急上昇「Spark」
先日、日本Hadoopユーザー会主催のイベントが開催されました。データベースと関係性が深いデータ分散処理プラットフォームである「Hadoop」と「Spark」の最近事情に迫ります。