前回は、Sparkの入門ということでローカルPCにSparkの開発環境を構築し、インタラクティブシェルを使ってScala、PythonでのSparkのコアコンポーネントを使ったプログラミングを行いました。また、サンプルを用いてRDD、DAGや遅延実行といったSparkの概念についても簡単に紹介致しました。今回は、Sparkをより便利に使い込むためにSparkコアを拡張した各コンポーネントを使ったプログラミングを行っていきます。各コンポーネントの概要を見た後、それぞれのプログラミングを行っていきましょう。
Sparkのテクノロジースタック
Sparkでは、コアコンポーネントを拡張したSparkSQL、GraphX、Spark Streaming、MLlibといったコンポーネントが用意されています。下記はSparkのテクノロジースタックを表したものです。
SparkSQL
SparkSQLは、その名のとおりSpark上でSQLを利用するためのコンポーネントです。Sparkの分散環境上で大量データに対して高速なSQLを実行できます。今回、SparkSQLではデータフレームを通してデータの処理を行います。
GraphX
GraphXは、Spark上でGraph構造を扱うためのコンポーネントです。Graph構造を扱うためのVertex、Edgesなどの便利なAPIが実装されています。
Spark Streaming
Spark Streamingは、Spark上でストリームデータ処理を行うためのコンポーネントです。RDBやNoSQLといった蓄積したデータに対して処理を行うのではなく、流れてくるデータに対して処理を挟み込むことで、よりリアルタイムな処理が可能となります。
MLlib
MLlibは、機械学習の各種アルゴリズムを提供しているコンポーネントです。Spark上で機械学習を効率よく行うため、さまざまなアルゴリズムの実装が行われています。
今後の連載を通じて各コンポーネントのプログラミングを見ていきます。今回はSparkSQLについて、Scala、Pythonそれぞれの言語を使ってSparkのプログラミングを行っていきます。
【PR】

この記事は参考になりましたか?
- ゼロからはじめるSparkアプリケーション入門連載記事一覧
-
- Sparkの主な拡張コンポーネントの紹介と、SparkSQLを利用した簡単な分析
- Sparkアプリケーションの基本と、はじめに押さえておきたい重要な概念
- この記事の著者
-
田中 裕一(日本アイ・ビー・エム株式会社)(タナカ ユウイチ)
Web系・広告系企業にて、Hadoop/Spark/Kafka等Hadoopエコシステムを利用した広告システム(DMP)・行動分析基盤・レコメンド基盤の全体アーキテクチャ設計やプログラミング、最適化、行動解析を担当。Spark/Hadoopエコシステムを筆頭にOSSを組み合わせた大規模なアーキテクチ...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
