try_copy_file функция

Область применения:check помечена да , проверка Databricks SQL помечено да Databricks Runtime 18 LTS и выше

Important

Эта функция доступна в бета-версии. Администраторы рабочей области могут управлять доступом к этой функции на странице "Предварительные версии ". См. статью "Управление предварительными версиями Azure Databricks".

Копирует файл в путь назначения и возвращает FILE ссылку, или NULL если исходный файл отсутствует или недоступен. Опустите destination копирование файла в хранилище, управляемое каталогом Unity, которое преобразует FILE EXTERNAL ссылку в FILE MANAGED ссылку.

Syntax

try_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 , которое ссылается на скопированный файл, или NULL если исходный файл отсутствует или недоступен.

Примечания

  • Эта функция является ошибочно-устойчивой версией функцииcopy_file. Используйте его, чтобы игнорировать ошибки при преобразовании FILE EXTERNAL ссылки в FILE MANAGED ссылку, независимо от того, является ли преобразование явным (пропуск destination) или автоматическим (вставка FILE EXTERNAL значения в FILE MANAGED столбец).
  • Если файл уже существует на пути назначения, Azure Databricks по умолчанию выдает ошибку, если только вы не установите if_file_exists_mode или overwriteskip.

Распространенные условия ошибки

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

Для получения дополнительной информации см. Ошибочные условия в Azure Databricks.

Examples

Если исходного файла нет, try_copy_file возвращает NULL:

SELECT try_copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
NULL

Чтобы скопировать файл в хранилище, управляемое каталогом Unity, преобразовав FILE EXTERNAL ссылку в FILE MANAGED ссылку, опустите пункт назначения:

SELECT try_copy_file(to_file('/Volumes/source/data/input.csv'));

Чтобы скопировать файл и перезаписать любой существующий файл назначения:

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