Freigeben über


Herunterladen von Daten aus dem Internet

Sie können Azure Databricks-Notebooks verwenden, um Daten von öffentlichen URLs herunterzuladen. 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. 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.

Azure Databricks-Cluster bieten allgemeine Computeressourcen, sodass Sie zusätzlich zu Apache Spark-Befehlen beliebigen Code ausführen können. Beliebige Befehle speichern Ergebnisse im kurzlebigen Speicher, der standardmäßig an den Treiber angefügt ist. Sie müssen heruntergeladene Daten an einen neuen Speicherort verschieben, bevor Sie sie mit Apache Spark lesen können, da Apache Spark nicht aus dem kurzlebigen Speicher lesen kann. Siehe auch unter Arbeiten mit Dateien in Azure Databricks.

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. Volumes unterstützen keine zufälligen Schreibvorgänge. Laden Sie daher Dateien herunter, und entpacken Sie sie in den kurzlebigen Speicher, bevor Sie sie in Volumes verschieben. Weitere Informationen finden Sie unter Dekomprimieren und Lesen komprimierter ZIP-Dateien.

Hinweis

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)