A Spark API beállításainak referenciája

Ez a lap az adatok olvasására és írására szolgáló Spark API-khoz elérhető bemeneti és kimeneti beállításokat sorolja fel.

A DataFrameReader beállításai

Ezeket a beállításokat DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO és Auto Loader használatával szabályozhatja, hogy Azure Databricks hogyan olvassa be az adatfájlokat.

Example

Az alábbi példa JSON-fájlok olvasására állítja be multiLineTrue a következőket:

Python
df = spark.read.format("json").option("multiLine", True).load("/path/to/data")
Scala
val df = spark.read.format("json").option("multiLine", "true").load("/path/to/data")
SQL
SELECT * FROM read_files("/path/to/data", format => "json", multiLine => true)

Közös

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

Key Alapértelmezett Érvényes értékek Description
ignoreCorruptFiles false true, false 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 numSkippedCorruptFiles látható módon operationMetrics figyelheti meg. A Databricks Runtime 11.3 LTS-ben és újabb verziókban érhető el.
ignoredPathSegmentRegex ^[._] Egy Java reguláris kifejezési sztring Azt szabályozza, hogy mely fájlok és könyvtárak legyenek elrejtve a fájllista alatt. A regex minden egyes könyvtárhoz és fájlnévhez igazodik az éppen beolvasott elérési út alatt. A rendszer kihagyja az egyező neveket a fájllistában, a partíciófelderítésben és az olvasásban, az egyező könyvtárnév pedig kizárja a teljes altartományt. Az alapértelmezett beállítás ^[._] kihagyja azokat a neveket, amelyek a következővel _ kezdődnek: vagy .. Állítsa be üres sztringre a szűrő és a rejtett fájlok felületének letiltásához, beleértve a Spark belső jelölőfájljait, például _SUCCESS a fájlokat _temporary. Függetlenül a regextől, _metadata és _common_metadata a nevek mindig fel vannak sorolva, a rendszer mindig kihagyja a végződéseket ._COPYING_ , és _a - = prefixed partíciókönyvtárak mindig megmaradnak. Ellentétben pathGlobFiltera levélfájlnevekre alkalmazott belefoglalási stílussal, ez egy kizáró stílusú regex, amelyet minden elérési út összetevőre alkalmazunk, és a kettő kombinálható. Ezt a Spark-konfigurációval spark.sql.files.ignoredPathSegmentRegex is beállíthatja, és az adatforrás-beállítás elsőbbséget élvez, ha mindkettő be van állítva. A Databricks Runtime 19-ben és újabb verziókban érhető el.
ignoreMissingFiles false az Automatikus betöltőhöz, true a következőhöz COPY INTO : (örökölt) true, false 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 a rendszer továbbra is visszaadja a tartalmat. A Databricks Runtime 11.3 LTS-ben és újabb verziókban érhető el.
modifiedAfter None Időbélyeg-sztring Nem kötelező időbélyeg szűrőként csak olyan fájlok betöltésére, amelyek a megadott időbélyeg után módosítási időbélyeget kaptak.
modifiedBefore None Időbélyeg-sztring Nem kötelező időbélyeg szűrőként csak olyan fájlok betöltésére, amelyek módosítási időbélyeget kaptak a megadott időbélyeg előtt.
pathGlobFilter vagy fileNamePattern None Egy glob minta sztringje Egy lehetséges glob minta a fájlok kiválasztásához. Az in PATTERN (örökölt) értéknek COPY INTO felel meg. fileNamePattern használható a következőben read_files: .
recursiveFileLookup false true, false Amikor trueez a beállítás beágyazott könyvtárakon keresztül keres, akkor is, ha a nevük nem követi a partíció elnevezési sémáját, például date=2019-07-01.

Avro

Az Avro-fájlok olvasása során az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
avroSchema None Avro-sémasztring A felhasználó által Avro formátumban megadott választható séma. Az Avro olvasása során ez a beállítás beállítható egy olyan kifejlett sémára, amely kompatibilis, de eltér a tényleges Avro-sémától. A deszerializálási séma összhangban van 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.
avroSchemaEvolutionMode none none, restart Sémafejlődés kezelése sémaregisztrációs adatbázis használatakor. none figyelmen kívül hagyja a séma módosításait, és folytatja a feladatot. restart UnknownFieldException a rendszer a sémamódosítások észlelésekor a feladat újraindítását igényli.
datetimeRebaseMode LEGACY \, \, \ A julián és a proleptikus Gergely-naptárak közötti dátum és időbélyeg értékek újraalapozását szabályozza.
enableStableIdentifiersForUnionType false true, false Stabil mezőnevek használata az Avro Union-típusokhoz. Ha engedélyezve van, az egyesítő típusú mezőnevek a kisbetűs típusnevükből származnak (például: member_int, member_string). Kivételt eredményez, ha két típusnév azonos az alsóbb műveletet követően.
mergeSchema false true, false 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 teszi rugalmasabbá az adattípusokat.
mode FAILFAST \, \, \ Sérült rekordok kezelésére szolgáló elemzési mód. A FAILFAST kivételt dob. PERMISSIVE a hibásan formázott mezőket null értékre állítja. DROPMALFORMED csöndesen elveti a rossz rekordokat.
readerCaseSensitive true true, false A nagybetű érzékenység viselkedését határozza meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától. Ha hamis, olvassa be az adatokat kis- és nagybetűkre érzéketlen módon.
recursiveFieldMaxDepth None 0 és 15 A rekurzív Avro-mezők maximális rekurziós mélysége. Állítsa be az 1 összes rekurzív mező csonkolására, 2 hogy lehetővé tegye a rekurzió egy szintjét, és így tovább 15. Ha a nem halmazolt vagy 0a rekurzív mezők nem engedélyezettek.
rescuedDataColumn None Oszlopnév-sztring 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 lásd: Mi a mentett adatoszlop?.
stableIdentifierPrefixForUnionType member_ Bármilyen szöveg A stabil egyesítő típusú mezőnevekhez használandó előtag, ha enableStableIdentifiersForUnionType=true.

CSV

CSV-fájlok olvasásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
badRecordsPath None Elérési út sztringje A rossz CSV-rekordok adatainak rögzítésére szolgáló fájlok tárolásának elérési útja.
charToEscapeQuoteEscaping \0 Egyetlen karakter A karakter, amelyet a karakterek közül idézőjelek elkerülésére használnak. 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].
columnNameOfCorruptRecord _corrupt_record Oszlopnév-sztring Támogatja az automatikus betöltőt. A COPY INTO (örökölt) esetében nem támogatott.
A hibásan formázott és nem elemezhető rekordok tárolására szolgáló oszlop. Ha az mode elemzéshez DROPMALFORMED értékre van állítva, ez az oszlop üres lesz.
comment \0 Egyetlen karakter Meghatározza azt a karaktert, amely egy sor megjegyzését jelöli, amikor egy szövegsor elején található. Használja a '\0'-t a megjegyzés kihagyásának letiltására.
dateFormat yyyy-MM-dd Dátumformátum sztringje Dátumsztringek elemzésének formátuma.
emptyValue Üres sztring Bármilyen szöveg Az üres érték karakterláncokká való ábrázolása.
enableDateTimeParsingFallback false true, false Vissza kell-e esnie az örökölt dátumra és időbélyeg-elemzési viselkedésre, ha egy érték nem elemezhető a megadott formátummal. Amikor falsea elemzési hibák hibát okoznak, vagy a függvénytől függően modenull értéket eredményeznek.
encoding vagy charset UTF-8 Név java.nio.charset.Charset 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.
enforceSchema true true, false 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.
escape \ Egyetlen karakter Az adatok elemzésekor használandó escape karakter.
extension csv Fájlkiterjesztési sztring Az olvasások várt fájlnévkiterjesztése. A bővítmény nélküli fájlok szűrve lesznek.
failOnUnknownFields false true, false Sikertelenség, ha a CSV-rekord olyan oszlopokat tartalmaz, amely nem szerepel a sémában. Ha falsea nem felismert oszlopokat a rendszer csendben elveti vagy menti attól függően rescuedDataColumn, hogy melyik oszlopot menti.
failOnWidenedFields false true, false Sikertelen-e, ha egy mezőérték nem elemezhető deklarált sématípusként szélesítés nélkül. Amikor falsea típusszűkített értékeket a rendszer csendesen menti a függvénytől függően rescuedDataColumn. A beállítás failOnUnknownFields=true elfedheti ennek a beállításnak a hatásait.
header false true, false 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.
ignoreLeadingWhiteSpace false true, false Annak eldöntése, hogy figyelmen kívül hagyja-e az elemzett értékek elején lévő szóközöket.
ignoreTrailingWhiteSpace false true, false Meghatározza, hogy figyelmen kívül hagyja-e az egyes parsolt értékek végén lévő szóközöket.
inferSchema false true, false 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. Ha true be van állítva, újabb adatfeldolgozási lépés szükséges. Helyette az Auto Loaderhez használja cloudFiles.inferColumnTypes.
inputBufferSize 1048576 (1 MB) Pozitív egész számok A CSV-elemző puffermérete bájtban. Nagy CSV-fájlok elemzésekor hasznos a memóriahasználat finomhangolásához.
lineSep Nincs, amely magában foglalja \r, \r\nés \n Karakterlánc Két egymást követő CSV-rekord közötti karakterlánc.
locale US Azonosító java.util.Locale Egy Java területi beállítás, amely hatással van az alapértelmezett dátumra, időbélyegre és decimális elemzésre a CSV-ben.
maxCharsPerColumn -1 Pozitív egész számok, vagy -1 korlátlan Az elemzésre várt érték maximális karakterhossza. A memóriahibák elkerülése érdekében használható. Alapértelmezett érték, -1ami azt jelenti, hogy korlátlan.
maxColumns 20480 Pozitív egész számok Az a korlát, hogy egy rekord hány oszlopot tartalmazhat.
mergeSchema false true, false 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.
mode PERMISSIVE \, \, \ Parszolási mód a hibásan formázott rekordok kezelésére.
multiLine false true, false A CSV-rekordok kiterjednek-e több sorra.
nanValue NaN Bármilyen szöveg A nem számérték karakterlánc-ábrázolása a FloatType és DoubleType oszlopok elemzésekor.
negativeInf -Inf Bármilyen szöveg A negatív végtelen szöveges megjelenítése a FloatType vagy DoubleType oszlopok feldolgozásakor.
nullValue Üres sztring Bármilyen szöveg A nulla érték szöveges ábrázolása.
parserCaseSensitive (elavult) false true, false 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 betűméret szerint eltérő oszlopok mentésre kerülnek a rescuedDataColumn-ben. Ez a beállítás elavult, és helyette a readerCaseSensitive ajánlott.
positiveInf Inf Bármilyen szöveg A pozitív végtelen karakterlánc ábrázolása a FloatType vagy DoubleType oszlopok elemzésekor.
preferDate true true, false A karakterláncokat időbélyeg helyett, amikor csak lehet, dátumként próbálja meg kikövetkeztetni. Sémakövetkeztetést is kell használnia az automatikus betöltő engedélyezésével inferSchema vagy használatával cloudFiles.inferColumnTypes .
quote " Egyetlen karakter Az olyan értékek elkerülésére használt karakter, ahol a mezőhatároló az érték része.
readerCaseSensitive true true, false A nagybetű érzékenység viselkedését határozza meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától. Ha hamis, olvassa be az adatokat kis- és nagybetűkre érzéketlen módon.
rescuedDataColumn None Oszlopnév-sztring 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?.
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.
sep vagy delimiter , Karakterlánc Az elválasztó sztring oszlopok között.
singleVariantColumn None Oszlopnév-sztring Ha oszlopnévre van állítva, a teljes CSV rekordot egyetlen VariantType oszlopba olvassa be ezzel a névvel ahelyett, hogy az egyes mezőket saját oszlopba elemezne. Szükséges header=true.
skipRows 0 Pozitív egész számok vagy 0 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 az első kihagyatlan és nem kommentelt sor lesz.
timeFormat HH:mm:ss Időformátum-sztring Az oszlopértékek TimeType elemzésének formátuma.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Időbélyeg formátum sztringje Az időbélyeg-sztringek elemzésének formátuma.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Időbélyeg formátum sztringje Az időzónák (TimestampNTZType) sztringek nélküli időbélyeg elemzésének formátuma.
timeZone None Sztring java.time.ZoneId Az java.time.ZoneId időbélyegek és dátumok elemzésekor használandó.
unescapedQuoteHandling STOP_AT_DELIMITER STOP_AT_CLOSING_QUOTE, BACK_TO_DELIMITER, STOP_AT_DELIMITER, SKIP_VALUERAISE_ERROR Az érvénytelen idézőjelek kezelésének stratégiája. Az egyes engedélyezett beállítások viselkedése a következő:
  • 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 szökőjelek nélküli idézőjelek találhatók a bemenetben, vegye figyelembe az értéket idézőjelek nélküli é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 szökőjelek nélküli idézőjelek találhatók a bemenetben, vegye figyelembe az értéket idézőjelek nélküli é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 nem kibontott idézőjelek találhatók, a program egy TextParsingException elemet dob.

Excel

A következő beállítások Excel fájlok olvasásakor érvényesek.

Key Alapértelmezett Érvényes értékek Description
dataAddress None Cellatartomány vagy lapnévsztring A Excel szintaxisban olvasható cellatartomány. Ha nincs megadva, az első lap összes érvényes celláját beolvassa. Egy névvel ellátott lap tartományának olvasására, SheetName!C5:H10 az első lap tartományának beolvasására vagy C5:H10 egy adott lap összes adatának beolvasására használhatóSheetName.
headerRows 0 0, 1 Oszlopnévfejlécként használandó kezdeti sorok száma. Ha dataAddress meg van adva, ez a cellatartományon belülre vonatkozik. Amikor 0a rendszer automatikusan létrehozza _c1az oszlopneveket , _c2stb _c3.
ignoreMissingSheet false true, false Azt határozza meg, hogy kihagyja-e azokat a fájlokat, amelyek nem tartalmazzák a megadott dataAddresslapot. Amikor falsea rendszer hibát jelez, ha egy fájl hiányzik a kért lapról. Csak akkor érvényes, ha a lap neve meg van adva a fájlban dataAddress.
includePhoneticRuns false true, false Az XLSX-fájlok olvasása során összefűzött fonetikai széljegyzetek (például pinyin vagy furigana) belefoglalása cellasztring-értékekbe.
operation readSheet readSheet, listSheets A Excel munkafüzeten végrehajtandó művelet. readSheet adatokat olvas be egy lapról. listSheets egy szerkezetet ad vissza a mezőkkel sheetIndex: long és sheetName: String az egyes munkalapokhoz.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Időbélyeg formátum sztringje Egyéni formázási sztring a Excel sztringként tárolt időbélyeg nélküli értékekhez. Az egyéni dátumformátumok a Datetime-minták formátumait követik.
dateFormat yyyy-MM-dd Dátumformátum sztringje A sztringértékek egyéni formázási sztringje a következőképpen olvasható.Date Az egyéni dátumformátumok a Datetime-minták formátumait követik.

JSON

JSON-fájlok olvasásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
allowBackslashEscapingAnyCharacter false true, false Engedélyezi-e, hogy a fordított perjelek elkerülési jelekként működjenek bármelyik őket követő karakter esetében? Ha nincs engedélyezve, csak azok a karakterek escape-elhetők, amelyeket a JSON-specifikáció kifejezetten felsorol.
allowComments false true, false 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.
allowNonNumericNumbers true true, false Engedélyezze-e a nem szám (NaN) tokenek halmazát érvényes lebegőpontos számértékekként?
allowNumericLeadingZeros false true, false 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).
allowSingleQuotes true true, false Engedélyezi-e az egyes idézőjelek (aposztróf, karakter '\') használatát szövegek (nevek és sztringértékek) idézéséhez.
allowUnquotedControlChars false true, false Engedélyezi-e, hogy a JSON-sztringek kódolatlan vezérlőkaraktereket (32-nél kisebb értékű ASCII-karaktereket, beleértve a tabulátor- és sorvégi karaktereket) tartalmazzanak?
allowUnquotedFieldNames false true, false Engedélyezi-e a JavaScript által engedélyezett, de a JSON-specifikációban nem szereplő, nem kvótált mezőnevek használatát.
alternateVariantEncoding None Z85 A variant értékekhez használt kódolás a forrás JSON-ban. Z85 A Base85 kódolású Variant-értékek dekódolására van beállítva a beágyazott JSON-ként való tárolás helyett.
badRecordsPath None Elérési út sztringje 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.
columnNameOfCorruptRecord _corrupt_record Oszlopnév-sztring A hibásan formázott és nem elemezhető rekordok tárolására szolgáló oszlop. Ha az mode elemzéshez DROPMALFORMED értékre van állítva, ez az oszlop üres lesz.
dateFormat yyyy-MM-dd Dátumformátum sztringje Dátumsztringek elemzésének formátuma.
dropFieldIfAllNull false true, false 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.
encoding vagy charset UTF-8 Név java.nio.charset.Charset 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.
inferTimestamp false true, false Hogy megpróbálja-e kitalálni az időbélyeg karaktersorok formátumát TimestampType. Ha be van trueállítva, a sémakövetkeztetés jelentősen tovább tarthat. Az automatikus betöltő használatához engedélyeznie kell a cloudFiles.inferColumnTypes-t.
lineSep Nincs, amely magában foglalja \r, \r\nés \n Karakterlánc Két egymást követő JSON-rekord közötti karakterlánc.
locale US Azonosító java.util.Locale Egy Java területi azonosító, amely befolyásolja az alapértelmezett dátumot, időbélyeget és decimális elemzést a JSON-ban.
maxNestingDepth 500 Pozitív egész számok A JSON-objektumok és -tömbök maximális beágyazási mélysége. Növelje ezt az értéket a mélyen beágyazott dokumentumok esetében.
maxNumLen 1000 Pozitív egész számok A számjogkivonatok maximális hossza a JSON-bemenetben. Növelje ezt az értéket A JSON értékének növelése nagy numerikus literálokkal.
maxStringLen Korlátlan Pozitív egész számok A JSON-bemenet sztringértékeinek maximális hossza. Állítsa be a memóriahasználat korlátozását a JSON nagy sztringekkel való elemzésekor.
mode PERMISSIVE \, \, \ Parszolási mód a hibásan formázott rekordok kezelésére.
multiLine false true, false Azt jelzi, hogy a JSON-rekordok több sorra is kiterjednek-e.
prefersDecimal false true, false Amikor lehetséges, megpróbálja a karakterláncokat lebegőpontos vagy double típus helyett kikövetkeztetni DecimalType formában. Sémakövetkeztetést is kell használnia az automatikus betöltő engedélyezésével inferSchema vagy használatával cloudFiles.inferColumnTypes .
primitivesAsString false true, false Meg kell-e határozni az olyan primitív típusokat, mint a számok és logikai értékek, mint StringType.
readerCaseSensitive true true, false A nagybetű érzékenység viselkedését határozza meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától. Ha hamis, olvassa be az adatokat kis- és nagybetűkre érzéketlen módon. A Databricks Runtime 13.3-ban és újabb verziókban érhető el.
rescuedDataColumn None Oszlopnév-sztring 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?.
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.
singleVariantColumn None Oszlopnév-sztring Ha oszlopnévre van állítva, a teljes JSON-rekordot egyetlen VARIANT oszlopként fogja be a megadott névvel, ahelyett, hogy minden mezőt a saját oszlopába elemezne. A céltáblának tartalmaznia kell egy VARIANT típusú oszlopot ezzel a névvel.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Időbélyeg formátum sztringje Az időbélyeg-sztringek elemzésének formátuma.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Időbélyeg formátum sztringje Az időzónák (TimestampNTZType) sztringek nélküli időbélyeg elemzésének formátuma.
timeZone None Sztring java.time.ZoneId Az java.time.ZoneId időbélyegek és dátumok elemzésekor használandó.
upgradeExceptionAsBadRecord false true, false Azt, hogy a típusfrissítési kivételeket (például ha egy értéket nem lehet a deklarált oszloptípusra szélesíteni) rossz rekordként kell-e kezelni ahelyett, hogy kivételt eredményezne.

Kafka

A Kafka-olvasó beállításainak teljes listáját a DataStreamReader Kafka beállításai között találja. Az alábbi beállítások csak a kötegolvasásokra vonatkoznak spark.read.format("kafka").

Key Alapértelmezett Érvényes értékek Description
endingOffsets latest latest, vagy JSON eltolási sztring Hol hagyja abba az olvasást. A JSON-sztringben -1 a legújabb eltolás. -2, amely a legkorábbi eltolás, nem engedélyezett záró eltolásként. Ez egy példa JSON eltolási sztringre: {"topicA":{"0":50,"1":-1}}.
endingOffsetsByTimestamp None JSON-időbélyeg-sztring Ezredmásodpercben időbélyegként megadott partícióvégző eltolások. Például: {"topicA":{"0":2000,"1":3000}}.
endingTimestamp None Pozitív egész számok vagy 0 Az összes partícióra alkalmazott globális befejezési időbélyeg ezredmásodpercben.

ORK

Az ORC-fájlok olvasása során az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
mergeSchema false true, false 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.

Parketta

Parquet-fájlok olvasásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
datetimeRebaseMode LEGACY \, \, \ A julián és a proleptikus Gergely-naptárak közötti dátum és időbélyeg értékek újraalapozását szabályozza.
int96RebaseMode LEGACY \, \, \ Az INT96 időbélyeg értékeinek korrekcióját szabályozza a Julián és a Proleptikus Gergely-naptárak között.
mergeSchema false true, false 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.
readerCaseSensitive true true, false A nagybetű érzékenység viselkedését határozza meg, ha rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától. Ha hamis, olvassa be az adatokat kis- és nagybetűkre érzéketlen módon.
rescuedDataColumn None Oszlopnév-sztring 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?.
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.

Állapottároló

A strukturált streamelési állapot adatainak olvasásához használja ezeket a beállításokat spark.read.format("statestore") vagy a read_statestore táblaértékű függvényt. Lásd: Strukturált streamelési állapotinformációk olvasása.

Key Alapértelmezett Érvényes értékek Description
batchId Legújabb kötegazonosító Pozitív egész számok vagy 0 A cél köteg, amelyből olvasni szeretne. A lekérdezés egy korábbi állapotának lekérdezésére használható. A tételt véglegesíteni kell, de még nem szabad megtisztítani.
operatorId 0 Pozitív egész számok vagy 0 A cél operátor, amelyből olvasni szeretne. Akkor használható, ha a lekérdezés több állapotalapú operátort is használ.
storeName DEFAULT Bármilyen szöveg A célállapot-tároló neve, amelyből olvasni szeretne. Akkor használható, ha az állapotalapú operátor több állapottároló-példányt is használ. Meg kell adnia a storeNamejoinSide stream-stream illesztéseket, de mindkettőt nem.
joinSide None left, right A stream-stream illesztéshez beolvasandó céloldal. Meg kell adnia a storeNamejoinSide stream-stream illesztéseket, de mindkettőt nem.
snapshotStartBatchId None Pozitív egész számok vagy 0 A pillanatkép kötegelt azonosítója, amelyet kiindulási pontként használ az olvasási állapotban. Az olvasó újraépíti az állapotot a pillanatkép módosításainak ismétlésével.batchId Akkor hasznos, ha egy pillanatkép sérült. Meg kell adnia együtt a snapshotPartitionId. Nem használható a következővel readChangeFeed: . Támogatja a HDFS által támogatott állapottárolót és a RocksDB állapottárolót a változásnapló-ellenőrzőpontok engedélyezésével. A Databricks Runtime 15.4 LTS-ben és újabb verziókban érhető el.
snapshotPartitionId None Pozitív egész számok vagy 0 Ha meg van adva, a lekérdezés csak ezt a partíciót olvassa be. Meg kell adnia együtt a snapshotStartBatchId. Nem használható a következővel readChangeFeed: . A Databricks Runtime 15.4 LTS-ben és újabb verziókban érhető el.
readChangeFeed false true, false Amikor truea rendszer állapotváltozásokat ad vissza a kötegek changeStartBatchId megadott tartományán belül.changeEndBatchId Szükséges changeStartBatchId. Nem használható a következővel joinSide: , batchId, snapshotStartBatchIdvagy snapshotPartitionId. A Databricks Runtime 16.4 LTS-ben és újabb verziókban érhető el.
További részletekért lásd: Strukturált streamelési állapot változásainak olvasása.
changeStartBatchId None Pozitív egész számok vagy 0 A változáscsatorna-tartomány kezdő kötegazonosítója. Kötelező, ha readChangeFeed van true. Csak akkor érvényes, ha readChangeFeed be van állítva.true A Databricks Runtime 16.4 LTS-ben és újabb verziókban érhető el.
changeEndBatchId Legújabb kötegazonosító Pozitív egész számok vagy 0 A változáscsatornatartomány záró kötegazonosítója. Nagyobbnak vagy egyenlőnek changeStartBatchIdkell lennie. Csak akkor érvényes, ha readChangeFeed be van állítva.true A Databricks Runtime 16.4 LTS-ben és újabb verziókban érhető el.
stateVarName None Bármilyen szöveg Az olvasni kívánt állapotváltozó neve. Az állapotváltozó neve az egyes változók egyedi neve az init operátor által StatefulProcessor használt függvényen transformWithState belül. Az operátor használata transformWithState esetén kötelező. A Databricks Runtime 16.4 LTS-ben és újabb verziókban érhető el.
readRegisteredTimers false true, false Amikor truea rendszer beolvassa az operátor által transformWithState használt regisztrált időzítőket. Csak az transformWithState operátorra vonatkozik. A Databricks Runtime 16.4 LTS-ben és újabb verziókban érhető el.
flattenCollectionTypes true true, false Amikor truea rendszer simítja a leképezési és listázási állapotváltozókhoz visszaadott rekordokat. Amikor falsea rekordokat Spark SQL-ként Array vagy Map. Csak az transformWithState operátorra vonatkozik. A Databricks Runtime 16.4 LTS-ben és újabb verziókban érhető el.

Szöveg

Szövegfájlok olvasásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
encoding UTF-8 Név java.nio.charset.Charset A SZÖVEG fájlsorelválasztó kódolásának neve. Ez a beállítás nem befolyásolja a fájl tartalmát, és a tartalom as-ispontnál kerül beolvasásra.
lineSep Nincs, amely kiterjed \r, \r\n és \n Karakterlánc Két egymást követő TEXT rekord közötti string.
wholeText false true, false Azt dönteni, hogy a fájlt egyetlen rekordként olvassuk-e be.

XML

Xml-fájlok olvasásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
rowTag None Bármilyen szöveg A sorként kezelendő XML-fájlok sorcímkéje. A példa XML-fájljában a <book> <page><page>...<book> megfelelő értéke a page. Ez egy kötelező beállítás.
samplingRatio 1.0 0.0 és 1.0 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.
excludeAttribute false true, false Az elemek attribútumainak kizárása.
mode None \, \, \ 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.
inferSchema true true, false Ha true, megpróbál egy megfelelő típust kikövetkeztetni minden eredményként kapott DataFrame-oszlophoz. Ha false, az összes eredményoszlop string típusú lesz. Az XML beépített függvényei figyelmen kívül hagyják ezt a beállítást.
columnNameOfCorruptRecord spark.sql.columnNameOfCorruptRecord Oszlopnév-sztring Lehetővé teszi az új mező átnevezését, amely a mód által PERMISSIVE létrehozott hibásan formázott sztringet tartalmazza.
attributePrefix None Bármilyen szöveg 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 érték _. Az XML olvasásához üres lehet, íráshoz azonban nem. A DataFrameWriter XML-beállításaira is vonatkozik.
valueTag _VALUE Bármilyen szöveg 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. A DataFrameWriter XML-beállításaira is vonatkozik.
encoding UTF-8 Név java.nio.charset.Charset 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. A DataFrameWriter XML-beállításaira is vonatkozik.
ignoreSurroundingSpaces true true, false Ki kell-e hagyni az értékeket körülvevő fehér szóközöket. A rendszer figyelmen kívül hagyja azokat az adatokat, amelyek csak üres helyet tartalmaznak.
rowValidationXSDPath None Fájlútvonal-sztring 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. Az XSD egyébként nincs hatással a sémára, függetlenül attól, hogy meg van-e adva vagy kikövetkeztetve.
ignoreNamespace false true, false 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évterek nem hagyhatók figyelmen kívül az rowTag elemen, csak az olvasható elemei esetén. Az XML-elemzés akkor sem névtérérzékeny, ha false.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Időbélyeg formátum sztringje Egyéni időbélyegzés formátuma, amely követi a datetime mintát. Ez timestamp típusra vonatkozik. A DataFrameWriter XML-beállításaira is vonatkozik.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Időbélyeg formátum sztringje Az időzóna nélküli időbélyeg egyéni formátum-karakterlánca, amely a dátum/idő mintázati formátumot követi. Ez a TimestampNTZType típusra vonatkozik. A DataFrameWriter XML-beállításaira is vonatkozik.
dateFormat yyyy-MM-dd Dátumformátum sztringje Az datetime mintaformátumot követő egyéni dátumformátum-karakterlánc. Ez a dátumtípusra vonatkozik. A DataFrameWriter XML-beállításaira is vonatkozik.
locale en-US IETF BCP 47 nyelvi címke 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.
nullValue húr null Bármilyen szöveg A null érték karakterlánc ábrázolását állítja be. Ebben az esetben nullaz elemző nem ír attribútumokat és elemeket a mezőkhöz. A DataFrameWriter XML-beállításaira is vonatkozik.
readerCaseSensitive true true, false Meghatározza a kis- és nagybetű érzékenységének viselkedését, ha a rescuedDataColumn engedélyezve van. Ha igaz, mentse azokat az adatoszlopokat, amelyeknek a neve esetenként eltér a sémától. Ha hamis, olvassa be az adatokat kis- és nagybetűkre érzéketlen módon.
rescuedDataColumn None Oszlopnév-sztring 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?. 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.
singleVariantColumn none Oszlopnév-sztring 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. A DataFrameWriter XML-beállításaira is vonatkozik.
useLegacyXMLParser true true, false Az örökölt XML-elemző használata. Az örökölt elemző kevésbé szigorú ellenőrzéssel rendelkezik a hibásan formázott tartalmak esetében, de kevésbé memória-hatékony. Állítsa be a false szigorúbb alapértelmezett elemző használatát.
wildcardColName xs_any Oszlopnév-sztring A helyettesítő karakter (xs:any) sémaelemnek megfelelő XML-elemek rögzítéséhez használt oszlopnév. Nem használható együtt a következővel rescuedDataColumn: .

A DataStreamReader beállításai

Ezekkel a beállításokkal DataStreamReader.option() konfigurálhatja a Delta Lake-táblákból és más fájlalapú forrásokból származó streamelési olvasásokat.

A fájlformátum beállításairól (JSON, CSV, Parquet és egyebek) lásd a DataFrameReader beállításait.

Az Automatikus betöltő (cloudFiles.*) beállításaiért lásd: Automatikus betöltő.

Example

Az alábbi példa egy Delta Lake-táblastreamre állítja be maxFilesPerTrigger10 a következőt:

Python
df = spark.readStream.format("delta").option("maxFilesPerTrigger", 10).load("/path/to/delta-table")
Scala
val df = spark.readStream.format("delta").option("maxFilesPerTrigger", "10").load("/path/to/delta-table")

Közös

Az alábbi lehetőségek a Delta Lake-táblákra és más fájlalapú streamelési forrásokra vonatkoznak.

Key Alapértelmezett Érvényes értékek Description
cleanSource off \, \, \ Forrásfájlok kezelése a stream feldolgozása után. off nem hajt végre műveletet. delete véglegesen törli a forrásfájlt. archive áthelyezi a fájlt a következőre sourceArchiveDir: . Ha be van archiveállítva, sourceArchiveDir akkor is be kell állítani. Nem vonatkozik a Delta Lake-táblastreamelésre.
fileNameOnly false true, false Azt, hogy a már feldolgozott fájlokat csak fájlnév alapján, nem pedig teljes elérési út alapján kell-e azonosítani. Amikor trueaz azonos fájlnévvel rendelkező különböző elérési utakon lévő fájlokat a rendszer ugyanazzal a fájllal kezeli, és nem dolgozza fel újra. Nem vonatkozik a Delta Lake-táblastreamelésre.
latestFirst false true, false A legutóbb módosított fájlok feldolgozása az egyes mikrokötegekben először. Akkor hasznos, ha a lehető leggyorsabban szeretné feldolgozni a legújabb adatokat. Amikor true és maxFilesPerTriggermaxBytesPerTrigger be van állítva, maxFileAge a rendszer figyelmen kívül hagyja. Nem vonatkozik a Delta Lake-táblastreamelésre.
maxBytesPerTrigger None Pozitív egész számok Az egyes mikro kötegekhez feldolgozott adatok maximális száma. Ha a legkisebb bemeneti egység túllépi a korlátot, a kötegek feldolgozhatják a korlátot. Ha együtt maxFilesPerTriggerhasználják, a mikroköteg addig dolgozza fel az adatokat, amíg el nem éri a korlátot.
Helyette az Auto Loaderhez használja cloudFiles.maxBytesPerTrigger. Lásd: Gyakori.
maxCachedFiles 10000 Pozitív egész számok vagy 0 A további mikro kötegekhez gyorsítótárazandó feldolgozatlan fájlok maximális száma. Állítsa be a 0 gyorsítótárazás kikapcsolására. Növelje ezt az értéket, ha a forráskönyvtár sok új fájlt tartalmaz minden eseményindítóhoz. Nem vonatkozik a Delta Lake-táblastreamelésre.
maxFileAge 7d Időtartam-sztring, például 7d vagy 4h A feldolgozásra szánt fájlok maximális kora a legutóbb módosított fájl időbélyegéhez viszonyítva, nem pedig a jelenlegi rendszeridőhöz képest. Az ennél a küszöbértéknél régebbi fájlok figyelmen kívül lesznek hagyva. Figyelmen kívül hagyja, ha latestFirst van true , és maxFilesPerTriggermaxBytesPerTrigger be van állítva. Nem vonatkozik a Delta Lake-táblastreamelésre.
maxFilesPerTrigger 1000 a Delta Lake és az Auto Loader esetében. Más fájlalapú források esetében nincs maximális érték. Pozitív egész számok Az egyes mikro kötegekben feldolgozott új fájlok számának felső határa. Ha együtt maxBytesPerTriggerhasználják, a mikroköteg addig dolgozza fel az adatokat, amíg el nem éri a korlátot.
Helyette az Auto Loaderhez használja cloudFiles.maxFilesPerTrigger. Lásd: Gyakori.
sourceArchiveDir None Elérési út sztringje Az archív könyvtár elérési útja, ha cleanSource be van állítva archive. A forrásfájlok a feldolgozás után ebbe az útvonalba kerülnek, megőrizve a relatív könyvtárszerkezetüket. Nem vonatkozik a Delta Lake-táblastreamelésre.

Automatikus betöltő

Ezekkel a beállításokkal a forrással konfigurálhatja az cloudFilesAutomatikus betöltőt a felhőbeli tárolóból történő streamelési betöltéshez. A forrásra cloudFiles vonatkozó beállítások előtaggal cloudFiles vannak elosztva, hogy azokat más strukturált streamelési forrásbeállításoktól eltérő névtérben tarthassa.

Közös

Az alábbi beállítások az összes automatikus betöltő konfigurációra vonatkoznak.

Key Alapértelmezett Érvényes értékek Description
cloudFiles.allowOverwrites false true, false Engedélyezi-e, hogy a bemeneti könyvtár fájlmódosításai felülírják a meglévő adatokat.
A konfigurációs figyelmeztetésekért lásd: Újrafeldolgozza az Auto Loader a fájlt, amikor a fájlt hozzáfűzik vagy felülírják?.
cloudFiles.backfillInterval None Időtartam-sztring, például 1 day vagy 1 week Az automatikus betöltő képes aszinkron visszatöltéseket aktiválni egy adott időközönként. További információért lásd: rendszeres utántöltések indítása a cloudFiles.backfillInterval használatával.
Ne használja, ha cloudFiles.useManagedFileEvents be van állítva.true
cloudFiles.cleanSource OFF \, \, \ A feldolgozott fájlok automatikus törlése vagy áthelyezése a bemeneti könyvtárból. Ha az alapértelmezett értékre van OFF állítva, a rendszer nem töröl fájlokat.
Ha be van állítva, az DELETEAutomatikus betöltő a feldolgozás után 30 nappal automatikusan törli a fájlokat. Ehhez az automatikus betöltőnek írási engedélyekkel kell rendelkeznie a forráskönyvtárhoz.
Ha be van állítva, az MOVEAutomatikus betöltő automatikusan áthelyezi a fájlokat a megadott helyre cloudFiles.cleanSource.moveDestination a feldolgozást követő 30 napon belül. Ehhez az Auto Loader-nek írási engedélyekkel kell rendelkeznie a forrásmappára és az áthelyezési célhelyre.
A fájl akkor tekinthető feldolgozottnak, ha a táblaértékfüggvény eredménye commit_time nem null cloud_files_state értékű. Lásd cloud_files_state táblaértékelt függvény. A feldolgozás utáni 30 napos további várakozás konfigurálható a használatával cloudFiles.cleanSource.retentionDuration.
Az engedélyezés előtt tekintse át a következő szempontokat cloudFiles.cleanSource:
  • Azure Databricks nem javasolja ezt a beállítást, ha több stream is használ adatokat a forráshelyről, mert a leggyorsabb felhasználó törli a fájlokat, és a lassabb forrásokba nem kerülnek be.
  • A funkció engedélyezéséhez az automatikus betöltőnek további állapotot kell fenntartania az ellenőrzőponton, ami többletterhelést okoz, de a táblaértékelt függvényen keresztül cloud_files_state jobb megfigyelhetőséget tesz lehetővé. Lásd cloud_files_state táblaértékelt függvény.
  • cleanSourceaz aktuális beállítással dönti el, hogy egy adott fájlt vagy MOVE fájlt szeretne-e DELETE használni. Tegyük fel például, hogy a beállítás MOVE volt, amikor a fájlt eredetileg feldolgozták, de 30 nappal később DELETE-ra változott, amikor a fájl a tisztításra jelöltté vált. Ebben az esetben a cleanSource törli a fájlt.
  • A fájlok nem garantáltan törlődnek, amint lejárnak retentionDuration . A költségek alacsonyan tartása érdekében az Automatikus betöltő a streamfeldolgozással egyidejűleg törli a fájlokat, és a streamfeldolgozás befejeződése vagy leállása után leáll. Az automatikus betöltő következő futtatásakor a rendszer felveszi azokat a fájlokat, amelyek törlésre jelöltek, de a streamfeldolgozás során nem sikerült megtisztítani őket.

A Databricks Runtime 16.4-ben és újabb verziókban érhető el.
cloudFiles.cleanSource.retentionDuration 30 days CalendarInterval sztring, például 14 days: , 2 weeksvagy1 month Mennyi időt kell várni, amíg a feldolgozott fájlok archiválásra kerülnek a következővel cleanSource: . A DELETE esetében 7 napnál hosszabbnak kell lennie. Nincs minimális korlátozás a következőre MOVE: .
A Databricks Runtime 16.4-ben és újabb verziókban érhető el.
cloudFiles.cleanSource.moveDestination None Felhőbeli tároló vagy Unity Catalog-kötet elérési útja A feldolgozott fájlok archiválási útvonala, ahová kerülnek, ha a cloudFiles.cleanSource beállítva van MOVE értékre. Ez lehet egy felhőalapú tárolási útvonal vagy egy Unity-katalógus kötetútvonala (például /Volumes/my_catalog/my_schema/my_volume/archive/).
Az áthelyezési helynek a következőnek kell lennie:
  • Nem lehet a forráskönyvtár gyermeke. Ha az áthelyezési célhelyet a forráskönyvtárban helyezi el, a rendszer ismét betölti az archivált fájlokat.
  • Legyen ugyanazon a külső helyen, köteten vagy DBFS-csatlakoztatáson, mint a forrás. A vödrök közötti és tartályok közötti áthelyezések nem támogatottak, és hibát okoznak.

Az automatikus betöltőnek írási engedélyekkel kell rendelkeznie ehhez a könyvtárhoz.
A Databricks Runtime 16.4-ben és újabb verziókban érhető el.
cloudFiles.format Nincs (kötelező beállítás) avro, binaryFile, csv, jsonorc, parquet, textxml Az adatfájl formátuma a forrásútvonalon. Az érvényes értékek a következők:
cloudFiles.includeExistingFiles true true, false 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.
cloudFiles.inferColumnTypes false true, false Pontos oszloptípusok következtetése a sémakövetkeztetés használatakor. Alapértelmezés szerint az oszlopok sztringekként lesznek kikövetkeztetve A JSON- és CSV-adathalmazok következtetésekor. További részletekért lásd a sémakövetkeztetést .
cloudFiles.maxBytesPerTrigger None Bájtsztring, például 10g Az összes eseményindítóban feldolgozandó új bájtok maximális száma. Ez egy lágy maximum. Ha mindegyik fájl 3 GB, Azure Databricks 12 GB-ot dolgoz fel egy mikro kötegben. Az egyes fájlok soha nem lesznek felosztva mikrokötegek között; mindig teljes egészében dolgozzák fel egyetlenen belül, még akkor is, ha mérete meghaladja ezt a korlátot. Ha az cloudFiles.maxFilesPerTrigger együtt használják, az Azure Databricks az cloudFiles.maxFilesPerTrigger vagy cloudFiles.maxBytesPerTrigger közül legfeljebb az alsó határt éri el, attól függően, hogy melyiket éri el először. Ez a beállítás nincs hatással, ha a Trigger.Once() opcióval együtt használják (Trigger.Once() elavult).
A Databricks Runtime 18.0-s vagy újabb verziója esetén ez a beállítás dinamikusan van konfigurálva, és nem kell manuálisan beállítani.
cloudFiles.maxFileAge None Időtartam-sztring Meddig követhető nyomon egy fájlesemény deduplikációs célokból. A Databricks nem javasolja a paraméter finomhangolását, kivéve, ha óránként több millió fájl sorrendjében betölt adatokat. További részletekért tekintse meg a Fájlesemények nyomon követéséről szóló szakaszt.
A túl agresszív hangolás cloudFiles.maxFileAge adatminőségi problémákat, például duplikált betöltést vagy hiányzó fájlokat okozhat. Ezért a Databricks egy konzervatív beállítást cloudFiles.maxFileAgejavasol , például 90 napig, ami hasonló ahhoz, amit az összehasonlítható adatbetöltési megoldások javasolnak.
cloudFiles.maxFilesPerTrigger 1000 Pozitív egész számok Az összes eseményindítóban feldolgozandó új fájlok maximális száma. Ha az cloudFiles.maxBytesPerTrigger együtt használják, az Azure Databricks az cloudFiles.maxFilesPerTrigger vagy cloudFiles.maxBytesPerTrigger közül legfeljebb az alsó határt éri el, attól függően, hogy melyiket éri el először. Ennek a beállításnak nincs hatása, amikor az Trigger.Once() (elavult) használatával alkalmazzák.
A Databricks Runtime 18.0-s vagy újabb verziója esetén ez a beállítás dinamikusan van konfigurálva, és nem kell manuálisan beállítani.
cloudFiles.partitionColumns None Oszlopnevek vesszővel tagolt listája 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, amelyeket egyenlőségjelek, 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 az <base-path> adatok betöltéséhez használt 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
Specifying cloudFiles.partitionColumns mint year,month,day, visszaadja year=2022 a file1.csv számára, de a month és day oszlopok null.
A month és day számára file2.csv és file3.csv megfelelően vannak elemezve.
cloudFiles.schemaEvolutionMode addNewColumns ha nincs megadva séma, none ellenkező esetben addNewColumns, none, rescuefailOnNewColumns 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 .
cloudFiles.schemaHints None Sémasztring 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 .
cloudFiles.schemaLocation Nincs (a séma következtetéséhez szükséges) Elérési út sztringje 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 .
cloudFiles.useStrictGlobber false true, false 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.
cloudFiles.validateOptions true true, false Annak eldöntése, hogy érvényesüljenek-e az automatikus betöltő beállításai, és adjanak-e hibát ismeretlen vagy inkonzisztens beállítások esetén.

Könyvtárlista

A címtár-lista mód használatakor a következő beállítás érvényes.

Key Alapértelmezett Érvényes értékek Description
cloudFiles.useIncrementalListing (elavult) auto a Databricks Runtime 17.2-ben és alatta, false a Databricks Runtime 17.3-on és újabb verziókban \, \, \ Ez a funkció már elavult. A Databricks azt javasolja, hogy a fájlértesítési módot fájleseményekkel használja a cloudFiles.useIncrementalListing helyett.
A könyvtárlista módban lehetőség van a teljes lista helyett a növekményes lista használatára. Az Automatikus betöltő alapértelmezés szerint mindent megtesz annak érdekében, hogy automatikusan észlelje, hogy egy adott könyvtár alkalmazható-e a növekményes listaelemre. Kifejezetten használhatja a növekményes listázást vagy a teljes könyvtárlistázást azáltal, hogy azokat ennek megfelelően true vagy false értékre állítja be.
Ha helytelenül engedélyezi a növekményes listaelemeket egy nem lexikálisan rendezett könyvtárban, az megakadályozza, hogy az automatikus betöltő új fájlokat derítsen fel.
Az Azure Data Lake Storage (abfss://), az S3 (s3://) és a GCS (gs://) használatával működik.
A Databricks Runtime 9.1 LTS-ben és újabb verziókban érhető el.

Fájlértesítés

A fájlértesítési mód konfigurálásával kapcsolatos információkért, beleértve a szükséges felhőbeli engedélyeket, a beállítási utasításokat és a hitelesítési módszereket, olvassa el az Automatikus betöltő streamek konfigurálása fájlértesítési módban című témakört.

Key Alapértelmezett Érvényes értékek Description
cloudFiles.fetchParallelism 1 Pozitív egész számok Az üzenetsor-kezelő szolgáltatásból érkező üzenetek lekéréséhez használandó szálak száma.
Ne használja, ha cloudFiles.useManagedFileEvents be van állítva.true
cloudFiles.pathRewrites None JSON-leképezési sztring Csak akkor szükséges, ha olyan beállítást ad meg queueUrl , amely több S3-gyűjtőtől fogad fájlértesítéseket, és a tárolókban lévő adatok eléréséhez konfigurált csatlakoztatási pontokat szeretné használni. Ezzel a beállítással az elérési út bucket/key előtagját újraírhatja a csatolási ponttal. Csak az előtagok írhatók újra. A konfiguráció {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}esetében például az elérési út s3://<databricks-mounted-bucket>/path/2017/08/fileA.json újra lesz írva dbfs:/mnt/data-warehouse/2017/08/fileA.json.
Ne használja, ha cloudFiles.useManagedFileEvents be van állítva.true
cloudFiles.resourceTag None Kulcs-érték címke sztringjei Kulcs-érték címkepárok sorozata a kapcsolódó erőforrások társításához és azonosításához, például:
cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue")
.option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")
Ne használja, ha cloudFiles.useManagedFileEvents be van állítva.true Ehelyett állítsa be az erőforráscímkéket a felhőszolgáltató konzoljával.
További információ: Felhőszolgáltatói erőforráscímkék.
cloudFiles.useManagedFileEvents false true, false Ha az true beállítás használatban van, az Automatikus betöltő a fájlesemény-szolgáltatást használja a külső helyszínen található fájlok felderítésére. Ezt a lehetőséget csak akkor használhatja, ha a betöltési útvonal olyan külső helyen található, ahol engedélyezve van a fájlesemények használata. Lásd: Fájlértesítési mód használata fájleseményekkel.
A fájlesemények értesítések szintű teljesítményt nyújtanak a fájlfelderítésben, mivel az automatikus betöltő az utolsó futtatás után új fájlokat fedezhet fel. A címtárlistától eltérően ennek a folyamatnak nem kell felsorolnia a címtárban lévő összes fájlt.
Vannak olyan helyzetek, amikor az Automatikus betöltő címtárlistát használ annak ellenére, hogy a fájlesemények beállítás engedélyezve van:
  • A kezdeti betöltés során, amikor includeExistingFiles be van állítva true, egy teljes könyvtárlistára kerül sor, amely felderíti az összes fájlt, amely az automatikus betöltő indítása előtt a könyvtárban volt.
  • A fájlesemények szolgáltatás a legutóbb létrehozott fájlok gyorsítótárazásával optimalizálja a fájlfelderítést. Ha az automatikus betöltő ritkán fut, ez a gyorsítótár lejárhat, és az Automatikus betöltő visszaesik a címtárak listájára a fájlok felderítéséhez és a gyorsítótár frissítéséhez. A forgatókönyv elkerülése érdekében legalább hetente egyszer indítsa el az Automatikus Betöltőt.

Lásd : Mikor használja az automatikus betöltő a fájleseményeket tartalmazó címtárlistát? című témakört azokról a helyzetekről, amikor az Automatikus betöltő ezzel a beállítással címtárlistát használ.
A Databricks Runtime 14.3 LTS-ben és újabb verziókban érhető el.
cloudFiles.listOnStart false true, false Ha be van állítva, az trueAutomatikus betöltő teljes könyvtárlistát hajt végre a stream indításakor, ahelyett, hogy a folytatási jogkivonattal kezdené az ellenőrzőpontot. Ezzel a beállítással helyreállíthatja a hibákat, például CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Lásd : Hogyan lehet helyreállítani a CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN hibát?.
cloudFiles.useNotifications false true, false Azt határozza meg, hogy a fájlértesítési mód használatával állapítsa meg, hogy vannak-e új fájlok. Ha false, használja a könyvtár listázási módot. Lásd : Az automatikus betöltőfájl-észlelési módok összehasonlítása.
Ne használja, ha cloudFiles.useManagedFileEvents be van állítva.true
Felhőszolgáltatói erőforráscímkék

Az Automatikus betöltő alapértelmezés szerint a következő kulcs-érték címkepárokat adja hozzá a legjobb munkamennyiség alapján:

  • vendor: Databricks
  • path: Az adatok betöltésének helye. Címkézési korlátozások miatt nem érhető el a GCP-ben.
  • checkpointLocation: A stream ellenőrzőpontjának helye. Címkézési korlátozások miatt nem érhető el a GCP-ben.
  • streamId: A stream globálisan egyedi azonosítója.

A Databricks fenntartja ezeket a kulcsneveket, és nem írhatja felül az értékeiket.

Az Azure-ról további információt az üzenetsorok és metaadatok elnevezése, valamint az properties.labels lefedettsége című témakörben talál. Az Automatikus betöltő címkékként tárolja ezeket a kulcs-érték címke párokat JSON-ban.

Felhőspecifikus

Az Automatikus betöltő a felhőinfrastruktúra fájlértesítési módhoz való konfigurálására szolgáló beállítási lehetőségekkel rendelkezik. A szükséges felhőbeli engedélyekért és beállítási utasításokért tekintse meg az Automatikus betöltő streamek konfigurálása fájlértesítési módban című témakört.

Azure

Ha megadja az alábbi beállításokat cloudFiles.useNotifications = true , és azt szeretné, hogy az Automatikus betöltő állítsa be az értesítési szolgáltatásokat az Ön számára:

Key Alapértelmezett Érvényes értékek Description
cloudFiles.resourceGroup None Bármilyen szöveg Az Azure erőforráscsoport, amelyben a tárfiók létrejön.
cloudFiles.subscriptionId None Bármilyen szöveg Az Azure előfizetés-azonosító, amelyben az erőforráscsoport létrejön.
databricks.serviceCredential None Bármilyen szöveg A Databricks szolgáltatás hitelesítő adatainak neve. A Databricks Runtime 16.1-ben és újabb verziókban érhető el.

Ha a Databricks szolgáltatás hitelesítő adatai nem érhetők el, ehelyett a következő hitelesítési beállításokat adhatja meg:

Key Alapértelmezett Érvényes értékek Description
cloudFiles.clientId None Bármilyen szöveg A szolgáltatási főidentitás ügyfélazonosítója vagy alkalmazásazonosítója.
cloudFiles.clientSecret None Bármilyen szöveg A szolgáltatás tulajdonosának ügyféltitka.
cloudFiles.connectionString None Kapcsolati karakterlánc A tárfiók kapcsolati karakterlánca a fiók hozzáférési kulcsa vagy a közös hozzáférési jogosultságkód (SAS) alapján.
cloudFiles.tenantId None Bármilyen szöveg A Azure bérlőazonosító, amelyben a szolgáltatásnév létrejön.

Csak akkor adja meg a következő beállítást, ha be van állítva cloudFiles.useNotifications = true , és azt szeretné, hogy az Automatikus betöltő meglévő üzenetsort használjon:

Key Alapértelmezett Érvényes értékek Description
cloudFiles.queueName None Bármilyen szöveg Az Azure-sorköz neve. Ha meg van adva, a felhőfájlok forrása közvetlenül ebből az üzenetsorból használja fel az eseményeket ahelyett, hogy saját Azure Event Grid és Queue Storage-szolgáltatásokat állít be. Ebben az esetben a databricks.serviceCredential vagy cloudFiles.connectionString csak olvasási engedélyeket igényel a várólistán.

Delta-tó

A delta lake-tábla spark.readStreamhasználatával történő olvasáskor a következő beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
allowSourceColumnDrop None Verziószám vagy always Állítsa be a Delta-tábla verziószámát, vagy always engedélyezze a stream folytatását az oszlopok elvetése után a forrástábla sémájából. Ha verziószámra van állítva, az adott verzióra vonatkozó összes sémamódosítást nyugtázza. Szükséges schemaTrackingLocation. Lásd: Oszlopok átnevezése és elhagyása a Delta Lake oszlopleképezés alkalmazásával.
allowSourceColumnRename None Verziószám vagy always Állítsa be a Delta-tábla verziószámát, vagy always engedélyezze a stream folytatását a forrástáblában lévő oszlopok átnevezése után. Ha verziószámra van állítva, az adott verzióra vonatkozó összes sémamódosítást nyugtázza. Szükséges schemaTrackingLocation. Lásd: Oszlopok átnevezése és elhagyása a Delta Lake oszlopleképezés alkalmazásával.
allowSourceColumnTypeChange None Verziószám vagy always Állítsa be a Delta-tábla verziószámát, vagy always engedélyezze a stream folytatását az oszloptípusok módosítása után a forrástáblában. Ha verziószámra van állítva, az adott verzióra vonatkozó összes sémamódosítást nyugtázza. Szükséges schemaTrackingLocation. Lásd típusbővítés.
excludeRegex None Egy Java regex sztring Egy reguláris kifejezésminta. Azok a fájlok, amelyek elérési útjai megegyeznek a mintával, ki vannak zárva a streamelési olvasásból. Olyan fájlok szűréséhez hasznos, amelyek nem felelnek meg a várt elnevezési konvenciónak.
failOnDataLoss true true, false Sikertelen-e a streamelési lekérdezés, ha a forrásadatok a naplómegőrzés (logRetentionDuration) miatt lettek törölve. Állítsa be, hogy false kihagyja a hiányzó adatokat, és folytassa a feldolgozást. Lásd: Adatmegőrzés konfigurálása időutazásos lekérdezésekhez.
ignoreChanges (elavult) false true, false A Databricks Runtime 11.3 LTS és alacsonyabb verziókban érhető el. Újra kibocsátja az újraírt adatfájlokat olyan módosítási műveletek után, mint a UPDATE, MERGE INTO, DELETEvagy OVERWRITE. Az új sorok mellett változatlan sorok is kibocsáthatók, így az alsóbb rétegbeli fogyasztóknak kell kezelni az ismétlődéseket. A törléseket a rendszer nem propagálja lefelé. A helyére skipChangeCommits a Databricks Runtime 12.2 LTS és újabb verziók lépnek.
ignoreDeletes (elavult) false true, false Figyelmen kívül hagyja azokat a tranzakciókat, amelyek adatokat törölnek a partícióhatárokon (csak a teljes partíció csökken). Nem kezeli a nem partíciós törléseket, frissítéseket és egyéb módosításokat. A skipChangeCommits használható helyette.
readChangeFeed vagy readChangeData false true, false Engedélyezi-e a változásadatcsatorna olvasását a streamelési lekérdezéshez. Ha engedélyezve van, a stream sorszintű módosításokat (beszúrásokat, frissítéseket és törléseket) bocsát ki további metaadatoszlopokkal. Lásd: Adatcsatorna módosítása Azure Databricks.
schemaTrackingLocation None Elérési út sztringje Elérési út egy könyvtárhoz, ahol a Delta Lake nyomon követi a streamelési olvasás sémamódosításait. Ez akkor szükséges, ha az oszlopleképezést engedélyező táblákról streamel, és a sémafejlődés kezelésére vonatkozó beállításokat használ allowSourceColumn* . A streamelési lekérdezésen belül checkpointLocation kell lennie. Lásd: Oszlopok átnevezése és elhagyása a Delta Lake oszlopleképezés alkalmazásával.
skipChangeCommits false true, false Figyelmen kívül hagyja a meglévő rekordokat és folyamatokat csak hozzáfűzőket törlő vagy módosító tranzakciókat. A Databricks ezt a beállítást a legtöbb olyan számítási feladat esetében javasolja, amelyek nem használnak változási adatcsatornákat. A Databricks Runtime 12.2 LTS-ben és újabb verziókban érhető el. Lásd: A felsőbb rétegbeli módosítás véglegesítéseinek kihagyása a következővel skipChangeCommits: .
startingTimestamp Legújabb elérhető Időbélyeg-sztring, például 2019-01-01T00:00:00.000Z dátumsztring, például 2019-01-01 Az olvasás megkezdésének időbélyege. A stream beolvassa az összes, a megadott időbélyegen vagy után véglegesített táblamódosítást. Ha az időbélyeg megelőzi az összes elérhető tábla véglegesítését, a stream a legkorábbi elérhető véglegesítéstől indul. Nem használható együtt a következővel startingVersion: . Figyelmen kívül hagyja, ha a streamelési ellenőrzőpont már létezik.
startingVersion Legújabb elérhető Pozitív egész szám, 0vagy latest Delta táblaverzió, amelyből elkezdhet olvasni. A stream beolvassa az összes véglegesített módosítást a megadott verzióban vagy után. Adja meg latest , hogy csak a legutóbbi módosításoktól induljon el. Nem használható együtt a következővel startingTimestamp: . Figyelmen kívül hagyja, ha a streamelési ellenőrzőpont már létezik. Lásd: Táblázatelőzmények megjelenítése.
withEventTimeOrder false true, false A kezdeti tábla-pillanatképet eseményidő gyűjtőkre osztja, így megakadályozza, hogy a rekordok helytelenül legyenek megjelölve késői eseményként, és a vízjelekkel rendelkező állapotalapú lekérdezésekben ne legyenek megjelölve. A pillanatképek kezdeti feldolgozása az ellenőrzőpont törlése nélkül nem módosítható. A Databricks Runtime 11.3 LTS-ben és újabb verziókban érhető el. Lásd : Folyamat kezdeti pillanatképe adatok elvetése nélkül.

Kafka

Használja az alábbi lehetőségeket a következőkkel:spark.readStream.format("kafka")spark.read.format("kafka")

Key Alapértelmezett Érvényes értékek Description
assign None JSON-sztring, például {"topicA":[0,1],"topicB":[2,4]} A használni kívánt partíciók. Pontosan meg kell adnia az subscribeegyik lehetőséget subscribePatternvagy assign beállítást.
failOnDataLoss true true, false A lekérdezés meghiúsulása, ha az adatok elveszhetnek, például törölt témakörök vagy eltolás csonkolása miatt. Állítsa be a false hiányzó adatok kihagyására és a folytatásra.
A Databricks óvatos becslést ad arról, hogy az adatok elveszhettek-e. Ez azonban téves riasztásokat okozhat.
fetchoffset.numretries 3 Pozitív egész számok vagy 0 A Kafka-eltolások beolvasása során az újrapróbálkozások száma meghiúsul.
fetchoffset.retryintervalms 1000 Pozitív egész számok vagy 0 Az eltolás beolvasási újrapróbálkozások közötti ezredmásodpercben megadott intervallum.
groupIdPrefix spark-kafka-source (streamelés), spark-kafka-relation (köteg) Bármilyen szöveg Az automatikusan létrehozott Kafka fogyasztói csoportazonosítóhoz használandó testreszabott előtag. Ha kafka.group.id explicit módon van beállítva, az összekötő figyelmen kívül hagyja ezt a beállítást.
kafka.group.id None Bármilyen szöveg Az olvasáshoz használandó Kafka fogyasztói csoport azonosítója. Óvatosan használja: az azonos csoportazonosítóval rendelkező lekérdezések zavarják egymást, és csak részleges adatokat olvasnak. Ez akkor fordulhat elő, ha egyidejű kötegelt és streamelési számítási feladatokat futtat, vagy ha a lekérdezések gyorsan újraindulnak. Ha be van állítva, groupIdPrefix a rendszer figyelmen kívül hagyja. A problémák minimalizálása érdekében állítsa a Kafka fogyasztói konfigurációját session.timeout.ms egy kis értékre.
includeHeaders false true, false Kafka-üzenetfejlécek szerepeljenek-e oszlopként a kimenetben.
kafkaconsumer.polltimeoutms None Pozitív egész számok A Kafka fogyasztói poll() hívás időtúllépése ezredmásodpercben.
kafka.bootstrap.servers None Sztringek vesszővel tagolt listája host:port Kafka-közvetítők gazdagép-portcímeinek vesszővel tagolt listája. Beállítja a Kafka-ügyfél tulajdonságát bootstrap.servers .
Ha úgy találja, hogy a Kafka nem tartalmaz adatokat, ellenőrizze a közvetítő címlistájában a helytelen címeket. Ha a közvetítő címlistája helytelen, előfordulhat, hogy nem történt hiba. A Kafka-ügyfelek feltételezik, hogy a közvetítők végül elérhetők lesznek, és újra próbálkoznak örökre, amikor hálózati hibákat kapnak.
maxRecordsPerPartition None Pozitív egész számok Az egyes Spark-partíciók rekordjainak maximális száma. Ha be van állítva, az összekötő felosztja a Kafka-partíciókat, így minden Spark-partíció legfeljebb ennyi rekordot olvas be.
Ezt a lehetőséget a következővel is használhatja minPartitions: Ha mindkét beállítás be van állítva, a Spark azt használja, amelyik több partíciót eredményez.
minPartitions None Pozitív egész számok A Kafkából beolvasandó Spark-partíciók minimális száma. Ha be van állítva, az összekötő felosztja a nagy Kafka-partíciókat a párhuzamosság növelése érdekében. Ha nincs beállítva, a Spark minden Kafka-témakörpartícióhoz létrehoz egy partíciót. Hasznos adateltérés vagy csúcsterhelés kezelésére.
Ez a beállítás újrainicializálja a Kafka-felhasználókat minden eseményindítóhoz, ami befolyásolhatja az SSL teljesítményét.
startingOffsets latest (streamelés), earliest (köteg) earliest, vagy latestJSON eltolási sztring Az eltolás, amelyből a lekérdezés megkezdi az olvasást. A JSON-sztringben -1 a legújabb eltolás. -2 a legkorábbi eltolás. Például: {"topicA":{"0":23,"1":-2}}.
Streamelési lekérdezések esetén ez a beállítás csak új lekérdezés indításakor érvényes. Az újrakezdett lekérdezések mindig az ellenőrzőpontot használják. A lekérdezés során az új partíciók a legkorábbi eltoláskor kezdik el az olvasást.
Kötegelt lekérdezések latest esetén nem engedélyezett.
startingOffsetsByTimestamp None JSON-időbélyeg-sztring, például {"topicA":{"0":1000,"1":2000}} Az egyes partíciók kezdő eltolásainak listája, időbélyegként megadva ezredmásodpercben. Ha nincs eltolás az időbélyeghez, a lekérdezés viselkedését a rendszer határozza startingOffsetsByTimestampStrategymeg.
Streamelési lekérdezések esetén ez a beállítás csak új lekérdezés indításakor érvényes. Az újrakezdett lekérdezések mindig az ellenőrzőpontot használják. A lekérdezés során az új partíciók a legkorábbi eltoláskor kezdik el az olvasást.
startingOffsetsByTimestampStrategy error error, latest Az a stratégia, amelyet akkor kell használni, ha nem található eltolás a megadott startingOffsetsByTimestamp időbélyeghez vagy startingTimestamp. error kivételt jelez. latest A legújabb elérhető eltolást használja.
startingTimestamp None Pozitív egész számok vagy 0 A globális kezdési időbélyeg ezredmásodpercben, amely az összes partícióra vonatkozik. Ha nincs eltolás az időbélyeghez, a viselkedést a rendszer szabályozza startingOffsetsByTimestampStrategy.
subscribe None Témakörnevek vesszővel tagolt listája A feliratkozáshoz kapcsolódó témakörök. Pontosan meg kell adnia az subscribeegyik lehetőséget subscribePatternvagy assign beállítást.
subscribePattern None Egy Java regex sztring A témakörökre való feliratkozáshoz használt minta. Pontosan meg kell adnia az subscribeegyik lehetőséget subscribePatternvagy assign beállítást. Például: topic.*.

A következő beállítások csak a streamelési olvasásokra vonatkoznak spark.readStream.format("kafka"):

Key Alapértelmezett Érvényes értékek Description
bytesEstimateWindowLength 300s Időtartam-sztringek, például 10m vagy 600s A metrikához tartozó fennmaradó bájtok becsléséhez estimatedTotalBytesBehindLatest használt időablak. Lásd: Kafka-metrikák lekérése.
maxOffsetsPerTrigger None Pozitív egész számok Az eseményindító-intervallumonként feldolgozandó eltolások maximális száma. Az eltolások arányosan vannak elosztva a témakörpartíciók között.
maxTriggerDelay 15m Időtartam-sztringek, például 10m vagy 600s Az aktiválás előtt a halmozódásra váró minOffsetsPerTrigger maximális idő.
minOffsetsPerTrigger None Pozitív egész számok A mikroköteg aktiválása előtt felhalmozandó eltolások minimális száma. Amikor maxTriggerDelay el van érve, a mikroköteg függetlenül fut.

A csak kötegelt olvasásokra spark.read.format("kafka")vonatkozó eltolási beállításokért lásd a DataFrameReader Kafka beállításait.

Hitelesítés

A Databricks a Unity Catalog szolgáltatás hitelesítő adatainak használatát javasolja a felhőben felügyelt Kafka-szolgáltatások (AWS MSK, Azure Event Hubs vagy Google Cloud Managed Kafka) hitelesítéséhez.

Key Alapértelmezett Érvényes értékek Description
databricks.serviceCredential None Bármilyen szöveg A Unity Catalog szolgáltatás hitelesítő adatainak neve a felhő által felügyelt Kafka-szolgáltatásokhoz való hitelesítéshez. A Databricks Runtime 16.1-ben és újabb verziókban érhető el.
databricks.serviceCredential.scope None Bármilyen szöveg A szolgáltatás hitelesítő adatainak OAuth-hatóköre. Ezt csak akkor állítsa be, ha Azure Databricks nem tudja automatikusan következtetni a Kafka-szolgáltatás hatókörére.

Ha egy szolgáltatás hitelesítő adatai nem érhetők el, használjon SASL/SSL-beállításokat (tulajdonságokként kafka.* továbbítva). Szolgáltatás hitelesítő adatainak használatakor nem kell megadnia kafka.sasl.mechanismaz , kafka.sasl.jaas.configvagy kafka.security.protocol.

Key Alapértelmezett Érvényes értékek Description
kafka.security.protocol None Biztonsági protokoll sztringje, például SASL_SSL: , SSLPLAINTEXT A közvetítői kommunikáció biztonsági protokollja.
kafka.sasl.mechanism None SASL-mechanizmus sztringje, például PLAIN: , SCRAM-SHA-256SCRAM-SHA-512, , OAUTHBEARERAWS_MSK_IAM Az SASL mechanizmus.
kafka.sasl.jaas.config None JAAS-konfigurációs sztring A JAAS bejelentkezési konfigurációs sztringje.
kafka.sasl.login.callback.handler.class None Teljes osztálynév A SASL-hitelesítéshez használt bejelentkezési visszahívás-kezelő teljes osztályneve.
kafka.sasl.client.callback.handler.class None Teljes osztálynév Az SASL-hitelesítéshez használt ügyfélhívás-visszahívás-kezelő teljes osztályneve.
kafka.ssl.truststore.location None Fájlútvonal-sztring Az SSL megbízhatósági tárolófájl elérési útja.
kafka.ssl.truststore.password None Bármilyen szöveg Az SSL megbízhatósági tárolófájl jelszava.
kafka.ssl.keystore.location None Fájlútvonal-sztring Az SSL-kulcstároló fájl elérési útja.
kafka.ssl.keystore.password None Bármilyen szöveg Az SSL-kulcstároló fájl jelszava.

A teljes hitelesítési beállítási utasításokért tekintse meg a Hitelesítés című témakört.

Pub/Sub

Ezekkel a beállításokkal spark.readStream.format("pubsub") feliratkozhat a Google Pub/Sub szolgáltatásra. A beállítások subscriptionId, topicIdés projectId kötelezőek.

Key Alapértelmezett Érvényes értékek Description
subscriptionId None Bármilyen szöveg Kötelező. A pub/al-előfizetés azonosítója. Az összekötő létrehozza az előfizetést, ha nem létezik.
topicId None Bármilyen szöveg Kötelező. A pub/altémakör azonosítója.
projectId None Bármilyen szöveg Kötelező. A Google Cloud projektazonosítója.
numFetchPartitions A stream inicializálásakor elérhető végrehajtók számának fele Pozitív egész számok Az előfizetés sorait lekérő párhuzamos Spark-feladatok száma.
maxBytesPerTrigger None Pozitív egész számok A mikro kötegenként feldolgozandó bájtok számának enyhe korlátja.
maxRecordsPerFetch 1000 Pozitív egész számok A feldolgozás előtt beolvasandó sorok száma tevékenységenként.
maxFetchPeriod 10s Időtartam-sztring, például 1s vagy 1m Az az időtartam, ameddig az egyes feladatok adatokat kérnek le a sorok feldolgozása előtt. Azure Databricks az alapértelmezett érték használatát javasolja.
deleteSubscriptionOnStreamStop false true, false Amikor truea streamelési lekérdezés véget ér, a rendszer törli az előfizetést subscriptionId.
serviceCredential None Bármilyen szöveg Egy Azure Databricks szolgáltatás hitelesítő adatainak neve a Pub/Sub hitelesítéséhez. A Databricks Runtime 16.1-ben és újabb verziókban érhető el.
clientEmail None E-mail-cím sztringje A Google szolgáltatásfiók e-mail-címe. Szolgáltatás hitelesítő adatainak használata esetén kötelező.
clientId None Bármilyen szöveg A Google szolgáltatásfiók ügyfélazonosítója. Szolgáltatás hitelesítő adatainak használata esetén kötelező.
privateKey None Titkos kulcs sztringje A Google szolgáltatásfiók titkos kulcsa. Szolgáltatás hitelesítő adatainak használata esetén kötelező.
privateKeyId None Bármilyen szöveg A Google szolgáltatásfiók titkos kulcsazonosítója. Szolgáltatás hitelesítő adatainak használata esetén kötelező.

A Pub/Sub szolgáltatásról további információt a Feliratkozás a Google Pub/Sub szolgáltatásra című témakörben talál.

Pulzár

Ezekkel a beállításokkal spark.readStream.format("pulsar") streamelhet az Apache Pulsarból. A Databricks Runtime 14.1-ben és újabb verziókban érhető el.

A következő lehetőségek szükségesek. Pontosan meg kell adnia az egyiket topic, topicsvagy topicsPatterna másikat.

Key Alapértelmezett Érvényes értékek Description
service.url None A Pulsar szolgáltatás URL-sztringje A Pulsar szolgáltatás pulzárja serviceURL , például pulsar://broker.example.com:6650.
topic None Bármilyen szöveg Egyetlen felhasználandó témakörnév.
topics None Témakörnevek vesszővel tagolt listája A használandó témakörnevek vesszővel tagolt listája.
topicsPattern None Egy Java regex sztring Egy Java regex sztring, amely megfelel a témakörneveknek.

A következő lehetőségek is támogatottak:

Key Alapértelmezett Érvényes értékek Description
admin.url None URL-sztring A Pulsar felügyeleti szolgáltatás HTTP-URL-címe. maxBytesPerTrigger Ha be van állítva, kötelező megadni.
allowDifferentTopicSchemas false true, false Ha több különböző sémával rendelkező témakört olvas, ezzel a beállítással kikapcsolhatja az automatikus sémaalapú témakörérték-deszerializálást. Ez esetben csak a nyers értékek lesznek visszaadva true.
failOnDataLoss true true, false Azt határozza meg, hogy az adatok elvesztésekor sikertelen legyen-e a lekérdezés. Adatvesztés történhet például a témakörök törlésekor, illetve az üzenetek adatmegőrzési szabályzat miatt való lejáratakor.
maxBytesPerTrigger None Pozitív egész számok A mikro kötegenként feldolgozandó bájtok számának enyhe korlátja. Szükséges admin.url.
pollTimeoutMs 120000 Pozitív egész számok A Pulsar üzeneteinek ezredmásodpercben történő olvasásának időtúllépése.
predefinedSubscription None Bármilyen szöveg Az összekötő által a Spark-alkalmazások előrehaladásának nyomon követéséhez használt előre definiált előfizetésnév.
startingOffsets latest latest, vagy earliestJSON eltolási sztring Honnan kezdjen el olvasni?
subscriptionPrefix None Bármilyen szöveg Az összekötő által a Spark-alkalmazások előrehaladásának nyomon követésére szolgáló véletlenszerű előfizetés létrehozásához használt előtag.
waitingForNonExistedTopic false true, false Azt jelzi, hogy az összekötő megvárja-e a kívánt témakörök létrehozását.

További Pulsar-ügyfél-, rendszergazda- és olvasókonfigurációkat az alábbi beállítási minták használatával adhat meg:

Minta Konfigurációs beállítások
pulsar.admin.* Pulsar rendszergazdai konfiguráció
pulsar.client.* Pulsar-ügyfélkonfiguráció, beleértve az olyan hitelesítési lehetőségeket is, mint az pulsar.client.authPluginClassName és pulsar.client.authParams.
pulsar.reader.* Pulsar-olvasó konfigurációja

További információ a Pulsar ügyfél- és rendszergazdai hitelesítési lehetőségeiről: Hitelesítés.

Hitelesítés

Az Azure Databricks támogatja a truststore és a keystore hitelesítést a Pulsar számára. Azure Databricks a titkos kulcsok használatát javasolja a hitelesítési adatok tárolásához. Lásd: Titkos kódok kezelése.

Key Alapértelmezett Érvényes értékek Description
pulsar.client.authPluginClassName None Teljes osztálynév A hitelesítési beépülő modul teljes osztályneve. Például: org.apache.pulsar.client.impl.auth.AuthenticationTls.
pulsar.client.authParams None Hitelesítőadat-sztring A hitelesítési beépülő modulnak sztringként átadott hitelesítési hitelesítő adatok. Például: tlsCertFile:/path/to/my-role.cert.pem,tlsKeyFile:/path/to/my-role.key-pk8.pem.
pulsar.client.useKeyStoreTls false true, false Amikor trueengedélyezi a KeyStore-alapú TLS-konfigurációt PEM-formátumú fájlok helyett.
pulsar.client.tlsTrustStoreType None Bármilyen szöveg A TLS megbízhatósági tárolófájl formátuma. Például: JKS.
pulsar.client.tlsTrustStorePath None Fájlútvonal-sztring A megbízható hitelesítésszolgáltatói tanúsítványokat tartalmazó TLS megbízhatósági tárolófájl elérési útja. Kötelező, ha pulsar.client.useKeyStoreTls van true.
pulsar.client.tlsTrustStorePassword None Bármilyen szöveg A TLS megbízhatósági tárolófájl jelszava.

Ha a stream a következőt PulsarAdminhasználja, a következő beállításokat is megadhatja:

Key Alapértelmezett Érvényes értékek Description
pulsar.admin.authPluginClassName None Teljes osztálynév A Pulsar felügyeleti ügyfél hitelesítési beépülő moduljának teljes osztályneve.
pulsar.admin.authParams None Hitelesítőadat-sztring Hitelesítési hitelesítő adatok a Pulsar rendszergazdai ügyfél-hitelesítési beépülő moduljához.
pulsar.admin.useTls None true, false TLS használata a Pulsar rendszergazdai ügyfélkapcsolathoz.
pulsar.admin.tlsAllowInsecureConnection None true, false Nem biztonságos TLS-kapcsolatok engedélyezése a Pulsar felügyeleti ügyfél számára.
pulsar.admin.tlsTrustCertsFilePath None Fájlútvonal-sztring A Pulsar felügyeleti ügyfél megbízható TLS-tanúsítványfájljának elérési útja.
pulsar.admin.useKeyStoreTls None true, false A KeyStore-alapú TLS használata a Pulsar felügyeleti ügyfélhez.
pulsar.admin.tlsTrustStoreType None Bármilyen szöveg A Pulsar felügyeleti ügyfél TLS megbízhatósági tárolójának formátuma. Például: JKS.
pulsar.admin.tlsTrustStorePath None Fájlútvonal-sztring A Pulsar felügyeleti ügyfél TLS megbízhatósági tárolófájljának elérési útja. Kötelező, ha pulsar.admin.useKeyStoreTls van true.
pulsar.admin.tlsTrustStorePassword None Bármilyen szöveg A Pulsar rendszergazdai ügyfél TLS megbízhatósági tárolójának jelszava.

A hitelesítési példákat lásd: Hitelesítés a Pulsarban.

A DataFrameWriter beállításai

Ezekkel a beállításokkal DataFrameWriter.option() és DataFrameWriterV2.option() szabályozhatja, hogy Azure Databricks hogyan írja le az adatokat.

Example

Az alábbi példa egy Delta Lake-tábla írására állítja be mergeSchemaTrue a következőt:

Python
df.write.format("delta").option("mergeSchema", True).saveAsTable("my_table")
Scala
df.write.format("delta").option("mergeSchema", "true").saveAsTable("my_table")

Avro

Az Avro-fájlok írásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
avroSchema None JSON-sémasztring A teljes Avro-séma JSON-sztringként. Ezzel a beállítással a Spark SQL-típusok adott Avro-típusokká alakíthatók. Az Avro-fájlok olvasására és írására vonatkozik.
avroSchemaUrl None URL-sztring Egy Avro-sémafájlra mutató URL-cím. Használja ahelyett avroSchema , hogy a sémát külsőleg tárolja. Kölcsönösen kizárja egymást a avroSchema-vel. Az Avro-fájlok olvasására és írására vonatkozik.
compression snappy uncompressed, deflate, snappy (default), bzip2xzzstandard Íráskor használandó tömörítési kodek. Az Avro-fájlok olvasására és írására vonatkozik.
recordName topLevelRecord Bármilyen szöveg A kimeneti Avro-séma legfelső szintű rekordneve. Az Avro-fájlok olvasására és írására vonatkozik.
positionalFieldMatching false true, false Azt határozza meg, hogy a Spark-séma és az Avro-séma közötti oszlopokat név helyett mezőpozíció alapján szeretné-e egyeztetni. Az Avro-fájlok olvasására és írására vonatkozik.
recordNamespace Üres sztring Bármilyen szöveg A kimeneti Avro-séma legfelső szintű rekordjának névtere. Az Avro-fájlok olvasására és írására vonatkozik.

Delta Lake és Apache Iceberg

Delta Lake- és Apache Iceberg-táblák írásakor az alábbi lehetőségek érvényesek.

Key Alapértelmezett Érvényes értékek Description
clusterByAuto false true, false Engedélyezi-e az automatikus folyékony fürtözést, ahol Azure Databricks lekérdezési minták alapján választja ki a fürtözési oszlopokat. Csak a mode("overwrite"). Móddal append nem használható. A Databricks Runtime 16.4-ben és újabb verziókban érhető el. A táblák folyékony fürtözésének használatára vonatkozik.
mergeSchema None true, false A sémafejlődés engedélyezése az írási művelethez. A forrásadatkeret új oszlopai hozzáadódnak a céltábla sémához. Kötegelt és streamelési hozzáfűzőkre vonatkozik. A sémafejlődést tartalmazó táblaséma frissítésére vonatkozik.
overwriteSchema None true, false A táblázatsémát és a particionálást felülíráskor kell-e lecserélni. mode("overwrite")Nélküle szükségesreplaceWhere. Nem használható a következővel: partitionOverwriteMode. A sémafejlődést tartalmazó táblaséma frissítésére vonatkozik.
partitionOverwriteMode None static, dynamic A partíció felülírja a módot. Állítsa ezt úgy, hogy dynamic csak az új adatokat tartalmazó partíciókat írja felül, és az összes többi partíciót változatlanul hagyja. Örökölt mód, kiszolgáló nélküli számítási vagy Databricks SQL-ben nem támogatott. A Delta Lake-szel végzett adatok szelektív felülírására vonatkozik.
replaceOn None Logikai kifejezés sztringje Logikai kifejezés, amely megfelel a céltábla sorainak a forráslekérdezés soraival való helyettesítéséhez. Hivatkozhat a céltáblából és a forrás lekérdezésből származó oszlopokra is. A forrássornak megfelelő célsorok törlődnek és lecserélődnek. Ha a forrás üres, nem történik törlés. Oszlophivatkozások egyértelműsítésére használható targetAlias . A Databricks Runtime 17.1-ben és újabb verziókban érhető el. A Delta Lake-szel végzett adatok szelektív felülírására vonatkozik.
replaceUsing None Oszlopnevek vesszővel tagolt listája A céltábla és a forrás lekérdezés közötti sorok egyeztetéséhez használt oszlopnevek vesszővel tagolt listája. A célnak és a forrásnak is tartalmaznia kell az összes felsorolt oszlopot. Az egyenlőségi összehasonlításban szereplő forrássornak megfelelő célsorok törlődnek és lecserélődnek. NULL az értékek nem egyenlőként vannak kezelve, és nem egyeznek. A Databricks Runtime 16.3-ban és újabb verziókban érhető el. A Delta Lake-szel végzett adatok szelektív felülírására vonatkozik.
replaceWhere None Predikátumkifejezés-sztring Predikátum kifejezés. Atomilag csak a predikátumnak megfelelő rekordokat írja felül. A Delta Lake-szel végzett adatok szelektív felülírására vonatkozik.
targetAlias None Bármilyen szöveg A céltábla sztring-aliasa. Ha a feltétel a céltáblából és replaceOn a forrás lekérdezésből származó oszlopokra hivatkozik, az oszlophivatkozásokkal vagy azok egyértelműsítésével replaceWhere használható. A Delta Lake-szel végzett adatok szelektív felülírására vonatkozik.
txnAppId None Bármilyen szöveg Egy egyedi sztring, amely azonosítja az alkalmazást az idempotens írásokhoz a műveletekben foreachBatch . Ezzel együtt txnVersion biztosíthatja, hogy pontosan egyszer írjon több Delta Lake-táblába. Idempotens táblaírásra vonatkozikforeachBatch.
txnVersion None Egy monoton módon növekvő egész szám Az idempotens írások tranzakciós verziójaként a műveletekben foreachBatch monoton módon növekvő szám. Ezzel együtt txnAppId biztosíthatja, hogy pontosan egyszer írjon több Delta Lake-táblába. Idempotens táblaírásra vonatkozikforeachBatch.
optimizeWrite None true, false Engedélyezi-e az írás automatikus optimalizálását ehhez az írási művelethez. Felülbírálja a konfigurációt spark.databricks.delta.optimizeWrite.enabled . A Mi a Delta Lake a Azure Databricks?.
userMetadata None Bármilyen szöveg Az írási művelet véglegesítési metaadataihoz hozzáfűzött felhasználó által definiált sztring. Látható a kimenetben DESCRIBE HISTORY. Egyéni metaadatokkal rendelkező gazdagító táblákra vonatkozik.

CSV

CSV-fájlok írásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
charToEscapeQuoteEscaping \0 (nincs engedélyezve) Egyetlen karakter A feloldó karakterből való kilépéshez használt karakter, ha eltér az idézőjeltől. A csv (DataFrameWriter)-ra vonatkozik.
compression none none (default), bzip2, gzip, lz4snappy, deflatezstd Íráskor használandó tömörítési kodek. A csv (DataFrameWriter)-ra vonatkozik.
dateFormat yyyy-MM-dd Dátumformátum sztringje Dátumoszlopértékek sztringének formázása. A csv (DataFrameWriter)-ra vonatkozik.
emptyValue Üres sztring Bármilyen szöveg Üres (nem null) értékekhez írt sztring. A csv (DataFrameWriter)-ra vonatkozik.
encoding UTF-8 Név java.nio.charset.Charset A kimeneti fájlok karakterkódolása. A csv (DataFrameWriter)-ra vonatkozik.
escape \ Egyetlen karakter Az idézett értékek feloldásához használt karakter. A csv (DataFrameWriter)-ra vonatkozik.
escapeQuotes true true, false Idézőjelek feloldása idézőjelek között az idézőjelértékek között. A csv (DataFrameWriter)-ra vonatkozik.
header false true, false Oszlopnevek írása a kimenet első soraként. A csv (DataFrameWriter)-ra vonatkozik.
ignoreLeadingWhiteSpace false true, false Azt határozza meg, hogy íráskor levágja-e a kezdő szóközt az értékekből. A csv (DataFrameWriter)-ra vonatkozik.
ignoreTrailingWhiteSpace false true, false Azt határozza meg, hogy a záró szóközt le kell-e vágni az értékekből íráskor. A csv (DataFrameWriter)-ra vonatkozik.
lineSep \n Karakterlánc A rekordok között használt vonalelválasztó sztring. A csv (DataFrameWriter)-ra vonatkozik.
locale en-US Azonosító java.util.Locale Egy java.util.Locale azonosító. Egy Java területi beállítás, amely hatással van az alapértelmezett dátumra, időbélyegre és decimális elemzésre a CSV-ben.
nullValue Üres sztring Bármilyen szöveg Null értékekhez írt sztring. A csv (DataFrameWriter)-ra vonatkozik.
quote " Egyetlen karakter Az elválasztót tartalmazó mezőértékek idézéséhez használt karakter. A csv (DataFrameWriter)-ra vonatkozik.
quoteAll false true, false Azt határozza meg, hogy az összes mezőértéket idézőjelekbe foglalja-e a tartalomtól függetlenül. A csv (DataFrameWriter)-ra vonatkozik.
sep , Karakterlánc A mezőelválasztó karakter. A csv (DataFrameWriter)-ra vonatkozik.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Időbélyeg formátum sztringje Az időbélyeg oszlopértékeinek formátumsztringje. A csv (DataFrameWriter)-ra vonatkozik.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Időbélyeg formátum sztringje Időzón () oszlopértékek nélküli időbélyeg sztringének formázásaTimestampNTZType.

Excel

A következő beállítások Excel fájlok írásakor érvényesek.

Key Alapértelmezett Érvényes értékek Description
dataAddress None Munkalapnév vagy cellahivatkozási sztring Az írás munkalapneve vagy kezdőcellája. Ha nincs megadva, egy cellától Sheet1kezdődő lapra A1 ír. Egy lapnevet (SheetName) vagy egy cellahivatkozást (SheetName!A1) fogad el. A cellatartományok írása nem támogatott.
dateFormatInWrite yyyy-mm-dd Excel dátumformátum sztringje Excel Date oszlopokra alkalmazott cellaformátum-sztring. Excel formátumszintaxisát használja.
headerRows 0 0, 1 Oszlopnevek írása első sorként.
timestampNTZFormat yyyy-mm-dd hh:mm:ss Excel időbélyeg formátum sztringje Excel TimestampNTZ és Timestamp oszlopokra alkalmazott cellaformátum-sztring. Excel formátumszintaxisát használja.
version xlsx xlsx, xls Az íráshoz Excel fájlformátum verziója.

JSON

JSON-fájlok írásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
compression none none, bzip2, gzip, lz4snappy, deflatezstd Íráskor használandó tömörítési kodek. A json (DataFrameWriter)-ra vonatkozik.
dateFormat yyyy-MM-dd Dátumformátum sztringje Dátumoszlopértékek sztringének formázása. A json (DataFrameWriter)-ra vonatkozik.
encoding UTF-8 Név java.nio.charset.Charset A kimeneti fájlok karakterkódolása. A json (DataFrameWriter)-ra vonatkozik.
ignoreNullFields értéke spark.sql.jsonGenerator.ignoreNullFields true, false Kihagyja-e a JSON-kimenet null értékű mezőit. A json (DataFrameWriter)-ra vonatkozik.
lineSep \n Karakterlánc A rekordok között használt vonalelválasztó sztring. A json (DataFrameWriter)-ra vonatkozik.
locale en-US Azonosító java.util.Locale Egy Java területi azonosító, amely befolyásolja az alapértelmezett dátumot, időbélyeget és decimális elemzést a JSON-ban.
pretty false true, false A szép (behúzott, többsoros) JSON-kimenet engedélyezése.
sortKeys false true, false A JSON-objektumok kulcsainak betűrendbe rendezése a kimenetben. Determinisztikus kimenet előállításához hasznos.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Időbélyeg formátum sztringje Az időbélyeg oszlopértékeinek formátumsztringje. A json (DataFrameWriter)-ra vonatkozik.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Időbélyeg formátum sztringje Időzón () oszlopértékek nélküli időbélyeg sztringének formázásaTimestampNTZType.
writeNonAsciiCharacterAsCodePoint false true, false Nem ASCII-karakterek kódolása Unicode-feloldósorozatként \uXXXX a kimenetben lévő UTF-8 karakter helyett.

ORK

ORC-fájlok írásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
compression zstd none, uncompressed, snappy, zliblzo, zstd, lz4brotli Íráskor használandó tömörítési kodek. Az orc (DataFrameWriter)-ra vonatkozik.

Parketta

Parquet-fájlok írásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
compression snappy none, uncompressed, snappy, gziplzo, brotli, lz4, , lz4_rawzstd Íráskor használandó tömörítési kodek. A parquetre (DataFrameWriter) vonatkozik.
spark.sql.parquet.outputTimestampType INT96 \, \, \ Az időbélyegoszlopok kódolásához használt fizikai típus. Olyan régi Parquet-olvasókkal való kompatibilitásra használható INT96 , amelyek nem támogatják a szabványos időbélyeg-típusokat.

Szöveg

Szövegfájlok írásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
compression none none, bzip2, gzip, lz4snappy, deflatezstd Íráskor használandó tömörítési kodek. Szövegre (DataFrameWriter) vonatkozik.
encoding UTF-8 Név java.nio.charset.Charset A kimeneti fájlok karakterkódolása.
lineSep \n Karakterlánc A rekordok között használt vonalelválasztó sztring. Szövegre (DataFrameWriter) vonatkozik.

XML

XML-fájlok írásakor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
arrayElementName item Bármilyen szöveg Az explicit névvel nem rendelkező tömbelemek elemneve. Xml (DataFrameWriter)-ra vonatkozik.
attributePrefix _ Bármilyen szöveg Az XML-attribútumoknak megfelelő mezőnevekre előtag. Xml (DataFrameWriter)-ra vonatkozik.
compression none none, bzip2, gzip, lz4snappy, deflatezstd Íráskor használandó tömörítési kodek. Xml (DataFrameWriter)-ra vonatkozik.
dateFormat yyyy-MM-dd Dátumformátum sztringje Dátumoszlopértékek sztringének formázása. Xml (DataFrameWriter)-ra vonatkozik.
declaration version="1.0" encoding="UTF-8" standalone="yes" EGY XML-deklarációs sztring vagy egy üres sztring, amely letiltható Az egyes kimeneti fájlok tetején megírt XML-deklarációs sztring. Állítsa üres sztringre a deklaráció letiltásához. Xml (DataFrameWriter)-ra vonatkozik.
encoding UTF-8 Név java.nio.charset.Charset A kimeneti fájlok karakterkódolása. Xml (DataFrameWriter)-ra vonatkozik.
indent 4 szóköz Bármilyen szöveg A kimenet gyermekelemeinek behúzására használt sztring. Állítsa be üres sztringre a behúzás kikapcsolásához és az egyes sorok egyetlen sorba írásához.
locale en-US Azonosító java.util.Locale Egy Java területi azonosító, amely hatással van az XML alapértelmezett dátumára, időbélyegére és decimális formázására.
nullValue null Bármilyen szöveg A null értékekhez írt sztring. Ha be van állítva, a nullnull mezők attribútumai és gyermekelemei nem lesznek megadva. Xml (DataFrameWriter)-ra vonatkozik.
rootTag ROWS Bármilyen szöveg A kimenet összes sorelemét körbefuttató gyökérelemcímke. Xml (DataFrameWriter)-ra vonatkozik.
rowTag ROW Bármilyen szöveg A kimenet egy sorát jelképező elemcímke. Xml (DataFrameWriter)-ra vonatkozik.
singleVariantColumn None Oszlopnév-sztring Az XML-fájlokba írandó egyetlen Variant oszlop neve. Xml (DataFrameWriter)-ra vonatkozik.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Időbélyeg formátum sztringje Az időbélyeg oszlopértékeinek formátumsztringje. Xml (DataFrameWriter)-ra vonatkozik.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Időbélyeg formátum sztringje Időzón oszlopértékek nélkül formázza az időbélyeg sztringet. Xml (DataFrameWriter)-ra vonatkozik.
validateName true true, false Kivételt jelent-e, ha egy oszlopnév nem érvényes XML-elemazonosító. Xml (DataFrameWriter)-ra vonatkozik.
valueTag _VALUE Bármilyen szöveg Az attribútumokkal vagy gyermekelemekkel is rendelkező XML-elemek karakteradataihoz használt mezőnév. Xml (DataFrameWriter)-ra vonatkozik.

A DataStreamWriter beállításai

Ezekkel a beállításokkal DataStreamWriter.option() konfigurálhatja a streamelési írásokat.

Example

Az alábbi példa egy stream ellenőrzőpont-helyét állítja be:

Python
(df.writeStream
  .format("delta")
  .option("checkpointLocation", "/path/to/checkpoint")
  .start("/path/to/table"))
Scala
df.writeStream
  .format("delta")
  .option("checkpointLocation", "/path/to/checkpoint")
  .start("/path/to/table")

Közös

Az alábbi beállítások az összes streamelési írási műveletre vonatkoznak.

Key Alapértelmezett Érvényes értékek Description
checkpointLocation Nincs (kötelező) Elérési út sztringje A streamelési lekérdezés ellenőrzőpont-könyvtárának elérési útja. Hibatűréshez és pontosan egyszeri feldolgozási garanciákhoz szükséges. Minden streamelési lekérdezésnek egyedi ellenőrzőpont-helyet kell használnia. A Databricks azt javasolja, hogy az ellenőrzőpontokat egy Unity Catalog-kötetben vagy felhőbeli tárolási útvonalon tárolja. Lásd: Strukturált streamelési ellenőrzőpontok.
path None Elérési út sztringje A fájlalapú streamelők, például a Parquet kimeneti elérési útja. Csak fájlalapú formátumokra vonatkozik.

Konzol fogadója

A következő beállítások érvényesek, amikor streameket ír a konzol fogadójába.

Key Alapértelmezett Érvényes értékek Description
numRows 20 Pozitív egész számok Az egyes mikrokötegekhez megjelenítendő sorok száma a konzol fogadójába való íráskor.
truncate true true, false Hosszú sztringek csonkolása sorok megjelenítésekor. Állítsa be a false teljes sztringértékek megjelenítésére.

Delta-tó

A következő beállítások érvényesek, amikor streamet ír egy Delta Lake-táblába a használatával format("delta"). Felülírhatja az olyan beállításokat, mint a overwriteSchema, replaceWhereés partitionOverwriteMode nem támogatottak a streamelési írásokhoz.

Key Alapértelmezett Érvényes értékek Description
mergeSchema false true, false A Delta Lake táblaséma továbbfejlesztése, ha a streamelt DataFrame új oszlopokat tartalmaz. Csak a hozzáfűzési kimeneti módra vonatkozik. A sémafejlődést tartalmazó táblaséma frissítésére vonatkozik.
userMetadata None Bármilyen szöveg Az írási művelet véglegesítési metaadataihoz hozzáfűzött felhasználó által definiált sztring. Látható a kimenetben DESCRIBE HISTORY. Egyéni metaadatokkal rendelkező gazdagító táblákra vonatkozik.

Fájlelfoglaló

A következő beállítás a stream fájlalapú formátumokba (Parquet, JSON, CSV, ORC, szöveg) való írásakor érvényes. A formátumspecifikus beállításokért lásd a DataFrameWriter beállításait.

Key Alapértelmezett Érvényes értékek Description
retention None Egy idősztring, például 7 days vagy 24 hours Mennyi ideig őrzi meg a hibatűréshez és tömörítéshez használt fogadó metaadatfájlokat. Ha nincs beállítva, a metaadatfájlok határozatlan ideig megmaradnak.

Kafka fogadó

A Kafkába való íráskor az alábbi beállítások érvényesek.

Key Alapértelmezett Érvényes értékek Description
kafka.bootstrap.servers None Sztringek vesszővel tagolt listája host:port Kötelező. Kafka-közvetítői host:port címek vesszővel tagolt listája.
topic None Bármilyen szöveg A cél Kafka-témakör az összes sorhoz. Kötelező, ha a DataFrame nem tartalmaz oszlopot topic .
kafka.* None Bármely Kafka-gyártó konfigurációs értéke Minden Olyan Kafka-gyártó konfigurációja , amelynek előtagja kafka.a . Például: kafka.compression.type.

Memória fogadó

A következő beállítások érvényesek, amikor streameket ír a memóriafogyóba.

Key Alapértelmezett Érvényes értékek Description
queryName Nincs (kötelező) Bármilyen szöveg Annak a memóriabeli táblának a neve, amelybe a lekérdezés ír. A memóriafogyóhoz szükséges. A használatával .queryName()is konfigurálható.
mode exactlyonce exactlyonce, atleastonce Kézbesítési garancia a memóriafogyóhoz. exactlyonce mikroköteg módot használ pontosan egyszer használt szemantikával. atleastonce folyamatos módot használ legalább egyszer szemantikával.

Spark-függvény beállításai

Egyes Beépített Spark SQL-függvények olyan térképet options fogadnak el, amely szabályozza az elemzési vagy szerializációs viselkedést. Adja át a beállításokat Python dict vagy Scala Map[String, String].

Example

Az alábbi példa egy JSON-oszlopot elemez a hibásan formázott rekordok elvetése közben:

Python
from pyspark.sql.functions import from_json
from pyspark.sql.types import StructType, StructField, StringType

schema = StructType([StructField("name", StringType())])
df = df.withColumn("parsed", from_json("json_col", schema, {"mode": "DROPMALFORMED"}))
Scala
import org.apache.spark.sql.functions.from_json
import org.apache.spark.sql.types._

val schema = StructType(Seq(StructField("name", StringType)))
val df = df.withColumn("parsed", from_json(col("json_col"), schema, Map("mode" -> "DROPMALFORMED")))

Avro

Az Avro-függvények ugyanazokat a beállításokat fogadják el, mint a megfelelő DataFrame-beállítások:

Example

Az alábbi példa egy Avro-oszlopot dekódol, amelyen engedélyezve van a sémafejlődés:

Python
from pyspark.sql.functions import from_avro

df = df.withColumn("decoded", from_avro("avro_col", json_schema, {"avroSchemaEvolutionMode": "restart"}))
Scala
import org.apache.spark.sql.avro.functions.from_avro

val df = df.withColumn("decoded", from_avro(col("avro_col"), jsonSchema, Map("avroSchemaEvolutionMode" -> "restart")))

Emellett a Sémaregisztrációs adatbázis változatai from_avroto_avro a következő lehetőségeket is elfogadják:

Key Alapértelmezett Érvényes értékek Description
schemaId None Sémaazonosító egész szám A Confluent sémaregisztrációs adatbázisából származó sémaazonosító, amelyet a sémával nem kompatibilis jsonFormatSchemasémakóddal kódolt Avro-adatok dekódolásához használhat. Csak azokra vonatkozik from_avro .
confluent.schema.registry.* None Bármely Confluent SR-ügyféltulajdonság értéke A Confluent Sémaregisztrációs adatbázis ügyfélkonfigurációs tulajdonságai. Adjon át minden Confluent SR-ügyféltulajdonságot ezzel az előtaggal, például confluent.schema.registry.basic.auth.user.info az alapszintű hitelesítési hitelesítő adatokhoz. A sémaregisztrációs adatbázis és from_avroto_avroa .

CSV

A CSV-függvények ugyanazokat a beállításokat fogadják el, mint a megfelelő DataFrame-beállítások:

Example

Az alábbi példa egy egyéni elválasztóval és NULL értékkel rendelkező CSV-t olvas be:

Python
from pyspark.sql.functions import from_csv
from pyspark.sql.types import StructType, StructField, IntegerType, StringType

schema = StructType([StructField("id", IntegerType()), StructField("name", StringType())])
df = df.withColumn("parsed", from_csv("csv_col", schema, {"sep": "|", "nullValue": "N/A"}))
Scala
import org.apache.spark.sql.functions.from_csv
import org.apache.spark.sql.types._

val schema = StructType(Seq(StructField("id", IntegerType), StructField("name", StringType)))
val df = df.withColumn("parsed", from_csv(col("csv_col"), schema, Map("sep" -> "|", "nullValue" -> "N/A")))

JSON

A JSON-függvények ugyanazokat a beállításokat fogadják el, mint a megfelelő DataFrame-beállítások:

Example

Az alábbi példa JSON-t ír, figyelmen NULL kívül hagyva a mezőket, és engedélyezve van a szép formázás:

Python
from pyspark.sql.functions import to_json

df = df.withColumn("json_str", to_json("struct_col", {"pretty": "true", "ignoreNullFields": "true"}))
Scala
import org.apache.spark.sql.functions.to_json

val df = df.withColumn("json_str", to_json(col("struct_col"), Map("pretty" -> "true", "ignoreNullFields" -> "true")))

Protobuf

from_protobuf és to_protobuf ne használjon fájlalapú DataSource-t. A Protobuf-adatok mindig bináris oszlopként vannak beolvasva és megírva ezekkel a függvényekkel. A beállításokat a rendszer a kis- és nagybetűk megkülönböztetéseként Map[String, String] adja át.

Example

Az alábbi példa egy Protobuf-oszlopot dekódol PERMISSIVE módban:

Python
from pyspark.sql.functions import from_protobuf

df = df.withColumn("decoded", from_protobuf("proto_col", "MyMessage", "/path/to/descriptor.desc",
    {"mode": "PERMISSIVE", "enums.as.ints": "true"}))
Scala
import org.apache.spark.sql.protobuf.functions.from_protobuf

val df = df.withColumn("decoded", from_protobuf(col("proto_col"), "MyMessage", "/path/to/descriptor.desc",
    Map("mode" -> "PERMISSIVE", "enums.as.ints" -> "true")))

A Protobuf függvények a következő lehetőségeket használják:

Key Alapértelmezett Érvényes értékek Description
mode FAILFAST FAILFAST, PERMISSIVE Sérült rekordok kezelése. A FAILFAST kivételt dob. PERMISSIVE a hibásan formázott mezőket null értékre állítja. A kifejezésre from_protobufvonatkozik.
recursive.fields.max.depth -1 (letiltva) 0 és 10 Rekurzív Protobuf-mezők maximális rekurziós mélysége. Állítsa be a 0 rekurzív mezőtámogatás kikapcsolására. A kifejezésre from_protobufvonatkozik.
convert.any.fields.to.json false true, false A Protobuf-mezők Any JSON-sztringgé alakítása ahelyett, hogy egy STRUCT. A kifejezésre from_protobufvonatkozik.
emit.default.values false true, false Nulla vagy alapértelmezett értékekkel rendelkező mezők kibocsátása (proto3 szemantika). Amikor falsea rendszer kihagyja az alapértelmezett értékeket tartalmazó mezőket a kimenetből. A kifejezésre from_protobufvonatkozik.
enums.as.ints false true, false Az enumerálási mezők megjelenítése karakterláncok helyett egész számértékekként. A kifejezésre from_protobufvonatkozik.
upcast.unsigned.ints false true, false uint32 Long uint64 Decimal(20,0) Az egész szám túlcsordulásának megakadályozása A kifejezésre from_protobufvonatkozik.
unwrap.primitive.wrapper.types false true, false A burkolótípusok (például google.protobuf és Int32Value) kibontása StringValue a megfelelő primitív Spark-típusokhoz. A kifejezésre from_protobufvonatkozik.
retain.empty.message.types false true, false Meg kell-e őrizni az üres Protobuf-üzenettípusokat a kimeneti sémában egy üres oszlop beszúrásával. A kifejezésre from_protobufvonatkozik.
schema.registry.subject None Bármilyen szöveg Sémaregisztrációs adatbázis tulajdonosának neve. A sémaregisztrációs adatbázis és from_protobufto_protobufa .
schema.registry.address None Sztring host:port Sémaregisztrációs adatbázis címe (gazdagép és port). A sémaregisztrációs adatbázis és from_protobufto_protobufa .
schema.registry.protobuf.name None Bármilyen szöveg Megadja, hogy melyik Protobuf-üzenetet használja, ha a sémaregisztrációs adatbázis tárgya több üzenetet tartalmaz. Optional.
schema.registry.schema.evolution.mode "restart" "restart", "none" A sémamódosítások kezelése, ha egy újabb sémaazonosítót észlel egy bejövő rekordban. "restart" a lekérdezést egy UnknownFieldException; konfigurálási feladattal állítja be, hogy a módosítások átvétele sikertelenség esetén újrainduljon. "none" figyelmen kívül hagyja a sémaazonosító módosításait, és elemzi az újabb rekordokat az eredeti sémával.
confluent.schema.registry.<option> Bármely érvényes Confluent-sémaregisztrációs ügyfélbeállítás értéke Adja át a Confluent sémaregisztrációs ügyfélbeállítást az előtag "confluent.schema.registry"használatával. Például állítsa be "confluent.schema.registry.basic.auth.credentials.source" és "USER_INFO""confluent.schema.registry.basic.auth.user.info" konfigurálja az "<KEY>:<SECRET>" alapszintű hitelesítést.

XML

Az XML-függvények ugyanazokat a beállításokat fogadják el, mint a megfelelő DataFrame-beállítások:

Example

Az alábbi példa egyéni gyökér- és sorcímkéket tartalmazó XML-fájlt ír:

Python
from pyspark.sql.functions import to_xml

df = df.withColumn("xml_str", to_xml("struct_col", {"rootTag": "records", "rowTag": "record"}))
Scala
import org.apache.spark.sql.functions.to_xml

val df = df.withColumn("xml_str", to_xml(col("struct_col"), Map("rootTag" -> "records", "rowTag" -> "record")))