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 사용자 지정 | 지원됨 | 지원됨 |
필수 조건
Microsoft Fabric 구독을 구매합니다. 또는 무료 Microsoft Fabric 평가판에 등록합니다.
Microsoft Fabric에 로그인합니다.
홈페이지 왼쪽의 환경 전환기를 사용하여 Synapse 데이터 과학 환경으로 전환합니다.
세션 수준 R 라이브러리
대화형 데이터 분석이나 기계 학습을 수행하는 경우에는 최신 패키지를 시도하거나 작업 영역에서 현재 사용할 수 없는 패키지가 필요할 수 있습니다. 작업 영역 설정을 업데이트하는 대신 세션 범위 패키지를 사용하여 세션 종속성을 추가, 관리, 업데이트할 수 있습니다.
- 세션 범위 라이브러리를 설치할 때 현재 Notebook만이 지정된 라이브러리에 액세스할 권한이 있습니다.
- 해당 라이브러리는 동일한 Spark 풀을 사용하는 다른 세션이나 작업에 영향을 미치지 않습니다.
- 이러한 라이브러리는 기본 런타임 및 풀 수준 라이브러리 위에 설치됩니다.
- Notebook 라이브러리의 우선 순위가 가장 높습니다.
- 세션 범위 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 사용자 지정 라이브러리 설치
세션 수준 사용자 지정 라이브러리를 사용하려면 먼저 연결된 레이크하우스에 업로드해야 합니다.
왼쪽에서 추가를 선택하여 기존 레이크하우스를 추가하거나 레이크하우스를 만듭니다.
이 레이크하우스에 파일을 추가하려면 작업 영역을 선택한 다음, 레이크하우스를 선택합니다.
마우스 오른쪽 버튼을 클릭하거나 파일 옆에 있는 "..."을 선택하여 .tar.gz 파일을 업로드할 수 있습니다.
업로드한 후 Notebook으로 돌아갑니다. 다음 명령을 사용하여 세션에 사용자 지정 라이브러리를 설치합니다.
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()
명령을 사용합니다. 이 라이브러리 변경은 동일한 클러스터의 다른 세션에 영향을 주지 않습니다. 사용자는 기본 Azure Synapse Analytics 런타임의 기본 제공 라이브러리를 설치 제거하거나 제거할 수 없습니다.
참고 항목
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
sparklyr의 spark_apply()
를 사용하면 Spark 내부의 모든 R 패키지를 사용할 수 있습니다. 기본적으로 sparklyr::spark_apply()
에서 packages 인수는 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 기능에 대해 자세히 알아보기: