copy_file-Funktion

Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 18 LTS and above

Important

Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.

Kopiert eine Datei auf einen Zielpfad und gibt eine FILE Referenz auf die kopierte Datei zurück. Versäumen destination , die Datei in den vom Unity Catalog verwalteten Speicher zu kopieren, der eine FILE EXTERNAL Referenz in eine Referenz FILE MANAGED umwandelt.

Syntax

copy_file(file => file
  [, destination => destination ]
  [, if_file_exists_mode => mode ])

Du kannst Argumente positionell oder mit dem Namen weitergeben. Nachdem Sie ein Argument beim Namen weitergegeben haben, müssen alle folgenden Argumente ebenfalls mit dem Namen weitergegeben werden. Für weitere Informationen siehe Aufruf von benannten Parametern.

Arguments

  • file: Ein FILE Wert, den man kopieren kann.
  • destination: Eine optionale STRING mit dem vollständigen Zielpfad, nicht nur einem Verzeichnis. Wenn sie weggelassen wird, wird die Datei in den von Unity Catalog verwalteten Speicher kopiert und eine FILE EXTERNAL Referenz in eine FILE MANAGED Referenz umgewandelt.
  • if_file_exists_mode: Ein optionales STRING Formular, das das Verhalten festlegt, wenn eine Datei bereits am Zielpfad existiert. Gilt nur, wenn das Argument verwendet wird destination . Akzeptierte Werte (kleinschreibungsunempfindlich) sind:
    • 'error': Führt zu einem Fehler. Dies ist der Standardwert.
    • 'overwrite': Überschreibt die bestehende Datei.
    • 'skip': Überspringt das Kopieren und gibt eine FILE Referenz auf die bestehende Datei zurück.

Rückkehr

Ein FILE Wert, der auf die kopierte Datei verweist.

Hinweise

  • Durch das destination Weglassen wird eine Referenz zu FILE MANAGEDumgewandeltFILE EXTERNAL. Azure Databricks wendet diese Umwandlung ebenfalls automatisch an, wenn man einen FILE EXTERNAL Wert in eine Spalte FILE MANAGED einfügt.
  • Wenn eine Datei bereits am Zielpfad existiert, löst Azure Databricks standardmäßig einen Fehler aus, es sei denn, man setzt if_file_exists_mode auf overwrite oder skip.
  • Wenn die Quelldatei nicht existiert, meldet Azure Databricks einen Fehler. Um in beiden Fällen einen Fehler auszulösen, um zurückzugebenNULL, verwenden try_copy_file Sie Funktion.

Häufige Fehlerbedingungen

  • COPY_FILE_ERROR.FILE_NOT_EXISTS
  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.READ_UNAUTHORIZED
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

Weitere Informationen finden Sie unter Fehlerbedingungen in Azure Databricks.

Examples

Um eine Datei von einem Volume auf ein anderes zu kopieren:

SELECT copy_file(
  to_file('/Volumes/source/data/input.csv'),
  destination => '/Volumes/target/data/output.csv'
);

Um Dateien mit einem Dateinamen pro Zeile auf ein Zielvolumen zu kopieren:

SELECT copy_file(
  source_file,
  destination => '/Volumes/my_catalog/my_schema/my_volume/processed/' || file_name,
  if_file_exists_mode => 'skip'
)
FROM staging_files;

Um das Ziel zu überschreiben, falls bereits eine Datei existiert:

SELECT copy_file(
  to_file('/Volumes/source/reports/report.pdf'),
  destination => '/Volumes/archive/reports/report.pdf',
  if_file_exists_mode => 'overwrite'
);

Wenn die Quelldatei nicht existiert, copy_file führt ein Fehler aus:

SELECT copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
Error: COPY_FILE_ERROR.FILE_NOT_EXISTS