Aracılığıyla paylaş


Çalışma alanı dosyalarıyla program aracılığıyla etkileşim kurma

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 yürütülen kod için varsayılan geçerli çalışma dizini (CWD), çalıştırılmakta olan not defterini veya betiği içeren 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?.

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:

dosya açılır menüsü

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.

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/")