read_files
táblaértékű függvény
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
a , XML
, TEXT
, BINARYFILE
, PARQUET
, AVRO
és a ORC
fájlformátumokat.
Képes automatikusan észlelni a fájlformátumot, és egységes sémát létrehozni az összes fájlban.
Syntax
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
: ASTRING
az adatok helyének URI-jával. Támogatja az Azure Data Lake Storage Gen2 ('abfss://'
), S3 (s3://
) és Google Cloud Storage ('gs://'
) olvasását. Tartalmazhat globokat. 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 pontokat (.
) tartalmazó beállításokhoz backticks (') kell használnia.option_value
: Állandó kifejezés a beállítás beállításához. Konstansokat és skaláris függvényeket fogad el.
Válaszok
Egy táblázat, amely a megadott path
alatt beolvasott fájlokból származó adatokból áll.
Fájlfelderíté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ákkal
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 |
---|---|
? |
Egyetlen karakternek felel meg |
* |
Nulla vagy több karakter egyezése |
[abc] |
Egyetlen karakternek felel meg a(z) {a,b,c} karakterkészletből. |
[a-z] |
Egyetlen karaktert egyezik a(z) {a... karaktertartományból z}. |
[^a] |
Egyetlen karaktert egyezik meg, amely nem a(z) {a} karakterkészletből vagy tartományból származik. 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 le van tiltva, a záró perjelek (/
) el lesznek dobva, és egy csillagminta, például /*/
kiterjeszthető 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 letiltva | Szigorú globber 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 explicit módon is megadható read_files
a schema
beállítással. 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, amelyhez az összes fájl olvasása szükséges, hacsak nem használ utasítást LIMIT
. Még lekérdezés használata LIMIT
esetén is előfordulhat, hogy a szükségesnél nagyobb számú fájl olvasható 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.
Ezzel schemaHints
a beállítással kijavíthatja a következtetett séma részhalmazait. További részletekért lásd: Sémakövető kö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. További részletekért lásd: Mi a mentett adatoszlop? A beállítást a beállítás schemaEvolutionMode => 'none'
beállításával elvethetirescuedDataColumn
.
Partícióséma következtetése
read_files
A particionálási oszlopokat is kikövetkezheti, ha a fájlok Hive-stílusú particionált könyvtárakban vannak tárolva, azaz /column_name=column_value/
. Ha van megadva, schema
a felderített partícióoszlopok a megadott típusokat schema
használják. Ha a partícióoszlopok nem részei a megadottnak schema
, akkor 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 vesszővel tagolt listában megadhatja a partícióoszlopok listáját.partitionColumns
Ezzel partitionColumns
a beállítással azt is megadhatja 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.
Lehetőség schemaHints
van arra is, hogy felülbírálja a partícióoszlopok következtetési sémáját.
A TEXT
formátumok és BINARYFILE
a sémák rögzített sémával rendelkeznek, de read_files
lehetőség szerint megpróbálnak particionálást is kikövetkeztetni ezekhez a formátumokhoz.
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
az automatikus betöltőt használja streamelési táblalekérdezéskor. A kulcsszót a STREAM
következővel kell használnia read_files
: . További részletekért lásd: Mi az automatikus betöltő?
Streamlekérdezésben read_files
való használat esetén az adatok mintája alapján következtethet a sémára, és továbbfejlesztheti a sémát, miközben több adatot dolgoz fel. További részletekért lásd: Sémakövetkeztetés és -fejlesztés konfigurálása az Automatikus betöltőben .
Beállítások
- Alapszintű beállítások
- Általános beállítások
JSON
beállításokCSV
beállításokXML
beállításokPARQUET
beállításokAVRO
beállításokBINARYFILE
beállításokTEXT
beállításokORC
beállítások- Streamelési lehetőségek
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: - avro : Avro-fájl- binaryFile : Bináris fájl- csv : CSV-fájlok olvasása- json : JSON-fájl- orc : ORC-fájl- parquet : Parquet-fájlok olvasása az Azure Databricks használatával- text : Szövegfájlok- xml : XML-fájlok olvasása és írásaAlapé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észletek következtetésekor következtetnek. További részletekért lásd a sémakövetkeztetést . Vegye figyelembe, hogy ez az automatikus betöltő 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 következőka : ésb 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 az <base-path> adatok betöltéséhez szükséges adatokat. 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 visszatérési cloudFiles.partitionColumns érték year,month,day megadásayear=2022 for file1.csv , de az és day az month oszlopok leszneknull .month és day megfelelően lesz elemezve és file2.csv file3.csv .Alapértelmezett érték: Nincs |
schemaHints Típus: String Az automatikus betöltőnek a sémakövetkező során megadott sémainformációk. További részletekért tekintse meg a sématippeket . Alapértelmezett érték: Nincs |
useStrictGlobber Típus: Boolean Szigorú globber használata, amely 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. Vegye figyelembe, hogy ez az automatikus betöltő alapértelmezett 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. Megfigyelhető, mint numSkippedCorruptFiles aoperationMetrics a Delta Lake-előzmények oszlopában. 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 (true for COPY INTO ) |
modifiedAfter Típus: Timestamp String például: 2021-01-01 00:00:00.000000 UTC+0 Nem kötelező időbélyeg a megadott időbélyeg után módosítási időbélyeget tartalmazó fájlok betöltéséhez. Alapértelmezett érték: Nincs |
modifiedBefore Típus: Timestamp String például: 2021-01-01 00:00:00.000000 UTC+0 Nem kötelező időbélyeg a megadott időbélyeg előtt módosítási időbélyeget tartalmazó fájlok betöltéséhez. Alapértelmezett érték: Nincs |
pathGlobFilter vagy fileNamePattern Típus: String Egy lehetséges glob minta, amely lehetővé teszik a fájlok kiválasztását. Egyenértékű a PATTERN in COPY INTO . fileNamePattern használható a következőben read_files : .Alapértelmezett érték: Nincs |
recursiveFileLookup Típus: Boolean Azt határozza meg, hogy kihagyja-e a partíciókövető következtetést a séma következtetése során. Ez nem befolyásolja, hogy mely fájlok legyenek betöltve. 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 a JSON-specifikációban kifejezetten felsorolt karaktereket lehet feloldani. Alapértelmezett érték: false |
allowComments Típus: Boolean Engedélyezve van-e a Java, a C és a C++ stílusú megjegyzések ( '/' és '*' '//' fajták) használata az elemzett tartalomban, vagy sem.Alapértelmezett érték: false |
allowNonNumericNumbers Típus: Boolean Engedélyezi-e a nem szám ( NaN ) jogkivonatok halmazát jogi lebegő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 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. 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 mode elemzéshez be van állítva DROPMALFORMED az oszlop, 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 lehetőségek listáját itt találja java.nio.charset.Charset . Nem használható UTF-16 és UTF-32 mikor multiline van true .Alapértelmezett érték: UTF-8 |
inferTimestamp Típus: Boolean Az időbélyeg-sztringek kipróbálása és következtetése TimestampType . Ha be van állítvatrue , a sémakövetkeztetés jelentősen tovább tarthat. Engedélyeznie cloudFiles.inferColumnTypes kell az automatikus betöltő használatát.Alapértelmezett érték: false |
lineSep Típus: String Két egymást követő JSON-rekord közötti sztring. Alapértelmezett érték: Nincs, amely a \r \r\n \n |
locale Típus: String Azonosító java.util.Locale . 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 Elemzési mód a hibásan formázott rekordok kezelése körül. Az egyik, 'PERMISSIVE' 'DROPMALFORMED' 'FAILFAST' vagy .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 Ha lehetséges, sztringeket próbál kikövetkeztetni DecimalType lebegőpontos vagy kettős típus helyett. Sémakövetkeztetést is használnia kell ainferSchema vagy az Automatikus betöltő használatával cloudFiles.inferColumnTypes .Alapértelmezett érték: false |
primitivesAsString Típus: Boolean Az olyan primitív típusok, mint a számok és a logikai értékek következtetése StringType .Alapértelmezett érték: false |
readerCaseSensitive Típus: Boolean A kis- és nagybetűk bizalmassági viselkedését adja meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától; ellenkező esetben a kis- és nagybetűket nem érzékelyítő módon olvassa be. Elérhető a Databricks Runtime-ban13.3 és újabb. Alapértelmezett érték: true |
rescuedDataColumn Típus: String Az adattípus-eltérés vagy a sémaeltérés (beleértve az oszlopházat is) miatt nem elemezhető összes adat összegyűjtése 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 lásd : Mi a mentett adatoszlop?. Alapértelmezett érték: Nincs |
singleVariantColumn Típus: String Azt, hogy a teljes JSON-dokumentumot betölti-e, egyetlen Variant oszlopba kell elemeznie, amelynek neve az adott sztring. Ha le van tiltva, a JSON-mezők a saját oszlopaikba lesznek betöltve. 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 elől menekülő karakter. 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 feloldandó karakter a '\' következőképpen van definiálva '\' , a rekord 2 értékkel lesz beolvasva: [a\] és [b] .Alapértelmezett érték: '\0' |
columnNameOfCorruptRecord > [! MEGJEGYZÉS] >> Az automatikus betöltő támogatott. Nem támogatott. COPY INTO Típus: String A hibásan formázott és nem elemezhető rekordok tárolására szolgáló oszlop. Ha az mode elemzéshez be van állítva DROPMALFORMED az oszlop, 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ának letiltására használható '\0' .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 Üres érték sztring-ábrázolása. Alapértelmezett érték: "" |
encoding vagy charset Típus: String A CSV-fájlok kódolásának neve. Tekintse meg java.nio.charset.Charset 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 Azt határozza meg, hogy figyelmen kívül hagyja-e az egyes elemzési értékek kezdő szóközeit. Alapértelmezett érték: false |
ignoreTrailingWhiteSpace Típus: Boolean Azt határozza meg, hogy figyelmen kívül hagyja-e az egyes elemzési értékek záró szóközeit. Alapértelmezett érték: false |
inferSchema Típus: Boolean Az elemezt CSV-rekordok adattípusainak következtetése vagy annak feltételezése, hogy az összes oszlop az StringType . Ha be van állítva true , további továbbítást igényel az adatok felett. Az Automatikus betöltőhöz használja cloudFiles.inferColumnTypes helyette.Alapértelmezett érték: false |
lineSep Típus: String Két egymást követő CSV-rekord közötti sztring. Alapértelmezett érték: Nincs, amely a \r \r\n \n |
locale Típus: String Azonosító java.util.Locale . 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 értéktől az elemzésig várt karakterek maximális száma. A memóriahibák elkerülése érdekében használható. Alapértelmezett érték, -1 ami 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őhöz a séma következtetésekor. Alapértelmezett érték: false |
mode Típus: String Elemzési mód a hibásan formázott rekordok kezelése körül. Az egyik, 'PERMISSIVE' 'DROPMALFORMED' 'FAILFAST' és .Alapértelmezett érték: PERMISSIVE |
multiLine Típus: Boolean Azt jelzi, hogy a CSV-rekordok több sorra is kiterjednek-e. Alapértelmezett érték: false |
nanValue Típus: String Nem számérték karakterlánc-ábrázolása FloatType elemzéskor és DoubleType oszlopokban.Alapértelmezett érték: "NaN" |
negativeInf Típus: String A negatív végtelen sztring-ábrázolása elemzéskor FloatType vagy DoubleType oszlopokban.Alapértelmezett érték: "-Inf" |
nullValue Típus: String Null érték sztring-ábrázolása. Alapértelmezett érték: "" |
parserCaseSensitive (elavult)Típus: Boolean Fájlok olvasása közben a fejlécben deklarált oszlopokat bizalmasan kell-e igazítani a séma-kis- és nagybetűkhöz. Ez alapértelmezés szerint az true Automatikus betöltő esetében van. Az egyes esetekben eltérő oszlopokat a rendszer az rescuedDataColumn engedélyezve lévő helyen menti. Ez a beállítás elavult a következő javára readerCaseSensitive : .Alapértelmezett érték: false |
positiveInf Típus: String A pozitív végtelen sztring-ábrázolása elemzéskor FloatType vagy DoubleType oszlopokban.Alapértelmezett érték: "Inf" |
preferDate Típus: Boolean A sztringeket időbélyeg helyett dátumként próbálja meg kikövetkelni, ha lehetséges. Sémakövetkeztetést is kell használnia, akár engedélyezéssel inferSchema , akárcloudFiles.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 kis- és nagybetűk bizalmassági viselkedését adja meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától; ellenkező esetben a kis- és nagybetűket nem érzékelyítő módon olvassa be.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 lásd: Mi a mentett adatoszlop?. Alapértelmezett érték: Nincs |
sep vagy delimiter Típus: String Az elválasztó sztring oszlopok között. 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ő leválasztott és nem kijelölt 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ó sep karakter vagy egy sorvégződés nem található a bemenetben.- SKIP_VALUE : Ha nem beágyazott idézőjelek találhatók a bemenetben, a program kihagyja az adott értékhez elemezett tartalmat (amíg a következő elválasztó nem található), és a beírt nullValue érték jön létre helyette.- RAISE_ERROR : Ha a bemenetben nem beágyazott idézőjelek találhatók, aTextParsingException 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 <books> <book><book>...<books> a megfelelő érték a következő book . Ez egy kötelező beállítás. |
elolvasva |
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 . |
elolvasva |
excludeAttribute |
Az elemek attribútumainak kizárása. Alapértelmezett: false . |
elolvasva |
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 columnNameOfCorruptRecord konfigurá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 felhasználó által definiált sémában elnevezett columnNameOfCorruptRecord típusmezőt. 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 mezőt egy columnNameOfCorruptRecord 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 eredményez, ha az elemző sérült rekordokkal találkozik. |
elolvasva |
inferSchema |
Ha true az eredményként kapott DataFrame-oszlopokhoz megfelelő típust próbál kikövetkeztetni. Ha false , az összes eredményként kapott oszlop típusú string . Alapértelmezett:true . Az XML beépített függvényei figyelmen kívül hagyják ezt a beállítást. |
elolvasva |
columnNameOfCorruptRecord |
Lehetővé teszi az új mező átnevezését, amely egy hibásan formázott sztringet tartalmaz, amelyetPERMISSIVE üzemmód. Alapértelmezett: spark.sql.columnNameOfCorruptRecord . |
elolvasva |
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 mezőt a valueTag 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 karakterek adatait. |
elolvasva |
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 egyébként nem befolyásolja a megadott sémát, és nem következik be. | elolvasva |
ignoreNamespace |
Ha true a névterek XML-elemeken és attribútumokon lévő előtagjai figyelmen kívül lesznek hagyva. A címkéket <abc:author> és <def:author> például a címkéket úgy kezeli a rendszer, mintha mindkettő csak <author> . A névterek nem hagyhatók figyelmen kívül az elemen, csak az rowTag olvasási gyermekein. Az XML-elemzés akkor sem névtérérzékeny, ha false . Alapértelmezett: false . |
elolvasva |
timestampFormat |
A datetime mintaformátumot követő egyéni időbélyeg-formátum sztringje. Ez a típusra timestamp vonatkozik. Alapértelmezett: yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] . |
olvasás, írás |
timestampNTZFormat |
A dátum/idő minta formátumát követő időzóna nélküli időbélyeg egyéni formázási sztringje. Ez a TimestampNTZType típusra vonatkozik. Alapértelmezett:yyyy-MM-dd'T'HH:mm:ss[.SSS] |
olvasás, írás |
dateFormat |
A datetime mintaformátumot követő egyéni dátumformátum-sztring. Ez a dátumtípusra vonatkozik. Alapértelmezett: yyyy-MM-dd . |
olvasás, írás |
locale |
Nyelvi címkeként állít be területi beállításokat IETF BCP 47 formátumban. Például locale a dátumok és időbélyegek elemzésekor használatos. Alapértelmezett: en-US . |
elolvasva |
rootTag |
Az XML-fájlok gyökércímkéje. Ebben a példában <books> <book><book>...</books> például a megfelelő érték az books . Az alapszintű attribútumokat egy olyan érték megadásával adhatja meg, mint a books foo="bar" . Alapértelmezett: ROWS . |
írás |
declaration |
Az összes kimeneti XML-fájl elején írandó XML-deklaráció tartalma a rootTag . Például az írandó okok <?xml foo?> értékefoo . Állítson be egy üres sztringet a letiltásához. Alapértelmezett: version="1.0" encoding="UTF-8" standalone="yes" . |
írás |
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ás |
nullValue |
Null érték sztring-ábrázolását állítja be. Alapértelmezett: sztring null . Ebben az esetben null az 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űs rövidített 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ás |
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ás |
readerCaseSensitive |
Meghatározza a kis- és nagybetűk bizalmassági viselkedését, ha a mentettDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától; ellenkező esetben a kis- és nagybetűket nem érzékelyítő módon olvassa be. Alapértelmezett: true . |
elolvasva |
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 részletekért lásd : Mi a mentett adatoszlop?. Alapértelmezett: Nincs. | elolvasva |
PARQUET
beállítások
Lehetőség |
---|
datetimeRebaseMode Típus: String A JULIÁN ÉS a Prolitikus Gergely-naptárak közötti DÁTUM és IDŐBÉLYEG értékek újbóli egyeztetését szabályozza. Engedélyezett értékek: EXCEPTION , LEGACY ésCORRECTED .Alapértelmezett érték: LEGACY |
int96RebaseMode Típus: String Az INT96 időbélyeg értékeinek a Julian és a Proleptic Gergely-naptárak közötti újbóli egyeztetését szabályozza. Engedélyezett értékek: EXCEPTION , LEGACY ésCORRECTED .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 kis- és nagybetűk bizalmassági viselkedését adja meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától; ellenkező esetben a kis- és nagybetűket nem érzékelyítő módon olvassa be.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 lásd: Mi a mentett adatoszlop?. 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 A JULIÁN ÉS a Prolitikus Gergely-naptárak közötti DÁTUM és IDŐBÉLYEG értékek újbóli egyeztetését szabályozza. Engedélyezett értékek: EXCEPTION , LEGACY ésCORRECTED .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 kis- és nagybetűk bizalmassági viselkedését adja meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától; ellenkező esetben a kis- és nagybetűket nem érzékelyítő módon olvassa be.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 lásd: 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ÖVEGfájlok kódolásának neve. A lehetőségek listáját itt találja java.nio.charset.Charset .Alapértelmezett érték: UTF-8 |
lineSep Típus: String Két egymást követő SZÖVEG rekord közötti sztring. Alapértelmezett érték: Nincs, amely a \r \r\n \n |
wholeText Típus: Boolean Egy fájl beolvasása egyetlen rekordként. 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 streamelési táblán vagy streamelési lekérdezésen belül történő használat read_files
esetén érvényesek.
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, amely 10g az egyes mikrobatcheket 10 GB-ra korlátozza. Ez egy puha maximum. Ha egyenként 3 GB-os fájlokkal rendelkezik, az Azure Databricks 12 GB-ot dolgoz fel egy mikrobatchben. Ha együtt maxFilesPerTrigger használják, az Azure Databricks legfeljebb az alsó korlátot maxFilesPerTrigger használja, vagy maxBytesPerTrigger attól függően, hogy melyiket éri el először.Megjegyzés: A kiszolgáló nélküli SQL-raktárakban létrehozott streamtáblák esetében ezt a beállítást 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 együtt maxBytesPerTrigger használják, az Azure Databricks legfeljebb az alsó korlátot maxFilesPerTrigger használja, vagy maxBytesPerTrigger attól függően, hogy melyiket éri el először.Megjegyzés: A kiszolgáló nélküli SQL-raktárakban létrehozott streamtáblák esetében ezt a beállítást 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 tekintse meg a sémafejlődést . Ez a beállítás nem vonatkozik a fájlokra és binaryFile a fájlokratext .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 a sémakövetkeztetést . 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);