다음을 통해 공유


Azure Databricks에서 pandas를 사용할 수 있나요?

Databricks Runtime에는 표준 Python 패키지 중 하나로 pandas가 포함되어 있으므로 Databricks Notebook 및 작업에서 pandas DataFrames를 만들고 활용할 수 있습니다.

Databricks Runtime 10.4 LTS 이상에서 Spark의 Pandas API는 PySpark DataFrames 위에 친숙한 pandas 명령을 제공합니다. Pandas와 PySpark 간에 DataFrames를 변환할 수도 있습니다.

Apache Spark에는 사용자가 PySpark DataFrames에 직접 pandas 변환을 적용할 수 있는 pandas 함수 API 형태로 Python 논리의 Arrow 최적화 실행이 포함되어 있습니다. Apache Spark는 Python에 정의된 임의의 사용자 함수에 유사한 Arrow 최적화를 사용하는 pandas UDF도 지원합니다.

pandas는 Azure Databricks의 어디에 데이터를 저장하나요?

pandas를 사용하여 Azure Databricks의 여러 위치에 데이터를 저장할 수 있습니다. 일부 위치에서 데이터를 저장하고 로드하는 기능은 작업 영역 관리자가 설정하는 구성에 따라 달라집니다.

참고 항목

Databricks에서는 클라우드 개체 스토리지에 프로덕션 데이터를 저장할 것을 권장합니다. Azure Data Lake Storage Gen2 및 Blob Storage에 연결을 참조하세요.

Unity 카탈로그 사용 작업 영역에 있는 경우 외부 위치를 사용하여 클라우드 스토리지에 액세스할 수 있습니다. 클라우드 스토리지를 Azure Databricks에 연결하기 위한 외부 위치 생성 방법을 참조하세요.

중요한 정보가 없는 빠른 탐색 및 데이터의 경우 다음 예제와 같이 상대 경로 또는 DBFS를 사용하여 데이터를 안전하게 저장할 수 있습니다.

import pandas as pd

df = pd.DataFrame([["a", 1], ["b", 2], ["c", 3]])

df.to_csv("./relative_path_test.csv")
df.to_csv("/dbfs/dbfs_test.csv")

다음 예제와 %fs 같이 매직 명령을 사용하여 DBFS에 기록된 파일을 탐색할 수 있습니다. /dbfs 디렉터리는 이러한 명령의 루트 경로입니다.

%fs ls

상대 경로에 저장하는 경우 파일의 위치는 코드를 실행하는 위치에 따라 달라집니다. Databricks Notebook을 사용하는 경우 데이터 파일은 클러스터의 드라이버에 연결된 볼륨 스토리지에 저장됩니다. 이 위치에 저장된 데이터는 클러스터가 종료되면 영구적으로 삭제됩니다. 임의 파일 지원을 사용하도록 설정된 Databricks Git 폴더를 사용하는 경우 데이터가 현재 프로젝트의 루트에 저장됩니다. 두 경우 모두 다음 예제와 같이 현재 루트 디렉터리를 기준으로 간단한 bash 작업을 허용하는 %sh 매직 명령을 사용하여 작성된 파일을 탐색할 수 있습니다.

%sh ls

Azure Databricks가 다양한 파일을 저장하는 방법에 대한 자세한 내용은 Azure Databricks에서 파일 작업을 참조하세요.

Azure Databricks에서 pandas를 사용하여 데이터를 로드하려면 어떻게 해야 하나요?

Azure Databricks는 탐색을 위해 작업 영역에 데이터를 쉽게 업로드할 수 있는 다양한 옵션을 제공합니다. pandas를 사용하여 데이터를 로드하는 기본 방법은 작업 영역에 데이터를 로드하는 방법에 따라 달라집니다.

로컬 머신에 Notebook과 함께 소량의 데이터 파일이 저장된 경우 Git 폴더를 사용하여 데이터와 코드를 함께 업로드할 수 있습니다. 그런 다음, 상대 경로를 사용하여 데이터 파일을 로드할 수 있습니다.

Azure Databricks는 방대한 데이터 로드를 위한 UI 기반 옵션을 제공합니다. 이러한 옵션의 대부분은 데이터를 Delta 테이블로 저장합니다. Delta 테이블을 Spark DataFrame으로 읽어 온 다음, pandas DataFrame으로 변환할 수 있습니다.

DBFS 또는 상대 경로를 사용하여 데이터 파일을 저장한 경우 DBFS 또는 상대 경로를 사용하여 해당 데이터 파일을 다시 로드할 수 있습니다. 다음 코드는 예제를 제공합니다.

import pandas as pd

df = pd.read_csv("./relative_path_test.csv")
df = pd.read_csv("/dbfs/dbfs_test.csv")

pandas 및 정규화된 URL을 사용하여 Azure Data Lake Storage Gen2에서 직접 데이터를 로드할 수 있습니다. 클라우드 데이터에 액세스하려면 클라우드 자격 증명을 제공해야 합니다. Python 패키지 fsspecadlfs도 설치해야 합니다.

df = pd.read_csv(
  f"abfss://{container}@{storage_account}.dfs.core.windows.net/{file_path}",
  storage_options={
    "sas_token": sas_token_value
  }
)