Udostępnij za pośrednictwem


Pobieranie danych z Internetu

Notesy usługi Azure Databricks umożliwiają pobieranie danych z publicznych adresów URL. Usługa Azure Databricks nie udostępnia żadnych natywnych narzędzi do pobierania danych z Internetu, ale można używać narzędzi typu open source w obsługiwanych językach. Jeśli uzyskujesz dostęp do danych z magazynu obiektów w chmurze, uzyskiwanie dostępu do danych bezpośrednio za pomocą platformy Apache Spark zapewnia lepsze wyniki. Zobacz Połączenie do źródeł danych.

Klastry usługi Azure Databricks zapewniają ogólne obliczenia, co umożliwia uruchamianie dowolnego kodu oprócz poleceń platformy Apache Spark. Domyślnie dowolne polecenia przechowują wyniki w magazynie szyfralnym dołączonym do sterownika. Przed odczytaniem danych za pomocą platformy Apache Spark należy przenieść pobrane dane do nowej lokalizacji, ponieważ platforma Apache Spark nie może odczytać z magazynu efemerycznego. Zobacz Praca z plikami w usłudze Azure Databricks.

Usługa Databricks zaleca używanie woluminów wykazu aparatu Unity do przechowywania wszystkich danych innych niż tabelaryczne. Opcjonalnie możesz określić wolumin jako miejsce docelowe podczas pobierania lub przenieść dane do woluminu po pobraniu. Woluminy nie obsługują losowych zapisów, więc pobierz pliki i rozpakuj je do magazynu efemerycznego przed przeniesieniem ich do woluminów. Zobacz Rozwijanie i odczytywanie skompresowanych plików zip.

Uwaga

Niektóre konfiguracje obszarów roboczych mogą uniemożliwić dostęp do publicznego Internetu. Jeśli potrzebujesz rozszerzonego dostępu do sieci, skontaktuj się z administratorem obszaru roboczego.

Pobieranie pliku do woluminu

Usługa Databricks zaleca przechowywanie wszystkich danych innych niż tabelaryczne w woluminach wykazu aparatu Unity.

W poniższych przykładach użyto pakietów dla powłoki Bash, języka Python i języka Scala, aby pobrać plik do woluminu wykazu aparatu 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"))

Pobieranie pliku do magazynu efemerycznego

W poniższych przykładach użyto pakietów dla powłoki Bash, języka Python i języka Scala, aby pobrać plik do magazynu efemerycznego dołączonego do sterownika:

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

Ponieważ te pliki są pobierane do magazynu efemerycznego dołączonego do sterownika, użyj polecenia %sh , aby wyświetlić te pliki, jak w poniższym przykładzie:

%sh ls /tmp/

Możesz użyć poleceń powłoki Bash, aby wyświetlić podgląd zawartości plików pobranych w ten sposób, jak w poniższym przykładzie:

%sh head /tmp/curl-subway.csv

Przenoszenie danych za pomocą narzędzia dbutils

Aby uzyskać dostęp do danych za pomocą platformy Apache Spark, musisz przenieść je z magazynu efemerycznego do magazynu obiektów w chmurze. Usługa Databricks zaleca używanie woluminów do zarządzania wszystkimi dostępami do magazynu obiektów w chmurze. Zobacz Połączenie do źródeł danych.

Narzędzia usługi Databricks (dbutils) umożliwiają przenoszenie plików z magazynu efemerycznego dołączonego do sterownika do innych lokalizacji, w tym woluminów wykazu aparatu Unity. Poniższy przykład przenosi dane do przykładowego woluminu:

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

Odczytywanie pobranych danych

Po przeniesieniu danych do woluminu można odczytywać dane w zwykły sposób. Poniższy kod odczytuje dane CSV przeniesione do woluminu:

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