Dela via


Vilken är den aktuella arbetskatalogens standard?

Den här artikeln beskriver hur den aktuella standardarbetskatalogen (CWD) fungerar för körning av notebook-filer och filer.

Kommentar

Använd Databricks Runtime 14.0+ och standardkonfigurationer för arbetsytor för mer konsekvens i (CWD) beteende i hela arbetsytan.

Det finns två standardbeteenden för CWD för kod som körs lokalt i notebook-filer:

  1. CWD returnerar katalogen som innehåller anteckningsboken eller skriptet som körs.
  2. CWD returnerar en katalog som representerar den tillfälliga lagringsvolymen som är kopplad till drivrutinen.

Det här CWD-beteendet påverkar all kod, inklusive %sh och Python- eller R-kod som inte använder Apache Spark. Beteendet bestäms av kodspråk, Databricks Runtime-version, arbetsytesökväg och konfiguration av arbetsyteadministratör.

För Scala-kod är CWD den tillfälliga lagring som är kopplad till drivrutinen.

För kod på alla andra språk:

  • I Databricks Runtime 14.0 och senare är CWD katalogen som innehåller anteckningsboken eller skriptet som körs. Detta gäller oavsett om koden finns i /Workspace/Repos.
  • För notebook-filer som kör Databricks Runtime 13.3 LTS och nedan beror CWD på om koden finns i /Workspace/Repos:
  • För kod som körs i en sökväg utanför /Workspace/Reposär CWD den tillfälliga lagringsvolymen som är kopplad till drivrutinen
  • För kod som körs i en sökväg i /Workspace/Reposberor CWD på administratörskonfigurationsinställningen och kluster-DBR-versionen:
    • För arbetsytor med enableWorkspaceFilesystem inställt dbr8.4+ på eller true, i DBR-version 8.4 och senare, är CWD den katalog som innehåller anteckningsboken eller skriptet som körs. På DBR-versioner under 8.4 är det den tillfälliga lagringsvolymen som är kopplad till drivrutinen
    • För arbetsytor med enableWorkspaceFilesystem inställt dbr11.0+på , i DBR-version 11.0 och senare, är CWD den katalog som innehåller anteckningsboken eller skriptet som körs. På DBR-versioner under 11.0 är det den tillfälliga lagringsvolymen som är kopplad till drivrutinen
    • För arbetsytor med enableWorkspaceFilesystem inställd på falseär CWD den tillfälliga lagringsvolymen som är kopplad till drivrutinen

Hur påverkar detta arbetsbelastningar?

De största effekterna för arbetsbelastningar har att göra med filbeständighet och plats:

  • I Databricks Runtime 13.3 LTS och nedan för kod som körs i en sökväg utanför /Workspace/Reposlagrar många kodfragment data till en standardplats på en tillfällig lagringsvolym som tas bort permanent när klustret avslutas.
  • I Databricks Runtime 14.0 och senare skapar standardbeteendet för dessa åtgärder arbetsytefiler som lagras tillsammans med den notebook-fil som körs tills den uttryckligen tas bort.

Information om prestandaskillnader och andra begränsningar i arbetsytefiler finns i Arbeta med arbetsytefiler.

Återgå till äldre beteende

Du kan ändra den aktuella arbetskatalogen för alla notebook-filer med python-metoden os.chdir(). Om du vill se till att varje notebook-fil använder en CWD på de tillfälliga lagringsvolymer som är anslutna till drivrutinen kan du lägga till följande kommando i den första cellen i varje notebook-fil och köra den före annan kod:

import os

os.chdir("/tmp")