R 程式庫管理
程式庫提供您可能想要包含在 Microsoft Fabric Spark 程式或專案中的可重複使用程式碼。
Microsoft Fabric 支援具有許多熱門開放原始碼 R 套件的 R 執行階段,包括預先安裝的 TidyVerse。 啟動 Spark 執行個體時,會自動包含這些程式庫,並且可在筆記本或 Spark 作業定義中立即使用。
出於各種原因,您可能需要更新 R 程式庫。 例如,您的其中一個核心相依項已發行新版本,或您的團隊已建置需要在 Spark 叢集中提供的自訂套件。
根據您的案例,您可能想要包含兩種類型的程式庫:
摘要程式庫是指位於公用來源或存放庫中的程式庫,例如 CRAN 或 GitHub。
自訂程式庫是指您或貴組織建置的程式碼,可透過程式庫管理入口網站來管理 .tar.gz。
Microsoft Fabric 上安裝了兩個層級的套件:
環境:透過環境來管理程式庫,以跨多個筆記本或作業重複使用同一程式庫集。
工作階段:工作階段層級安裝會針對特定筆記本工作階段建立環境。 工作階段之間不會保存工作階段層級程式庫的變更。
總結目前可用的 R 程式庫管理行為:
程式庫類型 | 環境安裝 | 工作階段層級安裝 |
---|---|---|
R 摘要 (CRAN) | 不支援 | 支援 |
R 自訂 | 支援 | 支援 |
必要條件
取得 Microsoft Fabric 訂用帳戶。 或註冊免費的 Microsoft Fabric 試用版。
登入 Microsoft Fabric。
使用首頁左側的體驗切換器,切換至 Synapse 資料科學體驗。
工作階段層級 R 程式庫
執行互動式資料分析或機器學習時,您可嘗試較新的套件,或可能需要工作區上目前無法使用的套件。 您可以使用工作階段範圍套件來新增、管理和更新工作階段相依項,而不是更新工作區設定。
- 您在安裝工作階段範圍的程式庫時,只有目前的筆記本可存取指定的程式庫。
- 這些程式庫不會影響使用相同 Spark 集區的其他工作階段或工作。
- 這些程式庫會安裝在基礎執行階段和集區層級程式庫之上。
- 筆記本程式庫具有最高優先順序。
- 工作階段範圍的 R 程式庫不會跨工作階段保存。 執行相關的安裝命令時,會在每個工作階段開始時安裝這些程式庫。
- 工作階段範圍的 R 程式庫會自動安裝在驅動程式和背景工作角色節點。
注意
執行管線工作時,會停用管理 R 程式庫的命令。 如果您想要在管線內安裝套件,您必須在工作區層級使用程式庫管理功能。
從 CRAN 安裝 R 套件
您可以從 CRAN 輕鬆安裝 R 程式庫。
# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))
您還可以使用 CRAN 快照做為存放庫,以確保每次下載相同的套件版本。
# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
使用 devtools 安裝 R 套件
devtools
程式庫可簡化套件開發,以加速一般工作。 此程式庫會在預設 Microsoft Fabric 執行階段內安裝。
您可以使用 devtools
來指定要安裝的特定程式庫版本。 這些程式庫會安裝在叢集內的所有節點中。
# Install a specific version.
install_version("caesar", version = "1.0.0")
同樣地,您可以直接透過 GitHub 安裝程式庫。
# Install a GitHub library.
install_github("jtilly/matchingR")
目前,Microsoft Fabric 支援下列 devtools
函數:
Command | 描述 |
---|---|
install_github() | 透過 GitHub 安裝 R 套件 |
install_gitlab() | 透過 GitLab 安裝 R 套件 |
install_bitbucket() | 透過 BitBucket 安裝 R 套件 |
install_url() | 透過任意網址安裝 R 套件 |
install_git() | 透過任意 Git 存放庫安裝 |
install_local() | 透過磁碟上的本機檔案安裝 |
install_version() | 透過 CRAN 上的特定版本安裝 |
安裝 R 自訂程式庫
若要使用工作階段層級自訂程式庫,您必須先將其上傳至連結的 Lakehouse。
在左側,選取 [新增] ,以新增現有的 Lakehouse 或建立 Lakehouse。
若要將檔案新增至此 Lakehouse,請選取您的工作區,然後選取 Lakehouse。
以滑鼠右鍵按一下或選取檔案旁的 "...",以上傳您的 .tar.gz 檔案。
上傳之後,返回您的筆記本。 使用下列命令將自訂程式庫安裝到您的工作階段:
install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
檢視安裝的程式庫
使用 library
命令查詢工作階段內安裝的所有程式庫。
# query all the libraries installed in current session
library()
使用 packageVersion
函數檢查程式庫的版本:
# check the package version
packageVersion("caesar")
從工作階段中移除 R 套件
您可以使用 detach
函數,從命名空間中移除程式庫。 這些程式庫會保留在磁碟上,直至在此將其載入。
# detach a library
detach("package: caesar")
若要從筆記本中移除工作階段範圍的套件,請使用 remove.packages()
命令。 此程式庫變更不會影響相同叢集上的其他工作階段。 使用者無法解除安裝或移除預設 Microsoft Fabric 執行階段的內建程式庫。
注意
您無法移除 SparkR、SparklyR 或 R 等核心套件。
remove.packages("caesar")
工作階段範圍的 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()
中,套件引數會設定為 FALSE。 這會將目前 libPaths 中的程式庫複製到背景工作角色,讓您在背景工作角色匯入和使用程式庫。 例如,您可以執行下列命令來產生具有 sparklyr::spark_apply()
的 Caesar 加密訊息:
install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")
spark_version <- sparkR.version()
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)
相關內容
深入了解 R 功能: