baixar dados da internet
Este artigo descreve padrões para adicionar dados da internet ao Databricks.
Databricks não fornece ferramentas nativas para baixar dados da internet, mas você pode usar ferramentas de código aberto em linguagens 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, você pode especificar um volume como destino durante o download ou mover os dados para um volume após o download.
Se você não especificar um caminho de saída, a maioria das ferramentas de código aberto usará um diretório no seu armazenamento efêmero. Veja baixar um arquivo para armazenamento efêmero.
Os volumes não suportam gravações aleatórias. Se precisar descompactar arquivos baixados, Databricks recomenda baixá-los para um armazenamento efêmero e descompactá-los antes de movê-los para os volumes. Veja Expandir e ler Arquivos compactados em Zip.
Se você estiver acessando dados de armazenamento de objetos cloud , o acesso direto aos dados com Apache Spark proporciona melhores resultados. Consulte Conectar-se à fonte de dados e serviço externo.
Algumas configurações workspace podem impedir o acesso à internet pública. Consulte o administrador do seu workspace se precisar de acesso expandido à rede.
baixar um arquivo para um volume
A Databricks recomenda armazenar todos os dados não tabulares em volumes do Unity Catalog.
Os exemplos a seguir usam o pacote para Bash, Python e Scala para download um arquivo para um volume Unity Catalog :
- Bash
- Python
- Scala
%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 o pacote para Bash, Python e Scala para download um arquivo para um armazenamento efêmero conectado ao driver:
- Bash
- Python
- Scala
%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 downloads para armazenamento efêmero conectado ao driver, use %sh para ver esses arquivos, como no exemplo a seguir:
%sh ls /tmp/
Você pode usar o comando Bash para visualizar o conteúdo dos arquivos download dessa maneira, como no exemplo a seguir:
%sh head /tmp/curl-subway.csv
Mover dados com dbutils
Para acessar dados com Apache Spark, você precisa 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 e serviço externo.
As utilidadesDatabricks (dbutils) permitem mover arquivos do armazenamento efêmero conectado ao driver para outros locais, incluindo volumes Unity Catalog . 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")
Leia os dados de downloads
Depois de mover os dados para um volume, você poderá 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)