Freigeben über


Herunterladen von Daten aus dem Internet

In diesem Artikel werden Muster zum Hinzufügen von Daten aus dem Internet zu Azure Databricks beschrieben.

Azure Databricks bietet keine nativen Tools zum Herunterladen von Daten aus dem Internet. Sie können jedoch Open-Source-Tools in unterstützten Sprachen verwenden, um Dateien mit Hilfe von Notebooks herunterzuladen.

Databricks empfiehlt die Verwendung von Unity Catalog-Volumes zum Speichern aller nicht tabellarischen Daten. Sie können optional ein Volume als Ziel während des Downloads angeben oder Daten nach dem Download in ein Volume verschieben.

Hinweis

Wenn Sie keinen Ausgabepfad angeben, richten sich die meisten Open Source-Tools auf ein Verzeichnis im kurzlebigen Speicher. Siehe Herunterladen einer Datei in den kurzlebigen Speicher.

Volumes unterstützen keine zufälligen Schreibvorgänge. Wenn Sie heruntergeladene Dateien entzippen müssen, empfiehlt Databricks, sie auf einen ephemeren Speicher herunterzuladen und zu entzippen, bevor Sie sie auf Volumes verschieben. Weitere Informationen finden Sie unter Dekomprimieren und Lesen komprimierter ZIP-Dateien.

Wenn Sie auf Daten aus dem Cloudobjektspeicher zugreifen, liefert der direkte Zugriff auf Daten mit Apache Spark bessere Ergebnisse. Weitere Informationen finden Sie unter Herstellen von Verbindungen mit Datenquellen.

Einige Arbeitsbereichskonfigurationen verhindern möglicherweise den Zugriff auf das öffentliche Internet. Wenden Sie sich an Ihren Arbeitsbereichsadministrator, wenn Sie erweiterten Netzwerkzugriff benötigen.

Herunterladen einer Datei in ein Volume

Databricks empfiehlt, alle nicht tabellarischen Daten in Unity Catalog-Volumes zu speichern.

In den folgenden Beispielen werden Pakete für Bash, Python und Scala verwendet, um eine Datei in ein Unity Catalog-Volume herunterzuladen:

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"))

Herunterladen einer Datei in den kurzlebigen Speicher

In den folgenden Beispielen werden Pakete für Bash, Python und Scala verwendet, um eine Datei in den an den Treiber angefügten kurzlebigen Speicher herunterzuladen:

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"))

Da diese Dateien in den an den Treiber angefügten kurzlebigen Speicher heruntergeladen wurden, verwenden Sie %sh, um diese Dateien wie im folgenden Beispiel einzusehen:

%sh ls /tmp/

Sie können Bash-Befehle verwenden, um den Inhalt von Dateien, die Sie auf diese Weise herunterladen, wie im folgenden Beispiel in der Vorschau anzuzeigen:

%sh head /tmp/curl-subway.csv

Verschieben von Daten mit dbutils

Um auf Daten mit Apache Spark zuzugreifen, müssen Sie sie aus dem kurzlebigen Speicher in den Cloudobjektspeicher verschieben. Databricks empfiehlt die Verwendung von Volumes zum Verwalten des Zugriffs auf Daten im Cloudobjektspeicher. Weitere Informationen finden Sie unter Herstellen von Verbindungen mit Datenquellen.

Mit den Databricks-Hilfsprogrammen (dbutils) können Sie Dateien aus dem kurzlebigen Speicher, der an den Treiber angefügt ist, an andere Speicherorte, einschließlich Unity Catalog-Volumes, verschieben. Im folgenden Beispiel werden Daten in ein Beispielvolume verschoben:

dbutils.fs.mv("file:/tmp/curl-subway.csv", "/Volumes/my_catalog/my_schema/my_volume/subway.csv")

Lesen heruntergeladener Daten

Nachdem Sie die Daten in ein Volume verschoben haben, können Sie die Daten wie gewohnt lesen. Der folgende Code liest die CSV-Daten, die in ein Volume verschoben wurden:

df = spark.read.format("csv").option("header", True).load("/Volumes/my_catalog/my_schema/my_volume/subway.csv")
display(df)