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

Python 開発者向けの Databricks

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

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

チュートリアル

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

データエンジニアリング

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

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

サンプル ノートブックは、 DatabricksノートブックでPython デバッガー (pdb) を使用する方法を示しています。Python デバッガーを使用するには、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 API

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

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

PySpark API

PySpark は、Apache Spark の公式 Python API であり、Python と Apache Spark のパワーを組み合わせています。PySpark Spark上のPandas APIよりも柔軟で、 Spark SQL 、構造化ストリーミング、 MLlib 、 GraphXなどのデータサイエンスおよびエンジニアリング機能の広範なサポートと機能を提供します。

Pandas API on Spark

注記

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

Pandas はデータサイエンティストがデータ分析と操作のために一般的に使用するPythonパッケージです。ただし、 Pandas は 大規模 にスケールアウトしません。 Pandas API on Spark は、Apache Sparkで動作するPandas同等のAPIを提供することで、このギャップを埋めます。このオープンソースAPI は、Pandasには詳しいが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 コンピュート は、単一ノードのクラスターから大規模なクラスターまで、あらゆる規模のクラスターのためのコンピュート管理を提供します。 クラスターハードウェアとライブラリは、必要に応じてカスタマイズできます。 データサイエンティストは通常、 クラスターを作成する か、既存の 共有クラスターを使用して作業を開始します。 クラスターにアクセスできるようになったら、ノートブックをクラスターに アタッチ したり、クラスターでジョブを実行したりできます。

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を使用して、本番運用に向けたモデルのプロモーションを管理および自動化できます。ジョブモデルサービング では、モデルをバッチジョブ、ストリーミングジョブ、および REST エンドポイントとしてホスティングできます。詳細情報と例については、MLflow MLモデル ライフサイクルの またはMLflowPythonAPI ドキュメント を参照してください。

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

IDE、開発者ツール、SDK

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

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

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

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

追加のリソース