共用方式為


在 Azure Synapse Analytics 中管理 Apache Spark 集區的程式庫

一旦您已確定針對 Spark 應用程式要使用或更新的 Scala、Java、R (預覽版) 或 Python 套件之後,就可以在 Spark 集區中安裝或移除這些套件。 集區層級的程式庫可供集區上執行的所有筆記本和作業使用。

在 Spark 集區安裝程式庫有兩種主要方式:

  • 安裝已上傳為工作區封裝的工作區程式庫。
  • 若要更新 Python 程式庫,請提供 requirements.txtConda environment.yml 環境規格,以安裝 PyPI、Conda-Forge 等存放庫中的套件。 如需詳細資訊,請參閱環境規格一節。

儲存變更後,Spark 作業就會執行安裝並快取產生的環境,以供稍後重複使用。 一旦完成作業,新的 Spark 作業或筆記本工作階段就會使用更新的集區程式庫。

重要

  • 如果您要安裝的套件很大或需要花很多時間來安裝,則會影響 Spark 執行個體的啟動時間。
  • 不支援更改 PySpark、Python、Scala/Java、.NET、R 或 Spark 版本。
  • 在已啟用資料外流保護的工作區內,不支援安裝 PyPI、Conda-Forge 或預設 Conda 通道等外部存放庫中的封裝。

從 Synapse Studio 或 Azure 入口網站管理套件

您可以從 Synapse Studio 或 Azure 入口網站管理 Spark 集區程式庫。

若要在 Spark 集區更新或新增程式庫:

  1. 從 Azure 入口網站瀏覽至 Azure Synapse Analytics 工作區。

    如果您從 Azure 入口網站更新:

    • 在 [Synapse 資源] 區段下,選取 [Apache Spark 集區] 索引標籤,然後從清單中選取 Spark 集區。

    • 從 Spark 集區的 [設定] 區段中選取 [套件]Screenshot that highlights the upload environment configuration file button.

    如果您從 Synapse Studio 更新:

    • 從主要瀏覽面板中選取 [管理],然後選取 [Apache Spark 集區]

    • 選取特定 Spark 集區的 [套件] 區段。 Screenshot that highlights the logs of library installation.

  2. 針對 Python 摘要程式庫,請在頁面的 [套件] 區段中,使用檔案選取器上傳環境設定檔。

  3. 您也可以選取其他工作區套件,將 Jar、Wheel 或 Tar.gz 檔案新增至集區中。

  4. 您也可以從 [工作區套件] 區段移除已淘汰的套件,您的集區將不再連結這些套件。

  5. 一旦儲存變更,就會觸發系統作業來安裝和快取指定的程式庫。 此流程有助於縮短整體工作階段啟動時間。

  6. 一旦順利完成作業,所有新的工作階段就會挑選更新的集區程式庫。

重要

選取 [強制使用新設定] 選項會結束所選 Spark 集區的所有目前工作階段。 一旦工作階段結束,您就必須等待集區重新啟動。

如果未核取此設定,則您必須等待目前的 Spark 工作階段結束或手動停止。 一旦工作階段結束,您就需要讓集區重新啟動。

追蹤安裝進度

每當集區更新為一組新的程式庫時,就會起始系統保留的 Spark 作業。 此 Spark 作業有助於監視程式庫安裝的狀態。 如果因為程式庫衝突或其他問題而導致安裝失敗,Spark 集區會還原為先前或預設狀態。

此外,使用者也可以檢查安裝記錄來找出相依性衝突,或查看在集區更新期間安裝了哪些程式庫。

若要檢視這些記錄:

  1. 瀏覽至 [監視] 索引標籤中的 Spark 應用程式清單。
  2. 選取對應至集區更新的系統 Spark 應用程式作業。 這些系統作業在 SystemReservedJob-LibraryManagement 標題下執行。 Screenshot that highlights system reserved library job.
  3. 切換以檢視 [驅動程式] 和 [stdout] 記錄。
  4. 在結果中,您會看到相依性安裝的相關記錄。 Screenshot that highlights system reserved library job results.

環境規格格式

PIP requirements.txt

requirements.txt 檔案 (pip freeze 命令的輸出) 可用來升級環境。 更新集區時會從 PyPI 下載此檔案所列的封裝。 然後會快取並儲存完整的相依性,以供稍後重複使用集區。

下列程式碼片段顯示需求檔案的格式。 PyPI 封裝名稱連同確切版本一起列出。 此檔案遵循 pip freeze 參考文件所述的格式。

此範例鎖定特定版本。

absl-py==0.7.0
adal==1.2.1
alabaster==0.7.10

YML 格式

此外,您也可以提供 environment.yml 檔案來更新集區環境。 此檔案所列的封裝是從預設的 Conda 通道、Conda-Forge 和 PyPI 下載。 您可以使用設定選項來指定其他通道或移除預設通道。

此範例指定通道和 Conda/PyPI 相依性。

name: stats2
channels:
- defaults
dependencies:
- bokeh
- numpy
- pip:
  - matplotlib
  - koalas==1.7.0

如需從這個 environment.yml 檔案建立環境的詳細資訊,請參閱從 environment.yml 檔案建立環境

下一步