try_copy_file fonksiyon

Şunun için geçerlidir:evet olarak işaretlendi Databricks SQL denetimi evet olarak işaretlendi Databricks Runtime 18 LTS ve üzeri

Important

Bu özellik Beta sürümündedir. Çalışma alanı yöneticileri Bu özelliğe erişimi Önizlemeler sayfasından denetleyebilir. Bkz. Azure Databricks önizlemelerini yönetme.

Bir dosyayı hedef yola kopyalar ve FILE referans döndürür, NULL ya da kaynak dosya yoksa veya erişilemezse. Dosyayı destination Unity Kataloğu tarafından yönetilen depoya kopyalamayı bırakın; bu depolama referansı FILE EXTERNALFILE MANAGED referansa dönüştürür.

Syntax

try_copy_file(file => file
  [, destination => destination ]
  [, if_file_exists_mode => mode ])

Argümanları pozisyon olarak veya isimle iletebilirsiniz. Bir argümanı isimle ilettiğinizde, sonraki tüm argümanlar da isimle geçilmelidir. Daha fazla bilgi için adlandırılmış parametre çağırışına bakınız.

Arguments

  • file: Kopyalanacak bir FILE değer.
  • destination: Sadece bir dizin değil, tam hedef dosya yolu olan isteğe bağlı STRING bir dosya. Dosya atıldığında, dosya Unity Kataloğu tarafından yönetilen depoya kopyalanır ve referans FILE EXTERNALFILE MANAGED referansa dönüştürülür.
  • if_file_exists_mode: Bir dosyanın hedef yolda zaten var olduğu durumlarda davranışı ayarlayan isteğe STRING bağlı bir sistem. Sadece argüman destination kullanıldığında geçerlidir. Kabul edilen değerler (küçük harf duyarsız) şunlardır:
    • 'error': Bir hata yaratıyor. Bu varsayılan değerdir.
    • 'overwrite': Mevcut dosyanın üzerine yazar.
    • 'skip': Kopyalamayı atlar ve mevcut dosyaya bir referans döndürür FILE .

İadeler

FILE Kopyalanan dosyaya referans veren veya NULL kaynak dosya mevcut yoksa ya da erişilemez durumdaysa.

Notlar

  • Bu fonksiyon, hata toleransı olancopy_file fonksiyon versiyonudur. Bir referansı referansa dönüştürürkenFILE EXTERNAL, dönüşümün açık (atlamaFILE MANAGED) veya otomatik (bir değer sütuna destination eklemeFILE EXTERNAL) olsun, hataları görmezden gelmek için kullanın.FILE MANAGED
  • Eğer bir dosya varış yolunda zaten mevcutsa, Azure Databricks varsayılan olarak hata oluşturur, ancak veya if_file_exists_modeveya olarak ayarlamazsanız.overwriteskip

Yaygın hata koşulları

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

Daha fazla bilgi için bkz. Azure Databricks'te Hata koşulları.

Examples

Kaynak dosya yoksa, try_copy_file döndürür NULL:

SELECT try_copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
NULL

Bir dosyayı Unity Kataloğu tarafından yönetilen depolamaya kopyalamak için, bir FILE EXTERNAL referansı referansa FILE MANAGED dönüştürürken hedef belirtiyi atlayın:

SELECT try_copy_file(to_file('/Volumes/source/data/input.csv'));

Bir dosyayı kopyalamak ve mevcut herhangi bir hedef dosyanın üzerine yazmak için:

SELECT try_copy_file(
  to_file('/Volumes/source/reports/report.pdf'),
  destination => '/Volumes/archive/reports/report.pdf',
  if_file_exists_mode => 'overwrite'
);