Varsayılan geçerli çalışma dizini nedir?
Bu makalede, varsayılan geçerli çalışma dizininin (CWD) not defteri ve dosya yürütme için nasıl çalıştığı açıklanmaktadır.
Not
Çalışma alanı genelinde daha fazla tutarlılık (CWD) davranışı için Databricks Runtime 14.0+ ve varsayılan çalışma alanı yapılandırmalarını kullanın.
Not defterlerinde ve dosyalarda yerel olarak yürütülen kod için iki varsayılan CWD davranışı vardır:
- CWD, çalıştırılmakta olan not defterini veya betiği içeren dizini döndürür.
- CWD, sürücüye bağlı kısa ömürlü depolama birimini temsil eden bir dizin döndürür.
Bu CWD davranışı, Apache Spark kullanmayan Python veya R kodu dahil olmak üzere %sh
tüm kodları etkiler. Davranış kod dili, Databricks Runtime sürümü, çalışma alanı yolu ve çalışma alanı yöneticisi yapılandırması tarafından belirlenir.
Scala kodu için CWD, sürücüye bağlı kısa ömürlü depolama alanıdır.
Diğer tüm dillerde kod için:
- Databricks Runtime 14.0 ve üzerinde CWD, çalıştırılmakta olan not defterini veya betiği içeren dizindir. Bu, kodun içinde
/Workspace/Repos
olup olmamasına bakılmaksızın geçerlidir. - Databricks Runtime 13.3 LTS ve altında çalışan not defterleri için CWD, kodun içinde
/Workspace/Repos
olup olmadığına bağlıdır: - dışında
/Workspace/Repos
bir yolda yürütülen kod için CWD, sürücüye bağlı kısa ömürlü depolama birimidir - içindeki
/Workspace/Repos
bir yolda yürütülen kod için CWD, yönetici yapılandırma ayarınıza ve küme DBR sürümüne bağlıdır:- veya olarak ayarlanmış
dbr8.4+
true
çalışma alanlarıenableWorkspaceFilesystem
için DBR 8.4 ve üzeri sürümlerde CWD, çalıştırılmakta olan not defterini veya betiği içeren dizindir. 8.4'ün altındaki DBR sürümlerinde, sürücüye bağlı kısa ömürlü depolama birimidir - DBR 11.0 ve üzeri sürümlerde olarak ayarlanmış
dbr11.0+
çalışma alanlarıenableWorkspaceFilesystem
için CWD, çalıştırılmakta olan not defterini veya betiği içeren dizindir. 11.0'ın altındaki DBR sürümlerinde, sürücüye bağlı kısa ömürlü depolama birimidir - olarak ayarlanmış
false
çalışma alanlarıenableWorkspaceFilesystem
için CWD, sürücüye bağlı kısa ömürlü depolama birimidir
- veya olarak ayarlanmış
Kodunuzda CWD'yi alma
İşlem hattı not defterinizin CWD çalışma alanını almak için çağrısı yapın os.getcwd()
. ile not defterinizin import os
başındaki modülü (varsayılan Python dosya sistemi etkileşim modülü) içeri aktarmanız os
gerekir. Örneğin:
import os
...
cwd = os.getcwd()
CWD'yi, işlem hattı not defterinizin başında arayarak os.chdir('/path/to/dir')
da ayarlayabilirsiniz. CWD'yi yalnızca çalışma alanınızdan WSFS etkin bir not defteri çalıştırırken ayarlayabilirsiniz.
Bu durum iş yüklerini nasıl etkiler?
İş yükleri üzerindeki en büyük etkilerin dosya kalıcılığı ve konumu ile ilgili olması gerekir:
- Databricks Runtime 13.3 LTS ve altında, dışında
/Workspace/Repos
bir yolda yürütülen kod için, birçok kod parçacığı verileri küme sonlandırıldığında kalıcı olarak silinen kısa ömürlü bir depolama biriminde varsayılan bir konuma depolar. - Databricks Runtime 14.0 ve üzeri sürümlerin varsayılan davranışı, çalışan not defteriyle birlikte depolanan ve açıkça silinene kadar kalıcı olan çalışma alanı dosyaları oluşturur.
Çalışma alanı dosyalarındaki performans farklılıkları ve diğer sınırlamalar hakkında notlar için bkz . Çalışma alanı dosyalarıyla çalışma.
Eski davranışa geri dönme
Python yöntemini os.chdir()
kullanarak herhangi bir not defterinin geçerli çalışma dizinini değiştirebilirsiniz. Her not defterinin sürücüye bağlı kısa ömürlü depolama birimlerinde bir CWD kullandığından emin olmak istiyorsanız, her not defterinin ilk hücresine aşağıdaki komutu ekleyebilir ve diğer kodlardan önce çalıştırabilirsiniz:
import os
os.chdir("/tmp")