Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Databricks'te depolanan çalışma alanı dosyalarıyla program aracılığıyla etkileşim kurabilirsiniz. Bu, aşağıdaki gibi görevleri etkinleştirir:
- Not defterleri ve kodlarla birlikte küçük veri dosyalarını depolama.
- Git ile senkronize edilen dizinlere günlük dosyaları yazma.
- Göreli yolları kullanarak modülleri içeri aktarma.
- Ortam belirtimi dosyası oluşturma veya değiştirme.
- Not defterlerinden çıkış yazılıyor.
- Tensorboard gibi kitaplıkların yürütülmesi sırasında çıktılar kaydediliyor.
Databricks Runtime 11.3 LTS ve üzerinde program aracılığıyla çalışma alanı dosyaları oluşturabilir, düzenleyebilir, yeniden adlandırabilir ve silebilirsiniz. Bu işlevsellik Databricks Runtime 16.2 ve üzeri ile sunucusuz ortam 2 ve üzeri not defterleri için desteklenir.
Not
Çalışma alanı dosyalarına yazmayı devre dışı bırakmak için WSFS_ENABLE_WRITE_SUPPORT=falseküme ortam değişkenini ayarlayın. Daha fazla bilgi için bkz. Ortam değişkenleri.
Not
Databricks Runtime 14.0 ve üzerinde, yerel olarak çalıştırılan kod için varsayılan mevcut çalışma dizini (CWD), çalıştırılan notebook veya script'in bulunduğu dizindir. Bu, Databricks Runtime 13.3 LTS ve altındaki davranışlarda bir değişikliktir. Bkz. Varsayılan geçerli çalışma dizini nedir?.
Sunucusuz hesaplamada, çalışma dizini garanti edilmez, bu yüzden referans dosyalarına mutlak yollar kullanın. Bkz. Sunucusuz işlem sınırlamaları.
Dosyaların konumlarını okuma
Bir depoda veya yerel dosya sisteminde dosyaların konumlarını okumak için kabuk komutlarını kullanın.
Dosyaların konumunu belirlemek için aşağıdakileri girin:
%sh ls
-
Dosyalar bir depoda değil: komutu dosya sistemini
/databricks/driverdöndürür. -
Dosyalar bir depoda: Komut,
/Workspace/Repos/name@domain.com/public_repo_2/repos_file_systemgibi sanallaştırılmış bir depo döndürür.
Veri çalışma alanı dosyalarını okuma
not defterlerinizdeki koddan .csv veya .json dosyaları gibi küçük veri dosyalarını program aracılığıyla okuyabilirsiniz. Aşağıdaki örnekte, proje deposunun köküne göre bir /data dizininde depolanan dosyaları sorgulamak için Pandas kullanılır:
import pandas as pd
df = pd.read_csv("./data/winequality-red.csv")
df
Veri dosyalarını okumak için Spark'ı kullanabilirsiniz. Tam yolu Spark'a sağlamalısınız.
- Git klasörlerindeki çalışma alanı dosyaları
file:/Workspace/Repos/<user-folder>/<repo-name>/path/to/fileyolunu kullanır. - Kişisel dizininizdeki çalışma alanı dosyaları şu yolu kullanır:
file:/Workspace/Users/<user-folder>/path/to/file.
Mutlak veya göreli yolu dosyanın yanındaki açılan menüden bir dosyaya kopyalayabilirsiniz:
Aşağıdaki örnekte, tam yolu almak için {os.getcwd()} kullanımı gösterilmektedir.
import os
spark.read.format("csv").load(f"file:{os.getcwd()}/my_data.csv")
Not
DBFS kök ve bağlamalarının devre dışı bırakıldığı çalışma alanlarında, Databricks yardımcı programları ile çalışma alanı dosyalarına erişmek için de kullanabilirsiniz dbfs:/Workspace . Bu, Databricks Runtime 13.3 LTS veya üzerini gerektirir. Bkz. Mevcut Azure Databricks çalışma alanınızda DBFS köküne ve bağlamalarına erişimi devre dışı bırakma.
Azure Databricks'te dosyalar hakkında daha fazla bilgi edinmek için bkz. Azure Databricks'te dosyalarla çalışma.
Program aracılığıyla dosya ve dizin oluşturma, güncelleştirme ve silme
Azure Databricks'teki çalışma alanı dosyalarını, herhangi bir standart dosya sistemindeki dosyalarla çalışma şeklinize benzer şekilde program aracılığıyla işleyebilirsiniz.
Not
Databricks Runtime 16.2 ve üzeri ile sunucusuz ortam 2 ve üzerinde, dosyalarla tüm programlı etkileşimler not defterleri için de kullanılabilir. Dosyayı not defterine dönüştürme hakkında bilgi için bkz. Dosyayı not defterine dönüştürme.
Not
Bir dosyanın ana dizini, ona yazmadan önce zaten var olmalı. Azure Databricks, dosya yazma işlemlerini arabelleğe alır ve bunları iş alanına zaman uyumsuz olarak aktarır; bu nedenle, üst dizini mevcut olmayan bir yola yazma işlemi, yazma çağrısını yaptığınız anda değil, yazma çağrısından sonra AsyncFlushFailedException ile başarısız olur. Aşağıdaki örnekte gösterildiği gibi önce ana dizini oluşturun.
Aşağıdaki örneklerde, dosya ve dizin oluşturmak ve bunları işlemek için standart Python paketleri ve işlevleri kullanılır.
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/")
Yinelenen varlık adlarını çözümle
Bazı durumlarda, bir çalışma alanı klasörü zaten aynı isimli varlıkları içerebilir. Örneğin, iki SQL sorgusunun adı da My query olabilir. Bu, isim benzersizliği tam olarak uygulanmadan önce varlıklar oluşturulduğunda meydana gelebilir.
Bir klasör yinelenen varlık adları içerdiğinde, klasöre dosya tabanlı erişim başarısız olur, ancak varlıkların kendisi etkilenmez. Aşağıdaki gibi hatalar görebilirsiniz:
-
Name not unique on network(OSError: [Errno 76])—örneğin, web terminalindelsveya başka komutları çalıştırdığınızda ya da bir defterden klasörü listelerken. -
File name conflictveyaRESOURCE_CONFLICT: Duplicate entities detected in the directory—örneğin, Git klasör işlemleri sırasında.
Not
Yinelenen adlar varlıkların kendisini etkilemez. Her varlığı çalışma alanı tarayıcısından açıp kullanabilirsiniz. Sadece dosya sistemi üzerinden klasöre ulaşan komutlar—örneğin web terminali, WSFS veya Git klasör işlemleri—etkilenir.
Çift isimli varlıkları bulmak için aşağıdaki notebook'u çalıştırın. Bir klasörü ve alt klasörlerini tarar ve aynı isme sahip varlıkları listeler. Defter yalnızca okunabilir ve herhangi bir varlığı yeniden adlandırmaz veya silmez.
Tekrarlanan çalışma alanı varlıkları bulun
Çalışma alanı arayüzü kullanarak yinelenen isimleri çözmek için:
- İş alanı tarayıcısında, not defterinin tanımladığı her klasörü açın.
- Yinelenen varlıkları yeniden adlandırın veya silin, klasördeki her varlığın benzersiz bir adı olana kadar.
Klasördeki tüm varlık isimleri benzersiz olduktan sonra, dosya tabanlı erişim tekrar çalışır.