세션 범위 패키지 관리
풀 수준 패키지 외에도 Notebook 세션의 시작 부분에 세션 범위 라이브러리를 지정할 수 있습니다. 세션 범위 라이브러리를 사용하면 Notebook 세션 내에서 Python, jar, R 패키지를 지정하고 사용할 수 있습니다.
세션 범위 라이브러리를 사용하는 경우 다음 사항을 염두에 두어야 합니다.
- 세션 범위 라이브러리를 설치할 때 현재 Notebook만이 지정된 라이브러리에 액세스할 권한이 있습니다.
- 이러한 라이브러리는 동일한 Spark 풀을 사용하는 다른 세션 또는 작업에 영향을 주지 않습니다.
- 이러한 라이브러리는 기본 런타임 및 풀 수준 라이브러리 위에 설치되며 가장 높은 우선 순위를 차지합니다.
- 세션 범위 라이브러리는 세션 간에 지속되지 않습니다.
세션 범위 Python 패키지
environment.yml 파일을 통해 세션 범위 Python 패키지 관리
세션 범위 Python 패키지를 지정하려면 다음을 수행합니다.
- 선택한 Spark 풀로 이동하여 세션 수준 라이브러리를 사용하도록 설정했는지 확인합니다. 관리>Apache Spark 풀>패키지탭으로 이동하여 이 설정을 사용할 수 있습니다.
- 설정이 적용되면 Notebook을 열고 세션패키지 구성>을 선택할 수 있습니다.
- 여기서 Conda environment.yml 파일을 업로드하여 세션 내에서 패키지를 설치하거나 업그레이드할 수 있습니다. 지정된 라이브러리는 세션이 시작되면 존재합니다. 이러한 라이브러리는 세션이 종료된 후에 더 이상 사용할 수 없습니다.
%pip 및 %conda 명령을 통해 세션 범위 Python 패키지 관리
인기 있는 %pip 및 %conda 명령을 사용하여 Apache Spark Notebook 세션 중에 추가 타사 라이브러리 또는 사용자 지정 라이브러리를 설치할 수 있습니다. 이 섹션에서는 %pip 명령을 사용하여 몇 가지 일반적인 시나리오를 보여 줍니다.
참고 항목
- 새 라이브러리를 설치하려면 %pip 및 %conda 명령을 Notebook의 첫 번째 셀에 배치하는 것이 좋습니다. 변경 내용을 적용하기 위해 세션 수준 라이브러리를 관리한 후 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
세션 범위 라이브러리 제거
이 Notebook 세션에 설치된 패키지를 제거하려면 다음 명령을 참조하면 됩니다. 그러나 기본 제공 패키지는 제거할 수 없습니다.
%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>>",
}
}
참고 항목
- Notebook의 시작 부분에서 %%configure를 실행하는 것이 좋습니다. 유효한 매개 변수의 전체 목록은 이 문서를 참조하세요.
세션 범위 R 패키지(미리 보기)
Azure Synapse Analytics 풀에는 즉시 사용 가능한 많은 인기 R 라이브러리가 포함되어 있습니다. Apache Spark Notebook 세션 중에 타사 라이브러리를 추가로 설치할 수도 있습니다.
참고 항목
- 이러한 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
함수가 지원됩니다.
명령 | 설명 |
---|---|
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")
Notebook에서 세션 범위 패키지를 제거하려면 remove.packages()
명령을 사용합니다. 이 라이브러리 변경은 동일한 클러스터의 다른 세션에 영향을 주지 않습니다. 사용자는 기본 Azure Synapse Analytics 런타임의 일부로 설치된 기본 제공 라이브러리를 설치 제거하거나 제거할 수 없습니다.
remove.packages("caesar")
참고 항목
SparkR, SparklyR 또는 R과 같은 핵심 패키지는 제거할 수 없습니다.
세션 범위 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 <- "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를 통해 패키지 관리