Python 開発者向けの Databricks
DatabricksPythonこのセクションでは、 言語を使用して でノートブックとジョブを開発するためのガイド、一般的なワークフローとタスクのチュートリアル、APIs 、ライブラリ、ツールへのリンクを提供します。
利用を開始するには以下の手順を踏みます。
- コードのインポート: ファイルまたは Git リポジトリから独自のコードをインポートするか、以下のチュートリアルを試してください。 Databricks では、対話型の Databricks ノートブックを使用して学習することをお勧めします。
- クラスターでコードを実行する: 独自のクラスターを作成するか、共有クラスターを使用するアクセス許可があることを確認します。 ノートブックをクラスターにアタッチし、ノートブックを実行します。
- その後、次の操作を実行できます。
- Apache Spark を使用した大規模なデータセットの操作
- 視覚化を追加する
- ジョブとしてワークロードを自動化
- 機械学習を使用して データを分析します
- IDEsで開発
チュートリアル
以下のチュートリアルでは、一般的なワークフローについて学習するためのサンプルコードとノートブックを提供します。 ノートブックの例をワークスペースにインポートする手順については、「 ノートブックのインポート 」を参照してください。
データエンジニアリング
- チュートリアル: Apache Spark DataFramesを使用したデータの読み込みと変換 では、データの準備と分析のApache Spark DataFramesについて学習するのに役立つチュートリアルを提供します。
- チュートリアル: Delta Lake。
- チュートリアル: 初めての DLT パイプラインを実行する。
データサイエンスと機械学習
- Getting started with Apache Spark DataFrames for data preparation and analytics: チュートリアル: Load and transform data using Apache Spark DataFrames
- チュートリアル: Databricks 上のエンドツーエンドの ML モデル。 その他の例については、「 チュートリアル: AI と機械学習の概要」を参照してください。
- AutoML を使用すると、独自のデータセットで機械学習モデルの開発をすぐに開始できます。 そのグラスボックス型アプローチでは、完全な機械学習ワークフローを備えたノートブックが生成され、クローン作成、変更、再実行が可能です。
- Unity Catalogでモデルのライフサイクルを管理する
- チュートリアル:Databricks上のエンドツーエンドのMLモデル
Python ノートブックでのデバッグ
サンプル ノートブックは、 ノートブックでPython デバッガー (pdb) を使用する方法を示しています。DatabricksPython デバッガーを使用するには、Databricks Runtime 11.3 LTS 以降を実行している必要があります。
Databricks Runtime 12.2 LTS 以降では、 変数エクスプローラー を使用して、ノートブック UI で Python 変数の現在の値を追跡できます。 変数エクスプローラーを使用して、ブレークポイントをステップスルーするときにPython変数の値を観察できます。
Python デバッガーのサンプル ノートブック
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 は通常、 クラスターを作成する か、既存の 共有クラスターを使用して作業を開始します。 クラスターにアクセスできるようになったら、ノートブックをクラスターに アタッチ したり、クラスターでジョブを実行したりできます。
- 1 つのノードのみを必要とする小規模なワークロードの場合、 data scientists 1 つのノード コンピュート を使用してコストを節約できます。
- 詳細なヒントについては、「コンピュート構成の推奨事項」を参照してください
- 管理者は、 クラスターポリシー を設定して、クラスターの作成を簡素化し、ガイドすることができます。
DatabricksクラスターはDatabricks Runtimeを使用します。Databricks Runtimeは、Apache Spark、Delta Lake、pandasなど、すぐに使える多くの人気ライブラリを提供しています。追加のサードパーティまたはカスタムPythonライブラリをインストールして、ノートブックやジョブで使用することもできます。
- Databricks Runtime リリースノートのバージョンと互換性のデフォルト ライブラリから始めます。機械学習ワークロードには、Databricks Runtime for Machine Learning を使用します。プリインストールされているライブラリの完全なリストについては、「Databricks Runtimeリリースノートのバージョンと互換性」を参照してください。
- ノートブックスコープの Python ライブラリを使用して環境をカスタマイズすると、PyPI や他のリポジトリのライブラリを使用してノートブックまたはジョブ環境を変更できます。
%pip install my_library
magic コマンドは、現在アタッチされているクラスター内のすべてのノードにmy_library
をインストールしますが、標準アクセス モードのコンピュート上の他のワークロードに干渉することはありません。 - 必要に応じて、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 のドキュメントを参照してください。
一般的な機械学習ワークロードの入門については、以下のページを参照してください。
- MLflow を使用した scikit-learn のトレーニングと追跡: 10 分間のチュートリアル: scikit-learn を使用した Databricks での機械学習
- トレーニング ディープラーニング models: ディープラーニング
- ハイパーパラメーターチューニング: Parallelize Hyperopt ハイパーパラメーターチューニング
- Graph アナリティクス:で を使用する方法GraphFramesDatabricks
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 の詳細については、「ローカル開発ツール」を参照してください。
追加のリソース
-
Databricks Academyでは、多くのトピックについて、自分のペースで進められるインストラクター主導のコースを提供しています。
-
Databricks Labs には、 pytest プラグイン や pylint プラグインなど、Databricks での Python 開発用のツールが用意されています。
-
PySpark と Pandas の間の相互運用性をサポートする機能には、次のものがあります。
-
Python と SQL のデータベース接続ツールには、次のものがあります。
- Databricks SQL Connector for Python を使用すると、Python コードを使用して Databricks リソースで SQL コマンドを実行できます。
- pyodbc を使用すると、ローカルの Python コードから ODBC を介して Databricks レイクハウスに格納されているデータに接続できます。
-
Python ワークロードを Databricks に移行するための FAQ とヒントについては、Databricks ナレッジベースを参照してください