Scala 開発者向け Azure Databricks
この記事では、Scala 言語を使用して Azure Databricks でノートブックおよびジョブを開発するためのガイドを提供します。 最初のセクションでは、一般的なワークフローとタスクのチュートリアルへのリンクを示します。 2 番目のセクションでは、API、ライブラリ、および主要なツールへのリンクを示します。
作業を開始するための基本的なワークフローは次のとおりです。
- 対話型の Databricks ノートブックを使用してコードをインポートして実行する: ファイルまたは Git リポジトリから独自のコードをインポートするか、以下のチュートリアルを試してください。
- クラスターでコードを実行する: 独自のクラスターを作成するか、共有クラスターを使用するアクセス許可があることを確認します。 ノートブックをクラスターにアタッチし、ノートブックを実行します。
これ以外にも、より具体的なトピックに分けることができます。
- Apache Spark を使用して大規模なデータ セットを操作する
- 視覚化を追加する
- ジョブとしてワークロードを自動化する
- IDE で開発する
チュートリアル
以下のチュートリアルでは、一般的なワークフローについて学習するためのコードとノートブックの例を示します。 ノートブックの例をワークスペースにインポートする手順については、「ノートブックをインポートする」を参照してください。
- チュートリアル: Apache Spark DataFrames を使用してデータを読み込んで変換する
- Delta Lake のクイック スタートでは、Scala の例を挙げています。
- Java と Scala のクイック スタートでは、Scala で MLflow を使用した機械学習トレーニングの実行の追跡の基本について説明します。
- 「Azure Databricks で XGBoost を使用する」では、Scala の例を提供します。
リファレンス
以下のサブセクションでは、Scala を使用して Azure Databricks での開発を開始するのに役立つ主な機能とヒントを示します。
Scala API
これらのリンクは、Apache Spark Scala API の概要とリファレンスを提供しています。
- チュートリアル: Apache Spark DataFrames を使用してデータを読み込んで変換する
- JSON 文字列のクエリを実行する
- 構造化ストリーミングの概要
- Apache Spark Core API リファレンス
- Apache Spark ML API リファレンス
ノートブックと Databricks Git フォルダーを使用してコードを管理する
Databricks ノートブックでは Scala がサポートされています。 これらのノートブックは Jupyter と同様の機能を提供しますが、ビッグ データを使用した組み込みの視覚化、デバッグとパフォーマンス監視のための Apache Spark 統合、機械学習の実験を追跡するための MLflow 統合などの機能が追加されています。 ノートブックをインポートして開始します。 クラスターにアクセスしたら、クラスターにノートブックをアタッチし、ノートブックを実行できます。
ヒント
ノートブックの状態を完全にリセットするには、カーネルを再起動すると便利です。 Jupyter ユーザーの場合、Jupyter の "カーネルの再起動" オプションは、Databricks でのノートブックのデタッチと再アタッチに対応します。 ノートブックでカーネルを再起動するには、ノートブック ツール バーでコンピューティング セレクターをクリックし、一覧内のアタッチされたクラスターまたは SQL ウェアハウスの上にマウス ポインターを合わせてサイド メニューを表示します。 [デタッチして再アタッチ] を選択します。 これにより、クラスターからノートブックがデタッチされ、再アタッチされ、プロセスが再起動されます。
Databricks Git フォルダーを使用すると、ユーザーはノートブックやその他のファイルを Git リポジトリと同期できます。 Databricks Git フォルダーは、コードのバージョン管理とコラボレーションに役立ちます。これにより、コードの完全なリポジトリを Azure Databricks にインポートしたり、過去のノートブック バージョンを表示したり、IDE 開発と統合したりするのが簡単になります。 リモート Git リポジトリを複製して開始します。 その後、リポジトリ クローンを使用してノートブックを開くか作成し、クラスターにそのノートブックをアタッチして、ノートブックを実行できます。
クラスターとライブラリ
Azure Databricks コンピューティングでは、単一ノード クラスターから大規模なクラスターまで、あらゆるサイズのクラスターのコンピューティング管理が提供されます。 クラスターのハードウェアとライブラリは、ニーズに応じてカスタマイズできます。 通常、データ サイエンティストは、クラスターを作成するか、既存の共有クラスターを使用して作業を開始します。 クラスターにアクセスしたら、クラスターにノートブックをアタッチするか、クラスターでジョブを実行できます。
- 単一ノードのみを必要とする小規模なワークロードの場合、データ サイエンティストはコスト削減のために単一ノード コンピューティングを使用できます。
- 詳細なヒントについては、「コンピューティング構成のベスト プラクティス」を参照してください
- 管理者はクラスター ポリシーを設定して、クラスターの作成を簡略化し、ガイドすることができます。
Azure Databricks クラスターは Databricks ランタイムを使用します。このランタイムには、Apache Spark、Delta Lake など、多くの一般的なライブラリがすぐに使えるように用意されています。 サードパーティ製やカスタムのライブラリを追加でインストールして、ノートブックやジョブで使用することもできます。
- 「Databricks Runtime リリース ノートのバージョンと互換性」の既定のライブラリから始めます。 プレインストールされているライブラリの完全な一覧については、Databricks Runtime リリース ノートのバージョンと互換性 を参照してください。
- クラスターに Scala ライブラリをインストールすることもできます。
- 詳細については、「ライブラリ」を参照してください。
視覚化
Azure Databricks Scala ノートブックには、さまざまな種類の視覚化のサポートが組み込まれています。 レガシ視覚化を使用することもできます。
相互運用性
このセクションでは、Scala と SQL との相互運用性をサポートする機能について説明します。
ジョブ
Azure Databricks では、スケジュールされたジョブまたはトリガーされたジョブとして Scala ワークロードを自動化できます。 ジョブでは、ノートブックと JAR を実行できます。
- UI を使用したジョブの作成の詳細については、「ジョブの作成」を参照してください。
- Databricks SDK を使用すると、プログラムを使用してジョブを作成、編集、削除できます。
- Databricks CLI には、ジョブを自動化するための便利なコマンド ライン インターフェイスが用意されています。
IDE、開発者ツール、SDK
Azure Databricks ノートブック内で Scala コードを開発するだけでなく、IntelliJ IDEA などの統合開発環境 (IDE) を使用して外部で開発することもできます。 外部開発環境と Azure Databricks の間で作業を同期するには、いくつかのオプションがあります。
- コード: Git を使用してコードを同期できます。 Git と Databricks Git フォルダーの統合に関する記事を参照してください。
- ライブラリとジョブ: 外部でライブラリを作成し、Azure Databricks にアップロードできます。 これらのライブラリは、Azure Databricks ノートブック内にインポートすることも、ジョブの作成に使用することもできます。 「ライブラリ」および「Azure Databricks ジョブを作成して実行する」を参照してください。
- リモート マシンの実行: ローカル IDE からコードを実行して、対話型の開発とテストを行うことができます。 IDE は Azure Databricks と通信して、Azure Databricks クラスターで大規模な計算を実行できます。 たとえば、Databricks Connect と共に IntelliJ IDEA を使用できます。
Databricks には、自動化および外部ツールとの統合をサポートする SDK のセットが用意されています。 Databricks SDK を使用して、クラスターやライブラリ、コードやその他のワークスペース オブジェクト、ワークロードやジョブなどのリソースを管理できます。 「Databricks SDK」を参照してください。
IDE、開発者ツール、SDK の詳細については、「開発者ツールとガイダンス」を参照してください。
その他の技術情報
- Databricks Academy では、多くのトピックに関する自己ペースで講師主導のコースを提供しています。