Ladda ned data från Internet

Den här artikeln beskriver mönster för att lägga till data från Internet till Azure Databricks.

Azure Databricks tillhandahåller inga inbyggda verktyg för att ladda ned data från Internet, men du kan använda verktyg med öppen källkod på språk som stöds för att ladda ned filer med notebook-filer.

Databricks rekommenderar att du använder Unity Catalog-volymer för att lagra alla data som inte är tabelldata. Du kan också ange en volym som mål under nedladdningen eller flytta data till en volym efter nedladdningen.

Kommentar

Om du inte anger någon utdatasökväg riktar de flesta verktyg med öppen källkod in sig på en katalog i din tillfälliga lagring. Se Ladda ned en fil till tillfällig lagring.

Volymer stöder inte slumpmässiga skrivningar. Om du behöver packa upp nedladdade filer rekommenderar Databricks att du laddar ned dem till tillfällig lagring och packa upp dem innan du flyttar dem till volymer. Se Expandera och läsa komprimerade zip-filer.

Om du kommer åt data från molnobjektlagring ger åtkomst till data direkt med Apache Spark bättre resultat. Se Ansluta till datakällor.

Vissa konfigurationer av arbetsytor kan förhindra åtkomst till det offentliga Internet. Kontakta arbetsyteadministratören om du behöver utökad nätverksåtkomst.

Ladda ned en fil till en volym

Databricks rekommenderar att du lagrar alla icke-tabelldata i Unity Catalog-volymer.

I följande exempel används paket för Bash, Python och Scala för att ladda ned en fil till en Unity Catalog-volym:

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

Ladda ned en fil till tillfällig lagring

I följande exempel används paket för Bash, Python och Scala för att ladda ned en fil till tillfällig lagring som är kopplad till drivrutinen:

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

Eftersom dessa filer laddas ned till tillfällig lagring som är kopplad till drivrutinen använder du %sh för att se dessa filer, som i följande exempel:

%sh ls /tmp/

Du kan använda Bash-kommandon för att förhandsgranska innehållet i filer som laddas ned på det här sättet, som i följande exempel:

%sh head /tmp/curl-subway.csv

Flytta data med dbutils

Om du vill komma åt data med Apache Spark måste du flytta dem från tillfällig lagring till molnobjektlagring. Databricks rekommenderar att du använder volymer för att hantera all åtkomst till molnobjektlagring. Se Ansluta till datakällor.

Med Databricks Utilities (dbutils) kan du flytta filer från tillfällig lagring som är kopplad till drivrutinen till andra platser, inklusive Unity Catalog-volymer. I följande exempel flyttas data till en exempelvolym:

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

Läsa nedladdade data

När du har flyttat data till en volym kan du läsa data som vanligt. Följande kod läser i CSV-data som flyttats till en volym:

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