次の方法で共有


Python開発者向けのAzure Databricks

このセクションでは、一般的なワークフローとタスクのチュートリアル、API、ライブラリ、ツールへのリンクなど、Python言語を使用してAzure Databricksでノートブックとジョブを開発するためのガイドを提供します。

作業を開始するには:

チュートリアル

以下のチュートリアルでは、一般的なワークフローについて学習するためのコードとノートブックの例を示します。 ノートブックの例をワークスペースにインポートする手順については、「ノートブックをインポートする」を参照してください。

データ工学

データ サイエンスと機械学習

Python ノートブックでのデバッグ

サンプル ノートブックは、Databricks ノートブックで Python デバッガー (pdb) を使用する方法を示しています。 Python デバッガーを使用するには、Databricks Runtime 11.3 LTS 以降を実行している必要があります。

Databricks Runtime 12.2 LTS 以降では、可変エクスプローラーを使用して、ノートブック UI のPython変数の現在の値を追跡できます。 変数エクスプローラーを使用すると、ブレークポイントをステップ実行しながら Python の変数の値を観察できます。

Pythonデバッガーの例ノートブック

ノートブックを入手

注意

breakpoint()IPython ではサポートされていないため、Databricks ノートブックでは機能しません。 import pdb; pdb.set_trace() の代わりに breakpoint() を使用できます。

Python API

Databricks の外部で実行されるPythonコードは、通常、Databricks 内で実行できます。その逆も同様です。 既存のコードがある場合は、Databricks にインポートして開始します。 詳細については、以下の「ノートブックと Databricks Git フォルダーを使用してコードを管理する」を参照してください。

Databricks では、単一マシンワークロードと分散Pythonワークロードの両方を実行できます。 シングル マシン コンピューティングの場合は、通常どおり Python API とライブラリを使用できます。たとえば、pandas や scikit-learn は "動作" します。 分散Pythonワークロードの場合、Databricks には、PySpark と Pandas API on Spark の 2 つの一般的な API が用意されています。

PySpark API

PySpark は Apache Spark 用の公式Python API であり、Pythonと Apache Spark の機能を組み合わせたものになっています。 PySpark は Spark 上の Pandas API よりも柔軟性が高く、Spark SQL、Structured Streaming、MLLib、GraphX などのデータ サイエンスおよびエンジニアリング機能に対して広範なサポートと機能を提供します。

Spark 上の Pandas API

注意

Koalas オープンソース プロジェクトでは、Spark 上の Pandas API への切り替えが推奨されるようになりました。 Spark 上の Pandas API は、Databricks Runtime 10.0 以降を実行するクラスターで使用できます。 Databricks Runtime 9.1 LTS 以下を実行するクラスターの場合は、代わりに Koalas を使用します。

pandas は、データの分析と操作のためにデータ サイエンティストによって一般的に使用されるPython パッケージです。 しかし、pandas はビッグ データにスケールアウトしません。 Spark 上の Pandas API は、Apache Spark 上で機能する pandas と同等の API を提供することで、このギャップを埋めています。 このオープンソース API は、pandas に精通しているものの Apache Spark に精通していないデータ サイエンティストにとって理想的な選択肢です。

ノートブックと Databricks Git フォルダーを使用してコードを管理する

Databricks ノートブックはPythonをサポートします。 これらのノートブックは Jupyter と同様の機能を提供しますが、ビッグ データを使用した組み込みの視覚化、デバッグとパフォーマンス監視のための Apache Spark 統合、機械学習の実験を追跡するための MLflow 統合などの機能が追加されています。 ノートブックをインポートして開始します。 クラスターにアクセスしたら、クラスターにノートブックをアタッチし、ノートブックを実行できます。

ヒント

ノートブックの状態をリセットするには、iPython カーネルを再起動します。 Jupyter ユーザーの場合、Jupyter の "カーネルの再起動" オプションは、Databricks での新しいセッションの開始に対応します。 Python ノートブックでカーネルを再起動するには、ノートブック ツール バーの compute セレクターをクリックし、接続されているクラスターまたは SQL ウェアハウスの一覧にマウス ポインターを合わせてサイド メニューを表示します。 [ 新しいセッション] を選択します。 これにより新しいセッションが開始され、Python プロセスが再起動されます。

Databricks Git フォルダーを使用すると、ユーザーはノートブックやその他のファイルを Git リポジトリと同期できます。 Databricks Git フォルダーはコードのバージョン管理とコラボレーションに役立ち、コードの完全なリポジトリをAzure Databricksにインポートしたり、過去のノートブック バージョンを表示したり、IDE 開発と統合したりすることが簡単になります。 リモート Git リポジトリを複製して開始します。 その後、リポジトリ クローンを使用してノートブックを開くか作成し、クラスターにそのノートブックをアタッチして、ノートブックを実行できます。

クラスターとライブラリ

Azure Databricks compute は、単一ノード クラスターから大規模クラスターまで、あらゆるサイズのクラスターのコンピューティング管理を提供します。 クラスターのハードウェアとライブラリは、ニーズに応じてカスタマイズできます。 通常、データ サイエンティストは、クラスターを作成するか、既存の共有クラスターを使用して作業を開始します。 クラスターにアクセスしたら、クラスターにノートブックをアタッチするか、クラスターでジョブを実行できます。

Azure Databricks クラスターでは Databricks ランタイムを使用します。このランタイムには、Apache Spark、Delta Lake、pandas など、すぐに使用できる多くの一般的なライブラリが用意されています。 ノートブックやジョブで使用する追加のサード パーティ製またはカスタム Python ライブラリをインストールすることもできます。

視覚化

Azure Databricks Python ノートブックには、さまざまな種類の visualizations が組み込まれています。 レガシ視覚化を使用することもできます。

サードパーティのライブラリを使用してデータを視覚化することもできます。一部は Databricks Runtime にプレインストールされていますが、カスタム ライブラリもインストールできます。 一般的なオプションには、次のものが含まれます。

作業

Databricks のスケジュールされたワークロードまたはトリガーされた jobs としてPythonワークロードを自動化できます。 ジョブでは、ノートブック、Python スクリプト、およびPython ホイール ファイルを実行できます。

  • Databricks UI または Databricks REST API を使用してジョブを作成および更新します。
  • Databricks Python SDK を使用すると、プログラムでジョブを作成、編集、削除できます。
  • Databricks CLI には、ジョブを自動化するための便利なコマンド ライン インターフェイスが用意されています。

ヒント

ノートブックではなくPython スクリプトをスケジュールするには、ジョブの作成要求の本文の spark_python_task の下にある tasks フィールドを使用します。

機械学習

Databricks は、表形式データに関する従来の ML、コンピューター ビジョンと自然言語処理のためのディープ ラーニング、レコメンデーション システム、グラフ分析など、さまざまな機械学習 (ML) ワークロードをサポートしています。 Databricks での機械学習に関する一般的な情報については、「Databricks での AI および機械学習」を参照してください。

ML アルゴリズムでは、databricks Runtime for Machine Learning にプレインストールされたライブラリを使用できます。これには、scikit-learn、TensorFlow、Keras、PyTorch、Apache Spark MLlib、XGBoost などの一般的なPython ツールが含まれています。 カスタム ライブラリをインストールすることもできます。

機械学習操作 (MLOps) の場合、Azure Databricksは、open source ライブラリ MLflow のマネージド サービスを提供します。 MLflow の追跡を使用すると、モデル開発を記録し、再利用可能な形式でモデルを保存できます。 MLflow モデル レジストリを使用すると、運用に向けたモデルの昇格を管理および自動化できます。 ジョブモデルの提供を使用すると、モデルをバッチ ジョブやストリーミング ジョブとして、また REST エンドポイントとしてホストできます。 詳細と例については、Databricks の MLflow または MLflow Python API ドキュメント を参照してください。

一般的な機械学習ワークロードの使用を開始するには、下記のページを参照してください。

IDE、開発者ツール、SDK

Azure Databricks ノートブック内でPython コードを開発するだけでなく、PyCharm、Jupyter、Visual Studio Codeなどの統合開発環境 (IDE) を使用して外部で開発することもできます。 外部開発環境と Databricks の間で作業を同期するには、いくつかのオプションがあります。

  • コード: Git を使用してコードを同期できます。 Azure Databricks Git フォルダーを参照してください。
  • ライブラリとジョブ: ライブラリ (Python ホイール ファイルなど) を外部で作成し、Databricks にアップロードできます。 これらのライブラリは、Databricks ノートブック内にインポートすることも、ジョブの作成に使用することもできます。 「ライブラリと Lakeflow ジョブのインストール」を参照してください。
  • リモート マシンの実行: ローカル IDE からコードを実行して、対話型の開発とテストを行うことができます。 IDE はAzure Databricksと通信して、Azure Databricks クラスターで Apache Spark と大規模な計算を実行できます。 「Databricks Connect」を参照してください。

Databricks には、自動化と外部ツールとの統合をサポートする Python SDK を含む一連の SDK が用意されています。 Databricks SDK を使用して、クラスターやライブラリ、コードやその他のワークスペース オブジェクト、ワークロードやジョブなどのリソースを管理できます。 「Databricks SDK」を参照してください。

IDE、開発者ツール、SDK の詳細については、「ローカル開発ツールの」を参照してください。

その他のリソース