read_files táblaértékű függvény

A következőkre vonatkozik:igen Databricks SQL igen Databricks Runtime 13.3 LTS és újabb

Beolvassa a fájlokat egy megadott helyen, és táblázatos formában adja vissza az adatokat.

Támogatja az olvasást JSON, CSV, XML, TEXT, BINARYFILE, PARQUET, AVRO és ORC fájlformátumok. Képes automatikusan észlelni a fájlformátumot, és egységes sémát létrehozni az összes fájlban.

Szintaxis

read_files(path [, option_key => option_value ] [...])

Argumentumok

Ehhez a függvényhez elnevezett paraméterhívás szükséges a beállításkulcsokhoz.

  • path: A STRING az adatok helyének URI-jával. Támogatja a Azure Data Lake Storage ('abfss://'), az S3 (s3://) és a Google Cloud Storage ('gs://') olvasását. Tartalmazhat mintákat. További részletekért lásd a fájlfelderítést .
  • option_key: A konfigurálni kívánt beállítás neve. A backticks () for options that contain dots (.') használata szükséges.
  • option_value: Állandó kifejezés a beállítás beállításához. Konstansokat és skaláris függvényeket fogad el.

Visszatérítések

Egy táblázat, amely a megadott pathalatt beolvasott fájlokból származó adatokat tartalmazza. A séma a fájlformátumtól függ:

  • BINARYFILE: Rögzített sémát ad vissza:

    oszlop Típus Leírás
    path STRING A fájl teljes elérési útja.
    modificationTime TIMESTAMP A fájl utolsó módosítási ideje.
    length LONG A fájl mérete bájtban.
    content BINARY A fájl bináris tartalma. Bináris * EXCEPT (content) tartalom kizárása a fájl metaadatainak lekérdezésekor.
  • TEXT: Rögzített sémát ad vissza egyetlen value (STRING) oszlopmal.

  • Minden más formátum (JSON, CSV, XML, PARQUET, AVRO, ORC): A séma a fájl tartalmából származik, vagy explicit módon van megadva a schema beállítás használatával.

_metadata Oszlop

read_files _metadata fájlszintű metaadatokat tartalmazó oszlopot tesz elérhetővé. Ez az oszlop nem szerepel az eredmények között SELECT * , ezért kifejezetten ki kell jelölni. A következő mezőket tartalmazza:

szakterület Típus Leírás
file_path STRING A forrásfájl teljes elérési útja.
file_name STRING A forrásfájl neve.
file_size LONG A forrásfájl mérete bájtban.
file_modification_time TIMESTAMP A forrásfájl utolsó módosítási ideje.
file_block_start LONG Az éppen beolvasott fájl blokkjának kezdete.
file_block_length LONG Az éppen beolvasott fájl blokkjának hossza.

Az eredményekbe való belefoglaláshoz _metadata válassza ki explicit módon:

SELECT * EXCEPT (content), _metadata
FROM read_files('/Volumes/my_catalog/my_schema/my_volume', format => 'binaryFile');

Fájlkeresés

read_files egy adott könyvtárban beolvashat egy adott fájlt vagy olvashat fájlokat. read_files rekurzívan felderíti a megadott könyvtárban lévő összes fájlt, kivéve, ha egy glob van megadva, amely arra utasítja read_files , hogy egy adott könyvtármintába ismétlődjön.

Könyvtárak vagy fájlok szűrése glob mintázatokkal

A Glob-minták a címtárak és fájlok szűréséhez használhatók, ha az elérési úton meg van adva.

Minta Leírás
? Megfelel bármely egyetlen karakternek
* Nulla vagy több karaktert illeszt
[abc] Egyetlen karakternek felel meg a(z) {a,b,c} karakterkészletből.
[a-z] Egyetlen karaktert illeszt az {a…z} karaktertartományból.
[^a] Olyan egyetlen karaktert jelöl, amely nem a(z) {a} karakterkészlethez vagy tartományhoz tartozik. Vegye figyelembe, hogy a ^ karakternek közvetlenül a nyitó zárójel jobb oldalán kell lennie.
{ab,cd} Megfelel a(z) {ab, cd} sztringkészlet egyik sztringjének.
{ab,c{de, fh}} Megfelel a(z) {ab, cde, cfh} sztringhalmazból származó sztringnek.

read_files Az Automatikus betöltő szigorú globberjét használja a globokkal rendelkező fájlok felderítésekor. Ezt a useStrictGlobber beállítás konfigurálja. Ha a szigorú globber ki van kapcsolva, a záró perjelek (/) elhagyásra kerülnek, és egy csillagminta, például /*/, képes több könyvtár felderítésére. A viselkedésbeli különbséget az alábbi példákban tekintheti meg.

Minta Fájl elérési útja Szigorú globber (mintázatillesztés) le van tiltva Szigorú globber módszer engedélyezve
/a/b /a/b/c/file.txt Igen Igen
/a/b /a/b_dir/c/file.txt Nem Nem
/a/b /a/b.txt Nem Nem
/a/b/ /a/b.txt Nem Nem
/a/*/c/ /a/b/c/file.txt Igen Igen
/a/*/c/ /a/b/c/d/file.txt Igen Igen
/a/*/d/ /a/b/c/d/file.txt Igen Nem
/a/*/c/ /a/b/x/y/c/file.txt Igen Nem
/a/*/c /a/b/c_file.txt Igen Nem
/a/*/c/ /a/b/c_file.txt Igen Nem
/a/*/c /a/b/cookie/file.txt Igen Nem
/a/b* /a/b.txt Igen Igen
/a/b* /a/b/file.txt Igen Igen
/a/{0.txt,1.txt} /a/0.txt Igen Igen
/a/*/{0.txt,1.txt} /a/0.txt Nem Nem
/a/b/[cde-h]/i/ /a/b/c/i/file.txt Igen Igen

Sémakövetkeztetés

A fájlok sémája kifejezetten megadható a read_files számára a schema opcióval. Ha a séma nincs megadva, read_files egy egyesített sémát kísérel meg kikövetkeztetni a felderített fájlok között, ami megköveteli az összes fájl olvasását, hacsak nem használ LIMIT utasítást. Még ha LIMIT lekérdezést is használ, a szükségesnél nagyobb fájlkészletet lehet olvasni az adatok reprezentatívabb sémájának visszaadásához. A Databricks automatikusan hozzáad egy utasítást LIMIT a SELECT jegyzetfüzetekben lévő lekérdezésekhez és az SQL-szerkesztőhöz, ha egy felhasználó nem adott meg egyet.

A schemaHints beállítással kijavíthatja a következtetett séma részhalmazait. További részletekért lásd sémakövetkeztetés felülbírálása sématippekkel.

Az A rescuedDataColumn alapértelmezés szerint a sémával nem egyező adatok mentéséhez van megadva. Lásd Mi a mentett adatoszlop? további részletekért. A rescuedDataColumn elemet elhagyhatja a schemaEvolutionMode => 'none' beállításával.

Partícióséma következtetése

képes következtetni read_files, ha a fájlokat Hive-stílusú, particionált könyvtárakban tárolják, azaz . Ha schema van megadva, a felderített partícióoszlopok a schemamegadott típusokat használják. Ha a partícióoszlopok nem részei a megadott schema, a rendszer figyelmen kívül hagyja a következtetett partícióoszlopokat.

Ha a partíciós sémában és az adatoszlopokban is létezik oszlop, akkor a rendszer a partíció értékéből beolvasott értéket használja az adatérték helyett. Ha figyelmen kívül szeretné hagyni a könyvtárból érkező értékeket, és az adatoszlopot szeretné használni, a partícióoszlopok listáját vesszővel tagolt listában is megadhatja a partitionColumns beállítással.

A partitionColumns lehetőséggel arra is utasíthatja read_files, hogy mely felderített oszlopok szerepeljenek a végleges következtetési sémában. Az üres sztring megadása figyelmen kívül hagyja az összes partícióoszlopot.

A schemaHints lehetőség a partícióoszlopok kikövetkesedő sémájának felülbírálásához is használható.

A TEXT és a BINARYFILE formátumok rögzített sémával rendelkeznek, de read_files lehetőség szerint megpróbál particionálást is kikövetkeztetni ezekhez a formátumokhoz.

Hitelesítés felhőbeli tároláshoz

read_files A felhőtárhelyet a Unity Catalog külső helyein keresztül érheti el. Rendelkeznie kell az READ FILES olvasni kívánt fájlokat tartalmazó külső helyen található jogosultsággal. Lásd : Csatlakozás a felhőobjektum-tárolóhoz a Unity Catalog használatával.

Használat streamelési táblákban

read_files a streamelési táblákban fájlok Delta Lake-be való betöltésére használható. read_files kihasználja az Auto Loadert, amikor egy streamelési táblalekérdezésben használják. A(z) STREAM kulcsszót a read_files-vel kell használnia. További részletekért lásd: Mi az automatikus betöltő?

Streamlekérdezésben való használat esetén read_files az adatok mintáját használja a séma következtetéséhez, és továbbfejlesztheti a sémát, miközben több adatot dolgoz fel. További részletekért lásd a Sémakövetkeztetés és -fejlődés konfigurálása az Automatikus betöltőben.

Beállítások

Alapszintű beállítások

Lehetőség
format
Típus: String
Az adatfájl formátuma a forrásútvonalon. Automatikus következtetés, ha nincs megadva. Az engedélyezett értékek a következők:

Alapértelmezett érték: Nincs
schema
Típus: String
Az elolvasni kívánt fájlok sémája. Adjon meg például egy sémasztringet DDL formátumban 'id int, ts timestamp, event string'. Ha a séma nincs megadva, read_files egy egyesített sémát próbál kikövetkeztetni a felderített fájlok között.
Alapértelmezett érték: Nincs
inferColumnTypes
Típus: Boolean
Pontos oszloptípusok következtetése a sémakövetkeztetés használatakor. Alapértelmezés szerint az oszlopok a JSON- és CSV-adatkészletekből kerülnek meghatározásra. További részletekért lásd sémakövető. Vegye figyelembe, hogy ez az Auto Loader alapértelmezett ellentéte.
Alapértelmezett érték: true
partitionColumns
Típus: String
A hive stílusú partícióoszlopok vesszővel tagolt listája, amelyet a fájlok könyvtárszerkezetéből szeretne kikövetkezve következtetni. A hive stílusú partícióoszlopok kulcs-érték párok, amelyek egyenlőségjellel vannak kombinálva, például
<base-path>/a=x/b=1/c=y/file.format. Ebben a példában a partícióoszlopok a, bés c. Alapértelmezés szerint ezek az oszlopok automatikusan hozzáadódnak a sémához, ha sémakövetkeztetést használ, és megadja a <base-path> az adatok betöltéséhez. Ha sémát ad meg, az Automatikus betöltő elvárja, hogy ezek az oszlopok szerepeljenek a sémában. Ha nem szeretné, hogy ezek az oszlopok a séma részeként jelenjenek meg, megadhatja, hogy "" figyelmen kívül hagyja ezeket az oszlopokat. Emellett akkor is használhatja ezt a lehetőséget, ha azt szeretné, hogy az oszlopok összetett címtárstruktúrákban következtethessenek a fájl elérési útjára, például az alábbi példában:
<base-path>/year=2022/week=1/file1.csv
<base-path>/year=2022/month=2/day=3/file2.csv
<base-path>/year=2022/month=2/day=4/file3.csv
A cloudFiles.partitionColumns megadása year,month,day-ként visszatérítést eredményez
year=2022 file1.csv, de a month és a day oszlopok null lesznek.
month és day megfelelően lesz elemezve a file2.csv és file3.csv számára.
Alapértelmezett érték: Nincs
schemaHints
Típus: String
Az Auto Loader számára megadott sémainformációk a séma felderítése során. További részletekért tekintse meg sématippeket.
Alapértelmezett érték: Nincs
useStrictGlobber
Típus: Boolean
Annak eldöntése, hogy használják-e a szigorú globbert, ami megfelel az Apache Spark más fájlforrásainak alapértelmezett globbing viselkedésének. További részletekért lásd a gyakori adatbetöltési mintákat . A Databricks Runtime 12.2 LTS-ben és újabb verziókban érhető el. Felhívjuk figyelmét, hogy ez az Auto Loader alapértelmezett beállításának az ellentéte.
Alapértelmezett érték: true

Általános beállítások

Az alábbi beállítások az összes fájlformátumra vonatkoznak.

Lehetőség
ignoreCorruptFiles
Típus: Boolean
A sérült fájlok figyelmen kívül hagyása. Ha igaz, a Spark-feladatok továbbra is futnak, amikor sérült fájlokba ütköznek, és az olvasott tartalom továbbra is vissza lesz adva. A COPY INTOkihagyott sérült fájlokat a Delta Lake-előzmények oszlopában operationMetrics látható módon numSkippedCorruptFiles figyelheti meg. A Databricks Runtime 11.3 LTS-ben és újabb verziókban érhető el.
Alapértelmezett érték: false
ignoreMissingFiles
Típus: Boolean
A hiányzó fájlok figyelmen kívül hagyása. Ha igaz, a Spark-feladatok továbbra is futnak, amikor hiányzó fájlokkal találkoznak, és az olvasott tartalom továbbra is vissza lesz adva. A Databricks Runtime 11.3 LTS-ben és újabb verziókban érhető el.
Alapértelmezett érték: false az Auto Loaderhez, és true a COPY INTO-höz (örökölt)
modifiedAfter
Típus: Timestamp String, például 2021-01-01 00:00:00.000000 UTC+0
Nem kötelező időbélyeg használata szűrőként, amely lehetővé teszi, hogy csak azok a fájlok kerüljenek betöltésre, amelyek módosítási időbélyege a megadott időbélyeg utáni.
Alapértelmezett érték: Nincs
modifiedBefore
Típus: Timestamp String, például 2021-01-01 00:00:00.000000 UTC+0
Opcionális időbélyeg mint szűrő, kizárólag olyan fájlok betöltésére, amelyek módosítási időbélyege a megadott időbélyeg előtt van.
Alapértelmezett érték: Nincs
pathGlobFilter vagy fileNamePattern
Típus: String
Egy lehetséges glob minta, amely lehetővé teszi a fájlok kiválasztását. Egyenértékű valamivel
PATTERN COPY INTO-ben (örökölt). fileNamePattern használható a következőben read_files: .
Alapértelmezett érték: Nincs
recursiveFileLookup
Típus: Boolean
Ez a beállítás akkor is megkeresi a beágyazott könyvtárakat, ha a nevük nem követi a partícióelnevezési sémát, például date=2019-07-01.
Alapértelmezett érték: false

JSON beállítások

Lehetőség
allowBackslashEscapingAnyCharacter
Típus: Boolean
Hogy engedélyezi-e a fordított perjeleket, hogy elkerüljenek minden karaktert, amely sikerrel jár. Ha nincs engedélyezve, csak azok a karakterek escape-elhetők, amelyeket a JSON-specifikáció kifejezetten felsorol.
Alapértelmezett érték: false
allowComments
Típus: Boolean
Engedélyezi-e Java, C és C++ stílusú megjegyzések ('/', '*' és '//' fajták) használatát az elemzési tartalomban, vagy sem.
Alapértelmezett érték: false
allowNonNumericNumbers
Típus: Boolean
Engedélyezze-e a nem szám (NaN) tokenek halmazát érvényes lebegőpontos számértékekként?
Alapértelmezett érték: true
allowNumericLeadingZeros
Típus: Boolean
Annak engedélyezése, hogy az integrál számok további (figyelmen kívül hagyható) nullákkal kezdődjenek (például 000001).
Alapértelmezett érték: false
allowSingleQuotes
Típus: Boolean
Engedélyezi-e az önálló idézőjelek (aposztróf, karakter '\') használatát sztringek (nevek és sztringértékek) idézéséhez.
Alapértelmezett érték: true
allowUnquotedControlChars
Típus: Boolean
Engedélyezi-e, hogy a JSON-sztringek használhatatlan vezérlőelem-karaktereket (32-nél kisebb értékű ASCII-karaktereket, beleértve a tabulátor- és vonalcsatorna-karaktereket) tartalmazzanak-e, vagy sem.
Alapértelmezett érték: false
allowUnquotedFieldNames
Típus: Boolean
Engedélyezi-e a nem kvótált mezőnevek használatát (amelyeket a JavaScript engedélyez, de a JSON-specifikáció nem).
Alapértelmezett érték: false
badRecordsPath
Típus: String
A rossz JSON-rekordok adatainak rögzítésére szolgáló fájlok tárolásának elérési útja.
Fájlalapú adatforrásban a badRecordsPath opció használatának a következő korlátai vannak:
  • Ez nem tranzakciós, és inkonzisztens eredményekhez vezethet.
  • Az átmeneti hibák hibákként lesznek kezelve.

Alapértelmezett érték: Nincs
columnNameOfCorruptRecord
Típus: String
A hibásan formázott és nem elemezhető rekordok tárolására szolgáló oszlop. Ha az elemzéshez használt modeDROPMALFORMEDértékre van állítva, ez az oszlop üres lesz.
Alapértelmezett érték: _corrupt_record
dateFormat
Típus: String
Dátumsztringek elemzésének formátuma.
Alapértelmezett érték: yyyy-MM-dd
dropFieldIfAllNull
Típus: Boolean
Figyelmen kívül hagyja-e az összes null értékű oszlopot, vagy üres tömböt és szerkezetet a sémakövetőség során.
Alapértelmezett érték: false
encoding vagy charset
Típus: String
A JSON-fájlok kódolásának neve. A java.nio.charset.Charset-n találja a lehetőségek listáját. Nem használható UTF-16 és UTF-32 mikor multiline van true.
Alapértelmezett érték: UTF-8
inferTimestamp
Típus: Boolean
Megpróbáljuk-e az időbélyeg-sztringeket következtetni mint egy TimestampType. Amikor be van állítva
trueesetén a sémakövetkeztetés jelentősen tovább tarthat. Az automatikus betöltő használatához engedélyeznie kell a cloudFiles.inferColumnTypes-t.
Alapértelmezett érték: false
lineSep
Típus: String
Két egymást követő JSON-rekord közötti karakterlánc.
Alapértelmezett érték: Nincs, amely magában foglalja a \r, \r\n, és \n.
locale
Típus: String
Egy java.util.Locale azonosító. Befolyásolja az alapértelmezett dátumot, időbélyeget és decimális elemzést a JSON-ban.
Alapértelmezett érték: US
mode
Típus: String
Parszolási mód a hibásan formázott rekordok kezelésére. Az egyik PERMISSIVE, DROPMALFORMED vagy FAILFAST.
Alapértelmezett érték: PERMISSIVE
multiLine
Típus: Boolean
Azt jelzi, hogy a JSON-rekordok több sorra is kiterjednek-e.
Alapértelmezett érték: false
prefersDecimal
Típus: Boolean
Amikor lehetséges, megpróbálja a karakterláncokat lebegőpontos vagy double típus helyett kikövetkeztetni DecimalType formában. A sémakövetkeztetést is használnia kell, akár úgy, hogy engedélyezi
inferSchema vagy cloudFiles.inferColumnTypes automatikus betöltő használatával.
Alapértelmezett érték: false
primitivesAsString
Típus: Boolean
Vajon kövessük-e az olyan primitív típusokat, mint a számok és a logikai értékek StringType formában?
Alapértelmezett érték: false
readerCaseSensitive
Típus: Boolean
A nagybetű érzékenység viselkedését határozza meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse el az adatoszlopokat, amelyeknek a neve betűméret alapján eltér a sémától; ellenkező esetben kis- és nagybetűkre nem érzékeny módon olvassa be az adatokat. Elérhető a Databricks Runtime-ban
13.3 és magasabb.
Alapértelmezett érték: true
rescuedDataColumn
Típus: String
Összegyűjtsük-e az adattípus-eltérés vagy a sémaeltérés (beleértve az oszlopok írásmódját is) miatt nem elemezhető összes adatot egy külön oszlopba. Ez az oszlop alapértelmezés szerint az Automatikus betöltő használata esetén jelenik meg. További részletekért tekintse meg Mi a mentett adatoszlop?.
COPY INTO (örökölt) nem támogatja a mentett adatoszlopot, mert nem állíthatja be manuálisan a sémát COPY INTOhasználatával. A Databricks az Automatikus betöltő használatát javasolja a legtöbb betöltési forgatókönyvhöz.
Alapértelmezett érték: Nincs
singleVariantColumn
Típus: String
Annak eldöntése, hogy betöltsük-e a teljes JSON dokumentumot, elemezve azt egyetlen Variant oszlopba, amelynek neve az adott karakterlánc legyen. Ha kikapcsolt állapotban van, a JSON-mezők a saját oszlopaikba töltődnek be.
Alapértelmezett érték: Nincs
timestampFormat
Típus: String
Az időbélyeg-sztringek elemzésének formátuma.
Alapértelmezett érték: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
Típus: String
Az java.time.ZoneId időbélyegek és dátumok elemzésekor használandó.
Alapértelmezett érték: Nincs

CSV beállítások

Lehetőség
badRecordsPath
Típus: String
A rossz CSV-rekordok adatainak rögzítésére szolgáló fájlok tárolásának elérési útja.
Alapértelmezett érték: Nincs
charToEscapeQuoteEscaping
Típus: Char
Az idézőjelek megmenekítésére használt karakter, amely megmenekülési karakterként szolgál. Például a következő rekordhoz: [ " a\\", b ]
  • Ha a feloldandó '\' karakter nincs meghatározva, a rekord nem lesz elemezve. Az elemző felolvassa a karaktereket, [a],[\],["],[,],[ ],[b] és hibát jelez, mert nem talál záró idézőjelet.
  • Ha a '\' feloldó karakter '\'ként van definiálva, a rekord 2 értékkel lesz beolvasva: [a\] és [b].

Alapértelmezett érték: '\0'
columnNameOfCorruptRecord
Támogatja az automatikus betöltőt. A COPY INTO (örökölt) esetében nem támogatott.
Típus: String
A hibásan formázott és nem elemezhető rekordok tárolására szolgáló oszlop. Ha az elemzéshez használt modeDROPMALFORMEDértékre van állítva, ez az oszlop üres lesz.
Alapértelmezett érték: _corrupt_record
comment
Típus: Char
Meghatározza azt a karaktert, amely egy sor megjegyzését jelöli, amikor egy szövegsor elején található. A megjegyzés-kihagyás letiltásához használd a '\0' elemet.
Alapértelmezett érték: '\u0000'
dateFormat
Típus: String
Dátumsztringek elemzésének formátuma.
Alapértelmezett érték: yyyy-MM-dd
emptyValue
Típus: String
Az üres érték karakterláncának ábrázolása.
Alapértelmezett érték: ""
encoding vagy charset
Típus: String
A CSV-fájlok kódolásának neve. A java.nio.charset.Charset alatt találja a lehetőségek listáját. UTF-16 és UTF-32 nem használható, ha multiline van true.
Alapértelmezett érték: UTF-8
enforceSchema
Típus: Boolean
Azt határozza meg, hogy a megadott vagy a következtetett sémát kényszerítve alkalmazza-e a CSV-fájlokra. Ha a beállítás engedélyezve van, a CSV-fájlok fejlécei figyelmen kívül lesznek hagyva. Ez a beállítás alapértelmezés szerint figyelmen kívül lesz hagyva az adatok mentésére és a sémafejlődés engedélyezésére használt Automatikus betöltő használatakor.
Alapértelmezett érték: true
escape
Típus: Char
Az adatok elemzésekor használandó escape karakter.
Alapértelmezett érték: '\'
header
Típus: Boolean
Hogy a CSV-fájlok tartalmaznak-e fejlécet. Az automatikus betöltő feltételezi, hogy a fájlok fejlécekkel rendelkeznek a séma következtetésekor.
Alapértelmezett érték: false
ignoreLeadingWhiteSpace
Típus: Boolean
Az egyes feldolgozott értékek elején lévő szóközök figyelmen kívül hagyása.
Alapértelmezett érték: false
ignoreTrailingWhiteSpace
Típus: Boolean
Annak meghatározása, hogy figyelmen kívül hagyja-e az elemzett értékek végén lévő szóközöket.
Alapértelmezett érték: false
inferSchema
Típus: Boolean
Az elemzett CSV-rekordok adattípusainak kikövetkeztetésére vagy annak feltételezésére, hogy az összes oszlop típusát StringType-nak tekintsük. További adatátadást igényel, ha trueértékre van állítva. Helyette használja az Automatikus betöltőhöz a cloudFiles.inferColumnTypes.
Alapértelmezett érték: false
lineSep
Típus: String
Két egymást követő CSV-nyilvántartás közötti karakterlánc.
Alapértelmezett érték: Nincs, amely magában foglalja a \r, \r\n, és \n.
locale
Típus: String
Egy java.util.Locale azonosító. Befolyásolja az alapértelmezett dátumot, időbélyeget és decimális elemzést a CSV-ben.
Alapértelmezett érték: US
maxCharsPerColumn
Típus: Int
Az elemzéshez egy értékből várt karakterek maximális száma. A memóriahibák elkerülése érdekében használható. Alapértelmezett érték, -1ami azt jelenti, hogy korlátlan.
Alapértelmezett érték: -1
maxColumns
Típus: Int
Az a korlát, hogy egy rekord hány oszlopot tartalmazhat.
Alapértelmezett érték: 20480
mergeSchema
Típus: Boolean
Azt határozza meg, hogy a sémát több fájlra kívánja-e következtetni, és hogy egyesítse-e az egyes fájlok sémáját. Alapértelmezés szerint engedélyezve van az automatikus betöltőnél a séma következtetésekor.
Alapértelmezett érték: false
mode
Típus: String
Parszolási mód a hibásan formázott rekordok kezelésére. Az egyik, 'PERMISSIVE'
'DROPMALFORMED' és 'FAILFAST'.
Alapértelmezett érték: PERMISSIVE
multiLine
Típus: Boolean
A CSV-rekordok kiterjednek-e több sorra.
Alapértelmezett érték: false
nanValue
Típus: String
A nem számérték (NaN) szöveges megjelenítése a FloatType és DoubleType oszlopok elemzésekor.
Alapértelmezett érték: "NaN"
negativeInf
Típus: String
A negatív végtelen szöveges ábrázolása FloatType vagy DoubleType oszlopok elemzésekor.
Alapértelmezett érték: "-Inf"
nullValue
Típus: String
A nulla érték szöveges ábrázolása.
Alapértelmezett érték: ""
parserCaseSensitive (elavult)
Típus: Boolean
Fájlok olvasása közben, hogy az a fejlécben deklarált oszlopokat esetérzékenyen igazítsa-e össze a sémával. Ez alapértelmezés szerint az true Automatikus betöltő esetében van. Ha engedélyezve van, a rescuedDataColumn megőrzi a kis- és nagybetűk közötti különbséggel rendelkező oszlopokat. Ennek a beállításnak a használata elavult, és helyette a(z) readerCaseSensitive javasolt.
Alapértelmezett érték: false
positiveInf
Típus: String
A pozitív végtelen karakterlánc ábrázolása a FloatType vagy DoubleType oszlopok elemzésekor.
Alapértelmezett érték: "Inf"
preferDate
Típus: Boolean
A karaktersorozatokat időbélyeg helyett dátumként próbálja kikövetkeztetni, ha lehetséges. Használnia kell a sémakövetkeztetést, akár a inferSchema engedélyezésével, akár más módon.
cloudFiles.inferColumnTypes automatikus betöltővel.
Alapértelmezett érték: true
quote
Típus: Char
Az olyan értékekre való meneküléshez használt karakter, ahol a mezőelválasztó az érték része.
Alapértelmezett érték: "
readerCaseSensitive
Típus: Boolean
A nagybetű érzékenység viselkedését határozza meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse el az adatoszlopokat, amelyeknek a neve betűméret alapján eltér a sémától; ellenkező esetben kis- és nagybetűkre nem érzékeny módon olvassa be az adatokat.
Alapértelmezett érték: true
rescuedDataColumn
Típus: String
Hogy összegyűjtse-e az összes olyan adatot, amely nem elemezhető a következő miatt: adattípus-eltérés, és sémaeltérés (beleértve az oszlopházat is) egy külön oszlopra. Ez az oszlop alapértelmezés szerint az Automatikus betöltő használata esetén jelenik meg. További részletekért tekintse meg Mi a mentett adatoszlop?.
COPY INTO (örökölt) nem támogatja a mentett adatoszlopot, mert nem állíthatja be manuálisan a sémát COPY INTOhasználatával. A Databricks az Automatikus betöltő használatát javasolja a legtöbb betöltési forgatókönyvhöz.
Alapértelmezett érték: Nincs
sep vagy delimiter
Típus: String
Az oszlopok közötti elválasztó szöveg.
Alapértelmezett érték: ","
skipRows
Típus: Int
A CSV-fájl elejéről figyelmen kívül hagyandó sorok száma (beleértve a megjegyzésben szereplő és az üres sorokat is). Ha header igaz, akkor a fejléc lesz az első nem kihagyott és nem megjegyzetelt sor.
Alapértelmezett érték: 0
timestampFormat
Típus: String
Az időbélyeg-sztringek elemzésének formátuma.
Alapértelmezett érték: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone
Típus: String
Az java.time.ZoneId időbélyegek és dátumok elemzésekor használandó.
Alapértelmezett érték: Nincs
unescapedQuoteHandling
Típus: String
A lezáratlan idézőjelek kezelésének stratégiája. Engedélyezett beállítások:
  • STOP_AT_CLOSING_QUOTE: Ha a bemenetben nem definiált idézőjelek találhatók, halmozza fel az idézőjelet, és folytassa az érték idézőjelként való elemzését, amíg meg nem talál egy záró idézőjelet.
  • BACK_TO_DELIMITER: Ha nem beágyazott idézőjelek találhatók a bemenetben, vegye figyelembe az értéket nem kvótált értékként. Így az elemző összegyűjti az aktuális elemzési érték összes karakterét, amíg meg nem találja az általa sep definiált elválasztó karaktert. Ha az érték nem tartalmaz elválasztójelet, az elemző a karaktereket addig halmozza a bemenetből, amíg elválasztó vagy vonalvégződés nem található.
  • STOP_AT_DELIMITER: Ha nem beágyazott idézőjelek találhatók a bemenetben, vegye figyelembe az értéket nem kvótált értékként. Ezzel az elemző összes karaktert halmoz fel, amíg a megadott elválasztó sepkarakter vagy egy sorvégződés nem található a bemenetben.
  • SKIP_VALUE: Ha a bemenetben kitörölhetetlen idézőjelek találhatók, a program kihagyja az adott értékhez elemezett tartalmat (amíg a következő elválasztó nem található), és a nullValue megadott érték lesz létrehozva.
  • RAISE_ERROR: Ha a bemenetben zárójelek nélküli idézőjelek találhatók, a
    TextParsingException ki lesz dobva.

Alapértelmezett érték: STOP_AT_DELIMITER

XML beállítások

Lehetőség Leírás Hatókör
rowTag A sorként kezelendő XML-fájlok sorcímkéje. A példa XML-fájljában a <books> <book><book>...<books> megfelelő értéke a book. Ez egy kötelező beállítás. beolvasás
samplingRatio A sémakövetkeztetéshez használt sorok töredékét határozza meg. Az XML beépített függvényei figyelmen kívül hagyják ezt a beállítást. Alapértelmezett: 1.0. beolvasás
excludeAttribute Az elemek attribútumainak kizárása. Alapértelmezett: false. beolvasás
mode A sérült rekordok elemzés közbeni kezelésére szolgáló mód.
PERMISSIVE: Sérült rekordok esetén a hibásan formázott sztringet egy, az által columnNameOfCorruptRecordkonfigurált mezőbe helyezi, és a hibásan formázott mezőket a következőre nullállítja be: . A sérült rekordok megőrzéséhez beállíthat egy string nevű columnNameOfCorruptRecord típusú mezőt egy felhasználó által definiált sémában. Ha egy séma nem rendelkezik a mezővel, a rendszer az elemzés során elveti a sérült rekordokat. Séma következtetésekor az elemző implicit módon hozzáad egy columnNameOfCorruptRecord mezőt egy kimeneti sémához.
DROPMALFORMED: Figyelmen kívül hagyja a sérült rekordokat. Ez a mód nem támogatott a beépített XML-függvényekhez.
FAILFAST: Kivételt dob, amikor az elemző sérült rekordokkal találkozik.
beolvasás
inferSchema Ha true, megpróbál egy megfelelő típust kikövetkeztetni minden eredményként kapott DataFrame-oszlophoz. Ha false, az összes eredményként kapott oszlop string típusú. Alapértelmezett:
true. Az XML beépített függvényei figyelmen kívül hagyják ezt a beállítást.
beolvasás
columnNameOfCorruptRecord Lehetővé teszi az új mező átnevezését, amely egy hibásan formázott karakterláncot tartalmaz.
PERMISSIVE üzemmód. Alapértelmezett: spark.sql.columnNameOfCorruptRecord.
beolvasás
attributePrefix Az attribútumok előtagja, amely megkülönbözteti az attribútumokat az elemektől. Ez lesz a mezőnevek előtagja. Az alapértelmezett szint a _. Az XML olvasásához üres lehet, íráshoz azonban nem. olvasás, írás
valueTag Az attribútum(ok) vagy gyermekelem(ek) elemekkel is rendelkező elemek karakteradataihoz használt címke. A felhasználó megadhatja a valueTag mezőt a sémában, vagy automatikusan hozzáadja azt a sémakövetkeztetés során, ha a karakteradatok más elemekkel vagy attribútumokkal rendelkező elemekben vannak jelen. Alapértelmezett: _VALUE olvasás,írás
encoding Olvasáshoz az XML-fájlokat a megadott kódolási típus szerint dekódolja. Íráshoz a mentett XML-fájlok kódolását (karakterkészletét) adja meg. Az XML beépített függvényei figyelmen kívül hagyják ezt a beállítást. Alapértelmezett: UTF-8. olvasás, írás
ignoreSurroundingSpaces Azt határozza meg, hogy a fehér szóközöket kihagyja-e az olvasott értékekből. Alapértelmezett: true. A rendszer figyelmen kívül hagyja a csak üres karakteradatot. beolvasás
rowValidationXSDPath Egy opcionális XSD-fájl elérési útja, amely az EGYES sorok XML-jének ellenőrzésére szolgál. A nem érvényesíthető sorok elemzési hibákként lesznek kezelve a fenti módon. Az XSD nem befolyásolja sem a megadott, sem a kikövetkeztetett sémát. beolvasás
ignoreNamespace Ha truea névterek XML-elemeken és attribútumokon lévő előtagjai figyelmen kívül lesznek hagyva. A <abc:author> és <def:author> címkéket például úgy kezeli a rendszer, mintha mindkettő csak <author> lenne. A névtereket nem lehet figyelmen kívül hagyni a rowTag elemnél, csak a gyermekeit lehet olvasni. Az XML-elemzés akkor sem névtérérzékeny, ha false. Alapértelmezett: false. beolvasás
timestampFormat Egyéni időbélyegzés formátuma, amely követi a datetime mintát. Ez timestamp típusra vonatkozik. Alapértelmezett: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. olvasás, írás
timestampNTZFormat Az időzóna nélküli időpont egyéni formátuma, amely a dátum/idő minta formátumát követi. Ez a TimestampNTZType típusra vonatkozik. Alapértelmezett:
yyyy-MM-dd'T'HH:mm:ss[.SSS]
olvasás, írás
dateFormat Az datetime mintát követő egyéni dátumformátum-karakterlánc. Ez a dátumtípusra vonatkozik. Alapértelmezett: yyyy-MM-dd. olvasás, írás
locale Egy helyi beállítást nyelvi címkeként állít be az IETF BCP 47 formátumban. Például locale a dátumok és időbélyegek elemzésekor használatos. Alapértelmezett: en-US. beolvasás
rootTag Az XML-fájlok gyökércímkéje. Például, a <books> <book><book>...</books> esetében a megfelelő érték a books. Az alapszintű attribútumokat egy olyan érték megadásával adhatja meg, mint a books foo="bar". Alapértelmezett: ROWS. ír
declaration Az összes kimeneti XML-fájl elején írandó XML-deklaráció tartalma, a rootTag előtt. Például a foo értéke esetén a <?xml foo?> lesz írva. Állítson be egy üres karakterláncot a blokkoláshoz. Alapértelmezett: version="1.0"
encoding="UTF-8" standalone="yes".
ír
arrayElementName Annak az XML-elemnek a neve, amely egy tömbértékű oszlop minden elemét magában foglal íráskor. Alapértelmezett: item. ír
nullValue A null érték karakterlánc ábrázolását állítja be. Alapértelmezett: karakterlánc null. Ebben az esetben nullaz elemző nem ír attribútumokat és elemeket a mezőkhöz. olvasás, írás
compression Fájlba mentéskor használandó tömörítési kód. Ez lehet az egyik ismert kis- és nagybetűket figyelmen kívül hagyó rövid név (none, bzip2, gzip, lz4 és snappy)
deflate). Az XML beépített függvényei figyelmen kívül hagyják ezt a beállítást. Alapértelmezett: none.
ír
validateName Ha igaz, hibát jelez az XML-elemnév-érvényesítési hiba esetén. Az SQL-mezőneveknek például lehetnek szóközei, de az XML-elemnevek nem. Alapértelmezett:
true.
ír
readerCaseSensitive Meghatározza a kis- és nagybetű különbségekre való érzékenységi viselkedését, ha a rescuedDataColumn engedélyezve van. Ha igaz, mentse el az adatoszlopokat, amelyeknek a neve betűméret alapján eltér a sémától; ellenkező esetben kis- és nagybetűkre nem érzékeny módon olvassa be az adatokat. Alapértelmezett: true. beolvasás
rescuedDataColumn Hogy összegyűjtse-e az összes olyan adatot, amelyet nem lehet elemezni az adattípus eltérése és a sémaeltérés miatt (beleértve az oszlopházat is) egy külön oszlopra. Ez az oszlop alapértelmezés szerint az Automatikus betöltő használata esetén jelenik meg. További információ: Mi a mentett adatoszlop?.
COPY INTO (örökölt) nem támogatja a mentett adatoszlopot, mert nem állíthatja be manuálisan a sémát COPY INTOhasználatával. A Databricks az Automatikus betöltő használatát javasolja a legtöbb betöltési forgatókönyvhöz.
Alapértelmezett: Nincs.
beolvasás
singleVariantColumn Egyetlen változatú oszlop nevét adja meg. Ha ez a beállítás be van adva az olvasáshoz, a teljes XML-rekordot elemezze egyetlen Variant oszlopba az oszlop neveként megadott beállítási sztringértékkel. Ha ez a beállítás meg van adva íráshoz, írja be az egyetlen Variant oszlop értékét XML-fájlokba. Alapértelmezett: none. olvasás, írás

PARQUET beállítások

Lehetőség
datetimeRebaseMode
Típus: String
Szabályozza a DÁTUM és IDŐBÉLYEG értékek átalakítását a Julián és proleptikus Gergely-naptárak között. Engedélyezett értékek: EXCEPTION, LEGACYés
CORRECTED.
Alapértelmezett érték: LEGACY
int96RebaseMode
Típus: String
Az INT96 időbélyeg értékeinek alaphelyzetbe állítását szabályozza a Julianus és a Proleptikus Gregorián naptárak között. Engedélyezett értékek: EXCEPTION, LEGACYés
CORRECTED.
Alapértelmezett érték: LEGACY
mergeSchema
Típus: Boolean
Azt határozza meg, hogy a sémát több fájlra kívánja-e következtetni, és hogy egyesítse-e az egyes fájlok sémáját.
Alapértelmezett érték: false
readerCaseSensitive
Típus: Boolean
A nagybetű érzékenység viselkedését határozza meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse el az adatoszlopokat, amelyeknek a neve betűméret alapján eltér a sémától; ellenkező esetben kis- és nagybetűkre nem érzékeny módon olvassa be az adatokat.
Alapértelmezett érték: true
rescuedDataColumn
Típus: String
Hogy összegyűjtse-e az összes olyan adatot, amely nem elemezhető a következő miatt: adattípus-eltérés, és sémaeltérés (beleértve az oszlopházat is) egy külön oszlopra. Ez az oszlop alapértelmezés szerint az Automatikus betöltő használata esetén jelenik meg. További részletekért tekintse meg Mi a mentett adatoszlop?.
COPY INTO (örökölt) nem támogatja a mentett adatoszlopot, mert nem állíthatja be manuálisan a sémát COPY INTOhasználatával. A Databricks az Automatikus betöltő használatát javasolja a legtöbb betöltési forgatókönyvhöz.
Alapértelmezett érték: Nincs

AVRO beállítások

Lehetőség
avroSchema
Típus: String
Nem kötelező séma, amelyet egy felhasználó Avro formátumban biztosít. Az Avro olvasásakor ez a beállítás beállítható egy kifejlett sémára, amely kompatibilis, de eltér a tényleges Avro-sémától. A deszerializálási séma összhangban lesz a kifejlődött sémával. Ha például egy új, alapértelmezett értékkel rendelkező oszlopot tartalmazó sémát állít be, az olvasási eredmény az új oszlopot is tartalmazza.
Alapértelmezett érték: Nincs
datetimeRebaseMode
Típus: String
Szabályozza a DÁTUM és IDŐBÉLYEG értékek átalakítását a Julián és proleptikus Gergely-naptárak között. Engedélyezett értékek: EXCEPTION, LEGACYés
CORRECTED.
Alapértelmezett érték: LEGACY
mergeSchema
Típus: Boolean
Azt határozza meg, hogy a sémát több fájlra kívánja-e következtetni, és hogy egyesítse-e az egyes fájlok sémáját.
mergeSchema az Avro nem lazítja az adattípusokat.
Alapértelmezett érték: false
readerCaseSensitive
Típus: Boolean
A nagybetű érzékenység viselkedését határozza meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse el az adatoszlopokat, amelyeknek a neve betűméret alapján eltér a sémától; ellenkező esetben kis- és nagybetűkre nem érzékeny módon olvassa be az adatokat.
Alapértelmezett érték: true
rescuedDataColumn
Típus: String
Hogy összegyűjtse-e az összes olyan adatot, amely nem elemezhető a következő miatt: adattípus-eltérés, és sémaeltérés (beleértve az oszlopházat is) egy külön oszlopra. Ez az oszlop alapértelmezés szerint az Automatikus betöltő használata esetén jelenik meg.
COPY INTO (örökölt) nem támogatja a mentett adatoszlopot, mert nem állíthatja be manuálisan a sémát COPY INTOhasználatával. A Databricks az Automatikus betöltő használatát javasolja a legtöbb betöltési forgatókönyvhöz.
További részletekért tekintse meg Mi a mentett adatoszlop?.
Alapértelmezett érték: Nincs

BINARYFILE beállítások

A bináris fájlok nem rendelkeznek további konfigurációs lehetőségekkel.

TEXT beállítások

Lehetőség
encoding
Típus: String
A SZÖVEG fájlsorelválasztó kódolásának neve. A lehetőségek listáját lásd java.nio.charset.Charset: .
Ez a beállítás nem befolyásolja a fájl tartalmát, és a tartalom as-ispontnál kerül beolvasásra.
Alapértelmezett érték: UTF-8
lineSep
Típus: String
Két egymást követő SZÖVEG rekord közötti karakterlánc.
Alapértelmezett érték: Nincs, amely lefedi a \r, \r\n és \n területeket.
wholeText
Típus: Boolean
Egy fájl egyetlen rekordként való beolvasása?
Alapértelmezett érték: false

ORC beállítások

Lehetőség
mergeSchema
Típus: Boolean
Azt határozza meg, hogy a sémát több fájlra kívánja-e következtetni, és hogy egyesítse-e az egyes fájlok sémáját.
Alapértelmezett érték: false

Streamelési lehetőségek

Ezek a beállítások akkor érvényesek, amikor a read_files egy streamelési táblában van használva vagy egy streaming lekérdezésen belül.

Lehetőség
allowOverwrites
Típus: Boolean
A felderítés után módosított fájlok újrafeldolgozása. A fájl legújabb elérhető verziója akkor lesz feldolgozva a frissítés során, ha az a legutóbbi sikeres frissítési lekérdezés kezdési időpontja óta módosult.
Alapértelmezett érték: false
includeExistingFiles
Típus: Boolean
Akár meglévő fájlokat szeretne felvenni a streamfeldolgozási bemeneti útvonalba, akár csak a kezdeti beállítás után érkező új fájlok feldolgozását. Ezt a beállítást csak akkor értékeli ki a rendszer, ha először indít el streamet. A beállítás módosítása a stream újraindítása után nincs hatással.
Alapértelmezett érték: true
maxBytesPerTrigger
Típus: Byte String
Az összes eseményindítóban feldolgozandó új bájtok maximális száma. Megadhat egy bájtsztringet, például 10g, hogy az egyes mikrobatcheket 10 GB-ra korlátozza. Ez egy laza maximum. Ha mindegyik fájl 3 GB, Azure Databricks 12 GB-ot dolgoz fel egy mikrobatchben. Ha maxFilesPerTrigger együtt használják, Azure Databricks a maxFilesPerTrigger vagy maxBytesPerTrigger alsó korlátját használja fel, attól függően, hogy melyiket éri el először.
Megjegyzés: A kiszolgáló nélküli SQL-raktárakon létrehozott streamtáblák esetében ezt a lehetőséget és maxFilesPerTrigger nem szabad úgy beállítani, hogy dinamikus belépésvezérlést használjon, amely a számítási feladatok mérete és a kiszolgáló nélküli számítási erőforrások alapján skálázva a lehető legjobb késést és teljesítményt nyújtja.
Alapértelmezett érték: Nincs
maxFilesPerTrigger
Típus: Integer
Az összes eseményindítóban feldolgozandó új fájlok maximális száma. Ha maxBytesPerTrigger együtt használják, Azure Databricks a maxFilesPerTrigger vagy maxBytesPerTrigger alsó korlátját használja fel, attól függően, hogy melyiket éri el először.
Megjegyzés: A kiszolgáló nélküli SQL-raktárakon létrehozott streamtáblák esetében ezt a lehetőséget és maxBytesPerTrigger nem szabad úgy beállítani, hogy dinamikus belépésvezérlést használjon, amely a számítási feladatok mérete és a kiszolgáló nélküli számítási erőforrások alapján skálázva a lehető legjobb késést és teljesítményt nyújtja.
Alapértelmezett érték: 1000
schemaEvolutionMode
Típus: String
A séma új oszlopokként történő fejlesztési módjának felderítése az adatokban. Alapértelmezés szerint az oszlopok sztringekként lesznek kikövetkeztetve JSON-adathalmazok következtetésekor. További részletekért lásd sémafejlődési. Ez a beállítás nem vonatkozik a text és binaryFile fájlokra.
Alapértelmezett érték: "addNewColumns", ha nincs megadva séma.
"none" egyébként.
schemaLocation
Típus: String
A következtetett séma és az azt követő módosítások tárolásának helye. További részletekért lásd sémakövető. A séma helye nem szükséges, ha streamelési táblalekérdezésben használják.
Alapértelmezett érték: Nincs

Példák

-- Reads the files available in the given path. Auto-detects the format and schema of the data.
> SELECT * FROM read_files('abfss://container@storageAccount.dfs.core.windows.net/base/path');

-- Reads the headerless CSV files in the given path with the provided schema.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv',
    schema => 'id int, ts timestamp, event string');

-- Infers the schema of CSV files with headers. Because the schema is not provided,
-- the CSV files are assumed to have headers.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv')

-- Reads files that have a csv suffix.
> SELECT * FROM read_files('s3://bucket/path/*.csv')

-- Reads a single JSON file
> SELECT * FROM read_files(
    'abfss://container@storageAccount.dfs.core.windows.net/path/single.json')

-- Reads JSON files and overrides the data type of the column `id` to integer.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'json',
    schemaHints => 'id int')

-- Reads files that have been uploaded or modified yesterday.
> SELECT * FROM read_files(
    'gs://my-bucket/avroData',
    modifiedAfter => date_sub(current_date(), 1),
    modifiedBefore => current_date())

-- Creates a Delta table and stores the source file path as part of the data
> CREATE TABLE my_avro_data
  AS SELECT *, _metadata.file_path
  FROM read_files('gs://my-bucket/avroData')

-- Creates a streaming table that processes files that appear only after the table's creation.
-- The table will most likely be empty (if there's no clock skew) after being first created,
-- and future refreshes will bring new data in.
> CREATE OR REFRESH STREAMING TABLE avro_data
  AS SELECT * FROM STREAM read_files('gs://my-bucket/avroData', includeExistingFiles => false);

Strukturálatlan fájlokkal végzett munka

Az alábbi példák formátumot használnak BINARYFILE a Unity Catalog-kötetekben tárolt strukturálatlan fájlok olvasására és szűrésére, valamint AI-függvényekkel kombinálva read_files dolgozzák fel a fájl tartalmát.

A kötetben lévő összes fájl listázása: A * EXCEPT (content) fájl metaadatainak visszaadása bináris tartalom betöltése nélkül, és a fájlszintű metaadatok mezőinek explicit kijelölése _metadata .

SELECT
  * EXCEPT (content),
  _metadata
FROM read_files(
  '/Volumes/<catalog>/<schema>/<volume>',
  format => 'binaryFile'
);

Méret szerint szűrt képfájlok listázása: Adott képfájltípusok megcélzására és szűrésre fileNamePattern használható_metadata.file_size, ha csak egy adott mérettartományon belüli fájlokat ad vissza.

SELECT
  * EXCEPT (content),
  _metadata
FROM read_files(
  '/Volumes/my_catalog/my_schema/my_volume',
  format => 'binaryFile',
  fileNamePattern => '*.{jpg,jpeg,png,JPG,JPEG,PNG}'
)
WHERE _metadata.file_size BETWEEN 20000 AND 1000000;

Az elmúlt napon módosított PDF-fájlok listázása: A PDF-fájlok célként való megcélzására és a szűrésre fileNamePattern használhatómodificationTime, hogy csak az elmúlt napon módosított fájlokat adja vissza.

SELECT
  * EXCEPT (content),
  _metadata
FROM read_files(
  '/Volumes/my_catalog/my_schema/my_volume',
  format => 'binaryFile',
  fileNamePattern => '*.{pdf,PDF}'
)
WHERE modificationTime >= current_timestamp() - INTERVAL 1 DAY;

Mi-függvény futtatása képfájlokon: A felhőbeli tárolási útvonalról beolvasott képfájlok feldolgozására használható ai_query . Szűrjön a mezőkre _metadata adott fájlok célként való megcélzásához.

SELECT
  path AS file_path,
  ai_query(
    'databricks-llama-4-maverick',
    'Describe this image in ten words or less: ',
    files => content
  ) AS result
FROM read_files(
  's3://my-s3-bucket/path/to/images/',
  format => 'binaryFile',
  fileNamePattern => '*.{jpg,jpeg,png,JPG,JPEG,PNG}'
)
WHERE _metadata.file_size < 1000000
  AND _metadata.file_name LIKE '%robots%';

Fájlnévmintának megfelelő dokumentumok elemzése: Strukturált ai_parse_document tartalom kinyerése PDF-fájlokból és képekből. Szűrés adott _metadata.file_name fájlok célként való megcélzásához.

SELECT
  path AS file_path,
  ai_parse_document(
    content,
    map('version', '2.0')
  ) AS result
FROM read_files(
  '/Volumes/main/public/my_files/',
  format => 'binaryFile',
  fileNamePattern => '*.{jpg,jpeg,pdf,png}'
)
WHERE _metadata.file_name ILIKE '%receipt%';

Fájlok strukturált táblával való összekapcsolása: A strukturálatlan munkafolyamatok gyakran megkövetelik a strukturálatlan fájlokat tartalmazó táblákban tárolt strukturált adatok egyesítését. Az alábbi példa egy felhőbeli tárolási útvonal fájljait illeszti össze két strukturált táblával, a szűrés fájlméret és egy felhasználói attribútum alapján. Az illesztés user_files úgy történik, hogy kinyeri a fájlazonosítót a fájl elérési útjából split az and element_at.

SELECT
  users.user_id,
  user_files.file_id,
  files._metadata.file_name AS file_name,
  files.* EXCEPT (content),
  ai_parse_document(files.content, map('version', '2.0')) AS parsed_document
FROM read_files(
  's3://my-bucket-name/files/',
  format => 'binaryFile',
  fileNamePattern => '*.{pdf,doc,docx,ppt,pptx,png,jpg,jpeg}'
) AS files
JOIN user_files
  ON user_files.file_id = element_at(split(files.path, '/'), -2)
JOIN users
  ON users.user_id = user_files.user_id
WHERE users.email LIKE '%@databricks.com'
  AND files._metadata.file_size < 10000000;