Funzione create_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.

Carica contenuti in stringa o binari su un percorso di destinazione e restituisce un FILE riferimento al file caricato.

Sintassi

create_file(content => content
  [, destination_path => path ]
  [, if_file_exists => mode ]
  [, content_type => content_type ])

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

  • content: A STRING o BINARY con il contenuto da memorizzare come file. A STRING viene memorizzato come byte codificati in UTF-8.
  • destination_path: Un percorso opzionale STRING per caricare il contenuto.
  • if_file_exists: 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_path . I valori accettati (indistinti dalla maiuscolo-minuscola) sono:
    • 'error': Solleva un errore. Questo è il valore predefinito.
    • 'overwrite': Sovrascrive il file esistente.
    • 'skip': Salta il caricamento e restituisce un FILE riferimento al file esistente.
  • content_type: Un optional STRING che specifica il tipo di contenuto del file. Se non fornito, il tipo di contenuto viene dedotto dai byte di input.

Returns

Un valore che fa FILE riferimento al file caricato.

Note

  • Se usi destination_path, il file viene caricato atomicamente su quel percorso. Devi avere accesso di scrittura alla posizione di destinazione, che di solito è un volume del Catalogo Unity.
  • 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 o overwriteskip.

Condizioni di errore comuni

  • CREATE_FILE_ERROR.FILE_ALREADY_EXISTS
  • CREATE_FILE_AUTHORIZATION_ERROR.WRITE_UNAUTHORIZED
  • CREATE_FILE_ILLEGAL_USAGE.CONTENT_REQUIRED
  • CREATE_FILE_ILLEGAL_USAGE.IF_FILE_EXISTS_WITHOUT_DESTINATION
  • CREATE_FILE_ILLEGAL_USAGE.IF_FILE_EXISTS_MODE

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

Examples

Per memorizzare una stringa come nuovo file su un dato percorso:

SELECT create_file(
  content => 'hello, world',
  destination_path => '/Volumes/my_catalog/my_schema/my_volume/greetings.txt'
);

Per memorizzare byte grezzi e impostare esplicitamente il tipo di contenuto:

SELECT create_file(
  content => my_binary_col,
  destination_path => '/Volumes/my_catalog/my_schema/my_volume/image.png',
  content_type => 'image/png'
)
FROM raw_uploads;

Per saltare il caricamento se un file esiste già alla destinazione:

SELECT create_file(
  content => my_binary_col,
  destination_path => '/Volumes/my_catalog/my_schema/my_volume/report.pdf',
  if_file_exists => 'skip'
);

Se destination_path non è impostato, if_file_exists genera un errore:

SELECT create_file(content => 'data', if_file_exists => 'overwrite');
Error: CREATE_FILE_ILLEGAL_USAGE.IF_FILE_EXISTS_WITHOUT_DESTINATION