Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
funktion
Gäller för:
Databricks
Databricks Runtime 18 LTS och senare
Important
Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.
Kopierar en fil till en destinationssökväg och returnerar en FILE referens till den kopierade filen. Glöm destination att kopiera filen till Unity Catalog-hanterad lagring, som konverterar en FILE EXTERNAL referens till en FILE MANAGED referens.
Syntax
copy_file(file => file
[, destination => destination ]
[, if_file_exists_mode => mode ])
Du kan skicka argument antingen positionellt eller med namn. Efter att du har passerat ett argument vid namn måste alla följande argument också skickas med namn. För mer information, se namngiven parameteranrop.
Arguments
-
file: Ett värde att kopieraFILE. -
destination: Ett valfrittSTRINGmed hela destinationsfilens sökväg, inte bara en katalog. När den utelämnas kopieras filen till lagring som hanteras av Unity Catalog, och enFILE EXTERNALreferens omvandlas till enFILE MANAGEDreferens. -
if_file_exists_mode: Ett valfrittSTRINGsom sätter beteendet när en fil redan finns vid destinationsvägen. Gäller endast när argumentetdestinationanvänds. Godkända värden (kasuskänsliga) är:-
'error': Ger ett fel. Detta är standardvärdet. -
'overwrite': Skriver över den befintliga filen. -
'skip': Hoppar över kopiering och returnerar enFILEreferens till den befintliga filen.
-
Returns
Ett värde som refererar FILE till den kopierade filen.
Notes
- Att
destinationutelämna konverterar enFILE EXTERNALreferens tillFILE MANAGED. Azure Databricks tillämpar också denna konvertering automatiskt när du infogar ettFILE EXTERNALvärde i enFILE MANAGEDkolumn. - Om en fil redan finns vid destinationssökvägen ger Azure Databricks ett fel som standard, om du inte sätter
if_file_exists_modetilloverwriteellerskip. - Om källfilen inte finns ger Azure Databricks ett felmeddelande. För att returnera
NULListället för att ge ett fel i något av fallen, användtry_copy_filefunktionen.
Vanliga felvillkor
COPY_FILE_ERROR.FILE_NOT_EXISTSCOPY_FILE_ERROR.FILE_ALREADY_EXISTSCOPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZEDCOPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
För mer information, se Felvillkor i Azure Databricks.
Examples
För att kopiera en fil från en volym till en annan:
SELECT copy_file(
to_file('/Volumes/source/data/input.csv'),
destination => '/Volumes/target/data/output.csv'
);
För att kopiera filer till en målvolym med ett filnamn per rad:
SELECT copy_file(
source_file,
destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
if_file_exists_mode => 'skip'
)
FROM staging_files;
För att skriva över destinationen om en fil redan finns:
SELECT copy_file(
to_file('/Volumes/source/reports/report.pdf'),
destination => '/Volumes/archive/reports/report.pdf',
if_file_exists_mode => 'overwrite'
);
Om källfilen inte existerar, copy_file ger det ett fel:
SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS