Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:
, проверка Databricks SQL
Databricks Runtime 18 LTS и выше
Important
Эта функция доступна в бета-версии. Администраторы рабочей области могут управлять доступом к этой функции на странице "Предварительные версии ". См. статью "Управление предварительными версиями Azure Databricks".
Копирует файл в путь назначения и возвращает FILE ссылку на копированный файл. Опустите destination копирование файла в хранилище, управляемое каталогом Unity, которое преобразует FILE EXTERNAL ссылку в FILE MANAGED ссылку.
Syntax
copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
Аргументы можно передавать позиционно или по имени. После того как вы передаете аргумент по имени, все последующие аргументы также должны быть переданы по имени. Для получения дополнительной информации см. вызов именованных параметров.
Arguments
-
file: ЦенностьFILEдля копирования. -
destination: НеобязательныйSTRINGвариант с полным путь к файлу назначения, а не просто каталогом. Если файл отсутствует, он копируется в хранилище, управляемое каталогом Unity, преобразуяFILE EXTERNALссылку вFILE MANAGEDссылку. -
if_file_exists_mode: ОпциональноеSTRING, задающее поведение, когда файл уже существует на пути назначения. Применяется только при использовании аргументаdestination. Принятые значения (без регистра) следующие:-
'error': Повышает ошибку. Это значение по умолчанию. -
'overwrite': Перезаписывает существующий файл. -
'skip': Пропускает копирование и возвращаетFILEссылку на существующий файл.
-
Returns
Значение FILE , ссылающееся на скопированный файл.
Примечания
- Опущение
destinationпреобразуетFILE EXTERNALссылку вFILE MANAGED. Azure Databricks также автоматически применяет это преобразование при вставкеFILE EXTERNALзначения вFILE MANAGEDстолбц. - Если файл уже существует на пути назначения, Azure Databricks по умолчанию выдает ошибку, если только вы не установите
if_file_exists_modeилиoverwriteskip. - Если исходного файла нет, Azure Databricks выдает ошибку. Чтобы вернуть
NULLвместо ошибки в любом из этих случаев, используйтеtry_copy_fileфункцию.
Распространенные условия ошибки
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
Для получения дополнительной информации см. Ошибочные условия в Azure Databricks.
Examples
Чтобы скопировать файл из одного тома в другой:
SELECT copy_file(
to_file('/Volumes/source/data/input.csv'),
destination => '/Volumes/target/data/output.csv'
);
Чтобы скопировать файлы в целевой том с помощью имени файла для каждой строки:
SELECT copy_file(
source_file,
destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
if_file_exists_mode => 'skip'
)
FROM staging_files;
Чтобы перезаписать пункт назначения, если файл уже существует:
SELECT copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);
Если исходного файла нет, copy_file возникает ошибка:
SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS