Azure Databricks: 2. Databricks 기본 사항

4447 단어 AzureDatabricks

Databricks File System (DBFS)



Azure Databricks의 Cluster에는 Databricks File System(DBFS)이라는 분산 파일 시스템이 설치되어 있습니다. DBFS 파일은 Azure Blob Storage에 지속되므로 Cluster가 종료된 후에도 데이터가 유지됩니다.
Notebook에서 DBFS에 액세스하는 경우에는 Databricks Utilities(dbutils), Spark API, open 함수 등의 FileIO를 사용합니다. 필요합니다.

Databricks Utilities(dbutils)



dbutils는 DBFS의 루트 디렉토리를 기준으로 경로를 참조합니다.
dbutils에서 "/mnt/my_blob_container"를 지정하면 "dbfs:/mnt/my_blob_container"를 참조하게 됩니다.
dbutils에서 Cluster의 로컬 스토리지를 참조하는 경우 'file:/home/ubuntu'와 같이 OS의 로컬 경로에 'file:'을 추가한 것을 사용합니다.

Spark API



Spark API로 파일을 로드하는 경우 DBFS의 루트 디렉토리를 기준으로 경로를 참조합니다.
그러나 dbutils와 달리 "file:/home/ubuntu"와 같은 형태로 Cluster의 로컬 스토리지를 참조할 수 없습니다.
따라서 Spark에서 파일을 로드하는 경우 DBFS에 파일을 배치해야 합니다.

FileIO (상기 2개 이외의 파일 조작)



Python의 open 함수 등의 FileIO로 읽을 경우 OS의 루트 디렉토리를 기준으로 경로를 참조합니다.
DBFS 루트 디렉토리는 OS "/dbfs"에 마운트되어 있으므로 DBFS의 "/mnt/my_blob_container"에 액세스하는 경우 "/dbfs/mnt/my_blob_container"와 같이 "/dbfs"를 추가한 경로를 사용합니다.

매직 명령



Databricks에서는 셀에 매직 명령을 지정하여 다양한 스크립트를 실행할 수 있습니다.
매직 명령은 셀당 하나만 지정할 수 있습니다.

Markdown 형식으로 주석 삽입: %md



셀에 Markdown을 포함하고 주석으로 삽입합니다.
%md
## Blob Storageのマウント
| 項目 | 設定値 |  
| :-- | :-- |  
| ストレージアカウント | ●●●●●●●● |  
| Blobコンテナ | ●●●●●●●●●● |  



Databricks File System (DBFS) 파일 조작 : % fs



Databricks의 분산 파일 시스템인 DBFS의 리스트, 카피 등의 파일 조작을 쉘 커멘드 라이크에 기술해 실행합니다.
디렉토리에 있는 파일 목록을 보려면 다음 명령을 사용합니다.
%fs
ls /mnt/blob_container/



위의 명령은 Python의 다음 스크립트 실행 결과와 동일합니다.
display(dbutils.fs.ls("/mnt/my_blob_container/"))



OS(Linux) 쉘 명령 실행: %sh



OS 쉘 명령을 실행하려면 "% sh"를 사용하십시오.
DBFS를 %sh로 참조하는 경우는 다음과 같습니다.
%sh
ls /dbfs/mnt/my_blob_container/



각 언어의 스크립트 실행: %python, %scala, %sql, %r



Notebook에서 지정한 언어 이외의 언어를 사용하는 경우 해당 언어의 매직 명령을 사용합니다.
%scala
var x = 100
x
%r
y <- 100
y


언어간에 변수는 공유되지 않으므로 매직 명령의 변수에 값을 전달하는 경우는 일단 DBFS에 파일 출력을 하는 등으로 전달해야 합니다.


다른 Notebook 실행 및 로드: %run



다른 Notebook을 실행하는 경우에는 %run으로 대상 Notebook을 지정하여 실행합니다.
%run으로 실행하면 같은 언어라면 다른 Notebook에 정의된 변수를 그대로 변수 이름으로 참조할 수 있습니다.
유지 보수성을 높이기 위해 스키마 정의를 별도의 Notebook에서 기술해 두는 것과 같은 사용법이 가능합니다.
%run /Users/{ユーザー名}/{Notebook名}



참고


  • Using Notebooks
  • 좋은 웹페이지 즐겨찾기