Delen via


Gegevens downloaden van internet

In dit artikel worden patronen beschreven voor het toevoegen van gegevens van internet aan Azure Databricks.

Azure Databricks biedt geen systeemeigen hulpprogramma's voor het downloaden van gegevens van internet, maar u kunt opensource-hulpprogramma's in ondersteunde talen gebruiken om bestanden te downloaden met behulp van notebooks.

Databricks raadt aan om Unity Catalog-volumes te gebruiken voor het opslaan van alle niet-tabellaire gegevens. U kunt eventueel een volume opgeven als uw bestemming tijdens het downloaden of gegevens naar een volume verplaatsen na het downloaden.

Notitie

Als u geen uitvoerpad opgeeft, richten de meeste opensource-hulpprogramma's zich op een map in uw tijdelijke opslag. Zie Een bestand downloaden naar tijdelijke opslag.

Volumes bieden geen ondersteuning voor willekeurige schrijfbewerkingen. Als u gedownloade bestanden moet uitpakken, raadt Databricks u aan ze te downloaden naar tijdelijke opslag en ze uit te schakelen voordat u ze naar volumes verplaatst. Zie Gecomprimeerde zip-bestanden uitvouwen en lezen.

Als u toegang hebt tot gegevens vanuit de opslag van cloudobjecten, biedt het rechtstreeks openen van gegevens met Apache Spark betere resultaten. Zie Verbinding maken met gegevensbronnen.

Sommige werkruimteconfiguraties kunnen toegang tot het openbare internet verhinderen. Neem contact op met uw werkruimtebeheerder als u uitgebreide netwerktoegang nodig hebt.

Een bestand downloaden naar een volume

Databricks raadt aan alle niet-tabellaire gegevens op te slaan in Unity Catalog-volumes.

In de volgende voorbeelden worden pakketten gebruikt voor Bash, Python en Scala om een bestand te downloaden naar een Unity Catalog-volume:

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

Een bestand downloaden naar tijdelijke opslag

In de volgende voorbeelden worden pakketten gebruikt voor Bash, Python en Scala om een bestand te downloaden naar tijdelijke opslag die is gekoppeld aan het stuurprogramma:

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

Omdat deze bestanden worden gedownload naar tijdelijke opslag die is gekoppeld aan het stuurprogramma, gebruikt %sh u deze bestanden, zoals in het volgende voorbeeld:

%sh ls /tmp/

U kunt Bash-opdrachten gebruiken om een voorbeeld te bekijken van de inhoud van bestanden die op deze manier worden gedownload, zoals in het volgende voorbeeld:

%sh head /tmp/curl-subway.csv

Gegevens verplaatsen met dbutils

Als u toegang wilt krijgen tot gegevens met Apache Spark, moet u deze verplaatsen van tijdelijke opslag naar cloudobjectopslag. Databricks raadt aan volumes te gebruiken voor het beheren van alle toegang tot cloudobjectopslag. Zie Verbinding maken met gegevensbronnen.

Met de Databricks Utilities (dbutils) kunt u bestanden verplaatsen van tijdelijke opslag die is gekoppeld aan het stuurprogramma naar andere locaties, waaronder Unity Catalog-volumes. In het volgende voorbeeld worden gegevens verplaatst naar een voorbeeldvolume:

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

Gedownloade gegevens lezen

Nadat u de gegevens naar een volume hebt verplaatst, kunt u de gegevens als normaal lezen. De volgende code leest in de CSV-gegevens die naar een volume zijn verplaatst:

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