Funzione copy_file

Si applica a:check contrassegnato come sì controllo SQL di Databricks contrassegnato come sì Databricks Runtime 18 LTS e versioni successive

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'area di lavoro possono controllare l'accesso a questa funzionalità dalla pagina Anteprime . Vedere Gestire le anteprime di Azure Databricks.

Copia un file su un percorso di destinazione e restituisce un FILE riferimento al file copiato. Omettere destination di copiare il file nello storage gestito dal Catalogo Unity, che converte un FILE EXTERNAL riferimento in un FILE MANAGED riferimento.

Sintassi

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

Puoi trasmettere argomentazioni in base alla posizione o per nome. Dopo aver passato un argomento per nome, tutti gli argomenti successivi devono essere passati anche per nome. Per ulteriori informazioni, vedi invocazione di parametro nominato.

Arguments

  • file: Un FILE valore da copiare.
  • destination: Un optional STRING con il percorso completo del file di destinazione, non solo una directory. Quando viene omesso, il file viene copiato nello storage gestito dal Catalogo Unity, convertendo un FILE EXTERNAL riferimento in un FILE MANAGED riferimento.
  • if_file_exists_mode: Un optional STRING che imposta il comportamento quando un file esiste già nel percorso di destinazione. Si applica solo quando si usa l'argomento destination . I valori accettati (indistinti dalla maiuscolo-minuscola) sono:
    • 'error': Solleva un errore. Questo è il valore predefinito.
    • 'overwrite': Sovrascrive il file esistente.
    • 'skip': Salta la copia e restituisce un FILE riferimento al file esistente.

Returns

Un valore che fa FILE riferimento al file copiato.

Note

  • Omettere destination converte un FILE EXTERNAL riferimento in FILE MANAGED. Azure Databricks applica automaticamente questa conversione quando inserisci un FILE EXTERNAL valore in una FILE MANAGED colonna.
  • Se un file esiste già nel percorso di destinazione, Azure Databricks genera un errore di default a meno che tu non imposti if_file_exists_mode o overwriteskip.
  • Se il file sorgente non esiste, Azure Databricks genera un errore. Per restituire NULL invece di generare un errore in entrambi i casi, si usa try_copy_file funzione.

Condizioni di errore comuni

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

Per maggiori informazioni, vedi Condizioni di errore in Azure Databricks.

Examples

Per copiare un file da un volume all'altro:

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

Per copiare i file su un volume di destinazione usando un nome file per riga:

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

Per sovrascrivere la destinazione se un file esiste già:

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

Se il file sorgente non esiste, copy_file genera un errore:

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