共用方式為


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

識別您想要針對 Spark 應用程式使用或更新的 Scala、Java、R(預覽)或 Python 套件之後,您就可以從 Spark 集區安裝或移除它們。 集區層級的程式庫可供集區上執行的所有筆記本和作業使用。

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

  • 安裝已上傳為工作區套件的工作區連結庫。
  • 若要更新 Python 連結庫,請提供 requirements.txt 或 Conda 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 集區連結庫。

  1. 在 Azure 入口網站 中,流覽至您的 Azure Synapse Analytics 工作區。

  2. 從 [ 分析集區 ] 區段,選取 [Apache Spark 集 區] 索引卷標,然後從列表中選取 Spark 集區。

  3. 從 Spark 集區的 [設定] 區段中選取 [套件]

    醒目提示上傳環境組態檔按鈕的螢幕快照。

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

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

  6. 您也可以從 [工作區套件 ] 區段移除已取代的套件,然後您的集區就不會再附加這些套件。

  7. 儲存變更之後,系統會觸發系統作業來安裝及快取指定的連結庫。 此流程有助於縮短整體工作階段啟動時間。

  8. 作業成功完成之後,所有新的會話都會挑選更新的集區連結庫。

重要

選取 [ 強制新設定] 選項,即可結束所選 Spark 集區的所有目前會話。 會話結束後,您必須等候集區重新啟動。

如果未核取此設定,則您必須等候目前的Spark工作階段結束或手動停止。 會話結束後,您必須讓集區重新啟動。

追蹤安裝進度

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

此外,使用者可以檢查安裝記錄,以識別相依性衝突,或查看集區更新期間已安裝哪些連結庫。

若要檢視這些記錄:

  1. 在 Synapse Studio 中,流覽至 [監視] 索引標籤中的 [Spark 應用程式] 列表。

  2. 選取對應至集區更新的系統 Spark 應用程式作業。 這些系統作業在 SystemReservedJob-LibraryManagement 標題下執行。

    螢幕擷取畫面:醒目提示系統保留程式庫作業。

  3. 切換以檢視 [驅動程式] 和 [stdout] 記錄。

  4. 結果包含與安裝相依性相關的記錄。

    螢幕擷取畫面:醒目提示系統保留程式庫作業結果。

環境規格格式

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 檔案建立環境的詳細資訊,請參閱 啟用環境