Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Databricks bietet Massenimportfunktionen mithilfe von Unity-Katalogvolumes, mit denen Benutzer Datasets in und aus lokalen Dateien wie CSV-Dateien übertragen können. Weitere Informationen finden Sie unter Was sind Unity Catalog-Volumes?.
In diesem Artikel wird beschrieben, wie Sie Dateien in Volumes verwalten sowie Datenströme in und aus Volumes lesen und schreiben, indem Sie den Databricks JDBC-Treiber ab Version 3 verwenden.
Aktivieren von Volumevorgängen
Um Unity Catalog-Volumevorgänge zu aktivieren, legen Sie die Verbindungseigenschaft VolumeOperationAllowedLocalPaths auf eine durch Trennzeichen getrennte Liste zulässiger lokaler Pfade für die Volumevorgänge fest. Weitere Merkmaleigenschaften anzeigen
Unity-Katalog muss für die Verwendung dieses Features aktiviert sein. Ähnliche Funktionen sind über die Databricks-Benutzeroberfläche verfügbar. Weitere Informationen finden Sie unter Hochladen von Dateien auf ein Unity Catalog-Volume.
Die Befehle für die Aufnahme des Unity-Katalogs sind SQL-Anweisungen. Die folgenden Beispiele veranschaulichen PUT, GETund REMOVE Vorgänge.
Hochladen einer lokalen Datei
Verwenden Sie den PUT-Vorgang, um eine lokale Datei /tmp/test.csv in einen Unity-Katalogvolumepfad /Volumes/main/default/e2etests/file1.csvhochzuladen:
PUT '/tmp/test.csv' INTO '/Volumes/main/default/e2etests/file1.csv' OVERWRITE
Herunterladen einer Datei
Verwenden Sie den /Volumes/main/default/e2etests/file1.csv Vorgang, um eine Datei aus dem Unity-Katalogvolumepfad /tmp/test.csv in eine lokale Datei GETherunterzuladen:
GET '/Volumes/main/default/e2etests/file1.csv' TO '/tmp/test.csv'
Löschen einer Datei
Um eine Datei mit einem Unity Catalog-Volumepfad /Volumes/main/default/e2etests/file1.csvzu löschen, verwenden Sie den REMOVE Vorgang:
REMOVE '/Volumes/main/default/e2etests/file1.csv'
Lesen/Schreiben von Daten mithilfe eines Datenstroms
Der JDBC-Treiber unterstützt das Streaming zum Lesen und Schreiben von Daten aus und in Unity-Katalog-Volumes, indem die Schnittstelle IDatabricksVolumeClient bereitgestellt wird. Siehe IDatabricksVolumeClient-Referenz für verfügbare APIs.
IDatabricksVolumeClient kann mithilfe des Factory-Hilfsprogramms DatabricksVolumeClientFactory initialisiert werden:
import com.databricks.jdbc.api.impl.volume.DatabricksVolumeClientFactory;
import com.databricks.jdbc.api.volume.IDatabricksVolumeClient;
IDatabricksVolumeClient volumeClient = DatabricksVolumeClientFactory.getVolumeClient(Connection conn);
Schreiben einer Datei in ein Volume aus einem Stream
// Create the connection and enable the volume operations.
Connection connection = DriverManager.getConnection(url, prop);
connection.setClientInfo("enableVolumeOperations", "1");
File file = new File("/tmp/test.csv");
FileInputStream fileInputStream = new FileInputStream(file);
// Upload the file stream to UC Volume path
IDatabricksVolumeClient volumeClient = DatabricksVolumeClientFactory.getVolumeClient(Connection conn);
volumeClient.putObject(catalog, schema, volume, objectPath, inputStream, contentLength, true /* overwrite */);
Lesen einer Volumedatei als Stream
import org.apache.http.entity.InputStreamEntity;
// Create the connection and enable the volume operations.
Connection connection = DriverManager.getConnection(url, prop);
connection.setClientInfo("enableVolumeOperations", "1");
File file = new File("/tmp/test.csv");
FileInputStream fileInputStream = new FileInputStream(file);
// Upload the file stream to UC Volume path
IDatabricksVolumeClient volumeClient = DatabricksVolumeClientFactory.getVolumeClient(Connection conn);
InputStreamEntity volumeDataStream = volumeClient.getObject(catalog, schema, volume, objectPath);