Télécharger des données à partir d’Internet
Cet article décrit les modèles pour l’ajout de données d’Internet à Azure Databricks.
Azure Databricks ne fournit pas d’outils natifs pour télécharger des données à partir d’Internet, mais vous pouvez utiliser des outils open source dans les langages pris en charge pour télécharger des fichiers avec des notebooks.
Databricks recommande d’utiliser les volumes Unity Catalog pour stocker toutes les données non tabulaires. Vous pouvez éventuellement spécifier un volume en tant que destination durant le téléchargement, ou déplacer les données vers un volume après le téléchargement.
Remarque
Si vous ne spécifiez pas de chemin de sortie, la plupart des outils open source ciblent un répertoire dans votre stockage éphémère. Consultez Télécharger un fichier sur un stockage éphémère.
Les volumes ne prennent pas en charge les écritures aléatoires. Si vous devez décompresser les fichiers téléchargés, Databricks recommande de les télécharger dans un stockage éphémère, puis de les décompresser avant de les déplacer vers des volumes. Consultez Développer et lire des fichiers compressés au format Zip.
Si vous accédez aux données à partir du stockage d’objets cloud, l’accès direct aux données avec Apache Spark fournit de meilleurs résultats. Consultez Se connecter aux sources de données.
Certaines configurations d’espace de travail peuvent empêcher l’accès à l’Internet public. Si vous avez besoin d’un accès réseau étendu, consultez l’administrateur de votre espace de travail.
Télécharger un fichier sur un volume
Databricks recommande de stocker toutes les données non tabulaires dans des volumes Unity Catalog.
Les exemples suivants utilisent des packages pour Bash, Python et Scala afin de télécharger un fichier sur un volume Unity Catalog :
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"))
Télécharger un fichier sur un stockage éphémère
Les exemples suivants utilisent des packages pour Bash, Python et Scala afin de télécharger un fichier sur un stockage éphémère attaché au pilote :
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"))
Dans la mesure où ces fichiers sont téléchargés sur le stockage éphémère attaché au pilote, utilisez %sh
pour voir ces fichiers, comme dans l’exemple suivant :
%sh ls /tmp/
Vous pouvez utiliser des commandes Bash pour prévisualiser le contenu des fichiers téléchargés de cette façon, comme dans l’exemple suivant :
%sh head /tmp/curl-subway.csv
Déplacer des données avec dbutils
Pour accéder aux données avec Apache Spark, vous devez les déplacer du stockage éphémère vers le stockage d’objets cloud. Databricks recommande d’utiliser des volumes pour gérer tous les accès au stockage d’objets cloud. Consultez Se connecter aux sources de données.
Les utilitaires Databricks (dbutils
) vous permettent de déplacer des fichiers du stockage éphémère attaché au pilote vers d’autres emplacements, notamment les volumes Unity Catalog. L’exemple suivant déplace des données vers un exemple de volume :
dbutils.fs.mv("file:/tmp/curl-subway.csv", "/Volumes/my_catalog/my_schema/my_volume/subway.csv")
Lire les données téléchargées
Une fois que vous avez déplacé les données vers un volume, vous pouvez les lire normalement. Le code suivant lit les données CSV déplacées vers un volume :
df = spark.read.format("csv").option("header", True).load("/Volumes/my_catalog/my_schema/my_volume/subway.csv")
display(df)