Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:
Databricks SQL
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: ASTRINGaz 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 pathSTRINGA fájl teljes elérési útja. modificationTimeTIMESTAMPA fájl utolsó módosítási ideje. lengthLONGA fájl mérete bájtban. contentBINARYA 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 egyetlenvalue(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
schemabeá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
- Általános beállítások
-
JSONbeállítások -
CSVbeállítások -
XMLbeállítások -
PARQUETbeállítások -
AVRObeállítások -
BINARYFILEbeállítások -
TEXTbeállítások -
ORCbeállítások - Streamelési lehetőségek
Alapszintű beállítások
| Lehetőség |
|---|
formatTípus: StringAz 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 |
schemaTípus: StringAz 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 |
inferColumnTypesTípus: BooleanPontos 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 |
partitionColumnsTípus: StringA 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.csvA cloudFiles.partitionColumns megadása year,month,day-ként visszatérítést eredményezyear=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 |
schemaHintsTípus: StringAz 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 |
useStrictGlobberTípus: BooleanAnnak 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 |
|---|
ignoreCorruptFilesTípus: BooleanA 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 |
ignoreMissingFilesTípus: BooleanA 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) |
modifiedAfterTípus: Timestamp String, például 2021-01-01 00:00:00.000000 UTC+0Nem 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 |
modifiedBeforeTípus: Timestamp String, például 2021-01-01 00:00:00.000000 UTC+0Opcioná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 fileNamePatternTípus: StringEgy 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 |
recursiveFileLookupTípus: BooleanEz 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 |
|---|
allowBackslashEscapingAnyCharacterTípus: BooleanHogy 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 |
allowCommentsTípus: BooleanEngedé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 |
allowNonNumericNumbersTípus: BooleanEngedélyezze-e a nem szám ( NaN) tokenek halmazát érvényes lebegőpontos számértékekként?Alapértelmezett érték: true |
allowNumericLeadingZerosTípus: BooleanAnnak 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 |
allowSingleQuotesTípus: BooleanEngedé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 |
allowUnquotedControlCharsTípus: BooleanEngedé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 |
allowUnquotedFieldNamesTípus: BooleanEngedé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 |
badRecordsPathTípus: StringA 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:
Alapértelmezett érték: Nincs |
columnNameOfCorruptRecordTípus: StringA 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 |
dateFormatTípus: StringDátumsztringek elemzésének formátuma. Alapértelmezett érték: yyyy-MM-dd |
dropFieldIfAllNullTípus: BooleanFigyelmen 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 charsetTípus: StringA 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 |
inferTimestampTípus: BooleanMegpróbáljuk-e az időbélyeg-sztringeket következtetni mint egy TimestampType. Amikor be van állítvatrueeseté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 |
lineSepTípus: StringKé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. |
localeTípus: StringEgy 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 |
modeTípus: StringParszolási mód a hibásan formázott rekordok kezelésére. Az egyik PERMISSIVE, DROPMALFORMED vagy FAILFAST.Alapértelmezett érték: PERMISSIVE |
multiLineTípus: BooleanAzt jelzi, hogy a JSON-rekordok több sorra is kiterjednek-e. Alapértelmezett érték: false |
prefersDecimalTípus: BooleanAmikor 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élyeziinferSchema vagy cloudFiles.inferColumnTypes automatikus betöltő használatával.Alapértelmezett érték: false |
primitivesAsStringTípus: BooleanVajon 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 |
readerCaseSensitiveTípus: BooleanA 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-ban13.3 és magasabb. Alapértelmezett érték: true |
rescuedDataColumnTí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 |
singleVariantColumnTípus: StringAnnak 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 |
timestampFormatTípus: StringAz időbélyeg-sztringek elemzésének formátuma. Alapértelmezett érték: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZoneTípus: StringAz 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 |
|---|
badRecordsPathTípus: StringA 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 |
charToEscapeQuoteEscapingTípus: CharAz 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 ]
Alapértelmezett érték: '\0' |
columnNameOfCorruptRecordTámogatja az automatikus betöltőt. A COPY INTO (örökölt) esetében nem támogatott.Típus: StringA 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 |
commentTípus: CharMeghatá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' |
dateFormatTípus: StringDátumsztringek elemzésének formátuma. Alapértelmezett érték: yyyy-MM-dd |
emptyValueTípus: StringAz üres érték karakterláncának ábrázolása. Alapértelmezett érték: "" |
encoding vagy charsetTípus: StringA 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 |
enforceSchemaTípus: BooleanAzt 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 |
escapeTípus: CharAz adatok elemzésekor használandó escape karakter. Alapértelmezett érték: '\' |
headerTípus: BooleanHogy 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 |
ignoreLeadingWhiteSpaceTípus: BooleanAz egyes feldolgozott értékek elején lévő szóközök figyelmen kívül hagyása. Alapértelmezett érték: false |
ignoreTrailingWhiteSpaceTípus: BooleanAnnak 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 |
inferSchemaTípus: BooleanAz 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 |
lineSepTípus: StringKé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. |
localeTípus: StringEgy 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 |
maxCharsPerColumnTípus: IntAz 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 |
maxColumnsTípus: IntAz a korlát, hogy egy rekord hány oszlopot tartalmazhat. Alapértelmezett érték: 20480 |
mergeSchemaTípus: BooleanAzt 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 |
modeTípus: StringParszolási mód a hibásan formázott rekordok kezelésére. Az egyik, 'PERMISSIVE''DROPMALFORMED' és 'FAILFAST'.Alapértelmezett érték: PERMISSIVE |
multiLineTípus: BooleanA CSV-rekordok kiterjednek-e több sorra. Alapértelmezett érték: false |
nanValueTípus: StringA nem számérték (NaN) szöveges megjelenítése a FloatType és DoubleType oszlopok elemzésekor.Alapértelmezett érték: "NaN" |
negativeInfTípus: StringA negatív végtelen szöveges ábrázolása FloatType vagy DoubleType oszlopok elemzésekor.Alapértelmezett érték: "-Inf" |
nullValueTípus: StringA nulla érték szöveges ábrázolása. Alapértelmezett érték: "" |
parserCaseSensitive (elavult)Típus: BooleanFá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 |
positiveInfTípus: StringA pozitív végtelen karakterlánc ábrázolása a FloatType vagy DoubleType oszlopok elemzésekor.Alapértelmezett érték: "Inf" |
preferDateTípus: BooleanA 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 |
quoteTípus: CharAz olyan értékekre való meneküléshez használt karakter, ahol a mezőelválasztó az érték része. Alapértelmezett érték: " |
readerCaseSensitiveTípus: BooleanA 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 |
rescuedDataColumnTípus: StringHogy ö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 delimiterTípus: StringAz oszlopok közötti elválasztó szöveg. Alapértelmezett érték: "," |
skipRowsTípus: IntA 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 |
timestampFormatTípus: StringAz időbélyeg-sztringek elemzésének formátuma. Alapértelmezett érték: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
timeZoneTípus: StringAz java.time.ZoneId időbélyegek és dátumok elemzésekor használandó.Alapértelmezett érték: Nincs |
unescapedQuoteHandlingTípus: StringA lezáratlan idézőjelek kezelésének stratégiája. Engedélyezett beállítások:
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 |
|---|
datetimeRebaseModeTípus: StringSzabá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ésCORRECTED.Alapértelmezett érték: LEGACY |
int96RebaseModeTípus: StringAz 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ésCORRECTED.Alapértelmezett érték: LEGACY |
mergeSchemaTípus: BooleanAzt 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 |
readerCaseSensitiveTípus: BooleanA 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 |
rescuedDataColumnTípus: StringHogy ö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 |
|---|
avroSchemaTípus: StringNem 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 |
datetimeRebaseModeTípus: StringSzabá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ésCORRECTED.Alapértelmezett érték: LEGACY |
mergeSchemaTípus: BooleanAzt 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 |
readerCaseSensitiveTípus: BooleanA 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 |
rescuedDataColumnTípus: StringHogy ö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 |
|---|
encodingTípus: StringA 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 |
lineSepTípus: StringKé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. |
wholeTextTípus: BooleanEgy fájl egyetlen rekordként való beolvasása? Alapértelmezett érték: false |
ORC beállítások
| Lehetőség |
|---|
mergeSchemaTípus: BooleanAzt 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 |
|---|
allowOverwritesTípus: BooleanA 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 |
includeExistingFilesTípus: BooleanAká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 |
maxBytesPerTriggerTípus: Byte StringAz ö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 |
maxFilesPerTriggerTípus: IntegerAz ö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 |
schemaEvolutionModeTípus: StringA 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. |
schemaLocationTípus: StringA 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;