Databricksクイックスタートガイドのコンテンツです。
Get started with Apache Spark | Databricks on AWS[2021/3/17時点]の翻訳です。
このチュートリアルでは、あなたがApache Sparkをすぐに使い始められるお手伝いをします。簡単にキーとなるコンセプトを紹介した後で、すぐに最初のApache Sparkアプリケーションを書いてみます。他のチュートリアルモジュールでは、あなたの興味に応じてより理解を深めることができます。
このモジュールでは、以下のことを学びます:
要件
ユーザー向けDatabricksスタートガイドを修了してください。
Sparkインタフェース
Apache Sparkには、理解する必要がある主要なインタフェースが3つあります: レジリエント分散データセット、データフレーム、データセットです。
- レジリエント分散データセット: 一番最初のApahce Sparkの抽象化レイヤーは、レジリエント分散データセット(RDD)でした。マシンの集合体(クラスター)に渡って配置される、1種類以上のデータオブジェクトのシーケンスに対するインタフェースです。
- データフレーム: PythonのpandasライブラリやR言語でおなじみのデータフレームのコンセプトに近しいものです。Dataframe APIは、Java、Python、R、Scalaで利用できます。
- データセット: データフレームとRDDを組み合わせたものです。データフレームの利便性を保ったまま、型インタフェースを提供します。データセットAPIは、JavaとScalaで利用できます。
多くのシナリオで、データフレーム、データセットに対して性能の最適化が行われているため、RDDを使うケースは多くありません。しかしながら、以下の理由からRDDの抽象化を理解することは重要です。
- Sparkが高速に動作し、データの証跡を得るために、RDDは基盤となるインフラストラクチャです。
- Sparkのより高度なコンポーネントを使う際に、RDDを使用する必要があるかもしれません。
- Spark UIの可視化はRDDを参照しています。
Sparkアプリケーションを開発する際は、特にApache SparkデータフレームチュートリアルとDatasets tutorial(英語)を参照することになります。
Apache Sparkアプリケーションことはじめ
最初のSparkアプリケーションを書くためには、Databricksノートブックセルにコードを追加する必要があります。この例ではPythonを使用します。詳細に関しては、Apache Spark Quick Start Guideを参照することもできます。
Databricksファイルシステムにあるフォルダーの中を表示するには、以下を実行します。
# Take a look at the file system
display(dbutils.fs.ls("/databricks-datasets/samples/docs/"))
次のコマンドでは、全てのノートブックで利用できるSparkSession
であるspark
を利用します。README.md
テキストファイルを読み込み、textFile
というデータフレームを作成するには以下を実行します。
textFile = spark.read.text("/databricks-datasets/samples/docs/README.md")
テキストファイルの行数をカウントするには、データフレームにcount
アクションを適用します。
textFile.count()
ここで、一つのことに気が付いたかもしれません。テキストファイルを読み込んだ二番目のコマンドでは、何の結果も表示されなかったのに、count
を実行した三番目のコマンドでは結果が表示されました。これは、前者は変換処理(transformation)であったのに対して、後者はアクション(action)であったためです。変換処理はレイジー(lazy)であり、アクションが実行された時に初めて実行されます。これにより、コマンドを順次実行するのに比べて、Sparkでは性能を最適化(例えば、ジョインを行う前にフィルタリングを行うなど)することができます。変換処理とアクションの完全な一覧に関しては、Apache SparkプログラミングガイドのTransformationsとActionsを参照ください。
Databricksデータセット
Databricksワークスペースには、Sparkを学習したり、アルゴリズムをテストする際に利用できる様々なデータセットが格納されています。クイックスタートガイドを通じて、これらのデータセットを見ることになるでしょう。このデータセットは/databricks-datasets
に格納されています。
ノートブック
サンプルノートブックはこちらとなります。