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