Skip to Content
Google Cloud Platform 上でのデータサイエンス、第2版
book

Google Cloud Platform 上でのデータサイエンス、第2版

by Valliappa Lakshmanan
March 2025
Intermediate to advanced
462 pages
7h 19m
Japanese
O'Reilly Media, Inc.
Book available
Content preview from Google Cloud Platform 上でのデータサイエンス、第2版

第6章. Cloud上のApache Sparkによるベイズ分類器

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

管理するクラスタがないBigQueryでクエリを実行することに慣れてしまったので、Hadoopクラスタの設定と管理に戻るのが怖い。しかし、クラウド上のデータサイエンスのツアーを約束したし、多くの企業でHadoopは重要な役割を果たしている。

この章では、フライトの到着遅延を予測するベイズモデルを作成することで、データサイエンスの問題の次の段階に取り組む。BigQueryとSpark SQLを含む統合ワークフローを通してこれを行う。

この章のコード・スニペットはすべて、この本のGitHubリポジトリの06_dataprocフォルダにある。この章で説明されているステップの実行方法については、そのディレクトリのREADME.mdファイルを参照のこと。

MapReduceとHadoopエコシステム

MapReduceは、Jeff DeanとSanjay Ghemawatによる論文で、マシンのクラスタ上で大規模データセットを処理する方法として説明された。キーと値のペアを処理して中間的なキーと値のペアを生成するmap 関数と、同じキーに関連するすべての中間値をマージするreduce 関数である。柔軟で一般化されたフレームワークは、コモディティマシンのクラスタ上でこのMapReduceモデルに従って書かれたプログラムを実行することができる。このようなMapReduceフレームワークは、分散システムアプリケーションを書くことを難しくしている細部の多くを引き受けてくれる。例えば、フレームワークは入力データのパーティション分割を適切に行い、マシンのセット全体でプログラムを実行するスケジュールを立て、ジョブやマシンの障害を処理する。

MapReduceの仕組み

大規模なデータセットがあり、そのデータセットに対して単語の出現頻度を計算したいとする。MapReduce以前は、これは非常に難しい問題だった。一つのアプローチは、スケールアップすることだろう。つまり、非常に大きくて強力なマシンを手に入れることだ。1このマシンは現在の単語頻度表をメモリに保持し、文書内で単語が出現するたびに、この単語頻度表を更新する。これを擬似コードで示す:

wordcount(Document[] docs):
   wordfrequency = {}
   for each document d in docs:
      for each word w in d:
           wordfrequency[w] += 1
   return wordfrequency

各スレッドに別々の文書を処理させ、スレッド間で単語頻度表を共有し、スレッドセーフな方法でこれを更新することで、マルチスレッドソリューションにすることができる。しかし、ある時点で、1台のマシンの能力を超えるデータセットに遭遇するだろう。その時点で、文書をマシンのクラスタに分割してスケールアウトしたくなるだろう。そして、クラスター上の各マシンは、ドキュメントコレクション全体の一部を処理する。プログラマはmapreduce という2つのメソッドを実装する:

map(String docname, String content): for each word w in content: emitIntermediate(w, 1) reduce(String word, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

AWS Lambdaのプログラミング

AWS Lambdaのプログラミング

John Chapin, Mike Roberts
セキュアで信頼性のあるシステム構築 ―Google SREが考える安全なシステムの設計、実装、保守

セキュアで信頼性のあるシステム構築 ―Google SREが考える安全なシステムの設計、実装、保守

Heather Adkins, Betsy Beyer, Paul Blankinship, Piotr Lewandowski, Ana Oprea, Adam Stubblefield, Kuma Arakawa, 渡邉 了介

Publisher Resources

ISBN: 9798341635968Supplemental Content