Gérer des fichiers dans des volumes Unity Catalog avec le pilote JDBC Databricks
Cet article explique comment charger, télécharger et supprimer des fichiers dans des volumes Unity Catalog à l’aide du pilote JDBC Databricks.
Spécifications
- Pilote JDBC Databricks versions 2.6.38 ou ultérieures.
- Par défaut, le mode de requête native est activé. Sinon, ajoutez la propriété
UseNativeQuery
à la chaîne de connexion JDBC, en définissant sa valeur sur1
ou2
.
Pour obtenir un exemple de code Java complet montrant comment exécuter les extraits de code de cet article dans le contexte de la configuration de l’authentification Azure Databricks et de l’exécution d’instructions SQL avec le pilote JDBC Databricks, consultez Paramètres d’authentification pour le pilote JDBC Databricks.
Charger un fichier
Pour charger un fichier dans un volume, vous devez ajouter la propriété StagingAllowedLocalPaths
à la chaîne de connexion JDBC, en définissant la valeur de cette propriété sur le chemin d’accès du fichier à charger. Pour charger plusieurs fichiers à partir d’emplacements distincts, définissez cette propriété sur une liste de chemins séparés par des virgules, par exemple /tmp/,/usr/tmp/
.
Pour remplacer le contenu d’un fichier existant dans l’emplacement de chargement spécifié, ajoutez OVERWRITE
.
L’extrait de code Java suivant montre comment charger un fichier dans un volume.
// ...
p.put("StagingAllowedLocalPaths", "/tmp/");
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();
stmt.executeQuery("PUT '" +
"/tmp/my-data.csv" +
"' INTO '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"' OVERWRITE")
// ...
Téléchargement d’un fichier
L’extrait de code Java suivant montre comment télécharger un fichier à partir d’un volume.
// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();
stmt.executeQuery("GET '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"' TO '" +
"/tmp/my-downloaded-data.csv" +
"'")
// ...
Supprimer un fichier
L’extrait de code Java suivant montre comment supprimer un fichier d’un volume.
// ...
Connection conn = DriverManager.getConnection(url, p);
Statement stmt = conn.createStatement();
stmt.executeQuery("REMOVE '" +
"/Volumes/main/default/my-volume/my-data.csv" +
"'")
// ...