다음을 통해 공유


Microsoft Fabric에서 Apache Spark 라이브러리 관리

라이브러리는 PyPI의 Python 패키지, CRAN의 R 패키지 또는 Java JAR과 같은 재사용 가능한 코드 패키지로, Notebook 및 Spark 작업 정의로 가져와 처음부터 작성하지 않고 기능을 추가할 수 있습니다. Microsoft Fabric은 라이브러리를 관리하고 사용하는 데 도움이 되는 여러 메커니즘을 제공합니다.

  • 기본 제공 라이브러리: 각 Fabric Spark 런타임은 널리 사용되는 미리 설치된 라이브러리 집합을 제공합니다. Fabric Spark 런타임에서 전체 기본 제공 라이브러리 목록을 찾을 수 있습니다.
  • 공용 라이브러리: 공용 라이브러리는 현재 지원되는 PyPI 및 Conda와 같은 리포지토리에서 제공됩니다.
  • 사용자 지정 라이브러리: 사용자 지정 라이브러리는 사용자 또는 조직에서 빌드하는 코드를 참조합니다. Fabric은 .whl, .jar.tar.gz 형식으로 지원합니다. Fabric은 R 언어에 대해서만 .tar.gz 지원합니다. Python 사용자 지정 라이브러리의 경우 .whl 형식을 사용합니다.

라이브러리 관리 모범 사례 요약

다음 시나리오에서는 Microsoft Fabric에서 라이브러리를 사용할 때의 모범 사례를 설명합니다.

환경 게시 모드(빠른 모드 및 전체)

패브릭 환경에 라이브러리를 설치하는 경우 라이브러리가 Spark 세션에 전달되는 방법을 제어하는 게시 모드를 선택합니다.

  • 빠른 모드 는 약 5초 안에 게시됩니다. 라이브러리는 게시하는 동안이 아니라 Notebook 세션이 시작될 때 설치됩니다. 빠른 모드 패키지의 이름이 전체 모드 패키지와 동일한 경우 빠른 모드 버전은 해당 세션의 전체 모드 버전만 재정의합니다. 빠른 모드를 사용하여 빠르고 반복적인 Notebook 개발 및 초기 단계 실험을 수행합니다.
  • 전체 모드 는 안정적이고 재현 가능한 라이브러리 스냅샷을 만듭니다. 게시는 일반적으로 시스템에서 종속성을 확인하고 호환성의 유효성을 검사하기 때문에 3~6분이 걸립니다. 세션 시작은 종속성 크기에 따라 종속성 배포에 1~3분을 추가합니다. 일관되고 재현 가능한 환경이 필요한 파이프라인, 예약된 실행 및 공유 워크로드에 전체 모드를 사용합니다.

사용자 지정 라이브 풀이 있는 전체 모드

전체 모드의 안정성을 빠른 세션 시작과 결합하려면 전체 모드 환경에 연결하는 사용자 지정 라이브 풀 을 구성합니다. 라이브 풀은 전체 모드 라이브러리 스냅샷을 미리 활용하여 클러스터를 준비시키고, 이를 통해 반복 가능한 스냅샷을 유지하면서 약 5초 이내에 세션을 시작할 수 있도록 지원합니다.

각 모드에 대한 자세한 내용은 패브릭 환경에서 라이브러리 관리를 참조하세요.

시나리오 1: 관리자가 작업 영역에 대한 기본 라이브러리를 설정합니다.

기본 라이브러리를 설정하려면 작업 영역의 관리자여야 합니다. 관리자는 다음 작업을 수행할 수 있습니다.

  1. 새 환경 만들기
  2. 환경에 필요한 라이브러리 설치
  3. 이 환경을 작업 영역 기본값으로 연결

Notebook 및 Spark 작업 정의가 작업 영역 설정에 연결되면 작업 영역의 기본 환경에 설치된 라이브러리로 세션을 시작합니다.

시나리오 2: 하나 이상의 코드 항목에 대한 라이브러리 사양 유지

다른 코드 항목에 대한 공통 라이브러리가 있고 자주 업데이트할 필요가 없는 경우 환경에 라이브러리를 설치 하고 코드 항목에 연결합니다.

게시 시간은 선택한 모드에 따라 달라집니다. 빠른 모드는 약 5초 안에 게시되고 세션 시작 시 라이브러리를 설치합니다. 전체 모드는 종속성을 확인하고 안정적인 스냅샷을 만듭니다. 일반적으로 게시하는 데 3~6분이 걸리고 세션 시작 시 종속성 배포에 1~3분이 추가됩니다.

이 방법의 이점은 Spark 세션이 연결된 환경으로 시작할 때 성공적으로 설치된 라이브러리를 사용할 수 있다는 것입니다. 프로젝트에 대한 공통 라이브러리를 유지 관리하는 노력을 절약하고 안정성 때문에 파이프라인 시나리오에 권장됩니다.

시나리오 3: 대화형 실행의 인라인 설치

Notebook에서 대화형으로 코드를 작성하는 경우 인라인 설치는 PyPI 또는 conda 라이브러리를 추가하거나 단일 사용을 위해 사용자 지정 라이브러리의 유효성을 검사할 수 있는 가장 좋은 방법입니다. 인라인 명령을 사용하면 현재 Notebook Spark 세션에서만 라이브러리를 사용할 수 있습니다. 빠른 설치를 허용하지만 설치된 라이브러리는 세션 간에 유지되지 않습니다.

실행에서 실행까지 다른 종속성 트리를 생성할 수 있으므로 %pip install 라이브러리 충돌이 발생할 수 있으므로 파이프라인 실행에서는 인라인 명령이 기본적으로 해제되며 파이프라인에는 권장되지 않습니다.

비고

인라인 명령(예: %pip install 또는 %conda install)을 통해 설치된 라이브러리 및 Notebook 또는 환경 리소스 폴더에서 추가된 라이브러리는 현재 세션 또는 Notebook으로 범위가 지정됩니다. 빠른 모드 또는 전체 모드에서 환경 게시의 영향을 받지 않습니다.

지원되는 라이브러리 형식 요약

라이브러리 유형 환경 라이브러리 관리 인라인 설치
Python 공용(PyPI 및 Conda) 지원됨 지원됨
Python 사용자 지정 (.whl) 지원됨 지원됨
R 표준 공개 네트워크 (CRAN) 지원되지 않음 지원됨
R 사용자 지정(.tar.gz) 사용자 지정 라이브러리로 지원됨 지원됨
JAR 파일 사용자 지정 라이브러리로 지원됨 지원됨

인라인 설치

인라인 명령을 사용하면 개별 Notebook 세션 내에서 라이브러리를 관리할 수 있습니다.

Python 인라인 설치

시스템에서 Python 인터프리터를 다시 시작하여 라이브러리 변경 내용을 적용합니다. 명령 셀을 실행하기 전에 정의된 변수는 모두 손실됩니다. Notebook의 시작 부분에 Python 패키지를 추가, 삭제 또는 업데이트하기 위한 모든 명령을 배치합니다.

Python 라이브러리를 관리하기 위한 인라인 명령은 기본적으로 Notebook 파이프라인 실행에서 사용하지 않도록 설정됩니다. 파이프라인에서 %pip install를 사용하려면, Notebook 활동 매개 변수에 _inlineInstallationEnabled로 설정된 True 부울 매개 변수를 추가하세요.

Notebook 파이프라인 실행에 pip 설치를 사용하도록 설정하는 구성을 보여 주는 스크린샷.

비고

%pip install 명령은 실행에서 실행까지 일관되지 않은 결과를 생성할 수 있습니다. 환경에 라이브러리를 설치하고 대신 파이프라인에서 환경을 사용합니다. 이 %pip install 명령은 높은 동시성 모드에서 지원되지 않습니다. Notebook 참조 실행에서는 Python 라이브러리를 관리하기 위한 인라인 명령이 지원되지 않습니다. 참조된 Notebook에서 이러한 인라인 명령을 제거하여 올바른 실행을 보장합니다.

%pip대신 !pip 사용합니다. 이 !pip 명령은 다음과 같은 제한 사항이 있는 IPython 기본 제공 셸 명령입니다.

  • !pip 는 실행기 노드가 아닌 드라이버 노드에만 패키지를 설치합니다.
  • !pip를 통해 설치된 패키지는 노트북에서 이미 불러온 기본 제공 패키지나 이미 가져온 패키지와의 충돌을 인식하지 않습니다.

%pip 는 이러한 시나리오를 처리합니다. 설치된 %pip 라이브러리는 드라이버 및 실행기 노드 모두에서 사용할 수 있으며 라이브러리를 이미 가져온 경우에도 적용됩니다.

팁 (조언)

%conda install 명령은 일반적으로 새 Python 라이브러리를 %pip install 설치하는 데 명령보다 오래 걸립니다. 전체 종속성을 확인하고 충돌을 해결합니다.

더 높은 안정성과 신뢰성을 위해 %conda install를 사용하십시오. 설치하려는 라이브러리가 런타임 환경에서 미리 설치된 라이브러리와 충돌하지 않는지 확인하는 경우 사용합니다 %pip install .

사용 가능한 모든 Python 인라인 명령 및 설명은 %pip 명령%conda 명령을 참조하세요.

인라인 설치를 통해 Python 공용 라이브러리 관리

이 예제에서는 인라인 명령을 사용하여 라이브러리를 관리하는 방법을 보여 줍니다. 일회성 데이터 탐색을 위해 Python용 강력한 시각화 라이브러리인 altair를 사용하려고 하며 라이브러리가 작업 영역에 설치되지 않는다고 가정합니다. 다음 예제에서는 conda 명령을 사용하여 단계를 보여 줍니다.

인라인 명령을 사용하여 Notebook 또는 다른 항목의 다른 세션에 영향을 주지 않고 전자 필기장 세션에서 altair 를 사용하도록 설정할 수 있습니다.

  1. Notebook 코드 셀에서 다음 명령을 실행합니다. 첫 번째 명령은 altair 라이브러리를 설치합니다. 또한 시각화하는 데 사용할 수 있는 의미 체계 모델을 포함하는 vega_datasets 설치합니다.

    %conda install altair          # install latest version through conda command
    %conda install vega_datasets   # install latest version through conda command
    

    셀의 출력은 설치 결과를 나타냅니다.

  2. 다른 Notebook 셀에서 다음 코드를 실행하여 패키지 및 의미 체계 모델을 가져옵니다.

    import altair as alt
    from vega_datasets import data
    
  3. 이제 세션 범위의 altair 라이브러리를 사용하여 실험할 수 있습니다.

    # load a simple dataset as a pandas DataFrame
    cars = data.cars()
    alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
    ).interactive()
    

인라인 설치를 통해 Python 사용자 지정 라이브러리 관리

Python 사용자 지정 라이브러리를 Notebook 또는 연결된 환경의 리소스 폴더에 업로드할 수 있습니다. 리소스 폴더는 각 Notebook 및 환경에서 제공하는 기본 제공 파일 시스템입니다. 자세한 내용은 Notebook 리소스를 참조하세요. 라이브러리를 업로드한 후 코드 셀에 끌어서 놓아 설치 명령을 자동으로 생성할 수 있습니다. 또는 다음 명령을 실행할 수 있습니다.

# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/wheel_file_name.whl"             

비고

리소스 폴더에서 인라인 명령을 통해 설치된 사용자 지정 라이브러리는 세션당 및 Notebook당입니다. 환경 게시의 영향을 받지 않습니다.

R 인라인 설치

R 라이브러리를 관리하기 위해 Fabric은 install.packages(), remove.packages()devtools:: 명령을 지원합니다. 사용 가능한 모든 R 인라인 명령 및 설명은 install.packages 명령remove.package 명령을 참조하세요.

인라인 설치를 통해 R 공용 라이브러리 관리

이 예제에 따라 R 공용 라이브러리를 설치하는 단계를 안내합니다.

R 피드 라이브러리를 설치하려면 다음을 수행합니다.

  1. Notebook 리본에서 작업 언어를 SparkR(R) 로 전환합니다.

  2. Notebook 셀에서 다음 명령을 실행하여 caesar 라이브러리를 설치합니다.

    install.packages("caesar")
    
  3. 이제 세션 범위의 시저 라이브러리를 Spark 작업과 함께 실험할 수 있습니다.

    library(SparkR)
    sparkR.session()
    
    hello <- function(x) {
    library(caesar)
    caesar(x)
    }
    spark.lapply(c("hello world", "good morning", "good evening"), hello)
    

인라인 설치를 통해 Jar 라이브러리 관리

다음 명령을 사용하여 notebook 세션에 .jar 파일을 추가할 수 있습니다.

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
    }
}        

앞의 코드 셀은 레이크하우스 스토리지를 예로 사용합니다. Notebook 탐색기에서 파일의 전체 ABFS 경로를 복사하고 코드에서 바꿀 수 있습니다. ABFS 경로를 가져오는 메뉴 명령의 스크린샷.