在 Microsoft Fabric 中管理 Apache Spark 連結庫
連結庫是開發人員可匯入以提供功能的預先撰寫程式碼集合。 藉由使用連結庫,您不需要從頭開始撰寫程式碼來執行一般工作,即可節省時間和精力。 請改為匯入連結庫,並使用其函式和類別來達成所需的功能。 Microsoft Fabric 提供多個機制,可協助您管理和使用連結庫。
- 內建連結庫:每個網狀架構 Spark 執行階段都會提供一組豐富的熱門預安裝連結庫。 您可以在 Fabric Spark 執行時間中找到完整的內建連結庫清單。
- 公用連結庫:公用連結庫是從目前支援的 PyPI 和 Conda 等存放庫來源。
- 自訂連結庫:自定義連結庫是指您或組織所建置的程序代碼。 Fabric 支援 .whl、 .jar和 .tar.gz 格式。 網狀架構僅支援 R 語言 .tar.gz。 針對 Python 自訂連結庫,請使用 .whl 格式。
連結庫管理最佳做法摘要
下列案例描述在 Microsoft Fabric 中使用連結庫時的最佳做法。
案例 1:系統管理員設定工作區的默認連結庫
若要設定預設連結庫,您必須是工作區的系統管理員。 身為系統管理員,您可以執行下列工作:
當您的筆記本和 Spark 作業定義附加至 工作區設定時,他們會啟動工作區,並安裝於工作區的預設環境中連結庫。
案例 2:保存一或多個程式碼項目的連結庫規格
如果您有不同程式代碼專案的通用連結庫,而且不需要經常更新, 請在環境中 安裝連結庫,並將 它附加至程式碼專案 是不錯的選擇。
發佈時,需要一些時間才能讓環境中的連結庫生效。 根據連結庫的複雜度,通常需要 5-15 分鐘的時間。 在此程式中,系統會協助解決潛在的衝突,並下載必要的相依性。
此方法的其中一個優點是,在Spark工作階段啟動時,保證已成功安裝的連結庫可在附加環境時使用。它可節省維護專案通用連結庫的工作。
強烈建議使用其穩定性的管線案例。
案例 3:互動式執行中的內嵌安裝
如果您使用筆記本以互動方式撰寫程式代碼,請使用 內嵌安裝 來新增額外的 PyPI/conda 連結庫,或驗證自定義連結庫以供一次性使用是最佳做法。 Fabric 中的內嵌命令可讓您讓程式庫在目前的筆記本 Spark 工作階段中生效。 它允許快速安裝,但已安裝的連結庫不會在不同的會話之間保存。
由於 %pip install
不時產生不同的相依性樹狀結構,這可能會導致連結庫衝突,因此管線執行中預設會關閉內嵌命令,不建議用於管線中。
支援的連結庫類型摘要
庫類型 | 環境連結庫管理 | 內嵌安裝 |
---|---|---|
Python Public (PyPI & Conda) | 支援 | 支援 |
Python 自定義 (.whl) | 支援 | 支援 |
R Public (CRAN) | 不支援 | 支援 |
R 自訂 (.tar.gz) | 支援為自定義連結庫 | 支援 |
Jar | 支援為自定義連結庫 | 支援 |
內嵌安裝
內嵌命令支援管理每個筆記本會話中的連結庫。
Python 內嵌安裝
系統會重新啟動 Python 解釋器以套用連結庫的變更。 執行命令儲存格之前定義的任何變數都遺失。 強烈建議您將所有命令放在筆記本開頭新增、刪除或更新 Python 套件。
管理 Python 連結庫的內嵌命令預設會在筆記本管線中停用。 如果您想要啟用 %pip install
管線,請在筆記本活動參數中將 「_inlineInstallationEnabled」 新增為 bool 參數等於 True。
注意
%pip install
可能會導致不一致的結果不一致。 建議您在環境中安裝連結庫,並在管線中使用連結庫。
在筆記本參考執行中,不支援用於管理 Python 連結庫的內嵌命令。 若要確保執行的正確性,建議從參考的筆記本中移除這些內嵌命令。
我們建議 %pip
不要 !pip
使用。 !pip
是 IPython 內建殼層命令,其有下列限制:
!pip
只會在驅動程式節點上安裝套件,而不是執行程序節點。- 透過
!pip
安裝的套件不會影響與內建套件的衝突,或是否已在筆記本中匯入套件。
不過, %pip
處理這些案例。 透過 安裝 %pip
的連結庫可在驅動程式和執行程序節點上使用,即使連結庫已經匯入,仍然有效。
提示
命令 %conda install
通常需要比 %pip install
命令更長的時間才能安裝新的 Python 連結庫。 它會檢查完整的相依性並解決衝突。
您可能想要使用 %conda install
,以取得更高的可靠性和穩定性。 如果您確定要安裝的連結庫不會與執行時間環境中預安裝的連結庫衝突,您可以使用 %pip install
。
如需所有可用的 Python 內嵌命令和釐清,請參閱 %pip 命令 和 %conda 命令。
透過內嵌安裝管理 Python 公用連結庫
在此範例中,請參閱如何使用內嵌命令來管理連結庫。 假設您想要使用 適用於 Python 的強大視覺效果連結庫 altair 進行一次性資料探索。 假設連結庫未安裝在您的工作區中。 下列範例會使用 conda 命令來說明步驟。
您可以使用內嵌命令在筆記本工作階段上啟用 altair,而不會影響筆記本或其他項目的其他工作階段。
在筆記本程式碼儲存格中執行以下命令。 第一個命令會安裝altair連結庫。 此外,請安裝 vega_datasets,其中包含可用來可視化的語意模型。
%conda install altair # install latest version through conda command %conda install vega_datasets # install latest version through conda command
儲存格的輸出表示安裝的結果。
在另一個筆記本儲存格中執行下列程序代碼,以匯入套件和語意模型。
import altair as alt from vega_datasets import data
現在您可以使用工作階段範圍的 altair 程式庫來播放。
# load a simple dataset as a pandas DataFrame cars = data.cars() alt.Chart(cars).mark_point().encode( x='Horsepower', y='Miles_per_Gallon', color='Origin', ).interactive()
透過內嵌安裝管理 Python 自定義連結庫
您可以將 Python 自訂連結庫上傳至筆記本或附加環境的資源資料夾。 資源資料夾是每個筆記本和環境所提供的內建文件系統。 如需詳細資訊,請參閱 筆記本資源 。 上傳之後,您可以將自訂連結庫拖放至程式代碼數據格,系統會自動產生內嵌命令來安裝連結庫。 或者,您可以使用下列命令來安裝。
# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/wheel_file_name.whl"
R 內嵌安裝
若要管理 R 連結庫,Fabric 支援 install.packages()
、 remove.packages()
和 devtools::
命令。 如需所有可用的 R 內嵌命令和釐清,請參閱 install.packages 命令 和 remove.package 命令。
透過內嵌安裝管理 R 公用連結庫
遵循此範例逐步解說安裝 R 公用連結庫的步驟。
若要安裝 R 摘要連結庫:
將工作語言切換至筆記本功能區中的SparkR(R)。
在筆記本儲存格中執行下列命令,以安裝 caesar 程式庫。
install.packages("caesar")
現在您可以使用 Spark 作業來搭配工作階段範圍的 caesar 程式庫。
library(SparkR) sparkR.session() hello <- function(x) { library(caesar) caesar(x) } spark.lapply(c("hello world", "good morning", "good evening"), hello)
透過內嵌安裝管理 Jar 連結庫
使用下列命令,在筆記本工作階段中支援 .jar 檔案。
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
}
}
程式碼儲存格使用 Lakehouse 的儲存體作為範例。 在筆記本總管中,您可以複製完整的檔案 ABFS 路徑,並在程式碼中取代。