An Introduction to Writing Apache Spark Applications on Databricks - The Databricks Blogの翻訳です。
この記事は3パートからなる「DatabricksにおけるApache Sparkアプリケーション開発のご紹介」のパート1となります。サンプルノートブックはこちらからダウンロードできます。
数年前にApache Sparkを学び始めたとき、私にとって最大の課題は、Sparkアプリケーションを効率的に開発する際に必要となるキーコンセプト、考え方を説明した資料を探し出すことでした。UCバークレー校の大学院生の時、AMPキャンプとSparkサミット SF 2015に参加しました。これらは基礎を学ぶには大変素晴らしい体験でしたが、基本的なワードカウントの先を学習するためにサンプルを見つけることは容易ではありませんでした。しかし、6ヶ月前からDatabricksで働き始めたときには状況は一変していました。
訳者注 本記事の執筆は2016/6/15です。
Databricksにはユーザー向けの素晴らしいリソース(Databricks Guide:リンク切れ)が存在していました。しかし、私は、多くのユーザーがより詳細かつエンドツーエンドのサンプルを通じてApache Sparkへの理解を深めたいと考えていることを知りました。よく私は、「どうやってデータフレームやSparkSQL、データセットを使えばいいのですか?」、「どのように機械学習パイプラインを作ればいいのですか?」、「どのようにUDF(ユーザー定義関数)を作って、Spark SQLでどのようにデータフレームに適用したらいいのですか?」と言った質問を受けました。これが、これらの質問に答えるために3つのチュートリアルをDatabricksのノートブックの形で作成するに至った背景です。
フリーのプラットフォームであるDatabricksコミュニティエディションを活用いただくことで、誰でもこれらのノートブックをハンズオンとして実行することができます。まだ、コミュニティエディションにサインアップされていないのでしたら、ぜひサインアップしてノートブックを実行してみてください。
最初のチュートリアル
最初のチュートリアルは最も数が多い方々向け、Apache SparkやDatabrikcsを初めて触る方向けです。このノートブックでは、データに対する作業を容易にするDatabricksのツールをデモンストレーションするとともに、Apache Sparkクラスターの作成や、データの可視化、Spark UIへのアクセス方法などを説明します。Databrciksだけではなく、Apache Sparkのアーキテクチャ概観を理解することで、Sparkジョブの実行に際して何が起きているのかをより深く理解できるようになります。また、このノートブックは、自身がApache Sparkをきちんと理解しているのかを確認するのにも活用いただけます。
このチュートリアルでカバーする主なコンセプトは以下の通りです:
- Apache SparkとDatabricks用語の紹介
- Apache 2.0のSparkSessionコンテキストを含む、Apache Sparkにおける様々なコンテキスト、環境
- データフレーム、データセットなどの基本的データインタフェース
- Databricksコミュニティエディションにおいて、Apache Sparkクラスターがどのようにコードを実行するのか
- トランスフォーメーションとアクションの違い
- 以下に示す有向非巡回グラフ(DAG)のウォークスルー。Sparkが生データを最終形態に変換するまでに、どのようにトランスフォーメーションとアクションを用いるのか。Databricksは既にApache Spark2.0のプレビューを取り込んでいるため、クエリープランを作成する異なるバージョンのSparkを比較することができます。下にあるのは2.0のクエリープランです。
訳者注:2021/4/21時点ではSpark 3.1が利用できます。
最初のノートブックはこちらからダウンロードできます。
次のステップ
最初のノートブックではハイレベルのコンセプトを紹介しましたが、パート2、パート3のノートブックではより詳細に入っていきます。パート2では、どのようにデータサイエンティストがSparkとDatabricksを使うべきかを説明します。ここでは、特定の郵便番号エリアでの農業市場を、特定のエリアにおける個人税、法人税に基づいて予測を行います。最後のノートブックでは、エンドツーエンドのETLパイプラインを説明します。これには、生のログファイルの解析、UDFの作成、汚いデータフレームの取り扱い、他のデータセットとの結合を説明します。これらにおいては、複数のデータソースを統合するために、Sparkが提供するデータコネクターを活用します。これらのノートブックには多くのコードと説明が盛り込まれていますので楽しみにしてください。