メインコンテンツまでスキップ

開発言語を選択する

Databricks は、開発とデータエンジニアリングのためのさまざまなプログラミング言語の使用をサポートしています。 この記事では、使用可能なオプション、それらの言語を使用できる場所、およびそれらの制限事項について概説します。

推奨 事項

Databricks では、新しいプロジェクトには Python と SQL をお勧めします。

  • Python は非常に人気のある汎用プログラミング言語です。 PySpark データフレーム を使用すると、テスト可能なモジュール式変換を簡単に作成できます。 Pythonエコシステムは、ソリューションを拡張するための幅広いライブラリもサポートし、幅広いライブラリをサポートします。
  • SQL は、データのクエリ、更新、挿入、削除などの操作を実行してリレーショナルデータセットを管理および操作するための非常に一般的な言語です。 SQL は、バックグラウンドが主にデータベースまたはデータウェアハウジングにある場合に適しています。 SQL は、 spark.sqlを使用して Python に埋め込むこともできます。

次の言語はサポートが限られているため、新しいデータエンジニアリング プロジェクトには Databricks お勧めしません。

  • Scala は、Apache Spark™ の開発に使用される言語です。
  • R は Databricks ノートブックでのみ完全にサポートされています。

言語サポートは、データパイプラインやその他のソリューションの構築に使用される機能によっても異なります。 たとえば、DLT は Python と SQLをサポートしていますが、ワークフローでは Python、 SQL、 Scala、 Javaを使用してデータパイプラインを作成できます。

注記

他の言語を使用して、Databricks と対話してデータをクエリしたり、データ変換を実行したりできます。 ただし、これらの相互作用は、主に外部システムとの統合のコンテキストで行われます。 このような場合、開発者はほぼすべてのプログラミング言語を使用して、 Databricks REST APIODBC/JDBC ドライバーDatabricks SQL コネクタ をサポートする特定の言語 (Go、Python、Javascript/Node.js)、 または Spark Connect が実装されている言語 (Go や Rust など) を介して Databricks と対話できます。

ワークスペース開発とローカル開発

データ プロジェクトとパイプラインは、Databricks ワークスペースまたはローカル コンピューター上の IDE (統合開発環境) を使用して開発できますが、Databricks ワークスペースで新しいプロジェクトを開始することをお勧めします。 ワークスペースには Web ブラウザーを使用してアクセスでき、Unity Catalog 内のデータに簡単にアクセスでき、強力なデバッグ機能や Databricks Assistant などの機能がサポートされています。

Databricks ノートブックまたは SQL エディターを使用して、Databricks ワークスペースでコードを開発します。 Databricks ノートブックは、同じノートブック内でも複数のプログラミング言語をサポートしているため、 Python、 SQL、 Scalaを使用して開発できます。

Databricks ワークスペースで直接コードを開発することには、いくつかの利点があります。

  • フィードバックループが高速になります。 実際のデータで記述されたコードをすぐにテストできます。
  • 組み込みのコンテキスト対応の Databricks Assistant は、開発をスピードアップし、問題の解決に役立ちます。
  • ノートブックとクエリは、Databricks ワークスペースから直接簡単にスケジュールできます。
  • Python 開発では、ワークスペース内のファイルを Python パッケージとして使用することで、Python コードを正しく構造化できます。

ただし、IDE 内のローカル開発には、次の利点があります。

  • IDEs 、ナビゲーション、コード リファクタリング、静的コード分析など、ソフトウェア プロジェクトを操作するためのより優れたツールがあります。
  • ソースの管理方法を選択でき、Git を使用する場合は、Git フォルダーを使用するワークスペースよりもローカルでより高度な機能を利用できます。
  • サポートされている言語の範囲が広がります。 たとえば、Java を使用してコードを開発し、それを JAR タスクとしてデプロイできます。
  • コードのデバッグのサポートが向上しました。
  • 単体テストの操作に対するサポートが向上しました。

言語選択の例

データエンジニアリングの言語選択は、次の決定木を使用して視覚化されます。

データエンジニアリング言語の決定木

Python コードの開発

Python 言語は、Databricks でファーストクラスをサポートしています。Databricks ノートブック、DLT、ワークフローで使用して UDF を開発したり、Python スクリプトやホイールとしてデプロイしたりできます。

Databricks ワークスペースで Python プロジェクトを開発する場合、ノートブックとして、またはファイルとして、Databricks には、コード補完、ナビゲーション、構文検証、Databricks Assistant を使用したコード生成、対話型 デバッグなどのツールが用意されています。開発されたコードは、インタラクティブに実行したり、Databricks ワークフローや DLT パイプラインとしてデプロイしたり、Unity Catalog の関数としてデプロイしたりすることもできます。コードを 個別の Python パッケージ に分割して構造化し、複数のパイプラインまたはジョブで使用できます。

Databricks は Visual Studio Code の拡張機能 を提供し、JetBrains は PyCharm のプラグイン を提供し、IDE で Python コードを開発し、コードを Databricks ワークスペースに同期し、ワークスペース内で実行し、 Databricks Connect を使用して段階的なデバッグを実行できます。 開発されたコードは、 Databricks アセットバンドルを Databricks ジョブまたはパイプラインとして使用してデプロイできます。

SQL コードの開発

SQL 言語は、Databricks ノートブック内で使用することも、SQL エディターを使用して Databricks クエリとして使用することもできます。 どちらの場合も、開発者はコード補完などのツールや、コード生成や問題の修正に使用できるコンテキスト対応の Databricks Assistant にアクセスできます。 開発されたコードは、ジョブまたはパイプラインとしてデプロイできます。

Databricks ワークフローでは、ファイルに格納された SQL コードを実行することもできます。 IDE を使用してこれらのファイルを作成し、ワークスペースにアップロードできます。 SQLのもう一つの一般的な使い方は、 dbt(データビルドツール)を使用して開発されたデータエンジニアリングパイプラインです。 Databricks ワークフローでは、dbt プロジェクトのオーケストレーションがサポートされています。

Scala コードの開発

Scala は Apache Spark™ の元の言語です。 強力な言語ですが、学習曲線が急です。 Scala は Databricks ノートブックでサポートされている言語ですが、Scala のクラスとオブジェクトの作成方法と保守方法に関連するいくつかの制限があり、複雑なパイプラインの開発がより困難になる可能性があります。 通常、IDEはScalaコードの開発をより適切にサポートしており、 DatabricksワークフローのJARタスクを使用してデプロイできます。

次のステップ