funktion copy_file

Gäller för:check markerad ja Databricks SQL-kontroll markerad ja 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 kopiera FILE .
  • destination: Ett valfritt STRING med hela destinationsfilens sökväg, inte bara en katalog. När den utelämnas kopieras filen till lagring som hanteras av Unity Catalog, och en FILE EXTERNAL referens omvandlas till en FILE MANAGED referens.
  • if_file_exists_mode: Ett valfritt STRING som sätter beteendet när en fil redan finns vid destinationsvägen. Gäller endast när argumentet destination anvä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 en FILE referens till den befintliga filen.

Returns

Ett värde som refererar FILE till den kopierade filen.

Notes

  • Att destination utelämna konverterar en FILE EXTERNAL referens till FILE MANAGED. Azure Databricks tillämpar också denna konvertering automatiskt när du infogar ett FILE EXTERNAL värde i en FILE MANAGED kolumn.
  • Om en fil redan finns vid destinationssökvägen ger Azure Databricks ett fel som standard, om du inte sätter if_file_exists_mode till overwrite eller skip.
  • Om källfilen inte finns ger Azure Databricks ett felmeddelande. För att returnera NULL istället för att ge ett fel i något av fallen, använd try_copy_file funktionen.

Vanliga felvillkor

  • COPY_FILE_ERROR.FILE_NOT_EXISTS
  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZED
  • COPY_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