try_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.

Átmásol egy fájlt egy célállomás útra, és visszaad egy FILE hivatkozást, vagy NULL ha a forrásfájl nem létezik vagy elérhetetlen. 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

try_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 olyan érték, amely a másolt fájlra hivatkozik, vagy NULL ha a forrásfájl nem létezik vagy elérhetetlen.

Jegyzetek

  • Ez a függvény a hibatűrő copy_file változata. Használd arra, hogy figyelmen kívül hagyd a hibákat, amikor egy FILE EXTERNAL hivatkozást hivatkozássá FILE MANAGED alakítasz, akár explicit (kihagyva destination) vagy automatikus (érték beillesztése FILE EXTERNAL 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.

Gyakori hibafeltételek

  • COPY_FILE_ERROR.FILE_ALREADY_EXISTS
  • COPY_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED

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

Examples

Ha a forrásfájl nem létezik, try_copy_file akkor a következő fájlokat adjuk vissza NULL:

SELECT try_copy_file(deleted_file, destination => '/Volumes/archive/reports/report.pdf');
NULL

Ahhoz, hogy egy fájlt a Unity Catalog által kezelt tárolóba konvertálj, és egy FILE EXTERNAL hivatkozást FILE MANAGED hivatkozássá alakítsunk, hagyjuk ki a célpontot:

SELECT try_copy_file(to_file('/Volumes/source/data/input.csv'));

Egy fájl másolására és bármely meglévő célfájl felülírására:

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