Compartilhar via


Baixar dados da internet

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

O Azure Databricks não fornece ferramentas nativas para baixar dados da internet, mas você pode usar ferramentas de código aberto nas linguagens com suporte para baixar arquivos usando notebooks.

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

Observação

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

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

Se você está acessando dados do armazenamento de objetos de nuvem, acessar dados diretamente com o Apache Spark fornece melhores resultados. Confira Conectar-se às fontes de dados.

Algumas configurações do workspace podem impedir o acesso à internet pública. Consulte o administrador do workspace se você precisar de acesso expandido à rede.

Baixar um arquivo em um volume

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

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

Os exemplos a seguir usam pacotes para Bash, Python e Scala para baixar um arquivo no 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 no armazenamento efêmero anexado ao driver, use %sh para ver os arquivos, como no seguinte exemplo:

%sh ls /tmp/

Você pode usar comandos Bash para visualizar o conteúdo dos arquivos baixado dessa maneira, como no seguinte exemplo:

%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 de nuvem. Confira Conectar-se às fontes de dados.

Os Utilitários do Databricks (dbutils) permitem mover arquivos do armazenamento efêmero anexado ao driver para outros locais, incluindo volumes do Catálogo do 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 baixados

Depois de mover os dados para um volume, você pode lê-los normalmente. O código a seguir lê os 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)