パイプラインの Python 依存関係を管理する
Lakeflow Spark宣言型パイプラインは、パイプラインの外部依存関係をサポートします。 Databricks では、Python パッケージをインストールするために次の 2 つのパターンのいずれかを使用することを推奨しています。
- 環境 設定を使用して、パイプライン内のすべてのソース ファイルのパッケージをパイプライン環境に追加します。
- ワークスペース ファイルに格納されているソース コードからモジュールまたはライブラリをインポートします。 Git フォルダーまたはワークスペース ファイルからの Python モジュールのインポートを参照してください。
クラシックコンピュートを使用するパイプラインも、クラスタースコープのinitスクリプトをサポートしています。サーバレスLakeFlow Spark宣言型パイプラインは、initスクリプトをサポートしていません。すべての場合において、Databricksは、initスクリプトではなく、**環境**設定を使用することを推奨します。これは、外部依存関係、特にinitスクリプトがランタイムアップグレードの問題のリスクを高めるためです。処理にinitスクリプトが必要な場合、パイプラインのテストを自動化して問題を早期に検出します。Databricksはテスト頻度を増やすことをお勧めします。
パイプラインではJVMライブラリはサポートされていないため、initスクリプトを使用してJVMライブラリをインストールしないでください。ただし、Python ライブラリなどの他の種類のライブラリは、initスクリプトを使用してインストールできます。
Pythonライブラリ
外部 Python ライブラリを指定するには、パイプラインの環境を編集します。
- パイプライン エディターから、 [設定] をクリックします。
- パイプライン環境 で、
編集環境 。
- クリック
依存関係を追加します 。
- 依存関係の名前を入力します。Databricks では、ライブラリのバージョンを固定することをお勧めします。たとえば、
simplejsonバージョン 3.19 への依存関係を追加するには、「simplejson==3.19.*と入力します。
/Volumes/my_catalog/my_schema/my_ldp_volume/ldpfns-1.0-py3-none-any.whlなどのパスを指定して、 Unity CatalogボリュームからPython wheelパッケージをインストールすることもできます。
パイプラインでは、dbutils.library.restartPython() を使用した Python プロセスの手動での再起動はサポートされていません。すべての Pythonの依存関係は、ランタイム時にインストールまたは再ロードするのではなく、「環境」設定で宣言してください。**環境**設定を使用すると、パイプラインは、実行のたびにライブラリを再インストールするのではなく、キャッシュされたライブラリを複数回の実行にわたって再利用できるようになります。
環境バージョン
もちろん、パイプラインで利用できるPython言語バージョンとプレインストールされたライブラリ セットは、現在のDatabricks Runtimeチャンネル バージョンからのものです。 現在のバージョンとランタイムごとのパッケージ リストについては、 LakeFlow Spark宣言型パイプライン リリース ノートとリリース アップグレード プロセスを参照してください。
ベータ版
この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。
Databricks Runtimeアップグレードとは別にPython言語バージョンとプレインストールされたライブラリ セットをピン留めするには、パイプラインで環境バージョンを構成します。 環境バージョンが設定されている場合、Databricks RuntimeのアップグレードによってPython言語バージョンやプリインストールされているライブラリバージョンは変更されず、 環境 設定を通じて追加した外部依存関係はすべてこのベースの上に構築されます。パイプラインの環境バージョンを設定するを参照してください。
Scala と Java のライブラリのサポート
いいえ、パイプラインはSQLとPythonのみをサポートしています。パイプライン内でJVMライブラリを使用することはできません。 JVMライブラリをインストールすると予期しない動作が発生し、将来のLakeFlow Spark宣言型パイプライン リリースでは機能しなくなる可能性があります。 パイプラインが init スクリプトを使用している場合は、 JVMライブラリがスクリプトによってインストールされていないことも確認する必要があります。