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 aşağıdaki konumlardaki dosyalarla etkileşime yönelik birden çok yardımcı program ve API vardır:
- Unity Kataloğu birimleri
- Çalışma alanı dosyaları
- Bulut nesne depolaması
- DBFS bağlamaları ve DBFS kökü
- Kümenin sürücü düğümüne bağlı kısa ömürlü depolama
Bu makalede, aşağıdaki araçlar için bu konumlardaki dosyalarla etkileşime yönelik örnekler verilmiştir:
- Apache Spark
- Spark SQL ve Databricks SQL
- Databricks dosya sistemi yardımcı programları (
dbutils.fsveya%fs) - Databricks Komut Satırı Arayüzü (CLI)
- Databricks REST API
- Bash kabuk komutları (
%sh) -
%pipkullanılarak defter odaklı kütüphane yüklemeleri - Pandalar
- OSS Python dosya yönetimi ve işleme yardımcı programları
Önemli
Databricks'teki bazı işlemler, özellikle Java veya Scala kitaplıklarını kullanan işlemler JVM işlemleri olarak çalışır, örneğin:
- Spark yapılandırmalarında kullanarak
--jarsJAR dosyası bağımlılığı belirtme - Scala defterlerinde
catveyajava.io.Fileçağırma - Özel veri kaynakları, örneğin
spark.read.format("com.mycompany.datasource") -
FileInputStreamveyaPaths.get()kullanarak Java ile dosya yükleyen kütüphaneler
Bu işlemler, gibi /Volumes/my-catalog/my-schema/my-volume/my-file.csvstandart dosya yollarını kullanarak Unity Kataloğu birimlerinden veya çalışma alanı dosyalarından okumayı veya bu birimlere yazmayı desteklemez. JAR bağımlılıklarından veya JVM tabanlı kitaplıklardan birim dosyalarına veya çalışma alanı dosyalarına erişmeniz gerekiyorsa, python veya %sh gibi %sh mv.komutları kullanarak yerel depolamayı hesaplamak için önce dosyaları kopyalayın. JVM'yi kullanan %fs ve dbutils.fs kullanmayın. Yerel olarak zaten kopyalanmış dosyalara erişmek için Python shutil gibi dile özgü komutları veya %sh komutlarını kullanın. Küme başlatma sırasında bir dosyanın mevcut olması gerekiyorsa, önce dosyayı taşımak için bir init betiği kullanın. Bkz. Başlatma betikleri nelerdir?.
Verilere erişmek için bir URI düzeni sağlamam gerekiyor mu?
Azure Databricks'teki veri erişim yolları aşağıdaki standartlardan birini izler:
URI stili yollar bir URI düzeni içerir. Databricks'e özel veri erişim çözümleri için URI düzenleri çoğu kullanım örneğinde isteğe bağlıdır. Bulut nesne depolamadaki verilere doğrudan erişirken, depolama türü için doğru URI düzenini sağlamanız gerekir.
POSIX stili yollar sürücü köküne (
/) göre veri erişimi sağlar. POSIX stili yollar hiçbir zaman bir düzen gerektirmez. Bulut nesne depolamadaki verilere POSIX stilinde erişim sağlamak için Unity Kataloğu birimlerini veya DBFS bağlamalarını kullanabilirsiniz. Birçok ML çerçevesi ve diğer OSS Python modülleri FUSE gerektirir ve yalnızca POSIX stili yolları kullanabilir.POSIX yolları diyagramı
Not
FUSE veri erişimi gerektiren dosya işlemleri URI'leri kullanarak bulut nesne depolamaya doğrudan erişemez. Databricks, FUSE için bu konumlara erişimi yapılandırmak için Unity Kataloğu birimlerinin kullanılmasını önerir.
Ayrılmış erişim modu (eski adıyla tek kullanıcı erişim modu) ve Databricks Runtime 14.3 ve üzeri ile yapılandırılan işlemde Scala, Scala komutu "cat /Volumes/path/to/file".!!gibi Scala'dan kaynaklanan alt işlemler dışında Unity Kataloğu birimleri ve çalışma alanı dosyaları için FUSE'yi destekler.
Unity Kataloğu birimlerindeki dosyalarla çalışma
Databricks, bulut nesne depolama alanında depolanan tablosal olmayan veri dosyalarına erişimi yapılandırmak için Unity Kataloğu birimlerinin kullanılmasını önerir. Ayrıntılı yönergeler ve en iyi yöntemler de dahil olmak üzere birimlerdeki dosyaları yönetme hakkında eksiksiz belgeler için bkz. Unity Kataloğu birimlerinde dosyalarla çalışma.
Aşağıdaki örneklerde farklı araçlar ve arabirimler kullanan yaygın işlemler gösterilmektedir:
| Araç | Örnek |
|---|---|
| Apache Spark | spark.read.format("json").load("/Volumes/my_catalog/my_schema/my_volume/data.json").show() |
| Spark SQL ve Databricks SQL | SELECT * FROM csv.`/Volumes/my_catalog/my_schema/my_volume/data.csv`;LIST '/Volumes/my_catalog/my_schema/my_volume/'; |
| Databricks dosya sistemi yardımcı programları | dbutils.fs.ls("/Volumes/my_catalog/my_schema/my_volume/")%fs ls /Volumes/my_catalog/my_schema/my_volume/ |
| Databricks Komut Satırı Arayüzü (CLI) | databricks fs cp /path/to/local/file dbfs:/Volumes/my_catalog/my_schema/my_volume/ |
| Databricks REST API | POST https://<databricks-instance>/api/2.1/jobs/create{"name": "A multitask job", "tasks": [{..."libraries": [{"jar": "/Volumes/dev/environment/libraries/logging/Logging.jar"}],},...]} |
| Bash kabuk dili komutları | %sh curl http://<address>/text.zip -o /Volumes/my_catalog/my_schema/my_volume/tmp/text.zip |
| Kütüphane kurulumu | %pip install /Volumes/my_catalog/my_schema/my_volume/my_library.whl |
| Pandalar | df = pd.read_csv('/Volumes/my_catalog/my_schema/my_volume/data.csv') |
| Açık Kaynak Yazılım Python | os.listdir('/Volumes/my_catalog/my_schema/my_volume/path/to/directory') |
Birim sınırlamaları ve geçici çözümler hakkında bilgi için bkz. Birimlerdeki dosyalarla çalışma sınırlamaları.
Çalışma alanı dosyalarıyla çalışma
Databricks çalışma alanı dosyalarıçalışma alanı depolama hesabında depolanan çalışma alanı dosyalarıdır. Not defterleri, kaynak kod dosyaları, veri dosyaları ve diğer çalışma alanı varlıkları gibi dosyaları depolamak ve bu dosyalara erişmek için çalışma alanı dosyalarını kullanabilirsiniz.
Önemli
Çalışma alanı dosyalarının boyut kısıtlamaları olduğundan Databricks, geliştirme ve test için yalnızca küçük veri dosyalarının burada depolanmasını önerir. Diğer dosya türlerinin nerede depolandığına ilişkin öneriler için bkz. Dosya türleri.
| Araç | Örnek |
|---|---|
| Apache Spark | spark.read.format("json").load("file:/Workspace/Users/<user-folder>/data.json").show() |
| Spark SQL ve Databricks SQL | SELECT * FROM json.`file:/Workspace/Users/<user-folder>/file.json`; |
| Databricks dosya sistemi yardımcı programları | dbutils.fs.ls("file:/Workspace/Users/<user-folder>/")%fs ls file:/Workspace/Users/<user-folder>/ |
| Databricks Komut Satırı Arayüzü (CLI) | databricks workspace list |
| Databricks REST API | POST https://<databricks-instance>/api/2.0/workspace/delete{"path": "/Workspace/Shared/code.py", "recursive": "false"} |
| Bash kabuk dili komutları | %sh curl http://<address>/text.zip -o /Workspace/Users/<user-folder>/text.zip |
| Kütüphane kurulumu | %pip install /Workspace/Users/<user-folder>/my_library.whl |
| Pandalar | df = pd.read_csv('/Workspace/Users/<user-folder>/data.csv') |
| Açık Kaynak Yazılım Python | os.listdir('/Workspace/Users/<user-folder>/path/to/directory') |
Not
Databricks Yardımcı Programları, Apache Spark veya SQL ile çalışırken file:/ şeması gereklidir.
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.
Çalışma alanı dosyalarıyla çalışmayla ilgili sınırlamalar için bkz. Sınırlamalar.
Silinen çalışma alanı dosyaları nereye gider?
Çalışma alanı dosyasını silmek, dosyayı çöp kutusuna gönderir. Kullanıcı arabirimini kullanarak çöp sepetindeki dosyaları kurtarabilir veya kalıcı olarak silebilirsiniz.
Bkz. Nesneyi Sil.
Bulut nesne depolamasında dosyalarla çalışma
Databricks, bulut nesne depolamadaki dosyalara güvenli erişim yapılandırmak için Unity Kataloğu birimlerinin kullanılmasını önerir. URI'leri kullanarak verilere doğrudan bulut nesne depolamasında erişmeyi seçerseniz izinleri yapılandırmanız gerekir. Bkz. Yönetilen ve dış birimler.
Aşağıdaki örneklerde bulut nesne depolamadaki verilere erişmek için URI'ler kullanılır:
| Araç | Örnek |
|---|---|
| Apache Spark | spark.read.format("json").load("abfss://container-name@storage-account-name.dfs.core.windows.net/path/file.json").show() |
| Spark SQL ve Databricks SQL |
SELECT * FROM csv.`abfss://container-name@storage-account-name.dfs.core.windows.net/path/file.json`;
LIST 'abfss://container-name@storage-account-name.dfs.core.windows.net/path';
|
| Databricks dosya sistemi yardımcı programları |
dbutils.fs.ls("abfss://container-name@storage-account-name.dfs.core.windows.net/path/")
%fs ls abfss://container-name@storage-account-name.dfs.core.windows.net/path/
|
| Databricks Komut Satırı Arayüzü (CLI) | Desteklenmiyor |
| Databricks REST API | Desteklenmiyor |
| Bash kabuk dili komutları | Desteklenmiyor |
| Kütüphane kurulumu | %pip install abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl |
| Pandalar | Desteklenmiyor |
| Açık Kaynak Yazılım Python | Desteklenmiyor |
DBFS montajlarında ve DBFS kökünde dosyalarla çalışma
Önemli
Hem DBFS kök hem de DBFS bağlamaları kullanım dışıdır ve Databricks tarafından önerilmez. Yeni hesaplar, bu özelliklere erişim olmadan oluşturulur. Databricks bunun yerine Unity Kataloğu birimlerini, dış konumları veya çalışma alanı dosyalarını kullanmanızı önerir.
| Araç | Örnek |
|---|---|
| Apache Spark | spark.read.format("json").load("/mnt/path/to/data.json").show() |
| Spark SQL ve Databricks SQL | SELECT * FROM json.`/mnt/path/to/data.json`; |
| Databricks dosya sistemi yardımcı programları | dbutils.fs.ls("/mnt/path")%fs ls /mnt/path |
| Databricks Komut Satırı Arayüzü (CLI) | databricks fs cp dbfs:/mnt/path/to/remote/file /path/to/local/file |
| Databricks REST API | POST https://<host>/api/2.0/dbfs/delete --data '{ "path": "/tmp/HelloWorld.txt" }' |
| Bash kabuk dili komutları | %sh curl http://<address>/text.zip > /dbfs/mnt/tmp/text.zip |
| Kütüphane kurulumu | %pip install /dbfs/mnt/path/to/my_library.whl |
| Pandalar | df = pd.read_csv('/dbfs/mnt/path/to/data.csv') |
| Açık Kaynak Yazılım Python | os.listdir('/dbfs/mnt/path/to/directory') |
Not
Databricks CLI ile çalışırken dbfs:/ düzeni gereklidir.
Sürücü düğümüne bağlı kısa ömürlü depolamadaki dosyalarla çalışma
Sürücü düğümüne eklenen geçici depolama, yerleşik POSIX tabanlı yol erişimine sahip blok depolamadır. Bir küme sonlandırıldığında veya yeniden başlatıldığında bu konumda depolanan tüm veriler kaybolur.
| Araç | Örnek |
|---|---|
| Apache Spark | Desteklenmiyor |
| Spark SQL ve Databricks SQL | Desteklenmiyor |
| Databricks dosya sistemi yardımcı programları | dbutils.fs.ls("file:/path")%fs ls file:/path |
| Databricks Komut Satırı Arayüzü (CLI) | Desteklenmiyor |
| Databricks REST API | Desteklenmiyor |
| Bash kabuk dili komutları | %sh curl http://<address>/text.zip > /tmp/text.zip |
| Kütüphane kurulumu | Desteklenmiyor |
| Pandalar | df = pd.read_csv('/path/to/data.csv') |
| Açık Kaynak Yazılım Python | os.listdir('/path/to/directory') |
Not
Databricks Yardımcı Programları ile çalışırken file:/ şeması gereklidir.
Kısa ömürlü depolamadan birimlere veri taşıma
Apache Spark kullanarak kısa ömürlü depolamaya indirilen veya kaydedilen verilere erişmek isteyebilirsiniz. Kısa ömürlü depolama sürücüye eklendiğinden ve Spark dağıtılmış bir işleme altyapısı olduğundan, tüm işlemler verilere buradan doğrudan erişemez. Sürücü dosya sisteminden Unity Kataloğu birimlerine veri taşımanız gerektiğini varsayalım. Bu durumda, aşağıdaki örneklerde gösterildiği gibi
dbutils.fs.cp ("file:/<path>", "/Volumes/<catalog>/<schema>/<volume>/<path>")
%sh cp /<path> /Volumes/<catalog>/<schema>/<volume>/<path>
%fs cp file:/<path> /Volumes/<catalog>/<schema>/<volume>/<path>
Ek kaynaklar
Yerel dosyaları yükleme veya Azure Databricks'e internet dosyaları indirme hakkında bilgi için bkz. Azure Databricks'e dosya yükleme.