Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Typ:
Gäller för:
Databricks
Databricks Runtime 18 LTS och senare
Important
Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.
Typen FILE representerar en referens till en ostrukturerad fil och dess metadata. Använd den för att hantera och bearbeta dokument, bilder och ljud tillsammans med strukturerad data i Unity Catalog.
FILE typ stöds endast för Delta Lake-tabeller.
Anmärkning
Typen FILE stöds inte på serverlösa anteckningsböcker. Det stöds på anteckningsböcker kopplade till serverlösa Databricks SQL-lager.
Syntax
{ FILE MANAGED | FILE EXTERNAL }
Använd FILE MANAGED or FILE EXTERNAL som kolumntyp när du deklarerar en tabellkolumn med CREATE TABLE. Du kan inte deklarera en tabellkolumn som FILE utan att specificera antingen MANAGED eller EXTERNAL.
FILE tillåts endast som parameter eller returtyp i en UDF, lagrad procedur eller vid casting.
För en jämförelse av FILE EXTERNAL och FILE MANAGED, inklusive arkitekturdiagram, se FIL EXTERN och FIL HANTERAD.
Fält
Ett FILE värde innehåller följande fält:
| Fält | Type | Description |
|---|---|---|
uri |
STRING |
URI:n för filen. Det här fältet kan inte vara null. |
offset |
BIGINT |
En offset in i filen, i bytes. |
size |
BIGINT |
Storleken på filen i byte. |
content_type |
STRING |
MIME-typen på filen, när den är känd. |
checksum |
STRING |
En integritetstoken för filens bytes, av formen <algorithm>:<digest>. För de erkända algoritmerna, se Checksums. |
Limits
- Typen
FILEgaranterar inte beställning. Du kan inte använda enFILEkolumn som en partitioneringskolumn, en klustringskolumn, enMAPnyckel, en join-nyckel eller ett grupperingsuttryck. För att gruppera efter en fil, gruppera efter dessurifält istället.
Literals
För att skapa ett FILE värde, se följande funktioner:
-
to_filefunktionen skapar enFILEreferens från en väg. -
try_to_filefunktionen skapar enFILEreferens från en sökväg och returnerarNULLom filen inte existerar. -
create_filefunktionen laddar upp innehåll till en sökväg och returnerar enFILEreferens. -
copy_filefunktionen kopierar en fil till en målsökväg och returnerar enFILEreferens.
Till CAST ett VARIANT eller STRUCT värde till FILE:
- A
STRUCTmåste ha exakt dessa fält, med dessa namn och typer:struct<uri:string, offset:bigint, size:bigint, content_type:string, checksum:string>. - Ett
VARIANTmåste inkluderaurifältet. Alla andra fält är valfria och eventuella ytterligare nycklar ignoreras.
Kasta till FILE, inte till eller FILE EXTERNALFILE MANAGED. Målkolumnen avgör om den resulterande referensen är extern eller hanterad. När du skriver en extern referens till en FILE MANAGED kolumn importerar Databricks den till hanterad lagring.
Notes
- Som en toppnivåkolumn i tabellen måste deklareras
FILEsomFILE MANAGEDellerFILE EXTERNAL. AnvändningFILEi alla andra fall:- Som parameter- eller returtyp i SQL, Python och Scala användardefinierade funktioner (UDF) och i SQL-lagrade procedurer.
- Som måltypen av a
CASTfrån ettVARIANTeller värdeSTRUCT. - Inbäddat i en
STRUCT, enARRAY, värdet av enMAP, eller enVARIANT. Endast externa filer stöds i enVARIANT.
- För att läsa filmetadata, använd
uri,offset,size,content_type, ochchecksumfälten med punktnotation, till exempelfile_column.uri. - För att extrahera strukturerat innehåll från en fil, skicka ett
FILEvärde tillai_parse_documentfunktionsfunktionen .
Examples
För att deklarera en tabell med en extern FILE kolumn:
CREATE TABLE attachments (id BIGINT, attachment FILE EXTERNAL);
För att fylla den från filer som redan finns i en volym:
INSERT INTO attachments
SELECT row_number() OVER (ORDER BY file.uri), file
FROM read_files('/Volumes/my_catalog/my_schema/my_volume/', format => 'file');
För att läsa filmetadata med punktnotation:
SELECT attachment.uri, attachment.size, attachment.checksum
FROM attachments;
För att konstruera ett FILE värde från en struktur:
SELECT named_struct(
'uri', '/Volumes/my_catalog/my_schema/my_volume/report.pdf',
'offset', null,
'size', CAST(19494 AS BIGINT),
'content_type', 'application/pdf',
'checksum', 'ETAG:v1')::FILE;