Baixar dados da Internet

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

Databricks não fornece nenhuma ferramenta nativa para download de dados da Internet, mas o senhor pode usar ferramentas de código aberto em idiomas compatíveis para download arquivos usando o Notebook.

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

Observação

Se o senhor não especificar um caminho de saída, a maioria das ferramentas de código aberto direciona para um diretório no seu armazenamento efêmero. Veja download de um arquivo para armazenamento efêmero.

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

Se o senhor estiver acessando dados do armazenamento de objetos cloud, o acesso direto aos dados com Apache Spark oferece melhores resultados. Consulte Conectar-se à fonte de dados.

Algumas configurações de workspace podem impedir o acesso à Internet pública. Consulte o administrador do site workspace se precisar de mais acesso à rede.

Baixar um arquivo para um volume

A Databricks recomenda o armazenamento de todos os dados não tabulares em volumes do Unity Catalog.

Os exemplos a seguir usam pacote para Bash, Python e Scala para download um arquivo em um volume Unity Catalog:

%sh curl https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv --output /Volumes/my_catalog/my_schema/my_volume/curl-subway.csv
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")
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 pacote para Bash, Python e Scala para download um arquivo no armazenamento efêmero anexado ao driver:

%sh curl https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv --output /tmp/curl-subway.csv
import urllib
urllib.request.urlretrieve("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv", "/tmp/python-subway.csv")
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 o armazenamento efêmero anexado ao driver, use %sh para ver esses arquivos, como no exemplo a seguir:

%sh ls /tmp/

O senhor pode usar o comando Bash para visualizar o conteúdo dos arquivos download dessa forma, como no exemplo a seguir:

%sh head /tmp/curl-subway.csv

Mova dados com dbutils

Para acessar os dados com Apache Spark, o senhor deve movê-los do armazenamento efêmero para o armazenamento de objetos cloud. Databricks recomenda o uso de volumes para gerenciar todo o acesso ao armazenamento de objetos cloud. Consulte Conectar-se à fonte de dados.

As utilidades doDatabricks (dbutils) permitem que o senhor mova arquivos do armazenamento efêmero anexado ao driver para outros locais, inclusive volumes do Unity Catalog. O exemplo a seguir move os 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 de downloads

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)