SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IBM Bluemix User Group(BMXUG)リレー寄稿

Apache Sparkによるスケーラブル機械学習入門

IBM Bluemix User Group(BMXUG)リレー寄稿 第5回


  • X ポスト
  • このエントリーをはてなブックマークに追加

Sparkの利用

BluemixでのSparkサービスのセットアップ

 それでは早速、Bluemix上でSparkの実行環境をセットアップしてみましょう。まずBluemixにログインして、メニューの「カタログ」から「spark」を検索しましょう。「Apache Spark」サービスが絞り込まれるので、クリックします。

fig3. Bluemixカタログ画面
fig3. Bluemixカタログ画面

 Apache Sparkサービスの作成画面へ遷移するので、「選択済みプラン」が「Personal」になっていることを確認して[作成]ボタンをクリックしてください。

fig4. Apache Sparkサービス作成画面
fig4. Apache Sparkサービス作成画面

 Apache Sparkサービスが構築されると、管理画面が表示されます。ここから[NOTEBOOK][NEW NOTEBOOK]とボタンをたどり、「Create Notebook」画面でNotebook名を記入し、言語がPythonになっていることが確認できたら[CREATE NOTEBOOK]ボタンをクリックして新しいNotebookを作成してください。これでSparkの実行準備は完了です。

fig5. Apache Sparkサービス管理画面
fig5. Apache Sparkサービス管理画面
fig6. Notebook作成画面
fig6. Notebook作成画面

Notebookの利用

 前節でNotebookを作成したあと、fig7のような画面が表示されているはずです。Notebookの利用方法の詳細について、ここでは説明しませんが、BluemixのNotebookは「Jupyter Notebook」というツールをベースにしているので興味のある方はそちらのドキュメントを参照ください。画面で「In [ ]:」と表示されている箇所は「Cell」と呼ばれています。CellにはプログラムコードのほかMarkdown形式のテキストも記述可能で、Cellのフォーマットはメニューバーの[Format]のプルダウンから選択することができます。また、Cellはメニューバーの各ボタンから追加、切り取り、コピーや実行などの操作を行うことができます。画面右の[Palette]からはデータソースやNotebook、環境情報にアクセスすることができます。

fig7. Notebook画面
fig7. Notebook画面

 それでは簡単なプログラムを実行してみましょう。Cellにlist1とlist2のコードを入力してメニューの実行ボタンをクリックしてください。

list1
sc.version
list2
rdd = sc.parallelize(range(1, 11))
print(rdd.reduce(lambda x, y: x + y))
fig8. list1、list2実行結果
fig8. list1、list2実行結果

 list1ではSparkContextオブジェクトから演算クラスタのSparkバージョンを取得しています。SparkContextはSparkの演算クラスタとのやりとりを管理するオブジェクトで、Notebookでは「sc」という変数名であらかじめ初期化されており、RDD(Resilient Distributed Datasets、耐障害性分散データセット)の生成などに利用されます。RDDはSparkの演算クラスタ上に分散されたデータをコレクションとして表現するもので、Sparkを扱う上で核となる抽象概念です。Sparkでのすべての操作はRDDの生成、変換およびmap()やreduce()などのメソッド呼び出しとして表現されます。list2はSparkContextオブジェクトのparallelize()メソッドを用いて配列からRDDを生成し、reduce()メソッドで合計を算出しています。ここでのreduce()メソッドの処理は、演算クラスタ上で分散して処理されます。

次のページ
Sparkによる機械学習

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
IBM Bluemix User Group(BMXUG)リレー寄稿連載記事一覧

もっと読む

この記事の著者

小峰 央志(Bluemix User Group)(コミネ ヒサシ)

MNU Co., Ltd. 取締役。サーバサイドアプリケーション開発、Webフロントエンド開発、DevOps、スクラムなど広く浅く取り組む。最近は機械学習を利用したアプリケーション開発に興味があり、主にSemantic Image Segmentationについて勉強しているが敷居の高さに苦戦中。主...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9626 2021/03/25 21:20

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング