Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
sim Databricks Runtime 18 LTS e superiores
Importante
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Visualizações . Ver Gerir as pré-visualizações de Azure Databricks.
Copia um ficheiro para um caminho de destino e devolve uma FILE referência ao ficheiro copiado. Omita destination copiar o ficheiro para armazenamento gerido pelo Unity Catalog, que converte uma FILE EXTERNAL referência numa FILE MANAGED referência.
Syntax
copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
Podes apresentar argumentos por posição ou pelo nome. Depois de passar um argumento pelo nome, todos os argumentos seguintes também devem ser passados pelo nome. Para mais informações, veja invocação de parâmetro nomeado.
Arguments
-
file: UmFILEvalor a copiar. -
destination: Um opcionalSTRINGcom o caminho completo do ficheiro de destino, não apenas um diretório. Quando omitido, o ficheiro é copiado para armazenamento gerido pelo Unity Catalog, convertendo umaFILE EXTERNALreferência numaFILE MANAGEDreferência. -
if_file_exists_mode: Um opcionalSTRINGque define o comportamento quando um ficheiro já existe no caminho de destino. Aplica-se apenas quando se usa o argumentodestination. Os valores aceites (indiferentes a maiúsculas minúsculas) são:-
'error': Levanta um erro. Este é o valor padrão. -
'overwrite': Sobrescreve o ficheiro existente. -
'skip': Ignora a cópia e retorna umaFILEreferência ao ficheiro existente.
-
Devoluções
Um FILE valor que faz referência ao ficheiro copiado.
Notes
- Omitir
destinationconverte umaFILE EXTERNALreferência emFILE MANAGED. O Azure Databricks também aplica esta conversão automaticamente quando insere umFILE EXTERNALvalor numaFILE MANAGEDcoluna. - Se um ficheiro já existir no caminho de destino, o Azure Databricks gera um erro por defeito, a menos que defina
if_file_exists_modeparaoverwriteouskip. - Se o ficheiro de origem não existir, o Azure Databricks gera um erro. Para retornar
NULL, em vez de gerar um erro em qualquer dos casos, usetry_copy_filefunção.
Condições de erro comuns
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
Para mais informações, veja Condições de erro no Azure Databricks.
Examples
Para copiar um ficheiro de um volume para outro:
SELECT copy_file(
to_file('/Volumes/source/data/input.csv'),
destination => '/Volumes/target/data/output.csv'
);
Para copiar ficheiros para um volume alvo usando um nome de ficheiro por linha:
SELECT copy_file(
source_file,
destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
if_file_exists_mode => 'skip'
)
FROM staging_files;
Para sobrescrever o destino se um ficheiro já existir:
SELECT copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);
Se o ficheiro fonte não existir, copy_file gera um erro:
SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS