Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
fungsi
Berlaku untuk:
pemeriksaan Databricks SQL
Databricks Runtime 18 LTS ke atas
Important
Fitur ini ada di Beta. Admin ruang kerja dapat mengontrol akses ke fitur ini dari halaman Pratinjau . Lihat Kelola Pratinjau Azure Databricks.
Menyalin file ke jalur tujuan dan mengembalikan FILE referensi ke file yang disalin. Abaikan destination untuk menyalin file ke penyimpanan yang dikelola Unity Catalog, yang mengubah FILE EXTERNAL referensi menjadi FILE MANAGED referensi.
Syntax
copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
Anda dapat meneruskan argumen secara posisi atau nama. Setelah Anda mengirimkan argumen berdasarkan nama, semua argumen berikut juga harus diteruskan berdasarkan nama. Untuk informasi lebih lanjut, lihat pemanggilan parameter bernama.
Arguments
-
file: Nilai yangFILEharus disalin. -
destination: OpsionalSTRINGdengan jalur file tujuan lengkap, bukan hanya direktori. Jika dihilangkan, file disalin ke penyimpanan yang dikelola Unity Catalog, mengonversiFILE EXTERNALreferensi menjadiFILE MANAGEDreferensi. -
if_file_exists_mode: OpsionalSTRINGyang mengatur perilaku ketika file sudah ada di jalur tujuan. Hanya berlaku saat menggunakandestinationargumen. Nilai yang diterima (tidak sensitif huruf besar) adalah:-
'error': Muncul kesalahan. Ini adalah nilai default. -
'overwrite': Menimpa file yang sudah ada. -
'skip': Melewati penyalinan dan mengembalikanFILEreferensi ke file yang ada.
-
Returns
Nilai yang FILE merujuk pada file yang disalin.
Catatan
- Menghilangkan
destinationreferensi akanFILE EXTERNALmengubah referensi keFILE MANAGED. Azure Databricks juga menerapkan konversi ini secara otomatis saat Anda menyisipkanFILE EXTERNALnilai ke dalamFILE MANAGEDkolom. - Jika sebuah file sudah ada di jalur tujuan, Azure Databricks secara default akan muncul error kecuali Anda mengatur
if_file_exists_modekeoverwriteatauskip. - Jika file sumber tidak ada, Azure Databricks akan muncul kesalahan. Untuk mengembalikan
NULL, alih-alih menimbulkan kesalahan dalam kedua kasus, gunakantry_copy_filefungsi.
Kondisi kesalahan umum
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
Untuk informasi lebih lanjut, lihat Kondisi kesalahan di Azure Databricks.
Examples
Untuk menyalin file dari satu volume ke volume lain:
SELECT copy_file(
to_file('/Volumes/source/data/input.csv'),
destination => '/Volumes/target/data/output.csv'
);
Untuk menyalin file ke volume target menggunakan nama file per baris:
SELECT copy_file(
source_file,
destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
if_file_exists_mode => 'skip'
)
FROM staging_files;
Untuk menimpa tujuan jika file sudah ada:
SELECT copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);
Jika file sumber tidak ada, copy_file muncul kesalahan:
SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS