Scaricare i dati da Internet
Questo articolo descrive i modelli per l'aggiunta di dati da Internet ad Azure Databricks.
Azure Databricks non fornisce strumenti nativi per scaricare dati da Internet, ma è possibile usare strumenti open source in linguaggi supportati per scaricare i file usando notebook.
Databricks consiglia di usare Unity Catalogvolumes per l'archiviazione di tutti i dati non tabulari. Facoltativamente, è possibile specificare un volume come destinazione durante il download o spostare i dati in un volume dopo il download.
Nota
Se non si specifica un percorso di output, la maggior parte degli strumenti open source è la destinazione di una directory nell'archiviazione temporanea. Vedere Scaricare un file per l'archiviazione temporanea.
Volumes non supportano scritture casuali. Se è necessario decomprimere i file scaricati, Databricks consiglia di scaricarli nell'archiviazione temporanea e decomprimerli prima di spostarli in volumes. Vedere Espandere e leggere File compressi zip.
Se si accede ai dati dall'archiviazione di oggetti cloud, l'accesso ai dati direttamente con Apache Spark offre risultati migliori. Vedere Connettersi alle origini dati.
Alcune configurazioni dell'area di lavoro potrebbero impedire l'accesso a Internet pubblico. Se è necessario espandere l'accesso alla rete, rivolgersi all'amministratore dell'area di lavoro.
Scaricare un file in un volume
Databricks consiglia di archiviare tutti i dati non tabulari in Unity Catalogvolumes.
Gli esempi seguenti usano pacchetti per Bash, Python e Scala per scaricare un file in un volume Catalog 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"))
Scaricare un file nell'archiviazione temporanea
Gli esempi seguenti usano pacchetti per Bash, Python e Scala per scaricare un file nell'archiviazione temporanea collegata al 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"))
Poiché questi file vengono scaricati nell'archivio temporaneo collegato al driver, usare %sh
per visualizzare questi file, come nell'esempio seguente:
%sh ls /tmp/
È possibile usare i comandi Bash per visualizzare in anteprima il contenuto dei file scaricati in questo modo, come nell'esempio seguente:
%sh head /tmp/curl-subway.csv
Spostare dati con dbutils
Per accedere ai dati con Apache Spark, è necessario spostarlo dall'archiviazione temporanea all'archiviazione di oggetti cloud. Databricks consiglia di usare volumes per gestire tutti gli accessi all'archiviazione di oggetti cloud. Vedere Connettersi alle origini dati.
Le utilità Databricks (dbutils
) consentono di trasferire i file dall'archiviazione temporanea collegata al driver verso altre posizioni, tra cui Unity Catalogvolumes. L'esempio seguente sposta i dati in un volume di esempio:
dbutils.fs.mv("file:/tmp/curl-subway.csv", "/Volumes/my_catalog/my_schema/my_volume/subway.csv")
Leggere i dati scaricati
Dopo aver spostato i dati in un volume, è possibile leggere i dati come di consueto. Il codice seguente legge i dati CSV spostati in un volume:
df = spark.read.format("csv").option("header", True).load("/Volumes/my_catalog/my_schema/my_volume/subway.csv")
display(df)