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

Python 開発者向けの Databricks

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

利用を開始するには以下の手順を踏みます。

チュートリアル

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

データエンジニアリング

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

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

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

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

Python デバッガーのサンプル ノートブック

Open notebook in new tab
注記

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

Python APIs

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

Databricks は、単一マシンと分散 Python ワークロードの両方を実行できます。 単一マシンコンピューティングの場合、 Python APIsとライブラリを通常どおり使用できます。たとえば、 PandasとScikit-Learn 「そのまま動作」します。 分散 Python ワークロード向けに、Databricks は PySpark と PandasAPI on Spark という 2 つの一般的な API をすぐに使用できるように提供しています。

PySpark API

PySpark は Apache Spark の公式 Python API であり、Python と Apache Spark の機能を組み合わせたものです。 PySparkは、PandasAPI SparkSpark SQLMLlibGraphXの よりも柔軟性が高く、 、構造化ストリーミング、 、 などのデータサイエンスおよびエンジニアリング機能に対する広範なサポートと機能を提供します。

Spark 上の Pandas API

注記

Koalas オープンソース プロジェクトでは、Spark で Pandas API に切り替えることを推奨しています。上のPandasAPI Sparkは、Databricks Runtime 10.0 (EoS) 以降 実行されるクラスターで利用できます。Databricks Runtime9.1LTS 以下Koalas 実行するクラスターの場合は、代わりに を使用します。

は、データ分析と操作のためにPandas Pythonが一般的に使用する パッケージです。data scientistsただし、 Pandas は Big にスケールアウトしません。 PandasAPIon は、 で動作するパンダと同等のSpark APIsApache Sparkを提供することで、このギャップを埋めます。このオープンソースAPI は、data scientists には詳しいがPandas Apache Sparkには詳しくない にとって理想的な選択肢です。

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

Databricks ノートブックは Python をサポートしています。 これらのノートブックは、Jupyter と同様の機能を提供しますが、ビッグデータを使用した組み込みビジュアライゼーション、デバッグとパフォーマンス モニタリングのための Apache Spark インテグレーション、機械学習エクスペリメントを追跡するための MLflow インテグレーションなどが追加されています。 ノートブックをインポートして開始します。クラスターにアクセスできるようになったら、ノートブックをクラスターに アタッチ して ノートブックを実行できます

ヒント

ノートブックの状態をリセットするには、iPython カーネルを再起動します。 Jupyter ユーザーの場合、Jupyter の "カーネルの再起動" オプションは、Databricks でのノートブックのデタッチと再アタッチに相当します。 Pythonノートブックでカーネルを再起動するには、ノートブックツールバーのコンピュートセレクターをクリックし、リスト内の添付のクラスターまたはSQLウェアハウスにカーソルを合わせると、サイドメニューが表示されます。 [デタッチして再アタッチ ] を選択します。これにより、ノートブックがクラスターから切り離されて再アタッチされ、 Python プロセスが再開されます。

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

クラスター と ライブラリ

Databricks コンピュート は、単一ノードのクラスターから大規模なクラスターまで、あらゆる規模のクラスターのためのコンピュート管理を提供します。 クラスターハードウェアとライブラリは、必要に応じてカスタマイズできます。 data scientists は通常、 クラスターを作成する か、既存の 共有クラスターを使用して作業を開始します。 クラスターにアクセスできるようになったら、ノートブックをクラスターに アタッチ したり、クラスターでジョブを実行したりできます。

DatabricksクラスターはDatabricks Runtimeを使用します。Databricks Runtimeは、Apache Spark、Delta Lake、pandasなど、すぐに使える多くの人気ライブラリを提供しています。追加のサードパーティまたはカスタムPythonライブラリをインストールして、ノートブックやジョブで使用することもできます。

視覚 エフェクト

Databricks Python ノートブックには、さまざまな種類の 視覚化の組み込みサポートがあります。 従来のビジュアライゼーションを使用することもできます。

サードパーティのライブラリを使用してデータを視覚化することもできます。一部はDatabricks Runtimeにプリインストールされていますが、カスタムライブラリをインストールすることもできます。人気のあるライブラリは以下のとおりです。

ジョブ

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

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

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

機械学習

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

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

機械学習の操作 (MLOps) のために、 Databricks はオープンソース ライブラリ のマネージドサービスを提供しています MLflow. MLflow Tracking を使用すると、モデルの開発を記録し、モデルを再利用可能な形式で保存できます。MLflow Model Registryを使用して、本番運用に向けたモデルのプロモーションを管理および自動化できます。ジョブを使用すると 、モデルをバッチジョブおよびストリーミングジョブとしてホスティングできます。 詳細情報と例については、MLflow gen AI エージェントと ML モデルのライフサイクル、または MLflow Python API のドキュメントを参照してください。

一般的な機械学習ワークロードの入門については、以下のページを参照してください。

IDEs、開発者ツール、SDK

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

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

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

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

追加のリソース