downloads dados da internet

O senhor pode usar o Databricks Notebook para download dados de URLs públicos. Databricks não fornece nenhuma ferramenta nativa para baixar dados da Internet, mas o senhor pode usar ferramentas de código aberto nos idiomas compatíveis. 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.

Databricks clusters fornecem compute geral, permitindo que o senhor execute código arbitrário, além do Apache Spark comando. O comando arbitrário armazena os resultados no armazenamento térmico conectado ao driver pelo site default. O senhor deve mover os dados de downloads para um novo local antes de lê-los com Apache Spark, pois Apache Spark não pode ler de armazenamento efêmero. Consulte Trabalhar com arquivos no Databricks.

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. Os volumes não suportam gravações aleatórias, portanto, faça o download dos arquivos e descompacte-os no armazenamento efêmero antes de movê-los para os volumes. Consulte Expandir e ler arquivos compactados Zip.

Observação

Algumas configurações workspace podem impedir o acesso à Internet pública. Consulte o administrador workspace se precisar de acesso expandido à 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/

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

%sh head /tmp/curl-subway.csv

Mover dados com o 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, o senhor pode ler os dados 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)