R 라이브러리 관리

라이브러리는 Microsoft Fabric Spark에 대한 프로그램 또는 프로젝트에 포함할 수 있는 재사용 가능한 코드를 제공합니다.

Microsoft Fabric은 TidyVerse를 비롯한 많은 인기 있는 오픈 소스 R 패키지가 미리 설치된 R 런타임을 지원합니다. Spark 인스턴스가 시작되면 이러한 라이브러리가 자동으로 포함되며 Notebook 또는 Spark 작업 정의에서 즉시 사용할 수 있습니다.

여러 가지 이유로 R 라이브러리를 업데이트해야 할 수 있습니다. 예를 들어 핵심 종속성 중 하나가 새 버전을 릴리스했거나 팀에서 Spark 클러스터에서 사용할 수 있는 사용자 지정 패키지를 빌드했습니다.

시나리오에 따라 포함할 수 있는 라이브러리에는 두 가지 유형이 있습니다.

  • 피드 라이브러리 는 공용 원본 또는 리포지토리(예: CRAN 또는 GitHub)에 있는 라이브러리를 참조합니다.

  • 사용자 지정 라이브러리 는 사용자 또는 조직 에서 빌드한 코드입니다. .tar.gz 라이브러리 관리 포털을 통해 관리할 수 있습니다.

Microsoft Fabric에는 두 가지 패키지 수준이 설치되어 있습니다.

  • 환경: 환경을 통해 라이브러리를 관리하여 여러 Notebook 또는 작업에서 동일한 라이브러리 집합을 다시 사용합니다.

  • 세션 : 세션 수준 설치는 특정 Notebook 세션에 대한 환경을 만듭니다. 세션 수준 라이브러리의 변경 내용은 세션 간에 유지되지 않습니다.

현재 사용 가능한 R 라이브러리 관리 동작 요약:

라이브러리 유형 환경 설치 세션 수준 설치
R 피드(CRAN) 지원되지 않음 지원됨
R 사용자 지정 지원됨 지원됨

필수 조건

세션 수준 R 라이브러리

대화형 데이터 분석 또는 기계 학습을 수행할 때 최신 패키지를 시도하거나 작업 영역에서 현재 사용할 수 없는 패키지가 필요할 수 있습니다. 작업 영역 설정을 업데이트하는 대신 세션 범위 패키지를 사용하여 세션 종속성을 추가, 관리 및 업데이트할 수 있습니다.

  • 세션 범위 라이브러리를 설치할 때 현재 Notebook만이 지정된 라이브러리에 액세스할 권한이 있습니다.
  • 이러한 라이브러리는 동일한 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 .

명령 설명
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. 왼쪽에서 추가를 선택하여 기존 레이크하우스를 추가하거나 레이크하우스를 만듭니다.

    Notebook에 Lakehouse를 추가하는 방법의 스크린샷.

  2. 이 레이크하우스에 파일을 추가하려면 작업 영역을 선택한 다음, 레이크하우스를 선택합니다.

    레이크하우스로 이동하여 파일을 추가하는 방법의 스크린샷.

  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")

Notebook에서 세션 범위 패키지를 제거하려면 remove.packages() 명령을 사용합니다. 이 라이브러리 변경은 동일한 클러스터의 다른 세션에 영향을 주지 않습니다. 사용자는 기본 Microsoft Fabric 런타임의 기본 제공 라이브러리를 제거하거나 제거할 수 없습니다.

참고 항목

SparkR, SparklyR 또는 R과 같은 핵심 패키지는 제거할 수 없습니다.

remove.packages("caesar")

세션 범위 R 라이브러리 및 SparkR

Notebook 범위 라이브러리는 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()패키지 인수는 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 기능에 대해 자세히 알아보세요.