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.
Şunun için geçerlidir:
Databricks SQL
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 birFILEdeğer. -
destination: Sadece bir dizin değil, tam hedef dosya yolu olan isteğe bağlıSTRINGbir dosya. Dosya atıldığında, dosya Unity Kataloğu tarafından yönetilen depoya kopyalanır ve referansFILE EXTERNALFILE MANAGEDreferansa dönüştürülür. -
if_file_exists_mode: Bir dosyanın hedef yolda zaten var olduğu durumlarda davranışı ayarlayan isteğeSTRINGbağlı bir sistem. Sadece argümandestinationkullanı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ürFILE.
-
İadeler
Kopyalanan dosyaya referans veren bir FILE değer.
Notlar
- Atlamak,
destinationbirFILE EXTERNALreferansı 'ye dönüştürürFILE MANAGED. Azure Databricks, bir değeri sütunaFILE EXTERNALeklediğinizdeFILE MANAGEDbu 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
NULLiçin fonksiyon kullanıntry_copy_file.
Yaygın hata koşulları
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_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