Mi az alapértelmezett aktuális munkakönyvtár?

Ez a cikk bemutatja, hogyan működik az alapértelmezett aktuális munkakönyvtár (CWD) a jegyzetfüzet és a fájlvégrehajtás során.

Feljegyzés

A Databricks Runtime 14.0+ és az alapértelmezett munkaterület-konfigurációk használatával nagyobb konzisztenciát biztosít a (CWD) viselkedésében a munkaterületen.

A jegyzetfüzetekben és fájlokban helyileg végrehajtott kódhoz két alapértelmezett CWD-viselkedés van:

  1. A CWD a futtatott jegyzetfüzetet vagy szkriptet tartalmazó könyvtárat adja vissza.
  2. A CWD egy könyvtárat ad vissza, amely az illesztőprogramhoz csatlakoztatott rövid élettartamú tárolókötetet jelöli.

Ez a CWD-viselkedés minden olyan kódot érint, beleértve az %sh Apache Sparkot nem használó Python- vagy R-kódot is. A viselkedést a kódnyelv, a Databricks Runtime verziója, a munkaterület elérési útja és a munkaterület rendszergazdai konfigurációja határozza meg.

Scala-kód esetén a CWD az illesztőprogramhoz csatolt rövid élettartamú tároló.

Kód minden más nyelven:

  • A Databricks Runtime 14.0-s vagy újabb verziójában a CWD a futtatandó jegyzetfüzetet vagy szkriptet tartalmazó könyvtár. Ez attól függetlenül igaz, hogy a kód benne /Workspace/Reposvan-e.
  • A Databricks Runtime 13.3 LTS-t és újabb verziót futtató jegyzetfüzetek esetén a CWD attól függ, hogy a kód a következőben /Workspace/Repostalálható-e:
  • A külső /Workspace/Reposelérési úton végrehajtott kód esetében a CWD az illesztőprogramhoz csatlakoztatott rövid ideig használt tárolókötet
  • Az elérési úton /Workspace/Reposvégrehajtott kód esetén a CWD a rendszergazdai konfigurációs beállítástól és a fürt DBR-verziójától függ:
    • A DBR 8.4-ben vagy újabb verzióiban beállított dbr8.4+ vagy trueannál régebbi munkaterületek enableWorkspaceFilesystem esetében a CWD az a könyvtár, amely a futtatott jegyzetfüzetet vagy szkriptet tartalmazza. A 8.4 alatti DBR-verziók esetében ez az illesztőprogramhoz csatlakoztatott rövid élettartamú tárolókötet
    • A DBR 11.0-s és újabb verzióiban beállított dbr11.0+munkaterületek enableWorkspaceFilesystem esetében a CWD a futtatandó jegyzetfüzetet vagy szkriptet tartalmazó könyvtár. A 11.0 alatti DBR-verziók esetében ez az illesztőprogramhoz csatlakoztatott rövid élettartamú tárolókötet
    • A beállított falsemunkaterületek enableWorkspaceFilesystem esetében a CWD az illesztőprogramhoz csatlakoztatott rövid élettartamú tárolókötet

Ez hogyan befolyásolja a számítási feladatokat?

A számítási feladatokra gyakorolt legnagyobb hatás a fájlok megőrzésével és helyével kapcsolatos:

  • A Databricks Runtime 13.3 LTS-ben és az alábbi verziókban a külső elérési úton /Workspace/Reposvégrehajtott kód esetében számos kódrészlet tárolja az adatokat egy rövid élettartamú tárolókötet alapértelmezett helyére, amely a fürt leállásakor véglegesen törlődik.
  • A Databricks Runtime 14.0-s vagy újabb verziója esetén a műveletek alapértelmezett viselkedése a futó jegyzetfüzet mellett tárolt munkaterület-fájlokat hoz létre, amelyek a explicit törlésig megmaradnak.

A munkaterületfájlokban rejlő teljesítménybeli különbségekkel és egyéb korlátozásokkal kapcsolatos megjegyzésekért lásd: Munkaterületfájlok használata.

Vissza a régi viselkedésre

Bármely jegyzetfüzet aktuális munkakönyvtárát módosíthatja a Python metódussal os.chdir(). Ha biztosítani szeretné, hogy minden jegyzetfüzet CWD-t használjon az illesztőprogramhoz csatlakoztatott rövid élettartamú tárolóköteteken, a következő parancsot hozzáadhatja az egyes jegyzetfüzetek első celláihoz, és bármely más kód előtt futtathatja:

import os

os.chdir("/tmp")