管理工作階段範圍的套件
除了集區層級封裝,您也可以在筆記本工作階段開始時,指定工作階段範圍的程式庫。 會話範圍程式庫可讓您在筆記本會話內指定和使用 Python、jar 和 R 套件。
使用會話範圍程式庫時,請務必記住下列幾點:
- 當您安裝工作階段範圍的程式庫時,只有目前的筆記本可以存取指定的程式庫。
- 這些程式庫不會影響使用相同 Spark 集區的其他會話或作業。
- 這些程式庫會安裝在基底執行時間和集區層級程式庫之上,並採用最高優先順序。
- 會話範圍的程式庫不會跨會話保存。
工作階段範圍的 Python 套件
透過 environment.yml 檔案管理會話範圍的 Python 套件
若要指定工作階段範圍的 Python 套件:
- 瀏覽至選取的 Spark 集區,並確定您已啟用工作階段層級的程式庫。 您可以瀏覽至 [管理] > [Apache Spark 集區] > [封裝] 索引標籤,以啟用此設定。
- 套用設定之後,您可以開啟筆記本,然後選取 [設定會話>套件]。
- 在這裡,您可以上傳 Conda environment.yml 檔案,以在會話內安裝或升級套件。會話啟動時,就會存在指定的程式庫。 會話結束之後,將無法再使用這些程式庫。
透過 %pip 和 %conda 命令管理會話範圍的 Python 套件
您可以使用熱門 的 %pip 和 %conda 命令,在 Apache Spark 筆記本會話期間安裝其他協力廠商程式庫或自訂程式庫。 在本節中,我們使用 %pip 命令來示範數個常見案例。
注意
- 如果您想要安裝新的程式庫,建議您將 %pip 和 %conda 命令放在筆記本的第一個資料格。 在受管理工作階段層級的程式庫之後,將會重新開機 Python 解譯器,讓變更生效。
- 執行管線作業時,將會停用管理 Python 程式庫的這些命令。 如果想要在管線內安裝套件,您必須在集區層級利用程式庫管理功能。
- 會話範圍的 Python 程式庫會自動安裝在驅動程式和背景工作節點。
- 不支援下列 %conda 命令: create、 clean、 compare、 activate、 deactivate、 run、 package。
- 如需完整的命令清單,您可以參考 %pip 命令 和 %conda 命令 。
安裝協力廠商套件
您可以輕鬆地從 PyPI安裝 Python 程式庫。
# Install vega_datasets
%pip install altair vega_datasets
若要確認安裝結果,您可以執行下列程式碼來視覺化vega_datasets
# Create a scatter plot
# Plot Miles per gallon against the horsepower across different region
import altair as alt
from vega_datasets import data
cars = data.cars()
alt.Chart(cars).mark_point().encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
).interactive()
從儲存體帳戶安裝滾輪套件
若要從儲存體安裝程式庫,您必須執行下列命令來掛接至儲存體帳戶。
from notebookutils import mssparkutils
mssparkutils.fs.mount(
"abfss://<<file system>>@<<storage account>.dfs.core.windows.net",
"/<<path to wheel file>>",
{"linkedService":"<<storage name>>"}
)
然後,您可以使用 %pip install 命令來安裝必要的滾輪套件
%pip install /<<path to wheel file>>/<<wheel package name>>.whl
安裝另一個版本的內建程式庫
您可以使用下列命令來查看特定套件的內建版本。 我們使用 pandas 作為範例
%pip show pandas
結果如下:
Name: pandas
Version: **1.2.3**
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
... ...
您可以使用下列命令將 pandas 切換至另一個版本,假設 是 1.2.4
%pip install pandas==1.2.4
卸載會話範圍程式庫
如果您想要卸載安裝在此筆記本會話上的套件,您可以參考下列命令。 不過,您無法卸載內建套件。
%pip uninstall altair vega_datasets --yes
使用 %pip 命令從requirement.txt檔案安裝 連結 庫
%pip install -r /<<path to requirement file>>/requirements.txt
工作階段範圍的 Java 或 Scala 套件
若要指定工作階段範圍的 Java 或 Scala 套件,您可以使用 %%configure
選項:
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<file system>>@<<storage account>.dfs.core.windows.net/<<path to JAR file>>",
}
}
注意
- 建議您在筆記本開頭執行 %%configure。 您可以參考這份文件,以取得有效參數的完整清單。
工作階段範圍的 R 套件 (預覽版)
Azure Synapse Analytics 集區包括許多現成的熱門 R 程式庫。 您也可以在 Apache Spark 筆記本會話期間安裝額外的協力廠商程式庫。
注意
- 執行管線作業時,將會停用管理 R 程式庫的這些命令。 如果想要在管線內安裝套件,您必須在集區層級利用程式庫管理功能。
- 會話範圍的 R 程式庫會自動安裝在驅動程式和背景工作節點。
安裝套件
您可以從 CRAN 輕鬆安裝 R 程式庫。
# Install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
您也可以使用 CRAN 快照集作為存放庫,以確保每次下載相同的套件版本。
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
使用 Devtools 安裝套件
devtools
程式庫可簡化套件開發流程,藉此加速一般工作。 此程式庫會安裝在預設的 Azure Synapse Analytics 執行階段內。
您可以使用 devtools
來指定要安裝的特定程式庫版本。 這些程式庫將會安裝在叢集內的所有節點上。
# Install a specific version.
install_version("caesar", version = "1.0.0")
同樣地,您可以直接從 GitHub 安裝程式庫。
# Install a GitHub library.
install_github("jtilly/matchingR")
Azure Synapse Analytics 目前支援下列 devtools
函式:
Command | 描述 |
---|---|
install_github() | 從 GitHub 安裝 R 套件 |
install_gitlab() | 從 GitLab 安裝 R 套件 |
install_bitbucket() | 從 BitBucket 安裝 R 套件 |
install_url() | 從任意 URL 安裝 R 套件 |
install_git() | 從任意 Git 存放庫安裝 |
install_local() | 從磁碟上的本機檔案安裝 |
install_version() | 從 CRAN 上的特定版本安裝 |
檢視已安裝的程式庫
您可以使用 library
命令,在工作階段內查詢所有已安裝的程式庫。
library()
您可以使用 packageVersion
函式來檢查程式庫版本:
packageVersion("caesar")
從工作階段中移除 R 套件
您可以使用 detach
函式,以從命名空間移除程式庫。 這些程式庫會保留在磁片上,直到再次載入為止。
# detach a library
detach("package: caesar")
若要從筆記本移除工作階段範圍的套件,請使用 remove.packages()
命令。 此程式庫變更不會影響相同叢集上的其他會話。 使用者無法卸載或移除預設 Azure Synapse Analytics 執行時間的內建程式庫。
remove.packages("caesar")
注意
您無法移除 SparkR、SparklyR 或 R 等核心套件。
工作階段範圍的 R 程式庫和 SparkR
筆記本範圍的程式庫適用於 SparkR 背景工作角色。
install.packages("stringr")
library(SparkR)
str_length_function <- function(x) {
library(stringr)
str_length(x)
}
docs <- c("Wow, I really like the new light sabers!",
"That book was excellent.",
"R is a fantastic language.",
"The service in this restaurant was miserable.",
"This is neither positive or negative.")
spark.lapply(docs, str_length_function)
工作階段範圍的 R 程式庫和 SparklyR
透過 SparklyR 中的 spark_apply(),您可以在 Spark 內使用任何 R 套件。 根據預設,在 sparklyr::spark_apply () 中,packages 引數會設定為 FALSE。 這會將目前 libPaths 中的程式庫複製到背景工作角色,讓您可在背景工作角色上匯入及使用這些程式庫。 例如,您可以執行下列項目,來產生具有 sparklyr::spark_apply() 的凱薩加密訊息:
install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
spark_version <- "3.2"
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)
apply_cases <- function(x) {
library(caesar)
caesar("hello world")
}
sdf_len(sc, 5) %>%
spark_apply(apply_cases, packages=FALSE)
下一步
- 檢視預設程式庫:Apache Spark 版本支援
- 管理 Synapse Studio 入口網站外部的套件:透過 Az 命令和 REST API 管理套件