Condividi tramite


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)