Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
controllo SQL di Databricks
Databricks Runtime 18 LTS e versioni successive
Importante
Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.
Copia un file su un percorso di destinazione e restituisce un FILE riferimento al file copiato. Omettere destination di copiare il file nello storage gestito dal Catalogo Unity, che converte un FILE EXTERNAL riferimento in un FILE MANAGED riferimento.
Sintassi
copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
Puoi trasmettere argomentazioni in base alla posizione o per nome. Dopo aver passato un argomento per nome, tutti gli argomenti successivi devono essere passati anche per nome. Per ulteriori informazioni, vedi invocazione di parametro nominato.
Arguments
-
file: UnFILEvalore da copiare. -
destination: Un optionalSTRINGcon il percorso completo del file di destinazione, non solo una directory. Quando viene omesso, il file viene copiato nello storage gestito dal Catalogo Unity, convertendo unFILE EXTERNALriferimento in unFILE MANAGEDriferimento. -
if_file_exists_mode: Un optionalSTRINGche imposta il comportamento quando un file esiste già nel percorso di destinazione. Si applica solo quando si usa l'argomentodestination. I valori accettati (indistinti dalla maiuscolo-minuscola) sono:-
'error': Solleva un errore. Questo è il valore predefinito. -
'overwrite': Sovrascrive il file esistente. -
'skip': Salta la copia e restituisce unFILEriferimento al file esistente.
-
Returns
Un valore che fa FILE riferimento al file copiato.
Note
- Omettere
destinationconverte unFILE EXTERNALriferimento inFILE MANAGED. Azure Databricks applica automaticamente questa conversione quando inserisci unFILE EXTERNALvalore in unaFILE MANAGEDcolonna. - Se un file esiste già nel percorso di destinazione, Azure Databricks genera un errore di default a meno che tu non imposti
if_file_exists_modeooverwriteskip. - Se il file sorgente non esiste, Azure Databricks genera un errore. Per restituire
NULLinvece di generare un errore in entrambi i casi, si usatry_copy_filefunzione.
Condizioni di errore comuni
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
Per maggiori informazioni, vedi Condizioni di errore in Azure Databricks.
Examples
Per copiare un file da un volume all'altro:
SELECT copy_file(
to_file('/Volumes/source/data/input.csv'),
destination => '/Volumes/target/data/output.csv'
);
Per copiare i file su un volume di destinazione usando un nome file per riga:
SELECT copy_file(
source_file,
destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
if_file_exists_mode => 'skip'
)
FROM staging_files;
Per sovrascrivere la destinazione se un file esiste già:
SELECT copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);
Se il file sorgente non esiste, copy_file genera un errore:
SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS