copy_file функция

Область применения:check помечена да , проверка 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_EXISTS
  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZED
  • COPY_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