copy_file függvény

A következőre vonatkozik:yes Databricks SQL check mark yes Databricks Runtime 18 LTS and above

Important

Ez a funkció bétaverzióban érhető el. A munkaterület rendszergazdái az Előnézetek lapon szabályozhatják a funkcióhoz való hozzáférést. Lásd: Az Azure Databricks előzetes verziójának kezelése.

Másolja a fájlt egy célútra, és visszaadja a FILE másolt fájlra vonatkozó hivatkozást. Kihagyjuk destination a fájl Unity Catalog által kezelt tárolóba való másolását, amely egy FILE EXTERNAL hivatkozást FILE MANAGED hivatkozássá alakít.

Szemantika

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

Pozícióban vagy név szerint is megfogalmazhatod az érveket. Miután név szerint adtál át egy érvet, az összes következő érvet is név szerint kell átadni. További információért lásd: Named parameter invocation.

Arguments

  • file: Egy FILE érték, amit másolni kell.
  • destination: Egy opcionális STRING opció, amely teljes célfájlúttal rendelkezik, nem csak egy könyvtárral. Ha kihagyják, a fájlt a Unity Catalog által kezelt tárolóba másolják, így egy FILE EXTERNAL hivatkozást FILE MANAGED hivatkozássá alakítanak.
  • if_file_exists_mode: Egy opcionális STRING eszköz, amely beállítja azt a viselkedést, amikor egy fájl már létezik a célúton. Csak az érv használatakor destination érvényes. Az elfogadott értékek (kis- és kis- jelezhetetlen) a következők:
    • 'error': Hibát okoz. Ez az alapértelmezett érték.
    • 'overwrite': Felülírja a meglévő fájlt.
    • 'skip': Kihagyja a másolást, és visszaadja a FILE meglévő fájlra vonatkozó hivatkozást.

Returns

Egy FILE érték, amely a másolt fájlra hivatkozik.

Jegyzetek

  • A destination kihagyás egy FILE EXTERNAL hivatkozást átalakít .FILE MANAGED Az Azure Databricks automatikusan alkalmazza ezt az átalakítást, amikor egy FILE EXTERNAL értéket beillesztünk egy FILE MANAGED oszlopba.
  • Ha egy fájl már létezik a cél úton, az Azure Databricks alapértelmezetten hibát generál, hacsak nem állítod if_file_exists_mode be vagy overwriteskip-re.
  • Ha a forrásfájl nem létezik, az Azure Databricks hibát ad. A visszaállításhoz NULL hibázás helyett a függvényt használjuktry_copy_file.

Gyakori hibafeltételek

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

További információért lásd: Hibafeltételek az Azure Databricks-ben.

Examples

Egy fájl másolásához egyik kötetről a másikra:

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

Fájlok másolásához célkötetre soronkénti fájlnév használatával:

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

Ha egy fájl már létezik, felülírjuk a célpontot:

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

Ha a forrásfájl nem létezik, copy_file akkor hiba keletkezik:

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