fungsi copy_file

Berlaku untuk:check ditandai ya pemeriksaan Databricks SQL ditandai ya 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 yang FILE harus disalin.
  • destination: Opsional STRING dengan jalur file tujuan lengkap, bukan hanya direktori. Jika dihilangkan, file disalin ke penyimpanan yang dikelola Unity Catalog, mengonversi FILE EXTERNAL referensi menjadi FILE MANAGED referensi.
  • if_file_exists_mode: Opsional STRING yang mengatur perilaku ketika file sudah ada di jalur tujuan. Hanya berlaku saat menggunakan destination argumen. 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 mengembalikan FILE referensi ke file yang ada.

Returns

Nilai yang FILE merujuk pada file yang disalin.

Catatan

  • Menghilangkan destination referensi akan FILE EXTERNAL mengubah referensi ke FILE MANAGED. Azure Databricks juga menerapkan konversi ini secara otomatis saat Anda menyisipkan FILE EXTERNAL nilai ke dalam FILE MANAGED kolom.
  • Jika sebuah file sudah ada di jalur tujuan, Azure Databricks secara default akan muncul error kecuali Anda mengatur if_file_exists_mode ke overwrite atau skip.
  • Jika file sumber tidak ada, Azure Databricks akan muncul kesalahan. Untuk mengembalikan NULL , alih-alih menimbulkan kesalahan dalam kedua kasus, gunakan try_copy_file fungsi.

Kondisi kesalahan umum

  • COPY_FILE_ERROR.FILE_NOT_EXISTS
  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZED
  • COPY_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