다음을 통해 공유


인터넷에서 데이터 다운로드

이 문서에서는 인터넷에서 Azure Databricks에 데이터를 추가하는 패턴을 설명합니다.

Azure Databricks는 인터넷에서 데이터를 다운로드하기 위한 네이티브 도구를 제공하지 않지만 지원되는 언어의 오픈 소스 도구를 사용하여 Notebook을 사용하여 파일을 다운로드할 수 있습니다.

Databricks는 테이블 형식이 아닌 모든 데이터를 저장하기 위해 Unity 카탈로그 볼륨을 사용하는 것이 좋습니다. 필요에 따라 다운로드하는 동안 볼륨을 대상으로 지정하거나 다운로드 후 볼륨으로 데이터를 이동할 수 있습니다.

참고 항목

출력 경로를 지정하지 않으면 대부분의 오픈 소스 도구가 임시 스토리지의 디렉터리를 대상으로 합니다. 임시 스토리지에 파일 다운로드를 참조하세요.

볼륨은 임의 쓰기를 지원하지 않습니다. 다운로드한 파일의 압축을 풉니다. Databricks는 파일을 임시 스토리지로 다운로드하고 볼륨으로 이동하기 전에 압축을 풉니다. 압축된 Zip 파일 확장 및 읽기를 참조하세요.

클라우드 개체 스토리지에서 데이터에 액세스하는 경우 Apache Spark를 사용하여 데이터에 직접 액세스하면 더 나은 결과를 제공합니다. 데이터 원본에 대한 연결을 참조 하세요.

일부 작업 영역 구성은 공용 인터넷에 대한 액세스를 차단할 수 있습니다. 확장된 네트워크 액세스가 필요한 경우 작업 영역 관리자에게 문의하세요.

볼륨에 파일 다운로드

Databricks는 모든 테이블 형식이 아닌 데이터를 Unity 카탈로그 볼륨에 저장하는 것이 좋습니다.

다음 예제에서는 Bash, Python 및 Scala용 패키지를 사용하여 Unity 카탈로그 볼륨에 파일을 다운로드합니다.

Bash

%sh curl https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv --output /Volumes/my_catalog/my_schema/my_volume/curl-subway.csv

Python

import urllib
urllib.request.urlretrieve("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv", "/Volumes/my_catalog/my_schema/my_volume/python-subway.csv")

Scala

import java.net.URL
import java.io.File
import org.apache.commons.io.FileUtils

FileUtils.copyURLToFile(new URL("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv"), new File("/Volumes/my_catalog/my_schema/my_volume/scala-subway.csv"))

임시 스토리지에 파일 다운로드

다음 예제에서는 Bash, Python 및 Scala용 패키지를 사용하여 드라이버에 연결된 임시 스토리지에 파일을 다운로드합니다.

Bash

%sh curl https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv --output /tmp/curl-subway.csv

Python

import urllib
urllib.request.urlretrieve("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv", "/tmp/python-subway.csv")

Scala

import java.net.URL
import java.io.File
import org.apache.commons.io.FileUtils

FileUtils.copyURLToFile(new URL("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv"), new File("/tmp/scala-subway.csv"))

이러한 파일은 드라이버에 연결된 임시 스토리지에 다운로드되므로 다음 예제와 같이 이러한 파일을 확인하는 데 사용합니다 %sh .

%sh ls /tmp/

Bash 명령을 사용하여 다음 예제와 같이 이러한 방식으로 다운로드되는 파일의 콘텐츠를 미리 볼 수 있습니다.

%sh head /tmp/curl-subway.csv

dbutils를 사용하여 데이터 이동

Apache Spark를 사용하여 데이터에 액세스하려면 임시 스토리지에서 클라우드 개체 스토리지로 이동해야 합니다. Databricks는 클라우드 개체 스토리지에 대한 모든 액세스를 관리하기 위해 볼륨을 사용하는 것이 좋습니다. 데이터 원본에 대한 연결을 참조 하세요.

Databricks 유틸리티(dbutils)를 사용하면 드라이버에 연결된 임시 스토리지에서 Unity 카탈로그 볼륨을 비롯한 다른 위치로 파일을 이동할 수 있습니다. 다음 예제에서는 예제 볼륨으로 데이터를 이동합니다.

dbutils.fs.mv("file:/tmp/curl-subway.csv", "/Volumes/my_catalog/my_schema/my_volume/subway.csv")

다운로드한 데이터 읽기

데이터를 볼륨으로 이동한 후 정상적으로 데이터를 읽을 수 있습니다. 다음 코드는 볼륨으로 이동된 CSV 데이터를 읽습니다.

df = spark.read.format("csv").option("header", True).load("/Volumes/my_catalog/my_schema/my_volume/subway.csv")
display(df)