Bestanden in volumes beheren
Dit artikel bevat voorbeelden voor het beheren van bestanden in Unity Catalog-volumes voor verschillende gebruikersinterfaces, hulpprogramma's, bibliotheken en talen.
Databricks raadt aan volumes te gebruiken voor het beheren van alle toegang tot niet-tabellaire gegevens in de opslag van cloudobjecten. Voorbeelden van niet-tabellaire gegevens zijn:
- Gegevensbestanden voor opname, zoals CSV, JSON en Parquet.
- Tekst-, afbeeldings- en audiobestanden voor data science-, ML- en AI-workloads.
- CSV- of JSON-artefacten die zijn geschreven door Azure Databricks voor integratie met externe systemen.
U kunt volumes gebruiken voor het opslaan van bestanden, zoals bibliotheken, init-scripts en buildartefacten. Zie aanbevelingen voor bestanden in volumes en werkruimtebestanden.
Werken met bestanden in volumes met behulp van de gebruikersinterface van Catalog Explorer
Catalog Explorer biedt opties voor algemene bestandsbeheertaken voor bestanden die zijn opgeslagen met Unity Catalog-volumes.
Ga als volgt te werk om te communiceren met bestanden in een volume:
- Klik in uw Azure Databricks-werkruimte op Catalogus.
- Zoek of blader naar het volume waarmee u wilt werken en selecteer het.
Zie Volumes maken en beheren voor meer informatie over het maken en beheren van volumes.
Bestanden uploaden naar een volume
Met de knop Uploaden naar dit volume wordt een dialoogvenster geopend voor het uploaden van bestanden. Zie Bestanden uploaden naar een Unity Catalog-volume.
Geüploade bestanden mogen niet groter zijn dan 5 GB.
Bestanden downloaden van een volume
Ga als volgt te werk om bestanden van een volume te downloaden:
- Selecteer een of meer bestanden.
- Klik op Downloaden om deze bestanden te downloaden.
Bestanden van een volume verwijderen
Ga als volgt te werk om bestanden van een volume te verwijderen:
- Selecteer een of meer bestanden.
- Klik op Verwijderen.
- Klik op Verwijderen om te bevestigen in het dialoogvenster dat wordt weergegeven.
Een lege map maken
Ga als volgt te werk om een nieuwe map in een volume te maken:
- Klik rechts van de volumenaam.
- Selecteer Map maken.
- Voer een mapnaam in.
- Klik op Create.
Mappen van een volume verwijderen
Ga als volgt te werk om mappen van een volume te verwijderen:
- Selecteer een of meer mappen.
- Klik op Verwijderen.
- Klik op Verwijderen om te bevestigen in het dialoogvenster dat wordt weergegeven.
Beheertaken voor ui-bestanden voor volumes
Klik ophetmenu naast een bestandsnaam om de volgende acties uit te voeren:
- Pad kopiëren
- Bestand downloaden
- Bestand verwijderen
- Tabel maken
Een tabel maken op basis van gegevens in een volume
Azure Databricks biedt een gebruikersinterface voor het maken van een door Unity Catalog beheerde tabel op basis van een bestand, bestanden of map met bestanden die zijn opgeslagen in een Unity Catalog-volume.
U moet machtigingen hebben CREATE TABLE
in het doelschema en toegang hebben tot een actief SQL-warehouse.
Selecteer een of meer bestanden of een map. Bestanden moeten dezelfde gegevensindeling hebben.
Klik op Tabel maken. Het dialoogvenster Tabel maken op basis van volumes wordt weergegeven.
Gebruik het opgegeven dialoogvenster om een voorbeeld van de gegevens te bekijken en de volgende configuraties te voltooien:
- Kies ervoor om een nieuwe tabel te maken of bestaande tabel te overschrijven
- Selecteer de doelcatalogus en het doelschema.
- Geef de tabelnaam op.
- (Optioneel) Overschrijf standaardkolomnamen en -typen of kies ervoor om kolommen uit te sluiten.
Notitie
Klik op Geavanceerde kenmerken om extra opties weer te geven.
Klik op Tabel maken om de tabel te maken met de opgegeven kenmerken. Na voltooiing geeft Catalog Explorer de tabeldetails weer.
Programmatisch werken met bestanden in volumes in Azure Databricks
U kunt bestanden in volumes lezen en schrijven vanuit alle ondersteunde talen en werkruimte-editors met behulp van de volgende indeling:
/Volumes/catalog_name/schema_name/volume_name/path/to/files
U communiceert met bestanden in volumes op dezelfde manier als met bestanden in elke opslaglocatie voor cloudobjecten. Dit betekent dat als u momenteel code beheert die gebruikmaakt van cloud-URI's, DBFS-koppelingspaden of DBFS-hoofdpaden voor interactie met gegevens of bestanden, uw code bijwerken om in plaats daarvan volumes te gebruiken.
Notitie
Volumes worden alleen gebruikt voor niet-tabellaire gegevens. Databricks raadt u aan tabelgegevens te registreren met behulp van Unity Catalog-tabellen en vervolgens gegevens te lezen en te schrijven met behulp van tabelnamen.
Gegevens lezen en schrijven in volumes
U kunt Apache Spark-, pandas-, Spark SQL- en andere OSS-bibliotheken gebruiken om gegevensbestanden in volumes te lezen en te schrijven.
In de volgende voorbeelden ziet u hoe u een CSV-bestand leest dat is opgeslagen in een volume:
Python
df = spark.read.format("csv").load("/Volumes/catalog_name/schema_name/volume_name/data.csv")
display(df)
Pandas
import pandas as pd
df = pd.read_csv('/Volumes/catalog_name/schema_name/volume_name/data.csv')
display(df)
SQL
SELECT * FROM csv.`/Volumes/catalog_name/schema_name/volume_name/data.csv`
Hulpprogrammaopdrachten voor bestanden in volumes
Databricks biedt de volgende hulpprogramma's voor het beheren van bestanden in volumes:
- De
dbutils.fs
submodule in Databricks Utilities. Zie bestandssysteemhulpprogramma (dbutils.fs). - De
%fs
magie, een alias voordbutils.fs
. - De
%sh
magie, waarmee bash-opdrachten op volumes kunnen worden uitgevoerd.
Zie Gegevens downloaden van internet voor een voorbeeld van het gebruik van deze hulpprogramma's om bestanden van internet te downloaden, bestanden uit te pakken en bestanden te verplaatsen van tijdelijke blokopslag naar volumes.
U kunt ook OSS-pakketten gebruiken voor opdrachten voor bestandshulpprogramma's, zoals de Python-module os
, zoals wordt weergegeven in het volgende voorbeeld:
import os
os.mkdir('/Volumes/catalog_name/schema_name/volume_name/directory_name')
Bestanden in volumes beheren vanuit externe hulpprogramma's
Databricks biedt een reeks hulpprogramma's voor het programmatisch beheren van bestanden in volumes vanuit uw lokale omgeving of geïntegreerde systemen.
SQL-opdrachten voor bestanden in volumes
Azure Databricks ondersteunt de volgende SQL-trefwoorden voor interactie met bestanden in volumes:
Notitie
Databricks-notebooks of query-editor ondersteunen alleen de LIST
opdracht.
De volgende Databricks SQL-connectors en -stuurprogramma's ondersteunen het beheren van bestanden in volumes:
- De Databricks SQL Connector voor Python. Zie Bestanden beheren in Unity Catalog-volumes.
- Het Databricks SQL-stuurprogramma voor Go. Zie Bestanden beheren in Unity Catalog-volumes.
- Het Databricks SQL-stuurprogramma voor Node.js. Zie Bestanden beheren in Unity Catalog-volumes.
- Het Databricks JDBC-stuurprogramma. Zie Bestanden beheren in Unity Catalog-volumes met het Databricks JDBC-stuurprogramma.
- Het ODBC-stuurprogramma van Databricks. Zie Bestanden beheren in Unity Catalog-volumes met het Databricks ODBC-stuurprogramma.
Bestanden in volumes beheren met de Databricks CLI
Gebruik de submopdrachten in databricks fs
. Zie fs-opdrachtgroep.
Notitie
De Databricks CLI vereist dat het schema dbfs:/
voorafgaat aan alle volumespaden. Bijvoorbeeld: dbfs:/Volumes/catalog_name/schema_name/volume_name/path/to/data
.
Bestanden in volumes beheren met SDK's
De volgende SDK's ondersteunen het beheren van bestanden in volumes:
- De Databricks SDK voor Python. Gebruik de beschikbare methoden in WorkspaceClient.files. Zie Bestanden beheren in Unity Catalog-volumes voor voorbeelden.
- De Databricks SDK voor Java. Gebruik de beschikbare methoden in WorkspaceClient.files. Zie Bestanden beheren in Unity Catalog-volumes voor voorbeelden.
- De Databricks SDK voor Go. Gebruik de beschikbare methoden in WorkspaceClient.files. Zie Bestanden beheren in Unity Catalog-volumes voor voorbeelden.
Bestanden in volumes beheren met de REST API
Gebruik de Files-API om bestanden in volumes te beheren.
REST API-voorbeelden voor bestanden in volumes
De volgende voorbeelden gebruiken curl
en de Databricks REST API voor het uitvoeren van bestandsbeheertaken in volumes.
In het volgende voorbeeld wordt een lege map gemaakt met de naam my-folder
in het opgegeven volume.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
In het volgende voorbeeld wordt een bestand gemaakt data.csv
met de opgegeven gegevens in het opgegeven pad in het volume.
curl --request PUT "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv?overwrite=true" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" \
--header "Content-Type: application/octet-stream" \
--data-binary $'id,Text\n1,Hello World!'
In het volgende voorbeeld wordt de inhoud van een volume in het opgegeven pad weergegeven. In dit voorbeeld wordt jq gebruikt om de JSON van de antwoordtekst op te maken voor eenvoudiger lezen.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
In het volgende voorbeeld wordt de inhoud van een map in een volume in het opgegeven pad weergegeven. In dit voorbeeld wordt jq gebruikt om de JSON van de antwoordtekst op te maken voor eenvoudiger lezen.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}" | jq .
In het volgende voorbeeld wordt de inhoud van een bestand in het opgegeven pad in een volume afgedrukt.
curl --request GET "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
In het volgende voorbeeld wordt een bestand in het opgegeven pad van een volume verwijderd.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/files/Volumes/main/default/my-volume/my-folder/data.csv" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"
In het volgende voorbeeld wordt een map van het opgegeven volume verwijderd.
curl --request DELETE "https://${DATABRICKS_HOST}/api/2.0/fs/directories/Volumes/main/default/my-volume/my-folder/" \
--header "Authorization: Bearer ${DATABRICKS_TOKEN}"