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

Lädt String- oder Binärinhalte auf einen Zielpfad hoch und gibt eine FILE Referenz auf die hochgeladene Datei zurück.

Syntax

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

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

  • content: Ein STRING oder Ausdruck BINARY mit dem Inhalt, der als Datei gespeichert wird. A STRING wird als UTF-8-codierte Bytes gespeichert.
  • destination_path: Ein optionaler STRING Weg, den Inhalt hochzuladen.
  • if_file_exists: Ein optionales STRING Formular, das das Verhalten festlegt, wenn eine Datei bereits am Zielpfad existiert. Gilt nur, wenn das Argument verwendet wird destination_path . Akzeptierte Werte (kleinschreibungsunempfindlich) sind:
    • 'error': Führt zu einem Fehler. Dies ist der Standardwert.
    • 'overwrite': Überschreibt die bestehende Datei.
    • 'skip': Überspringt den Upload und gibt eine FILE Referenz auf die bestehende Datei zurück.
  • content_type: Ein optionales STRING Formular, das den Inhaltstyp der Datei angibt. Wenn nicht angegeben, wird der Inhaltstyp aus den Eingabebytes abgeleitet.

Rückkehr

Ein FILE Wert, der auf die hochgeladene Datei verweist.

Hinweise

  • Wenn du verwendest destination_path, wird die Datei atomar auf diesen Pfad hochgeladen. Du musst Schreibzugriff auf den Zielort haben, der typischerweise ein Unity-Catalog-Volume ist.
  • Wenn eine Datei bereits am Zielpfad existiert, löst Azure Databricks standardmäßig einen Fehler aus, es sei denn, man setzt if_file_exists auf overwrite oder skip.

Häufige Fehlerbedingungen

  • 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

Weitere Informationen finden Sie unter Fehlerbedingungen in Azure Databricks.

Examples

Um eine Zeichenkette als neue Datei an einem bestimmten Pfad zu speichern:

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

Um Rohbytes zu speichern und den Inhaltstyp explizit festzulegen:

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;

Um den Upload zu überspringen, falls bereits eine Datei am Ziel existiert:

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

Wenn destination_path nicht gesetzt ist, if_file_exists wirft ein Fehler auf:

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