Partilhar via


Download de dados da internet

Este artigo descreve padrões para adicionar dados da Internet ao Azure Databricks.

O Azure Databricks não fornece nenhuma ferramenta nativa para baixar dados da Internet, mas você pode usar ferramentas de código aberto em idiomas com suporte para baixar arquivos usando blocos de anotações.

O Databricks recomenda o uso de volumes do Unity Catalog para armazenar todos os dados não tabulares. Opcionalmente, você pode especificar um volume como destino durante o download ou mover dados para um volume após o download.

Nota

Se você não especificar um caminho de saída, a maioria das ferramentas de código aberto terá como destino um diretório em seu armazenamento efêmero. Consulte Baixar um arquivo para armazenamento efêmero.

Os volumes não suportam gravações aleatórias. Se você precisar descompactar arquivos baixados, o Databricks recomenda baixá-los para armazenamento efêmero e descompactá-los antes de movê-los para volumes. Consulte Expandir e ler arquivos compactados Zip.

Se você estiver acessando dados do armazenamento de objetos na nuvem, acessar dados diretamente com o Apache Spark fornece melhores resultados. Consulte Conectar-se a fontes de dados.

Algumas configurações de espaço de trabalho podem impedir o acesso à Internet pública. Consulte o administrador do espaço de trabalho se precisar de acesso expandido à rede.

Baixar um arquivo para um volume

O Databricks recomenda armazenar todos os dados não tabulares em volumes do Unity Catalog.

Os exemplos a seguir usam pacotes para Bash, Python e Scala para baixar um arquivo para um volume do Catálogo 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"))

Baixar um arquivo para armazenamento efêmero

Os exemplos a seguir usam pacotes para Bash, Python e Scala para baixar um arquivo para armazenamento efêmero anexado ao driver:

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"))

Como esses arquivos são baixados para armazenamento efêmero anexado ao driver, use %sh para ver esses arquivos, como no exemplo a seguir:

%sh ls /tmp/

Você pode usar comandos Bash para visualizar o conteúdo do download de arquivos dessa maneira, como no exemplo a seguir:

%sh head /tmp/curl-subway.csv

Mover dados com dbutils

Para acessar dados com o Apache Spark, você deve movê-los do armazenamento efêmero para o armazenamento de objetos na nuvem. O Databricks recomenda o uso de volumes para gerenciar todo o acesso ao armazenamento de objetos na nuvem. Consulte Conectar-se a fontes de dados.

Os utilitários Databricks (dbutils) permitem mover arquivos do armazenamento efêmero anexado ao driver para outros locais, incluindo volumes do Catálogo Unity. O exemplo a seguir move dados para um volume de exemplo:

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

Ler dados descarregados

Depois de mover os dados para um volume, você pode ler os dados normalmente. O código a seguir lê nos dados CSV movidos para um volume:

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