共用方式為


R 連結庫管理

連結庫提供可重複使用的程式代碼,您可能想要包含在 Microsoft Fabric Spark 的程式或專案中。

Microsoft Fabric 支援具有許多熱門開放原始碼 R 套件的 R 運行時間,包括預安裝 TidyVerse。 啟動 Spark 實例時,這些連結庫會自動包含在筆記本或 Spark 作業定義中,並可供立即使用。

基於各種原因,您可能需要更新 R 連結庫。 例如,您的其中一個核心相依性已發行新版本,或您的小組已建置可在Spark叢集中取得的自定義套件。

根據您的案例,您可能會想要包含兩種類型的連結庫:

  • 摘要連結庫是指位於公用來源或存放庫中的連結庫 ,例如 CRAN 或 GitHub。

  • 自定義連結庫 是您或貴組織所建置的程式代碼, .tar.gz 可透過連結庫管理入口網站進行管理。

Microsoft Fabric 上安裝兩層套件:

  • 環境:透過 環境 管理連結庫,以跨多個筆記本或作業重複使用同一組連結庫。

  • 會話 :會話層級安裝會建立特定筆記本會話的環境。 會話層級連結庫的變更不會在會話之間保存。

摘要目前可用的 R 連結庫管理行為:

程式庫類型 環境安裝 會話層級安裝
R 摘要 (CRAN) 不支援 支援
R 自訂 支援 支援

必要條件

會話層級 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() 從任意 URL 安裝 R 套件
install_git() 從任意 Git 存放庫安裝
install_local() 從磁碟上的本機檔案安裝
install_version() 從 CRAN 上的特定版本安裝

安裝 R 自訂連結庫

若要使用會話層級自定義連結庫,您必須先將其上傳至附加的 Lakehouse。

  1. 在左側,選取 [新增 ] 以新增現有的 Lakehouse 或建立 Lakehouse。

    如何將 Lakehouse 新增至筆記本的螢幕快照。

  2. 若要將檔案新增至此 Lakehouse,請選取您的工作區,然後選取 Lakehouse。

    如何流覽至 Lakehouse 以新增檔案的螢幕快照。

  3. 以滑鼠右鍵按兩下或選取 “...”在 [檔案] 旁上傳.tar.gz檔案。

    如何將檔案上傳至 Lakehouse Files 資料夾的螢幕快照。

  4. 上傳之後,請返回您的筆記本。 使用下列命令將自訂連結庫安裝到您的工作階段:

    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

spark_apply() sparklyr中,您可以使用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 <- 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 功能: