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 kopyalanan dosyaya referans döndürür FILE . 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

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

Kopyalanan dosyaya referans veren bir FILE değer.

Notlar

  • Atlamak, destination bir FILE EXTERNAL referansı 'ye dönüştürür FILE MANAGED. Azure Databricks, bir değeri sütuna FILE EXTERNAL eklediğinizde FILE MANAGED bu dönüşümü otomatik olarak uygular.
  • 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
  • Kaynak dosya yoksa, Azure Databricks hata oluşturur. Her iki durumda da hata yaratmak yerine return NULL için fonksiyon kullanıntry_copy_file.

Yaygın hata koşulları

  • COPY_FILE_ERROR.FILE_NOT_EXISTS
  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZED
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

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

Examples

Bir dosyayı bir ciltten diğerine kopyalamak için:

SELECT copy_file(
  to_file('/Volumes/source/data/input.csv'),
  destination => '/Volumes/target/data/output.csv'
);

Dosyaları hedef hacme satır başına bir dosya adı kullanarak kopyalamak için:

SELECT copy_file(
  source_file,
  destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
  if_file_exists_mode => 'skip'
)
FROM staging_files;

Bir dosya zaten varsa hedefin üzerine yazmak için:

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

Kaynak dosya yoksa, copy_file bir hata ortaya çıkar:

SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS