Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime 18 LTS et versions ultérieures
Important
Cette fonctionnalité est en version bêta. Les administrateurs d’espace de travail peuvent contrôler l’accès à cette fonctionnalité à partir de la page Aperçus . Consultez Gérer les préversions d’Azure Databricks.
Copie un fichier sur un chemin de destination et renvoie une FILE référence au fichier copié. Ne pas destination copier le fichier dans un stockage géré par Unity Catalog, qui convertit une FILE EXTERNAL référence en référence FILE MANAGED .
Syntax
copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
Vous pouvez présenter des arguments selon la position ou par nom. Après avoir passé un argument par nom, tous les arguments suivants doivent aussi être transmis par nom. Pour plus d’informations, voir invocation de paramètre nommé.
Arguments
-
file: UneFILEvaleur à copier. -
destination: Un optionnelSTRINGavec le chemin complet du fichier de destination, pas seulement un répertoire. Lorsqu’il est omis, le fichier est copié dans un stockage géré par le catalogue Unity, convertissant uneFILE EXTERNALréférence enFILE MANAGEDréférence. -
if_file_exists_mode: Un optionnelSTRINGqui définit le comportement lorsqu’un fichier existe déjà sur le chemin de destination. Cela ne s’applique qu’à l’utilisation de l’argumentdestination. Les valeurs acceptées (insensibles à la majuscule) sont :-
'error': Soulève une erreur. Il s’agit de la valeur par défaut. -
'overwrite': Écrase le fichier existant. -
'skip': Saute la copie et renvoie uneFILEréférence au fichier existant.
-
Returns
Une FILE valeur qui fait référence au fichier copié.
Remarques
- Omettre
destinationconvertit uneFILE EXTERNALréférence enFILE MANAGED. Azure Databricks applique également cette conversion automatiquement lorsque vous insérez uneFILE EXTERNALvaleur dans uneFILE MANAGEDcolonne. - Si un fichier existe déjà sur le chemin de destination, Azure Databricks génère une erreur par défaut à moins que vous ne posiez
if_file_exists_modesuroverwriteouskip. - Si le fichier source n'existe pas, Azure Databricks affiche une erreur. Pour retourner
NULLau lieu de générer une erreur dans les deux cas, utiliseztry_copy_filela fonction.
Conditions d’erreur courantes
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
Pour plus d’informations, voir Conditions d’erreur dans Azure Databricks.
Examples
Pour copier un fichier d’un volume à un autre :
SELECT copy_file(
to_file('/Volumes/source/data/input.csv'),
destination => '/Volumes/target/data/output.csv'
);
Pour copier des fichiers vers un volume cible en utilisant un nom de fichier par ligne :
SELECT copy_file(
source_file,
destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
if_file_exists_mode => 'skip'
)
FROM staging_files;
Pour écraser la destination si un fichier existe déjà :
SELECT copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);
Si le fichier source n’existe pas, copy_file cela génère une erreur :
SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS