Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan interagera med arbetsytefiler som lagras i Azure Databricks programmatiskt. Detta aktiverar uppgifter som:
- Lagra små datafiler tillsammans med notebook-filer och kod.
- Skriva loggfiler till kataloger som synkroniserats med Git.
- Importera moduler med hjälp av relativa sökvägar.
- Skapa eller ändra en miljöspecifikationsfil.
- Skriva utdata från anteckningsböcker.
- Skriva utdata från körning av bibliotek, till exempel Tensorboard.
Du kan programmatiskt skapa, redigera, byta namn på och ta bort arbetsytefiler i Databricks Runtime 11.3 LTS och senare. Den här funktionen stöds för notebook-filer i Databricks Runtime 16.2 och senare samt serverlös miljö 2 och senare.
Notis
Om du vill inaktivera skrivning till arbetsytefiler ställer du in klustermiljövariabeln WSFS_ENABLE_WRITE_SUPPORT=false. Mer information finns i Miljövariabler.
Notis
I Databricks Runtime 14.0 och senare är den aktuella standardkatalogen (CWD) för kod som körs lokalt katalogen som innehåller anteckningsboken eller skriptet som körs. Det här är en ändring i beteendet från Databricks Runtime 13.3 LTS och nedan. Se Vad är standard för nuvarande arbetskatalog?.
Läs filernas platser
Använd shell-kommandon för att läsa platserna för filer, till exempel i en lagringsplats eller i det lokala filsystemet.
Ange följande för att fastställa platsen för filer:
%sh ls
-
Filer finns inte på en lagringsplats: Kommandot returnerar filsystemet
/databricks/driver. -
Filer finns på en lagringsplats: Kommandot returnerar en virtualiserad lagringsplats, till exempel
/Workspace/Repos/name@domain.com/public_repo_2/repos_file_system.
Läsa dataarbetsutrymmefiler
Du kan programmässigt läsa små datafiler som .csv eller .json från kod i dina anteckningsböcker. I följande exempel används Pandas för att fråga efter filer som lagras i en /data katalog i förhållande till roten på projektlagringsplatsen:
import pandas as pd
df = pd.read_csv("./data/winequality-red.csv")
df
Du kan använda Spark för att läsa datafiler. Du måste ge Spark den fullständigt kvalificerade sökvägen.
- Arbetsytefiler i Git-mappar använder sökvägen
file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/file. - Arbetsytefiler i din personliga katalog använder sökvägen:
file:/Workspace/Users/<user-folder>/path/to/file.
Du kan kopiera den absoluta eller relativa sökvägen till en fil från den nedrullningsbara menyn bredvid filen:
Exemplet nedan visar användningen av {os.getcwd()} för att hämta den fullständiga sökvägen.
import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")
Notis
I arbetsytor där DBFS-rot och monteringar är inaktiverade kan du också använda dbfs:/Workspace för att komma åt arbetsytefiler med Databricks-verktyg. Detta kräver Databricks Runtime 13.3 LTS eller senare. Se Inaktivera åtkomst till DBFS-rot och -monteringar i din befintliga Azure Databricks-arbetsyta.
Mer information om filer i Azure Databricks finns i Arbeta med filer på Azure Databricks.
Skapa, uppdatera och ta bort filer och kataloger programmatiskt
Du kan programmatiskt manipulera arbetsytefiler i Azure Databricks, ungefär som du arbetar med filer i valfritt standardfilsystem.
Notis
I Databricks Runtime 16.2 och senare samt serverlös miljö 2 och senare är alla programmatiska interaktioner med filer också tillgängliga för notebooks. Information om hur du konverterar en fil till en notebook-fil finns i Konvertera en fil till en notebook-fil.
I följande exempel används python-standardpaket och -funktioner för att skapa och manipulera filer och kataloger.
import os
# Create a new directory
os.mkdir('dir1')
# Create a new file and write to it
with open('dir1/new_file.txt', "w") as f:
f.write("new content")
# Append to a file
with open('dir1/new_file.txt', "a") as f:
f.write(" continued")
# Delete a file
os.remove('dir1/new_file.txt')
# Delete a directory
os.rmdir('dir1')
import shutil
# Copy a dashboard
shutil.copy("my-dashboard.lvdash.json", "my-dashboard-copy.lvdash.json")
# Move a query to a shared folder
shutil.move("test-query.dbquery","shared-queries/")