Referenční informace k možnostem rozhraní Spark API

Tato stránka obsahuje seznam dostupných vstupních a výstupních možností pro rozhraní SPARK API, která čtou a zapisují data.

Možnosti třídy DataFrameReader

Tyto možnosti použijte u DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO a Auto Loader určit, jak Azure Databricks čte datové soubory.

Příklad

Následující příklad nastaví multiLine čtení True souborů JSON:

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)

Společné

Následující možnosti platí pro všechny formáty souborů.

Key Výchozí Platné hodnoty Description
ignoreCorruptFiles false true, false Zda se mají ignorovat poškozené soubory. Pokud je hodnota true, úlohy Sparku se budou dál spouštět při výskytu poškozených souborů a obsah, který jste si přečetli, se vrátí. V COPY INTOpřípadě můžete sledovat přeskočené poškozené soubory jako numSkippedCorruptFiles ve operationMetrics sloupci historie Delta Lake. K dispozici ve službě Databricks Runtime 11.3 LTS a vyšší.
ignoreMissingFiles false pro automatické zavaděče true ( COPY INTO starší verze) true, false Zda se mají ignorovat chybějící soubory. Pokud je hodnota true, úlohy Sparku se budou dál spouštět, když narazíte na chybějící soubory a obsah se stále vrátí. K dispozici ve službě Databricks Runtime 11.3 LTS a vyšší.
modifiedAfter None Řetězec časového razítka Volitelné časové razítko jako filtr umožňuje pouze ingestovat soubory, které mají časové razítko změny po zadaném časovém razítku.
modifiedBefore None Řetězec časového razítka Volitelné časové razítko jako filtr pouze pro ingestování souborů, které mají časové razítko změny před zadaným časovým razítkem.
pathGlobFilter nebo fileNamePattern None Řetězec vzoru globu Potenciální vzor globu pro výběr souborů. Ekvivalent k PATTERN verzi ( COPY INTO starší verze) fileNamePattern lze použít v read_files.
recursiveFileLookup false true, false Pokud truetato možnost hledá prostřednictvím vnořených adresářů, i když jejich názvy nedodržují schéma pojmenování oddílů, jako je date=2019-07-01.

Avro

Při čtení souborů Avro platí následující možnosti.

Key Výchozí Platné hodnoty Description
avroSchema None Řetězec schématu Avro Volitelné schéma určené uživatelem ve formátu Avro Při čtení Avro lze tuto možnost nastavit na vyvinuté schéma, které je kompatibilní, ale liší se od skutečného schématu Avro. Schéma deserializace je konzistentní s vyvíjeným schématem. Pokud například nastavíte vyvíjené schéma obsahující jeden další sloupec s výchozí hodnotou, výsledek čtení obsahuje také nový sloupec.
avroSchemaEvolutionMode none none, restart Postup zpracování vývoje schématu při použití registru schématu none ignoruje změny schématu a pokračuje v úloze. restart UnknownFieldException vyvolá při zjištění změn schématu a vyžaduje restartování úlohy.
datetimeRebaseMode LEGACY EXCEPTION, , LEGACYCORRECTED Řídí přepočet hodnot DATE a TIMESTAMP mezi juliánským a proleptickým gregoriánským kalendářem.
enableStableIdentifiersForUnionType false true, false Zda použít stabilní názvy polí pro typy sjednocení Avro. Pokud je tato možnost povolená, názvy polí sjednocovacího typu se odvozují z jejich názvů typů malými písmeny (například member_int, ). member_string Vyvolá výjimku, pokud jsou po dolním názvech dva typy identické.
mergeSchema false true, false Určuje, jestli chcete schéma odvodit napříč více soubory a sloučit schéma jednotlivých souborů. mergeSchema v Avru neupravuje datové typy.
mode FAILFAST FAILFAST, , PERMISSIVEDROPMALFORMED Režim analyzátoru pro zpracování poškozených záznamů FAILFAST zahodí výjimku. PERMISSIVE nastaví chybně formátovaná pole na hodnotu null. DROPMALFORMED tiše zahodí špatné záznamy.
readerCaseSensitive true true, false Určuje chování citlivosti na velikost písmen, když je rescuedDataColumn povoleno. Pokud je pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu. Pokud je hodnota false, přečtěte si data bez rozlišování malých a malých písmen.
recursiveFieldMaxDepth None 0 na 15 Maximální hloubka rekurze pro rekurzivní pole Avro. Nastavte na 1 zkrácení všech rekurzivních polí, 2 aby byla povolena jedna úroveň rekurze atd 15. Při zrušení sady nebo 0, rekurzivní pole nejsou povolena.
rescuedDataColumn None Řetězec názvu sloupce Určuje, jestli se mají shromažďovat všechna data, která nelze analyzovat z důvodu neshody datového typu a neshody schématu (včetně písmen sloupců) do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití Auto Loaderu.
COPY INTO (starší verze) nepodporuje záchranný datový sloupec, protože schéma nelze nastavit ručně pomocí COPY INTO. Databricks doporučuje používat Auto Loader pro většinu scénářů příjmu dat.
Další podrobnosti najdete v kapitole Co je sloupec zachráněných dat?.
stableIdentifierPrefixForUnionType member_ Libovolný řetězec Předpona, která se má použít pro stabilní názvy polí sjednocovacího typu, když enableStableIdentifiersForUnionType=true.

CSV

Při čtení souborů CSV platí následující možnosti.

Key Výchozí Platné hodnoty Description
badRecordsPath None Řetězec cesty Cesta k ukládání souborů pro záznam informací o špatných záznamech CSV.
charToEscapeQuoteEscaping \0 Jeden znak Znak použitý k úniku znaku používaného pro uvozovky. Například pro následující záznam: [ " a\\", b ]
  • Pokud je znak pro únik řídicího znaku '\' nedefinovaný, záznam nebude zpracován. Analyzátor přečte znaky: [a],[\],["],[,],[ ],[b] a vyvolá chybu, protože nemůže najít pravou uvozovku.
  • Pokud je znak, který má fungovat jako únikový pro '\', definován jako '\', bude záznam přečten se 2 hodnotami: [a\] a [b].
columnNameOfCorruptRecord _corrupt_record Řetězec názvu sloupce Podporováno pro AutoLoader. Není podporováno pro COPY INTO (starší verze).
Sloupec pro ukládání záznamů, které jsou poškozené a nelze je analyzovat. Pokud je mode pro parsování nastaveno jako DROPMALFORMED, bude tento sloupec prázdný.
comment \0 Jeden znak Definuje znak, který představuje řádkový komentář, pokud je nalezen na začátku textového řádku. Použijte '\0' k zakázání přeskočení komentářů.
dateFormat yyyy-MM-dd Řetězec formátu data Formát pro analýzu řetězců kalendářních dat.
emptyValue Prázdný řetězec Libovolný řetězec Řetězcové znázornění prázdné hodnoty
enableDateTimeParsingFallback false true, false Zda se má vrátit ke staršímu datu a chování analýzy časového razítka, pokud nelze analyzovat hodnotu se zadaným formátem. Při false, analýza selhání vyvolá chybu nebo vytvořit hodnotu null v závislosti na mode.
encoding nebo charset UTF-8 Název java.nio.charset.Charset Název kódování souborů CSV. Podívejte se java.nio.charset.Charset na seznam možností. UTF-16 a UTF-32 nelze použít, pokud multiline je true.
enforceSchema true true, false Zda se má vynuceně použít zadané nebo odvozené schéma u souborů CSV. Pokud je tato možnost povolená, záhlaví souborů CSV se ignorují. Tato možnost se ve výchozím nastavení ignoruje při použití Auto Loaderu pro záchranu dat a umožnění evoluce schématu.
escape \ Jeden znak Únikový znak, který se má použít při analýze dat.
extension csv Řetězec přípony souboru Očekávané přípony názvu souboru pro čtení. Soubory bez této přípony se odfiltrují.
failOnUnknownFields false true, false Zda se nezdaří, pokud záznam CSV obsahuje sloupce, které nejsou přítomné ve schématu. Když falsese nerozpoznané sloupce v závislosti na rescuedDataColumntom , že jsou bezobslužné nebo záchranné sloupce bezobslužné .
failOnWidenedFields false true, false Zda selhat, pokud hodnotu pole nelze analyzovat jako deklarovaný typ schématu bez rozšíření. Pokud falsejsou hodnoty rozšířené typu bezobslužné záchrany v závislosti na rescuedDataColumn. Nastavení failOnUnknownFields=true může maskovat efekty této možnosti.
header false true, false Určuje, jestli soubory CSV obsahují záhlaví. Automatický zavaděč při odvození schématu předpokládá, že soubory mají hlavičky.
ignoreLeadingWhiteSpace false true, false Zda se mají ignorovat úvodní prázdné znaky pro každou analyzovanou hodnotu.
ignoreTrailingWhiteSpace false true, false Zda se mají ignorovat koncové prázdné znaky pro každou analyzovanou hodnotu.
inferSchema false true, false Zda chcete odvodit datové typy analyzovaných záznamů CSV nebo předpokládat, že všechny sloupce jsou typu StringType. Vyžaduje další zpracování dat, pokud je nastaveno na hodnotu true. U automatického zavaděče místo toho použijte cloudFiles.inferColumnTypes.
inputBufferSize 1048576 (1 MB) Kladná celá čísla Velikost vyrovnávací paměti v bajtech analyzátoru sdíleného svazku clusteru. Užitečné pro ladění využití paměti při analýze velkých souborů CSV.
lineSep Žádná, která pokrývá \r, \r\na \n Řetězec Řetězec mezi dvěma vzájemně sousedícími záznamy CSV.
locale US Identifikátor java.util.Locale Zjistili jsme Java národní prostředí, které má vliv na výchozí datum, časové razítko a parsování desetinných míst v rámci sdíleného svazku clusteru.
maxCharsPerColumn -1 Kladná celá čísla nebo -1 neomezená Maximální počet znaků očekávaných od hodnoty k analýze Lze použít k zabránění chybám paměti. Výchozí hodnota -1znamená neomezenou hodnotu.
maxColumns 20480 Kladná celá čísla Pevný limit počtu sloupců, které může záznam obsahovat.
mergeSchema false true, false Určuje, jestli chcete schéma odvodit napříč více soubory a sloučit schéma jednotlivých souborů. Ve výchozím nastavení je povolen Auto Loader při odvozování schématu.
mode PERMISSIVE PERMISSIVE, , DROPMALFORMEDFAILFAST Režim parseru při zpracování chybně formátovaných záznamů
multiLine false true, false Určuje, jestli záznamy CSV pokrývají více řádků.
nanValue NaN Libovolný řetězec Textové vyjádření hodnoty, která není číslem, při zpracování ve FloatType a DoubleType sloupcích.
negativeInf -Inf Libovolný řetězec Řetězcová reprezentace záporného nekonečna při analýze sloupců FloatType nebo DoubleType.
nullValue Prázdný řetězec Libovolný řetězec Řetězcové vyjádření hodnoty null
parserCaseSensitive (zastaralé) false true, false Při čtení souborů rozhodněte, zda mají být sloupce deklarované v záhlaví zarovnány s ohledem na citlivost na velikost písmen ve schématu. Toto je true jako výchozí nastavení pro Auto Loader. Sloupce, které se liší pouze velikostí písmen, budou obnoveny v rescuedDataColumn, pokud je tato možnost povolena. Tato možnost byla zastaralá ve prospěch readerCaseSensitive.
positiveInf Inf Libovolný řetězec Řetězcové vyjádření kladného nekonečna při analýze FloatType nebo DoubleType sloupců.
preferDate true true, false Pokusí se interpretovat řetězce jako data místo časového razítka, pokud je to možné. Musíte také použít odvození schématu, a to buď povolením inferSchema nebo použitím cloudFiles.inferColumnTypes s automatickým zavaděčem.
quote " Jeden znak Znak použitý pro únik hodnot, kde je oddělovač polí součástí hodnoty.
readerCaseSensitive true true, false Určuje chování citlivosti na velikost písmen, když je rescuedDataColumn povoleno. Pokud je pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu. Pokud je hodnota false, přečtěte si data bez rozlišování malých a malých písmen.
rescuedDataColumn None Řetězec názvu sloupce Určuje, jestli se mají shromažďovat všechna data, která nelze analyzovat z důvodu neshody datového typu a neshody schématu (včetně písmen sloupců) do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití Auto Loaderu. Další podrobnosti najdete v kapitole Co je sloupec zachráněných dat?.
COPY INTO (starší verze) nepodporuje záchranný datový sloupec, protože schéma nelze nastavit ručně pomocí COPY INTO. Databricks doporučuje používat Auto Loader pro většinu scénářů příjmu dat.
sep nebo delimiter , Řetězec Oddělovací řetězec mezi sloupci.
singleVariantColumn None Řetězec názvu sloupce Když nastavíte název sloupce, přečte celý záznam CSV do jednoho VariantType sloupce s tímto názvem místo toho, aby každé pole parsovala do vlastního sloupce. Vyžaduje header=true.
skipRows 0 Kladná celá čísla nebo 0 Počet řádků od začátku souboru CSV, který by se měl ignorovat, včetně komentářů a prázdných řádků. Pokud header je pravda, záhlaví bude první nevynechaný a nekomentovaný řádek.
timeFormat HH:mm:ss Řetězec formátu času Formát pro analýzu TimeType hodnot sloupců.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Řetězec formátu časového razítka Formát pro analýzu řetězců časových razítek.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Řetězec formátu časového razítka Formát pro analýzu časového razítka bez řetězců časového pásma (TimestampNTZType).
timeZone None Řetězec java.time.ZoneId java.time.ZoneId se používá při analýze časových razítek a kalendářních dat.
unescapedQuoteHandling STOP_AT_DELIMITER STOP_AT_CLOSING_QUOTE, BACK_TO_DELIMITER, STOP_AT_DELIMITER, , SKIP_VALUERAISE_ERROR Strategie pro zpracování neuniklých uvozovek. Chování každé povolené možnosti je následující:
  • STOP_AT_CLOSING_QUOTE: Pokud jsou ve vstupu nalezeny nezakódované uvozovky, nashromážděte znak uvozovky a pokračujte v parsování hodnoty jako uvozované hodnoty, dokud se nenajde závěrečná uvozovka.
  • BACK_TO_DELIMITER: Pokud jsou ve vstupu nalezeny neoznačené uvozovky, považujte hodnotu za hodnotu bez uvozovek. To způsobí, že analyzátor shromáždí všechny znaky aktuální analyzované hodnoty, dokud se nenajde oddělovač definovaný pomocí sep. Pokud se v hodnotě nenajde žádný oddělovač, analyzátor bude pokračovat ve shromažďování znaků ze vstupu, dokud se nenajde oddělovač nebo konec řádku.
  • STOP_AT_DELIMITER: Pokud jsou ve vstupu nalezeny neoznačené uvozovky, považujte hodnotu za hodnotu bez uvozovek. Analyzátor tím nahromadí všechny znaky, dokud se ve vstupu nenajde oddělovač definovaný sep nebo konec řádku.
  • SKIP_VALUE: Pokud jsou ve vstupu nalezeny neuzavřené uvozovky, obsah analyzovaný pro danou hodnotu bude přeskočen (dokud se nenajde další oddělovač) a místo toho bude použita hodnota nastavená v nullValue.
  • RAISE_ERROR: Pokud jsou ve vstupu nalezeny nepotřebné uvozovky, TextParsingException bude vyvolán.

Excel

Při čtení Excel souborů platí následující možnosti.

Key Výchozí Platné hodnoty Description
dataAddress None Oblast buněk nebo řetězec názvu listu Oblast buněk, která se má číst v syntaxi Excel. Pokud tento argument vynecháte, přečte všechny platné buňky z prvního listu. Umožňuje SheetName!C5:H10 číst oblast z pojmenovaného listu, C5:H10 číst oblast z prvního listu nebo SheetName číst všechna data z konkrétního listu.
headerRows 0 0, 1 Počet počátečních řádků, které se mají použít jako záhlaví názvů sloupců Pokud dataAddress je zadáno, platí to v oblasti buněk. Pokud 0se názvy sloupců automaticky vygenerují jako _c1, _c2, _c3atd.
ignoreMissingSheet false true, false Zda chcete bezobslužně přeskočit soubory, které neobsahují list určený dataAddress. Pokud falsev požadovaném listu chybí požadovaný list, vyvolá se chyba. Platí pouze v případech, kdy je název listu zadán v dataAddress.
includePhoneticRuns false true, false Zda se při čtení souborů XLSX zřetězely fonetické poznámky (například pinyin nebo furigana) ke zřetězení hodnot řetězců buněk.
operation readSheet readSheet, listSheets Operace, která se má provést v sešitu Excel. readSheet čte data z listu. listSheets vrátí strukturu s poli sheetIndex: long a sheetName: String pro každý list.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Řetězec formátu časového razítka Řetězec vlastního formátu pro hodnoty časového razítka bez časového pásma uložených jako řetězce v Excel. Vlastní formáty data se řídí formáty v Datetime patterns.
dateFormat yyyy-MM-dd Řetězec formátu data Řetězec vlastního formátu pro řetězcové hodnoty přečtené jako Date. Vlastní formáty data se řídí formáty v Datetime patterns.

JSON

Při čtení souborů JSON platí následující možnosti.

Key Výchozí Platné hodnoty Description
allowBackslashEscapingAnyCharacter false true, false Zda povolit, aby zpětné lomítko escapovalo jakýkoliv znak, který následuje. Pokud není povoleno, mohou být escapovány pouze ty znaky, které jsou explicitně uvedeny ve specifikaci JSON.
allowComments false true, false Zda povolit použití komentářů ve stylu Java, C a C++ ('/', '*' a '//' typu) v analyzovaném obsahu, nebo ne.
allowNonNumericNumbers true true, false Určuje, jestli má být sada tokenů typu not-a-number (NaN) umožněna jako legální hodnoty s plovoucí desetinnou čárkou.
allowNumericLeadingZeros false true, false Určuje, jestli chcete, aby integrální čísla začínala dalšími (ignorovatelnými) nulami (například 000001).
allowSingleQuotes true true, false Zda povolit použití jednoduchých uvozovek (apostrof, znak '\') pro uvozovky (názvy a řetězcové hodnoty).
allowUnquotedControlChars false true, false Zda povolit, aby řetězce JSON obsahovaly neescapované řídicí znaky (znaky ASCII s hodnotou menší než 32, včetně znaků tabulátoru a odřádkování), nebo ne.
allowUnquotedFieldNames false true, false Zda povolit použití necitovaných názvů polí, které jsou povoleny JavaScriptem, ale nikoli specifikací JSON.
alternateVariantEncoding None Z85 Kódování použité pro hodnoty Variant ve zdrojovém kódu JSON. Nastavte na Z85 dekódování hodnot variant, které byly zakódovány ve formátu Base85 místo uložení ve vloženém formátu JSON.
badRecordsPath None Řetězec cesty Cesta k ukládání souborů pro záznam informací o špatných záznamech JSON.
badRecordsPath Použití možnosti ve zdroji dat založeném na souborech má následující omezení:
  • Jedná se o netransakční a může vést k nekonzistentním výsledkům.
  • Přechodné chyby se považují za selhání.
columnNameOfCorruptRecord _corrupt_record Řetězec názvu sloupce Sloupec pro ukládání záznamů, které jsou poškozené a nelze je analyzovat. Pokud je mode pro parsování nastaveno jako DROPMALFORMED, bude tento sloupec prázdný.
dateFormat yyyy-MM-dd Řetězec formátu data Formát pro analýzu řetězců kalendářních dat.
dropFieldIfAllNull false true, false Určuje, jestli chcete ignorovat sloupce všech hodnot null nebo prázdných polí a struktur během odvozování schématu.
encoding nebo charset UTF-8 Název java.nio.charset.Charset Název kódování souborů JSON. Viz java.nio.charset.Charset pro seznam možností. Nelze použít UTF-16 a UTF-32 kdy multiline je true.
inferTimestamp false true, false Zda zkusit odvodit řetězce časového razítka jako TimestampType. Pokud je nastavená hodnota true, odvození schématu může trvat výrazně déle. Musíte povolit cloudFiles.inferColumnTypes pro použití s Auto Loaderem.
lineSep Žádná, která pokrývá \r, \r\na \n Řetězec Řetězec mezi dvěma po sobě jdoucími záznamy JSON.
locale US Identifikátor java.util.Locale Identifikátor národního prostředí Java, který má vliv na výchozí datum, časové razítko a parsování desetinných míst ve formátu JSON.
maxNestingDepth 500 Kladná celá čísla Maximální povolená hloubka vnoření pro objekty a pole JSON. Zvyšte tuto hodnotu pro hluboce vnořené dokumenty.
maxNumLen 1000 Kladná celá čísla Maximální délka tokenů počtu ve vstupu JSON. Tuto hodnotu pro JSON zvyšte pomocí velkých číselných literálů.
maxStringLen Neomezené Kladná celá čísla Maximální délka řetězcových hodnot ve vstupu JSON. Nastavte omezení využití paměti při analýze JSON s velkými řetězci.
mode PERMISSIVE PERMISSIVE, , DROPMALFORMEDFAILFAST Režim parseru při zpracování chybně formátovaných záznamů
multiLine false true, false Určuje, jestli záznamy JSON pokrývají více řádků.
prefersDecimal false true, false Pokud je to možné, pokusí se řetězce odvodit jako DecimalType místo typu float nebo double. Musíte také použít odvození schématu, a to buď povolením inferSchema nebo použitím cloudFiles.inferColumnTypes s automatickým zavaděčem.
primitivesAsString false true, false Zda odvodit, zda se mají primitivní typy jako čísla a booleovské hodnoty považovat za StringType.
readerCaseSensitive true true, false Určuje chování citlivosti na velikost písmen, když je rescuedDataColumn povoleno. Pokud je pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu. Pokud je hodnota false, přečtěte si data bez rozlišování malých a malých písmen. K dispozici ve službě Databricks Runtime 13.3 a novějších.
rescuedDataColumn None Řetězec názvu sloupce Jestli chcete shromáždit všechna data, která nelze analyzovat kvůli neshodě datového typu nebo neshodě schématu (včetně písmen sloupců) do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití Auto Loaderu. Pro více informací se podívejte na Co je zachráněný datový sloupec?.
COPY INTO (starší verze) nepodporuje záchranný datový sloupec, protože schéma nelze nastavit ručně pomocí COPY INTO. Databricks doporučuje používat Auto Loader pro většinu scénářů příjmu dat.
singleVariantColumn None Řetězec názvu sloupce Určuje, jestli se má ingestovat celý dokument JSON, parsovaný do jednoho sloupce Variant se zadaným řetězcem jako názvem sloupce. Pokud není nastavená, pole JSON se ingestují do vlastních sloupců.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Řetězec formátu časového razítka Formát pro analýzu řetězců časových razítek.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Řetězec formátu časového razítka Formát pro analýzu časového razítka bez řetězců časového pásma (TimestampNTZType).
timeZone None Řetězec java.time.ZoneId java.time.ZoneId se používá při analýze časových razítek a kalendářních dat.
upgradeExceptionAsBadRecord false true, false Určuje, jestli se mají zacházet s výjimkami upgradu typu (například pokud hodnotu nelze rozšířit na deklarovaný typ sloupce) jako chybné záznamy místo vyvolání výjimky.

Kafka

Úplný seznam možností čtečky Kafka najdete v tématu Možnosti Platformy Kafka třídy DataStreamReader. Následující možnosti platí pouze pro dávkové čtení pomocí spark.read.format("kafka").

Key Výchozí Platné hodnoty Description
endingOffsets latest latestnebo řetězec posunu JSON Kde přestat číst. V řetězci -1 JSON je nejnovější posun. -2, což je nejstarší posun, není povoleno jako koncová posun. Toto je příklad posunu řetězce JSON: {"topicA":{"0":50,"1":-1}}.
endingOffsetsByTimestamp None Řetězec časového razítka JSON Koncové posuny pro jednotlivé oddíly zadané jako časová razítka v milisekundách Například: {"topicA":{"0":2000,"1":3000}}.
endingTimestamp None Kladná celá čísla nebo 0 Globální koncové časové razítko v milisekundách použité pro všechny oddíly.

ORC

Při čtení souborů ORC platí následující možnosti.

Key Výchozí Platné hodnoty Description
mergeSchema false true, false Určuje, jestli chcete schéma odvodit napříč více soubory a sloučit schéma jednotlivých souborů.

Parketové

Při čtení souborů Parquet platí následující možnosti.

Key Výchozí Platné hodnoty Description
datetimeRebaseMode LEGACY EXCEPTION, , LEGACYCORRECTED Řídí přepočet hodnot DATE a TIMESTAMP mezi juliánským a proleptickým gregoriánským kalendářem.
int96RebaseMode LEGACY EXCEPTION, , LEGACYCORRECTED Řídí přebasování hodnot časového razítka INT96 mezi juliánskými a prospektivními gregoriánskými kalendáři.
mergeSchema false true, false Určuje, jestli chcete schéma odvodit napříč více soubory a sloučit schéma jednotlivých souborů.
readerCaseSensitive true true, false Určuje chování citlivosti na velikost písmen, když je rescuedDataColumn povoleno. Pokud je pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu. Pokud je hodnota false, přečtěte si data bez rozlišování malých a malých písmen.
rescuedDataColumn None Řetězec názvu sloupce Určuje, jestli se mají shromažďovat všechna data, která nelze analyzovat z důvodu neshody datového typu a neshody schématu (včetně písmen sloupců) do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití Auto Loaderu. Další podrobnosti najdete v kapitole Co je sloupec zachráněných dat?.
COPY INTO (starší verze) nepodporuje záchranný datový sloupec, protože schéma nelze nastavit ručně pomocí COPY INTO. Databricks doporučuje používat Auto Loader pro většinu scénářů příjmu dat.

Úložiště stavů

Tyto možnosti můžete použít u spark.read.format("statestore") funkce s hodnotou tabulky ke čtení dat o stavu strukturovaného read_statestore streamování. Viz Přečtěte si informace o stavu strukturovaného streamování.

Key Výchozí Platné hodnoty Description
batchId Nejnovější ID dávky Kladná celá čísla nebo 0 Cílová dávka, ze které se má číst. Slouží k dotazování na dřívější stav dotazu. Dávka musí být komitována, ale ještě není vyčištěna.
operatorId 0 Kladná celá čísla nebo 0 Cílový operátor, ze které se má číst. Používá se, pokud má dotaz více stavových operátorů.
storeName DEFAULT Libovolný řetězec Název úložiště cílového stavu, ze které se má číst. Používá se, pokud má stavový operátor více instancí úložiště stavů. Je nutné zadat buď storeName nebo joinSide pro připojení stream-stream, ale ne obojí.
joinSide None left, right Cílová strana, ze které se má číst pro připojení stream-stream. Je nutné zadat buď storeName nebo joinSide pro připojení stream-stream, ale ne obojí.
snapshotStartBatchId None Kladná celá čísla nebo 0 ID dávky snímku, které se má použít jako výchozí bod při čtení stavu. Čtenář znovu sestaví stav tak, že přehraje změny z tohoto snímku, dokud batchId. Užitečné při poškození snímku. Musí být zadána společně s parametrem snapshotPartitionId. Nelze použít s readChangeFeed. Podporuje úložiště stavu založené na HDFS a úložiště stavů RocksDB s povoleným kontrolním bodem protokolu změn. K dispozici ve službě Databricks Runtime 15.4 LTS a novějších.
snapshotPartitionId None Kladná celá čísla nebo 0 Pokud je zadaný, dotaz načte pouze tento oddíl. Musí být zadána společně s parametrem snapshotStartBatchId. Nelze použít s readChangeFeed. K dispozici ve službě Databricks Runtime 15.4 LTS a novějších.
readChangeFeed false true, false Když truevrátí změny stavu v zadaném rozsahu dávek mezi changeStartBatchId a changeEndBatchId. Vyžaduje changeStartBatchId. Nelze použít s joinSide, batchId, snapshotStartBatchIdnebo snapshotPartitionId. K dispozici v Databricks Runtime 16.4 LTS a vyšších verzích.
Podrobnosti najdete v tématu Čtení změn stavu strukturovaného streamování.
changeStartBatchId None Kladná celá čísla nebo 0 Počáteční ID dávky pro rozsah kanálu změn. Vyžaduje se, pokud readChangeFeed je true. Platí pouze v případech, kdy readChangeFeed je nastavena hodnota true. K dispozici v Databricks Runtime 16.4 LTS a vyšších verzích.
changeEndBatchId Nejnovější ID dávky Kladná celá čísla nebo 0 Koncové ID dávky pro rozsah kanálu změn. Musí být větší než nebo rovno changeStartBatchId. Platí pouze v případech, kdy readChangeFeed je nastavena hodnota true. K dispozici v Databricks Runtime 16.4 LTS a vyšších verzích.
stateVarName None Libovolný řetězec Název proměnné stavu, který se má přečíst. Název stavové proměnné je jedinečný název každé proměnné v rámci init funkce StatefulProcessor používané operátorem transformWithState . Vyžaduje se při použití operátoru transformWithState . K dispozici v Databricks Runtime 16.4 LTS a vyšších verzích.
readRegisteredTimers false true, false Když truepřečte registrované časovače používané operátorem transformWithState . Platí pouze pro transformWithState operátor. K dispozici v Databricks Runtime 16.4 LTS a vyšších verzích.
flattenCollectionTypes true true, false Když truezploštěte záznamy vrácené pro proměnné stavu mapování a seznamu. Když falsevrátí záznamy jako Spark SQL Array nebo Map. Platí pouze pro transformWithState operátor. K dispozici v Databricks Runtime 16.4 LTS a vyšších verzích.

Text

Při čtení textových souborů platí následující možnosti.

Key Výchozí Platné hodnoty Description
encoding UTF-8 Název java.nio.charset.Charset Název kódování oddělovače řádků souboru TEXT. Obsah souboru není touto možností ovlivněn a je čten jako as-is.
lineSep Žádné, které pokrývá \r, \r\n a \n Řetězec Řetězec mezi dvěma po sobě jdoucími textovými záznamy.
wholeText false true, false Určuje, jestli se má soubor číst jako jeden záznam.

XML

Při čtení souborů XML platí následující možnosti.

Key Výchozí Platné hodnoty Description
rowTag None Libovolný řetězec Značka řádku v souborech XML, která se má považovat za řádek. V příkladu XML <book> <page><page>...<book>je pagepříslušná hodnota . Tato možnost je povinná.
samplingRatio 1.0 0.0 na 1.0 Definuje zlomek řádků používaných pro odvozování schématu. Předdefinované funkce XML tuto možnost ignorují.
excludeAttribute false true, false Zda vyloučit atributy v prvcích.
mode None PERMISSIVE, , DROPMALFORMEDFAILFAST Režim práce s poškozenými záznamy během analýzy
  • PERMISSIVE: U poškozených záznamů umístí poškozený řetězec do pole nakonfigurovaného pomocí columnNameOfCorruptRecord a nastaví poškozená pole na hodnotu null. Chcete-li zachovat poškozené záznamy, můžete nastavit string pole typu pojmenované columnNameOfCorruptRecord ve schématu definovaném uživatelem. Pokud schéma pole neobsahuje, během analýzy se zahodí poškozené záznamy. Při odvození schématu analyzátor implicitně přidá columnNameOfCorruptRecord pole ve výstupním schématu.
  • DROPMALFORMED: Ignoruje poškozené záznamy. Tento režim není podporován pro předdefinované funkce XML.
  • FAILFAST: Vyvolá výjimku, když parser narazí na poškozené záznamy.
inferSchema true true, false Pokud truese pokusí odvodit odpovídající typ pro každý výsledný sloupec datového rámce. Pokud falsejsou všechny výsledné sloupce typu string . Předdefinované funkce XML tuto možnost ignorují.
columnNameOfCorruptRecord spark.sql.columnNameOfCorruptRecord Řetězec názvu sloupce Umožňuje přejmenování nového pole, které obsahuje poškozený řetězec vytvořený režimem PERMISSIVE .
attributePrefix None Libovolný řetězec Předpona atributů k rozlišení atributů od prvků. Toto bude předpona pro názvy polí. Výchozí hodnota je _. Může být prázdný pro čtení XML, ale ne pro zápis. Platí také pro možnosti DATAFrameWriter XML.
valueTag _VALUE Libovolný řetězec Značka použitá pro znaková data v elementech, které mají zároveň atributy nebo podřízené elementy. Uživatel může zadat valueTag pole ve schématu nebo se automaticky přidá během odvozování schématu, když jsou data znaků přítomna v prvcích s jinými prvky nebo atributy. Platí také pro možnosti DATAFrameWriter XML.
encoding UTF-8 Název java.nio.charset.Charset Pro čtení dekóduje soubory XML daným typem kódování. Pro zápis určuje kódování (znakovou sadu) uložených souborů XML. Předdefinované funkce XML tuto možnost ignorují. Platí také pro možnosti DATAFrameWriter XML.
ignoreSurroundingSpaces true true, false Zda musí být vynechány prázdné znaky okolních hodnot. Znaková data, která obsahují pouze mezery, jsou ignorována.
rowValidationXSDPath None Řetězec cesty k souboru Cesta k volitelnému souboru XSD, který se používá k ověření XML pro každý řádek jednotlivě. Řádky, které se nepodaří ověřit, se považují za chyby analýzy. XSD jinak nemá vliv na schéma, ať už zadané nebo odvozené.
ignoreNamespace false true, false Pokud truejsou předpony oborů názvů u elementů a atributů XML ignorovány. Značky <abc:author> a <def:author>, například, jsou považovány za to, že oba jsou jen <author>. Jmenné prostory nelze u elementu rowTag ignorovat, lze ignorovat pouze jeho podřízené prvky pro čtení. Analýza XML si není vědoma názvových prostorů, ani když je false.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Řetězec formátu časového razítka Vlastní řetězec formátu časového razítka, který odpovídá formátu vzoru pro datum a čas. To platí pro timestamp typ. Platí také pro možnosti DATAFrameWriter XML.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Řetězec formátu časového razítka Řetězec vlastního formátu pro časové razítko bez časového pásma, který se řídí formátem vzorců pro datum a čas. To platí pro typ TimestampNTZType. Platí také pro možnosti DATAFrameWriter XML.
dateFormat yyyy-MM-dd Řetězec formátu data Vlastní řetězec formátu data, který odpovídá formátu datetime pattern. To platí pro typ data. Platí také pro možnosti DATAFrameWriter XML.
locale en-US Značka jazyka IETF BCP 47 Nastaví národní prostředí jako značku jazyka ve formátu IETF BCP 47. Používá se například locale při analýze kalendářních dat a časových razítek.
nullValue řetězec null Libovolný řetězec Nastaví řetězcovou reprezentaci hodnoty null. V takovém případě nullanalyzátor nezapisuje atributy a prvky pro pole. Platí také pro možnosti DATAFrameWriter XML.
readerCaseSensitive true true, false Určuje chování ohledně citlivosti na velikost písmen, když je povolen rescuedDataColumn. Pokud je pravda, zachorání sloupce dat, jejichž názvy se liší písmeny od schématu. Pokud je hodnota false, přečtěte si data bez rozlišování malých a malých písmen.
rescuedDataColumn None Řetězec názvu sloupce Zda chcete shromáždit všechna data, která nelze analyzovat kvůli neshodě datového typu a schématu (včetně velikosti písmen názvů sloupců), do samostatného sloupce. Tento sloupec je ve výchozím nastavení zahrnutý při použití Auto Loaderu. Pro více informací viz Co je sloupec pro obnovená data?. COPY INTO (starší verze) nepodporuje záchranný datový sloupec, protože schéma nelze nastavit ručně pomocí COPY INTO. Databricks doporučuje používat Auto Loader pro většinu scénářů příjmu dat.
singleVariantColumn none Řetězec názvu sloupce Určuje název jednoho sloupce varianty. Pokud je tato možnost určená pro čtení, parsujte celý záznam XML do jednoho sloupce Variant s danou hodnotou řetězce možnosti jako názvem sloupce. Pokud je tato možnost určena pro zápis, zapište hodnotu jednoho sloupce Variant do souborů XML. Platí také pro možnosti DATAFrameWriter XML.
useLegacyXMLParser true true, false Zda použít starší analyzátor XML. Starší verze analyzátoru má méně přísné ověřování pro poškozený obsah, ale je méně efektivní v paměti. Nastavte, abyste false se přihlásili k přísnějšímu výchozímu analyzátoru.
wildcardColName xs_any Řetězec názvu sloupce Název sloupce použitý k zachycení elementů XML, které odpovídají elementu schématu se zástupným znakem (xs:any). Nelze použít společně s parametrem rescuedDataColumn.

Možnosti třídy DataStreamReader

Pomocí těchto možností DataStreamReader.option() můžete nakonfigurovat čtení streamování z tabulek Delta Lake a dalších zdrojů založených na souborech.

Možnosti formátu souboru (JSON, CSV, Parquet a další) najdete v tématu Možnosti DataFrameReader.

Možnosti automatického zavaděče (cloudFiles.*) najdete v tématu Automatické zavaděče.

Příklad

Následující příklad nastaví maxFilesPerTrigger10 pro stream tabulky Delta Lake:

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")

Společné

Následující možnosti platí pro tabulky Delta Lake a další zdroje streamování založené na souborech.

Key Výchozí Platné hodnoty Description
cleanSource off off, , deletearchive Jak zpracovat zdrojové soubory po jejich zpracování datovým proudem off neprobíná žádnou akci. delete trvale odstraní zdrojový soubor. archive přesune soubor do sourceArchiveDirsouboru . Pokud je nastavená hodnota archive, sourceArchiveDir musí být také nastavena. Nevztahuje se na streamování tabulek Delta Lake.
fileNameOnly false true, false Zda chcete identifikovat již zpracované soubory pouze podle názvu souboru, nikoli úplnou cestou. Pokud truese soubory v různých cestách se stejným názvem souboru považují za stejný soubor a nezpracovávají se znovu. Nevztahuje se na streamování tabulek Delta Lake.
latestFirst false true, false Zda se mají zpracovat naposledy upravené soubory jako první v rámci každé mikrodávkové dávky. Užitečné, když chcete co nejrychleji zpracovat nejnovější data. Pokud true a maxFilesPerTrigger nebo maxBytesPerTrigger je nastavená, maxFileAge bude ignorována. Nevztahuje se na streamování tabulek Delta Lake.
maxBytesPerTrigger None Kladná celá čísla Soft maximum pro množství dat zpracovaných pro každou mikrodávku. Dávka může zpracovat více než limit, pokud je nejmenší vstupní jednotka vyšší. Při použití společně s maxFilesPerTriggermikrodávkovými dávkami zpracovává data, dokud nedosáhnete prvního limitu.
U automatického zavaděče místo toho použijte cloudFiles.maxBytesPerTrigger. Viz Běžné.
maxCachedFiles 10000 Kladná celá čísla nebo 0 Maximální počet nezpracovaných souborů, které se mají ukládat do mezipaměti pro následné mikrodávkové dávky. Nastavení pro 0 vypnutí ukládání do mezipaměti. Tuto hodnotu zvyšte, pokud zdrojový adresář obsahuje pro každou aktivační událost mnoho nových souborů. Nevztahuje se na streamování tabulek Delta Lake.
maxFileAge 7d Řetězec doby trvání, například 7d nebo 4h Maximální stáří souborů považovaných za zpracování vzhledem k časovému razítku naposledy upraveného souboru, nikoli k aktuálnímu systémovému času. Soubory starší než tato prahová hodnota se ignorují. Ignorováno, pokud latestFirst je true a maxFilesPerTrigger nebo maxBytesPerTrigger je nastaven. Nevztahuje se na streamování tabulek Delta Lake.
maxFilesPerTrigger 1000 pro Delta Lake a automatické zavaděče. Žádné maximum pro jiné zdroje založené na souborech. Kladná celá čísla Horní mez počtu nových souborů zpracovaných v každé mikrodávce. Při použití společně s maxBytesPerTriggermikrodávkovými dávkami zpracovává data, dokud nedosáhnete prvního limitu.
U automatického zavaděče místo toho použijte cloudFiles.maxFilesPerTrigger. Viz Běžné.
sourceArchiveDir None Řetězec cesty Cesta k adresáři archivu, pokud cleanSource je nastavena na archive. Zdrojové soubory se po zpracování přesunou do této cesty a zachová se jejich relativní adresářová struktura. Nevztahuje se na streamování tabulek Delta Lake.

Automatický zavaděč

Tyto možnosti se zdrojem použijte ke konfiguraci automatického cloudFileszavaděče pro příjem dat streamování z cloudového úložiště. Možnosti specifické pro cloudFiles zdroj mají předponu cloudFiles , aby byly v samostatném oboru názvů od jiných možností zdroje strukturovaného streamování .

Společné

Následující možnosti platí pro všechny konfigurace automatického zavaděče.

Key Výchozí Platné hodnoty Description
cloudFiles.allowOverwrites false true, false Určuje, jestli chcete povolit změny vstupního souboru adresáře, aby přepsaly existující data.
Informace o výstrahách konfigurace naleznete v tématu Zpracovává Auto Loader soubor znovu, když se soubor připojí nebo přepíše?.
cloudFiles.backfillInterval None Řetězec doby trvání, například 1 day nebo 1 week Automatické načítání může v daném intervalu aktivovat asynchronní doplňování dat. Další informace najdete v tématu Aktivace běžných obnovení pomocí cloudFiles.backfillInterval.
Nepoužívejte, pokud cloudFiles.useManagedFileEvents je nastavena na truehodnotu .
cloudFiles.cleanSource OFF OFF, , DELETEMOVE Zda se mají automaticky odstranit nebo přesunout zpracované soubory ze vstupního adresáře. Pokud je nastavená hodnota OFF (výchozí), nebudou odstraněny žádné soubory.
Pokud je nastaveno DELETE, Auto Loader automaticky odstraní soubory 30 dní po jejich zpracování. K tomu musí mít Auto Loader oprávnění k zápisu do zdrojového adresáře.
Pokud je tato možnost nastavená na MOVE, auto loader automaticky přesune soubory do zadaného umístění za cloudFiles.cleanSource.moveDestination 30 dnů po jejich zpracování. K tomu musí mít automatický zavaděč oprávnění k zápisu do zdrojového adresáře i do umístění pro přesunutí.
Soubor se považuje za zpracovaný, pokud má hodnotu, která nemá hodnotu null commit_time pro výsledek cloud_files_state funkce s hodnotou table. Viz tabulkovou funkci cloud_files_state. 30denní další čekání po zpracování lze nakonfigurovat pomocí cloudFiles.cleanSource.retentionDuration.
Před povolením cloudFiles.cleanSourcesi projděte následující aspekty:
  • Azure Databricks tuto možnost nedoporučuje používat, pokud existuje více datových proudů využívajících data ze zdrojového umístění, protože nejrychlejší uživatel soubory odstraní a nebudou ingestované v pomalejších zdrojích.
  • Povolení této funkce vyžaduje automatické zavaděče, aby zachoval další stav v kontrolním bodu, což způsobuje režii na výkon, ale umožňuje lepší pozorovatelnost prostřednictvím cloud_files_state funkce s hodnotou tabulky. Viz tabulkovou funkci cloud_files_state.
  • cleanSource používá aktuální nastavení k rozhodnutí, zda se má soubor MOVE nebo DELETE daný soubor použít. Například předpokládejme, že nastavení bylo MOVE , když byl soubor původně zpracován, ale změnilo se na DELETE , když se soubor stal kandidátem na odstranění 30 dní později. V tomto případě nástroj cleanSource odstraní soubor.
  • Soubory nejsou zaručeny, že se vyčistí, jakmile retentionDuration vyprší jeho platnost. Pokud chcete zachovat nízké náklady, auto loader odstraní soubory současně se zpracováním datových proudů a ukončí se, jakmile se zpracování datového proudu dokončí nebo ukončí. Soubory, které byly kandidáty na vyčištění, ale během zpracování datového proudu se při příštím spuštění automatického zavaděče nedají vyčistit.

K dispozici ve službě Databricks Runtime 16.4 a novějších.
cloudFiles.cleanSource.retentionDuration 30 days Řetězec CalendarInterval, například 14 days, 2 weeksnebo1 month Doba čekání před tím, než se zpracované soubory stanou kandidáty pro archivaci s cleanSource. Musí být delší než 7 dní pro DELETE. Žádné minimální omezení pro MOVE.
K dispozici ve službě Databricks Runtime 16.4 a novějších.
cloudFiles.cleanSource.moveDestination None Cesta ke svazku cloudového úložiště nebo katalogu Unity Cesta k archivování zpracovaných souborů, kam se ukládají, když je cloudFiles.cleanSource nastaveno na MOVE. Může se jednat o cestu ke cloudovému úložišti nebo cestu ke svazku katalogu Unity (například /Volumes/my_catalog/my_schema/my_volume/archive/).
Umístění přesunutí musí:
  • Nejedná se o podřízenou část zdrojového adresáře. Pokud umístíte cíl přesunutí do zdrojového adresáře, archivované soubory se znovu ingestují.
  • Musí být ve stejném externím umístění, svazku nebo DBFS jako zdroj. Přesuny mezi buckety a mezi kontejnery se nepodporují a výsledkem je chyba.

Automatický zavaděč musí mít oprávnění k zápisu do tohoto adresáře.
K dispozici ve službě Databricks Runtime 16.4 a novějších.
cloudFiles.format Žádná (povinná možnost) avro, binaryFile, csv, , jsonorc, parquet, , textxml Formát datového souboru ve zdrojové cestě. Mezi platné hodnoty patří:
cloudFiles.includeExistingFiles true true, false Zda zahrnout existující soubory do vstupní cesty zpracování datového proudu nebo zpracovat pouze nové soubory přicházející po počátečním nastavení. Tato možnost se vyhodnotí jenom při prvním spuštění streamu. Změna této možnosti po restartování streamu nemá žádný vliv.
cloudFiles.inferColumnTypes false true, false Určuje, zda se mají při odvozování schématu odvozovat přesné typy sloupců. Ve výchozím nastavení se sloupce při odvozování datových sad JSON a CSV odvozují jako řetězce. Další podrobnosti najdete v části odvozování schématu.
cloudFiles.maxBytesPerTrigger None Bajtový řetězec, například 10g Maximální počet nových bajtů, které mají být zpracovány při každém spuštění. Jedná se o měkké maximum. Pokud máte soubory, které jsou 3 GB, Azure Databricks zpracuje 12 GB v mikrodávce. Jednotlivé soubory se nikdy nerozdělují mezi mikrodávkové dávky; je vždy zpracována v plném rozsahu v rámci jednoho, i když jeho velikost překročí tento limit. Při použití spolu s cloudFiles.maxFilesPerTrigger, Azure Databricks spotřebovává až do nižšího limitu cloudFiles.maxFilesPerTrigger nebo cloudFiles.maxBytesPerTrigger, podle toho, který je dosažen první. Tato možnost nemá žádný vliv při použití Trigger.Once() (Trigger.Once() je zastaralá).
V Databricks Runtime 18.0 a novějších je tato možnost dynamicky nakonfigurovaná a není nutné ji nastavit ručně.
cloudFiles.maxFileAge None Řetězec doby trvání Jak dlouho se sleduje událost souboru pro účely odstranění duplicitních dat. Databricks nedoporučuje ladit tento parametr, pokud nezpracováváte data v rozsahu milionů souborů za hodinu. Další podrobnosti najdete v části Sledování událostí souboru .
Příliš agresivní ladění cloudFiles.maxFileAge může způsobit problémy s kvalitou dat, jako je duplicitní příjem dat nebo chybějící soubory. Proto Databricks doporučuje konzervativní nastavení pro cloudFiles.maxFileAge, například 90 dní, což je podobné tomu, jaké srovnatelné řešení pro příjem dat doporučují.
cloudFiles.maxFilesPerTrigger 1000 Kladná celá čísla Maximální počet nových souborů ke zpracování při každém spuštění. Při použití spolu s cloudFiles.maxBytesPerTrigger, Azure Databricks spotřebovává až do nižšího limitu cloudFiles.maxFilesPerTrigger nebo cloudFiles.maxBytesPerTrigger, podle toho, který je dosažen první. Tato možnost nemá žádný vliv při použití s Trigger.Once() (zastaralé).
V Databricks Runtime 18.0 a novějších je tato možnost dynamicky nakonfigurovaná a není nutné ji nastavit ručně.
cloudFiles.partitionColumns None Čárkami oddělený seznam názvů sloupců Čárkami oddělený seznam sloupců oddílů ve stylu Hive, které chcete odvodit ze struktury adresářů souborů. Sloupce oddílů ve stylu Hive jsou páry klíč-hodnota zkombinované znaménkem rovnosti, například <base-path>/a=x/b=1/c=y/file.format. V tomto příkladu jsou sloupce oddílů a, b a c. Ve výchozím nastavení se tyto sloupce automaticky přidají do schématu, pokud používáte odvozování schématu a určíte, <base-path> ze kterých se mají načítat data. Pokud zadáte schéma, automatický zavaděč očekává, že budou tyto sloupce zahrnuty do schématu. Pokud nechcete, aby tyto sloupce byly součástí schématu, můžete tyto sloupce ignorovat "" . Tuto možnost můžete použít také v případě, že chcete, aby sloupce odvodily cestu k souboru ve složitých adresářových strukturách, například v následujícím příkladu:
<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
Určení cloudFiles.partitionColumns jako year,month,day vrátí year=2022 pro file1.csv, ale sloupce month a day jsou null.
month a day jsou správně analyzovány pro file2.csv a file3.csv.
cloudFiles.schemaEvolutionMode addNewColumns není-li zadáno schéma, none jinak addNewColumns, none, , rescuefailOnNewColumns Režim pro vývoj schématu, protože v datech jsou zjištěny nové sloupce. Ve výchozím nastavení se sloupce při odvozování datových sad JSON odvozují jako řetězce. Viz vývoj schématu pro více podrobností.
cloudFiles.schemaHints None Řetězec schématu Informace o schématu, které zadáte pro automatický zavaděč během odvození schématu. Další podrobnosti najdete v nápovědě schématu .
cloudFiles.schemaLocation Žádná (nutná k odvození schématu) Řetězec cesty Umístění pro uložení odvozeného schématu a následných změn. Další podrobnosti najdete v části odvozování schématu.
cloudFiles.useStrictGlobber false true, false Zda použít přísný globber, který odpovídá výchozímu chování globbingu ostatních zdrojů souborů v Apache Sparku. Další podrobnosti najdete v tématu Běžné vzorce načítání dat. K dispozici v Databricks Runtime 12.2 LTS a novějších.
cloudFiles.validateOptions true true, false Zda ověřit možnosti Auto Loaderu a vrátit chybu pro neznámé nebo nekonzistentní možnosti.

Výpis adresáře

Následující možnost platí pro použití režimu výpisu adresáře.

Key Výchozí Platné hodnoty Description
cloudFiles.useIncrementalListing (zastaralé) auto on Databricks Runtime 17.2 and below, false on Databricks Runtime 17.3 and above auto, , truefalse Tato funkce je zastaralá. Databricks doporučuje používat režim oznámení souboru s událostmi souborů místo cloudFiles.useIncrementalListing.
Zda se má přírůstkový výpis používat místo úplného výpisu v režimu výpisu adresáře. Auto Loader ve výchozím nastavení snaží automaticky zjistit, jestli je daný adresář použitelný pro přírůstkový výpis. Přírůstkový výpis můžete explicitně nastavit, nebo použít úplný výpis adresáře, a to tak, že jej nastavíte jako true pro přírůstkový výpis nebo false pro úplný výpis adresáře.
Nesprávné povolení přírůstkového výpisu v nelexikálně uspořádaném adresáři brání Auto Loaderu ve zjišťování nových souborů.
Funguje s Azure Data Lake Storage (abfss://), S3 (s3://) a GCS (gs://).
K dispozici v prostředí Databricks Runtime 9.1 LTS a novějších.

Oznámení o souboru

Informace o konfiguraci režimu oznámení souborů, včetně požadovaných cloudových oprávnění, pokynů k nastavení a metod ověřování, najdete v tématu Konfigurace datových proudů automatického zavaděče v režimu oznámení souboru.

Key Výchozí Platné hodnoty Description
cloudFiles.fetchParallelism 1 Kladná celá čísla Počet vláken, která se mají použít pro načítání zpráv z frontovací služby.
Nepoužívejte, pokud cloudFiles.useManagedFileEvents je nastavena na truehodnotu .
cloudFiles.pathRewrites None Řetězec mapování JSON Vyžaduje se pouze v případě, že zadáte queueUrl oznámení o souborech z více kontejnerů S3 a chcete použít přípojné body nakonfigurované pro přístup k datům v těchto kontejnerech. Tuto možnost použijte k přepsání předpony cesty bucket/key s montážním bodem. Lze přepsat pouze předpony. Například pro konfiguraci {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}se cesta s3://<databricks-mounted-bucket>/path/2017/08/fileA.json přepíše na dbfs:/mnt/data-warehouse/2017/08/fileA.json.
Nepoužívejte, pokud cloudFiles.useManagedFileEvents je nastavena na truehodnotu .
cloudFiles.resourceTag None Řetězce značek klíč-hodnota Série párů značek klíč-hodnota, které pomáhají přidružit a identifikovat související zdroje, například:
cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue")
.option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")
Nepoužívejte, pokud cloudFiles.useManagedFileEvents je nastavena na truehodnotu . Místo toho nastavte značky prostředků pomocí konzoly poskytovatele cloudu.
Další informace najdete v tématu Značky prostředků poskytovatele cloudu.
cloudFiles.useManagedFileEvents false true, false Pokud je nastaveno na true, Auto Loader používá službu událostí souborů ke zjišťování souborů ve vašem externím umístění. Tuto možnost můžete použít pouze v případě, že je načítací cesta v externím umístění s aktivovanými událostmi souborů. Viz Použití režimu oznámení souboru s událostmi souborů.
Události souborů poskytují výkon na úrovni oznámení při zjišťování souborů, protože automatický zavaděč může zjišťovat nové soubory po posledním spuštění. Na rozdíl od výpisu adresáře tento proces nemusí vypisovat všechny soubory v adresáři.
Existuje několik situací, kdy Automatický Zavaděč používá výpis adresáře, i když je povolená volba sledování událostí souborů.
  • Při počátečním načtení, když je includeExistingFiles nastaven na true, se provede úplný výpis adresáře, aby se objevily všechny soubory, které byly v adresáři přítomny před spuštěním Auto Loaderu.
  • Služba událostí souborů optimalizuje zjišťování souborů tím, že ukládá do mezipaměti nejnověji vytvořené soubory. Pokud automatický zavaděč běží zřídka, platnost této mezipaměti může vypršet a automatický zavaděč se vrátí k vyhledávání adresářů, aby nalezl soubory a aktualizoval mezipaměť. Pokud se chcete tomuto scénáři vyhnout, spusťte Auto Loader alespoň jednou každých sedm dní.

Podívejte se, kdy automatický zavaděč s událostmi souborů používá výpis adresáře? Úplný seznam situací, kdy auto loader používá výpis adresáře s touto možností.
K dispozici ve službě Databricks Runtime 14.3 LTS a vyšší.
cloudFiles.listOnStart false true, false Pokud je tato možnost nastavená na true, auto loader při spuštění datového proudu provede úplný výpis adresáře místo spuštění tokenu pokračování v kontrolním bodu. Tuto možnost použijte k zotavení z chyb, například CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Podívejte se, jak se můžu zotavit z CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN chyby?
cloudFiles.useNotifications false true, false Zda použít režim oznámení souboru k určení, kdy existují nové soubory. Pokud false, použijte režim výpisu adresáře. Viz Porovnání režimů detekce souborů funkce Auto Loader.
Nepoužívejte, pokud cloudFiles.useManagedFileEvents je nastavena na truehodnotu .
Značky prostředků poskytovatele cloudu

Auto Loader ve výchozím nastavení přidá následující páry značek klíč-hodnota na základě maximálního úsilí:

  • vendor: Databricks
  • path: Umístění, ze kterého se data načítají. V GCP není k dispozici kvůli omezením označování.
  • checkpointLocation: Umístění kontrolního bodu proudu. V GCP není k dispozici kvůli omezením označování.
  • streamId: Globálně jedinečný identifikátor datového proudu.

Databricks si tyto názvy klíčů vyhrazuje a nemůžete jejich hodnoty přepsat.

Další informace o Azure najdete v tématu Pojmenování front a metadat a o pokrytí properties.labels v rámci Odběry událostí. Auto Loader ukládá tyto páry značek klíč-hodnota ve formátu JSON jako popisky.

Specifické pro cloud

Auto Loader nabízí možnosti konfigurace cloudové infrastruktury pro režim oznámení souborů. Požadované cloudové oprávnění a pokyny k nastavení najdete v tématu Konfigurace datových proudů automatického zavaděče v režimu oznámení souboru.

Azure

Pokud zadáte cloudFiles.useNotifications = true hodnoty pro všechny následující možnosti a chcete, aby auto loader nastavil služby oznámení za vás:

Key Výchozí Platné hodnoty Description
cloudFiles.resourceGroup None Libovolný řetězec Skupina prostředků Azure, ve které se účet úložiště vytvoří.
cloudFiles.subscriptionId None Libovolný řetězec ID Azure předplatného, ve kterém je skupina prostředků vytvořená.
databricks.serviceCredential None Libovolný řetězec Název přihlašovacích údajů služby Databricks . Dostupné v Databricks Runtime 16.1 a vyšších verzích.

Pokud přihlašovací údaje služby Databricks nejsou k dispozici, můžete místo toho zadat následující možnosti ověřování:

Key Výchozí Platné hodnoty Description
cloudFiles.clientId None Libovolný řetězec ID klienta nebo ID aplikace služebního principálu.
cloudFiles.clientSecret None Libovolný řetězec Tajný klíč klienta hlavní služby.
cloudFiles.connectionString None Připojovací řetězec Připojovací řetězec pro účet úložiště, který používá buď přístupový klíč účtu, nebo sdílený přístupový podpis (SAS).
cloudFiles.tenantId None Libovolný řetězec ID Azure tenanta, ve kterém se vytvoří instanční objekt.

Tuto možnost zadejte pouze v případě, že nastavíte cloudFiles.useNotifications = true a chcete, aby automatický zavaděč používal existující frontu:

Key Výchozí Platné hodnoty Description
cloudFiles.queueName None Libovolný řetězec Název fronty Azure. Pokud je zadáno, zdroj cloudových souborů přímo spotřebovává události z této fronty místo toho, aby nastavil vlastní Azure Event Grid a služby Queue Storage. V takovém případě vaše databricks.serviceCredential nebo cloudFiles.connectionString vyžaduje pouze oprávnění ke čtení ve frontě.

Delta Lake

Následující možnosti platí při čtení z tabulky Delta Lake pomocí spark.readStream.

Key Výchozí Platné hodnoty Description
allowSourceColumnDrop None Číslo verze nebo always Nastavte na číslo verze tabulky Delta nebo always povolte, aby stream pokračoval po vyřazení sloupců ze schématu zdrojové tabulky. Pokud je nastaveno číslo verze, potvrdí všechny změny schématu až do této verze. Vyžaduje schemaTrackingLocation. Viz Přejmenování a vyřazení sloupců v rámci mapování sloupců Delta Lake.
allowSourceColumnRename None Číslo verze nebo always Nastavte na číslo verze tabulky Delta nebo always povolte, aby stream pokračoval po přejmenování sloupců ve zdrojové tabulce. Pokud je nastaveno číslo verze, potvrdí všechny změny schématu až do této verze. Vyžaduje schemaTrackingLocation. Viz Přejmenování a vyřazení sloupců v rámci mapování sloupců Delta Lake.
allowSourceColumnTypeChange None Číslo verze nebo always Nastavte na číslo verze tabulky Delta nebo always umožněte datovému proudu pokračovat po změně typů sloupců ve zdrojové tabulce. Pokud je nastaveno číslo verze, potvrdí všechny změny schématu až do této verze. Vyžaduje schemaTrackingLocation. Viz Rozšíření typu.
excludeRegex None Řetězec regulárního výrazu Java Vzor regulárního výrazu. Soubory, jejichž cesty odpovídají vzoru, jsou vyloučené ze čtení streamování. Užitečné pro filtrování souborů, které neodpovídají očekávané konvenci vytváření názvů.
failOnDataLoss true true, false Jestli se má dotaz streamování nezdařit, pokud se zdrojová data odstranila kvůli uchovávání protokolů (logRetentionDuration). Nastavte na false vynechání chybějících dat a pokračujte ve zpracování. Viz Konfigurace uchovávání dat pro časové dotazy.
ignoreChanges (zastaralé) false true, false K dispozici v Databricks Runtime 11.3 LTS a nižší. Po úpravách operací, jako UPDATEje , MERGE INTODELETEOVERWRITE, nebo . Nezměněné řádky mohou být generovány společně s novými řádky, takže podřízení příjemci musí zpracovávat duplicity. Odstranění se nepřenáší dále do systému. Nahrazeno skipChangeCommits v Databricks Runtime 12.2 LTS a vyšší.
ignoreDeletes (zastaralé) false true, false Ignoruje transakce, které odstraňují data na hranicích oddílů (pouze úplné zahodí oddíly). Nezpracuje odstranění, aktualizace ani jiné úpravy nesouvisejí s oddíly. Místo toho použijte skipChangeCommits.
readChangeFeed nebo readChangeData false true, false Jestli chcete povolit čtení datového kanálu změn pro streamovací dotaz. Pokud je to povolené, stream generuje změny na úrovni řádků (vložení, aktualizace a odstranění) s dalšími sloupci metadat. Viz Použití kanálu změn dat na Azure Databricks.
schemaTrackingLocation None Řetězec cesty Cesta k adresáři, kde Delta Lake sleduje změny schématu pro čtení streamování. Vyžaduje se při streamování z tabulek s povoleným mapováním sloupců a používáním allowSourceColumn* možností pro zpracování vývoje schématu. Musí být v rámci checkpointLocation dotazu streamování. Viz Přejmenování a vyřazení sloupců v rámci mapování sloupců Delta Lake.
skipChangeCommits false true, false Ignoruje transakce, které odstraňují nebo upravují existující záznamy a procesy, pouze připojení. Databricks doporučuje tuto možnost pro většinu úloh, které nepoužívají datové kanály změn. K dispozici v Databricks Runtime 12.2 LTS a novějších. Viz Skip upstream change commits with skipChangeCommits.
startingTimestamp Nejnovější dostupné Řetězec časového razítka, například řetězec kalendářního data, například 2019-01-01T00:00:00.000Z2019-01-01 Časové razítko, ze které chcete začít číst. Stream čte všechny změny tabulky potvrzené v zadaném časovém razítku nebo za zadané časové razítko. Pokud časové razítko předchází všem dostupným potvrzením tabulky, datový proud začíná od nejstaršího dostupného potvrzení. Nelze použít společně s parametrem startingVersion. Ignorováno, pokud kontrolní bod streamování již existuje.
startingVersion Nejnovější dostupné Kladné celé číslo, 0nebo latest Verze tabulky Delta, ze které začnete číst. Stream čte všechny změny potvrzené v zadané verzi nebo za zadanou verzí. Zadejte latest , aby se začínalo pouze od nejnovějších změn. Nelze použít společně s parametrem startingTimestamp. Ignorováno, pokud kontrolní bod streamování již existuje. Viz Práce s historií tabulek.
withEventTimeOrder false true, false Rozdělí počáteční snímek tabulky do časových intervalů událostí, aby se záznamy nesprávně označily jako opožděné události a vynechaly se ve stavových dotazech s vodoznaky. Po zahájení počátečního zpracování snímků nelze změnit bez odstranění kontrolního bodu. K dispozici ve službě Databricks Runtime 11.3 LTS a vyšší. Viz Počáteční snímek procesu bez vyřazení dat.

Kafka

Použijte tyto možnosti s těmito spark.readStream.format("kafka") možnostmi:spark.read.format("kafka")

Key Výchozí Platné hodnoty Description
assign None Řetězec JSON, například {"topicA":[0,1],"topicB":[2,4]} Konkrétní oddíly, které se mají využívat. Musíte zadat přesně jednu z subscribesubscribePatternmožností , nebo assign .
failOnDataLoss true true, false Jestli dotaz selže, pokud by mohla dojít ke ztrátě dat, například kvůli odstraněných tématům nebo zkrácení posunu. Nastavte na false vynechání chybějících dat a pokračujte.
Databricks odhaduje konzervativně, jestli mohla dojít ke ztrátě dat. To ale může způsobit falešné poplachy.
fetchoffset.numretries 3 Kladná celá čísla nebo 0 Počet opakování při načítání posunů Kafka selže.
fetchoffset.retryintervalms 1000 Kladná celá čísla nebo 0 Interval v milisekundách mezi opakovanými pokusy o načtení posunu
groupIdPrefix spark-kafka-source (streamování), spark-kafka-relation (batch) Libovolný řetězec Přizpůsobená předpona, která se má použít pro automaticky generované ID skupiny příjemců Kafka. Pokud kafka.group.id je explicitně nastavená, konektor tuto možnost ignoruje.
kafka.group.id None Libovolný řetězec ID skupiny příjemců Kafka, které se má použít při čtení. Používejte s opatrností: dotazy sdílející stejné ID skupiny vzájemně kolidují a můžou číst jenom částečná data. K tomu může dojít při spouštění souběžných dávkových a streamovaných úloh nebo při rychlém restartování dotazů. Pokud je nastavená, groupIdPrefix bude ignorována. Pokud chcete minimalizovat problémy, nastavte konfiguraci session.timeout.ms příjemce Kafka na malou hodnotu.
includeHeaders false true, false Jestli chcete do výstupu zahrnout záhlaví zpráv Kafka jako sloupec.
kafkaconsumer.polltimeoutms None Kladná celá čísla Časový limit v milisekundách pro volání příjemce poll() Kafka.
kafka.bootstrap.servers None Čárkami oddělený seznam host:port řetězců Čárkami oddělený seznam adres hostitele:port pro zprostředkovatele Kafka. Nastaví vlastnost klienta bootstrap.servers Kafka.
Pokud zjistíte, že kafka neobsahuje žádná data, zkontrolujte, jestli tento seznam adres zprostředkovatele neobsahuje nesprávné adresy. Pokud je seznam adres zprostředkovatele nesprávný, nemusí se zde vyskytovat žádné chyby. Klienti Kafka předpokládají, že zprostředkovatelé budou nakonec k dispozici a budou opakovat navždy, když obdrží chyby sítě.
maxRecordsPerPartition None Kladná celá čísla Maximální počet záznamů pro každý oddíl Sparku. Když je tato možnost nastavená, konektor rozdělí oddíly Kafka tak, aby každý oddíl Sparku četl maximálně tento počet záznamů.
Tuto možnost můžete použít také s minPartitions. Pokud jsou obě možnosti nastavené, Spark použije jakoukoli možnost, která má za následek více oddílů.
minPartitions None Kladná celá čísla Minimální počet oddílů Sparku, které se mají číst ze systému Kafka. Po nastavení konektor rozdělí velké oddíly Kafka, aby se zvýšil paralelismus. Pokud není nastavená, Spark pro každý oddíl tématu Kafka vytvoří jeden oddíl. Užitečné pro zpracování nerovnoměrné distribuce dat nebo špiček zatížení.
Tato možnost znovu inicializuje uživatele Kafka pro jednotlivé triggery, což může mít vliv na výkon s protokolem SSL.
startingOffsets latest (streamování), earliest (batch) earliest, latestnebo řetězec posunu JSON Posun, ze kterého dotaz začíná čtení. V řetězci -1 JSON je nejnovější posun. -2 je nejstarší posun. Například: {"topicA":{"0":23,"1":-2}}.
U streamovaných dotazů se tato možnost použije jenom při spuštění nového dotazu. Obnovené dotazy vždy používají kontrolní bod. Během dotazu se nové oddíly začnou číst od nejstaršího posunu.
Pro dávkové dotazy latest není povoleno.
startingOffsetsByTimestamp None Řetězec časového razítka JSON, například {"topicA":{"0":1000,"1":2000}} Seznam počátečních posunů pro každý oddíl zadaný jako časová razítka v milisekundách. Pokud pro časové razítko neexistuje žádný posun, určuje startingOffsetsByTimestampStrategychování dotazu .
U streamovaných dotazů se tato možnost použije jenom při spuštění nového dotazu. Obnovené dotazy vždy používají kontrolní bod. Během dotazu se nové oddíly začnou číst od nejstaršího posunu.
startingOffsetsByTimestampStrategy error error, latest Strategie, která se má použít, pokud není nalezen žádný posun pro časové razítko zadané v startingOffsetsByTimestamp nebo startingTimestamp. error vyvolá výjimku. latest používá nejnovější dostupný posun.
startingTimestamp None Kladná celá čísla nebo 0 Globální počáteční časové razítko v milisekundách, které platí pro všechny oddíly. Pokud pro časové razítko neexistuje žádný posun, chování je řízeno startingOffsetsByTimestampStrategy.
subscribe None Čárkami oddělený seznam názvů témat Témata, která se mají přihlásit k odběru. Musíte zadat přesně jednu z subscribesubscribePatternmožností , nebo assign .
subscribePattern None Řetězec regulárního výrazu Java Vzor použitý k přihlášení k odběru témat. Musíte zadat přesně jednu z subscribesubscribePatternmožností , nebo assign . Například: topic.*.

Následující možnosti platí pouze pro čtení streamování pomocí spark.readStream.format("kafka"):

Key Výchozí Platné hodnoty Description
bytesEstimateWindowLength 300s Řetězce doby trvání, například 10m nebo 600s Časový interval použitý k odhadu zbývajících bajtů pro metriku estimatedTotalBytesBehindLatest . Viz také Načtení Kafka metrik.
maxOffsetsPerTrigger None Kladná celá čísla Maximální počet posunů na proces v intervalu aktivační události. Posuny se distribuují proporcionálně napříč oddíly témat.
maxTriggerDelay 15m Řetězce doby trvání, například 10m nebo 600s Maximální doba čekání na minOffsetsPerTrigger kumulování před aktivací.
minOffsetsPerTrigger None Kladná celá čísla Minimální počet posunů, které se mají kumulovat před aktivací mikrodávkové dávky. Po maxTriggerDelay dosažení se mikrodávkové spuštění spustí bez ohledu na to.

Možnosti posunu, které se vztahují pouze na dávkové čtení, spark.read.format("kafka")naleznete v tématu Možnosti DataFrameReader Kafka.

Autentizace

Databricks doporučuje používat přihlašovací údaje služby Unity Catalog k ověřování ve službách Kafka spravovaných v cloudu (AWS MSK, Azure Event Hubs nebo Google Cloud Managed Kafka).

Key Výchozí Platné hodnoty Description
databricks.serviceCredential None Libovolný řetězec Název přihlašovacích údajů služby Katalogu Unity pro ověřování ve službách Kafka spravovaných v cloudu. Dostupné v Databricks Runtime 16.1 a vyšších verzích.
databricks.serviceCredential.scope None Libovolný řetězec Obor OAuth pro přihlašovací údaje služby. Tuto možnost nastavte pouze v případě, že Azure Databricks nemůže automaticky odvodit rozsah vaší služby Kafka.

Pokud přihlašovací údaje služby nejsou k dispozici, použijte možnosti SASL/SSL (předávané jako kafka.* vlastnosti). Při použití přihlašovacích údajů služby nemusíte zadávat kafka.sasl.mechanism, kafka.sasl.jaas.confignebo kafka.security.protocol.

Key Výchozí Platné hodnoty Description
kafka.security.protocol None Řetězec protokolu zabezpečení, například SASL_SSL, SSLPLAINTEXT Protokol zabezpečení pro komunikaci zprostředkovatele.
kafka.sasl.mechanism None Řetězec mechanismu SASL, například PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARERAWS_MSK_IAM Mechanismus SASL.
kafka.sasl.jaas.config None Konfigurační řetězec JAAS Konfigurační řetězec přihlášení JAAS.
kafka.sasl.login.callback.handler.class None Plně kvalifikovaný název třídy Plně kvalifikovaný název třídy obslužné rutiny zpětného volání pro ověřování SASL.
kafka.sasl.client.callback.handler.class None Plně kvalifikovaný název třídy Plně kvalifikovaný název třídy obslužné rutiny zpětného volání klienta pro ověřování SASL.
kafka.ssl.truststore.location None Řetězec cesty k souboru Cesta k souboru úložiště důvěryhodnosti SSL.
kafka.ssl.truststore.password None Libovolný řetězec Heslo pro soubor úložiště důvěryhodnosti SSL.
kafka.ssl.keystore.location None Řetězec cesty k souboru Cesta k souboru úložiště klíčů SSL.
kafka.ssl.keystore.password None Libovolný řetězec Heslo pro soubor úložiště klíčů SSL.

Úplné pokyny k nastavení ověřování najdete v tématu Ověřování.

Pub/Sub

Pomocí těchto možností spark.readStream.format("pubsub") se můžete přihlásit k odběru Google Pub/Sub. subscriptionIdMožnosti a topicIdprojectId jsou povinné.

Key Výchozí Platné hodnoty Description
subscriptionId None Libovolný řetězec Required. ID předplatného Pub/Sub. Konektor vytvoří předplatné, pokud neexistuje.
topicId None Libovolný řetězec Required. ID tématu Pub/Sub.
projectId None Libovolný řetězec Required. ID projektu Google Cloud.
numFetchPartitions Polovina počtu exekutorů dostupných při inicializaci datového proudu Kladná celá čísla Počet paralelních úloh Sparku, které načítají řádky z předplatného.
maxBytesPerTrigger None Kladná celá čísla Měkký limit počtu bajtů, které se mají zpracovat na mikrodávku.
maxRecordsPerFetch 1000 Kladná celá čísla Početřádkůch
maxFetchPeriod 10s Řetězec doby trvání, například 1s nebo 1m Doba trvání každého úkolu, která se má načíst před zpracováním řádků. Azure Databricks doporučujeme použít výchozí hodnotu.
deleteSubscriptionOnStreamStop false true, false Když truedojde k odstranění odběru z dotazu streamování, dojde subscriptionIdk jeho odstranění.
serviceCredential None Libovolný řetězec Název přihlašovacích údajů služby Azure Databricks pro ověřování v Pub/Sub. Dostupné v Databricks Runtime 16.1 a vyšších verzích.
clientEmail None Řetězec e-mailové adresy E-mailová adresa účtu služby Google. Vyžaduje se při použití přihlašovacích údajů služby.
clientId None Libovolný řetězec ID klienta účtu služby Google. Vyžaduje se při použití přihlašovacích údajů služby.
privateKey None Řetězec privátního klíče Privátní klíč pro účet služby Google. Vyžaduje se při použití přihlašovacích údajů služby.
privateKeyId None Libovolný řetězec ID privátního klíče pro účet služby Google. Vyžaduje se při použití přihlašovacích údajů služby.

Další informace o Pub/Sub naleznete v tématu Přihlášení k odběru Google Pub/Sub.

Pulsar

Pomocí těchto možností spark.readStream.format("pulsar") můžete streamovat z Apache Pulsearu. K dispozici ve službě Databricks Runtime 14.1 a novějších.

Vyžadují se následující možnosti. Musíte zadat přesně jeden z topic, topicsnebo topicsPattern.

Key Výchozí Platné hodnoty Description
service.url None Řetězec adresy URL služby Pulsear Pulsar serviceURL pro službu Pulsear, například pulsar://broker.example.com:6650.
topic None Libovolný řetězec Název jednoho tématu, který se má použít.
topics None Čárkami oddělený seznam názvů témat Seznam názvů témat oddělených čárkami, které se mají použít.
topicsPattern None Řetězec regulárního výrazu Java Řetězec Java regulárního výrazu, který odpovídá názvům témat.

Podporují se také následující možnosti:

Key Výchozí Platné hodnoty Description
admin.url None Řetězec adresy URL Adresa URL HTTP služby Pulsar admin. Vyžaduje se při maxBytesPerTrigger nastavení.
allowDifferentTopicSchemas false true, false Pokud je přečteno více témat s různými schématy, pomocí této možnosti vypněte automatickou deserializaci hodnot témat založených na schématu. Pouze nezpracované hodnoty jsou vráceny, pokud je to true.
failOnDataLoss true true, false Zda se dotaz nezdaří, když dojde ke ztrátě dat. Ke ztrátě dat může dojít například v případě, že dojde k odstranění témat nebo vypršení platnosti zpráv kvůli zásadám uchovávání informací.
maxBytesPerTrigger None Kladná celá čísla Měkký limit počtu bajtů, které se mají zpracovat na mikrodávku. Vyžaduje admin.url.
pollTimeoutMs 120000 Kladná celá čísla Časový limit pro čtení zpráv z Pulsaru v milisekundách.
predefinedSubscription None Libovolný řetězec Předdefinovaný název předplatného používaný konektorem ke sledování průběhu aplikace Spark.
startingOffsets latest latest, earliestnebo řetězec posunu JSON Kde začít číst.
subscriptionPrefix None Libovolný řetězec Předpona používaná konektorem k vygenerování náhodného předplatného ke sledování průběhu aplikace Spark.
waitingForNonExistedTopic false true, false Určuje, jestli konektor čeká na vytvoření požadovaných témat.

Pomocí následujících vzorů možností můžete zadat další konfigurace klienta Pulsear, správce a čtenáře:

Vzor Možnosti konfigurace
pulsar.admin.* Konfigurace správce Pulsar
pulsar.client.* Konfigurace pulsárního klienta, včetně možností ověřování, jako pulsar.client.authPluginClassName jsou a pulsar.client.authParams.
pulsar.reader.* Konfigurace pulsární čtečky

Další informace o možnostech ověřování klienta Pulsear a správce naleznete v tématu Ověřování.

Autentizace

Azure Databricks podporuje ověřování pomocí truststore a keystore pro Pulsar. Azure Databricks doporučuje používat tajné kódy k ukládání podrobností o ověřování. Viz správa tajemství.

Key Výchozí Platné hodnoty Description
pulsar.client.authPluginClassName None Plně kvalifikovaný název třídy Plně kvalifikovaný název třídy ověřovacího modulu plug-in. Například: org.apache.pulsar.client.impl.auth.AuthenticationTls.
pulsar.client.authParams None Řetězec přihlašovacích údajů Ověřovací přihlašovací údaje předávané ověřovacímu modulu plug-in jako řetězec. Například: tlsCertFile:/path/to/my-role.cert.pem,tlsKeyFile:/path/to/my-role.key-pk8.pem.
pulsar.client.useKeyStoreTls false true, false Když truepovolíte konfiguraci protokolu TLS založenou na úložišti klíčů místo souborů ve formátu PEM.
pulsar.client.tlsTrustStoreType None Libovolný řetězec Formát souboru úložiště důvěryhodnosti PROTOKOLU TLS. Například: JKS.
pulsar.client.tlsTrustStorePath None Řetězec cesty k souboru Cesta k souboru úložiště důvěryhodnosti PROTOKOLU TLS obsahujícího certifikáty důvěryhodné certifikační autority. Vyžaduje se, pokud pulsar.client.useKeyStoreTls je true.
pulsar.client.tlsTrustStorePassword None Libovolný řetězec Heslo pro soubor úložiště důvěryhodnosti PROTOKOLU TLS.

Pokud datový proud používá PulsarAdmin, můžete také nastavit následující možnosti:

Key Výchozí Platné hodnoty Description
pulsar.admin.authPluginClassName None Plně kvalifikovaný název třídy Plně kvalifikovaný název třídy ověřovacího modulu plug-in pro klienta správce Pulsear.
pulsar.admin.authParams None Řetězec přihlašovacích údajů Přihlašovací údaje pro ověřování klienta Pulsear admin.
pulsar.admin.useTls None true, false Určuje, jestli se má protokol TLS používat pro připojení klienta správce Pulsear.
pulsar.admin.tlsAllowInsecureConnection None true, false Určuje, jestli chcete povolit nezabezpečená připojení TLS pro klienta správce Pulsear.
pulsar.admin.tlsTrustCertsFilePath None Řetězec cesty k souboru Cesta k důvěryhodnému souboru certifikátu TLS pro klienta správce Pulsear.
pulsar.admin.useKeyStoreTls None true, false Určuje, jestli se má pro klienta pro správu Pulsear používat protokol TLS založený na úložišti klíčů.
pulsar.admin.tlsTrustStoreType None Libovolný řetězec Formát úložiště důvěryhodnosti protokolu TLS pro klienta správce Pulsear. Například: JKS.
pulsar.admin.tlsTrustStorePath None Řetězec cesty k souboru Cesta k souboru úložiště důvěryhodnosti protokolu TLS pro klienta správce Pulsear. Vyžaduje se, pokud pulsar.admin.useKeyStoreTls je true.
pulsar.admin.tlsTrustStorePassword None Libovolný řetězec Heslo pro úložiště důvěryhodnosti TLS klienta správce Pulsear.

Příklady ověřování najdete v tématu Ověření ve službě Pulsear.

Možnosti DataFrameWriter

Tyto možnosti můžete použít s DataFrameWriter.option() a DataFrameWriterV2.option() určit, jak Azure Databricks zapisuje data.

Příklad

Následující příklad nastaví mergeSchema pro True zápis tabulky Delta Lake:

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

Avro

Při psaní souborů Avro platí následující možnosti.

Key Výchozí Platné hodnoty Description
avroSchema None Řetězec schématu JSON Úplné schéma Avro jako řetězec JSON. Tuto možnost použijte k převodu typů Spark SQL na konkrétní typy Avro. Platí pro čtení a zápis souborů Avro.
avroSchemaUrl None Řetězec adresy URL Adresa URL odkazující na soubor schématu Avro. avroSchema Místo toho, když je schéma uloženo externě. Vzájemně se vylučuje s avroSchema. Platí pro čtení a zápis souborů Avro.
compression snappy uncompressed, deflate, snappy (default), bzip2, , xzzstandard Komprimační kodek, který se má použít při psaní. Platí pro čtení a zápis souborů Avro.
recordName topLevelRecord Libovolný řetězec Název záznamu nejvyšší úrovně ve výstupním schématu Avro. Platí pro čtení a zápis souborů Avro.
positionalFieldMatching false true, false Určuje, jestli se mají shodovat sloupce mezi schématem Sparku a schématem Avro podle pozice pole místo podle názvu. Platí pro čtení a zápis souborů Avro.
recordNamespace Prázdný řetězec Libovolný řetězec Obor názvů záznamu nejvyšší úrovně ve výstupním schématu Avro. Platí pro čtení a zápis souborů Avro.

Delta Lake a Apache Iceberg

Při psaní tabulek Delta Lake a Apache Iceberg platí následující možnosti.

Key Výchozí Platné hodnoty Description
clusterByAuto false true, false Určuje, jestli chcete povolit automatické shlukování kapalin, kde Azure Databricks vybere sloupce clusteringu na základě vzorů dotazů. Platné pouze s mode("overwrite"). Nelze použít s režimem append . K dispozici ve službě Databricks Runtime 16.4 a novějších. Platí pro použití shlukování kapalin pro tabulky.
mergeSchema None true, false Zda povolit vývoj schématu pro operaci zápisu. Do schématu cílové tabulky se přidají nové sloupce ve zdrojovém datovém rámci. Platí pro dávkové a streamované připojení. Platí pro aktualizaci schémat tabulek s vývojem schémat.
overwriteSchema None true, false Určuje, jestli se má při přepsání nahradit schéma tabulky a dělení. Vyžaduje mode("overwrite") bez replaceWhere. Nelze použít s partitionOverwriteMode. Platí pro aktualizaci schémat tabulek s vývojem schémat.
partitionOverwriteMode None static, dynamic Režim přepsání oddílu. Nastavte na to, aby dynamic se přepsaly jenom oddíly obsahující nová data a všechny ostatní oddíly zůstaly beze změny. Starší verze režimu, který není podporován v bezserverových výpočetních prostředcích ani v Databricks SQL. Platí pro selektivní přepsání dat pomocí Delta Lake.
replaceOn None Logický řetězec výrazu Logický výraz, který odpovídá řádkům v cílové tabulce, který nahradí řádky ze zdrojového dotazu. Může odkazovat na sloupce z cílové tabulky i zdrojového dotazu. Řádky v cíli, které odpovídají zdrojovému řádku, se odstraní a nahradí. Pokud je zdroj prázdný, nedojde k žádnému odstranění. Slouží targetAlias k nejednoznačnosti odkazů na sloupce. K dispozici ve službě Databricks Runtime 17.1 a novějších. Platí pro selektivní přepsání dat pomocí Delta Lake.
replaceUsing None Čárkami oddělený seznam názvů sloupců Čárkami oddělený seznam názvů sloupců, které se používají ke shodě řádků mezi cílovou tabulkou a zdrojovým dotazem. Cíl i zdroj musí obsahovat všechny uvedené sloupce. Řádky v cíli, které odpovídají zdrojovému řádku v porovnání rovnosti, se odstraní a nahradí. NULL hodnoty se považují za nerovnané a nebudou se shodovat. K dispozici ve službě Databricks Runtime 16.3 a novějších. Platí pro selektivní přepsání dat pomocí Delta Lake.
replaceWhere None Řetězec predikátu výrazu Predikát výraz. Atomicky přepíše pouze záznamy, které odpovídají predikátu. Platí pro selektivní přepsání dat pomocí Delta Lake.
targetAlias None Libovolný řetězec Alias řetězce pro cílovou tabulku. replaceOn replaceWhere Pokud podmínka odkazuje na sloupce z cílové tabulky i zdrojového dotazu, použijte s odkazy na sloupce sloupců sloupců nebo je můžete použít s odkazy na sloupce sloupců. Platí pro selektivní přepsání dat pomocí Delta Lake.
txnAppId None Libovolný řetězec Jedinečný řetězec identifikující aplikaci pro idempotentní zápisy v foreachBatch operacích. Spolu s txnVersion ním můžete zajistit přesně jednou zápisy do několika tabulek Delta Lake. Platí pro použití foreachBatch pro zápisy z idempotentní tabulky.
txnVersion None Monotonicky se zvyšující celé číslo Monotonicky rostoucí číslo používané jako verze transakce pro idempotentní zápisy v foreachBatch operacích. Spolu s txnAppId ním můžete zajistit přesně jednou zápisy do několika tabulek Delta Lake. Platí pro použití foreachBatch pro zápisy z idempotentní tabulky.
optimizeWrite None true, false Zda povolit automatické optimalizace zápisu pro tuto operaci zápisu. spark.databricks.delta.optimizeWrite.enabled Přepíše konfiguraci. Platí pro Co je Delta Lake v Azure Databricks?.
userMetadata None Libovolný řetězec Uživatelem definovaný řetězec připojený k metadatům potvrzení operace zápisu. Viditelné ve výstupu funkce DESCRIBE HISTORY. Platí pro obohacení tabulek s vlastními metadaty.

CSV

Při psaní souborů CSV platí následující možnosti.

Key Výchozí Platné hodnoty Description
charToEscapeQuoteEscaping \0 (není povoleno) Jeden znak Znak použitý k řídicímu znaku, když se liší od znaku uvozovek. Platí pro csv (DataFrameWriter).
compression none none (default), bzip2, gzip, lz4, snappy, , deflatezstd Komprimační kodek, který se má použít při psaní. Platí pro csv (DataFrameWriter).
dateFormat yyyy-MM-dd Řetězec formátu data Formátovací řetězec pro hodnoty sloupce kalendářních dat Platí pro csv (DataFrameWriter).
emptyValue Prázdný řetězec Libovolný řetězec Řetězec napsaný pro prázdné (nenulové) hodnoty. Platí pro csv (DataFrameWriter).
encoding UTF-8 Název java.nio.charset.Charset Kódování znaků pro výstupní soubory. Platí pro csv (DataFrameWriter).
escape \ Jeden znak Znak použitý k řídicím hodnotám v uvozových hodnotách. Platí pro csv (DataFrameWriter).
escapeQuotes true true, false Určuje, zda se mají řídicí znaky uvozovek v hodnotách uvozovek v uvozovkách. Platí pro csv (DataFrameWriter).
header false true, false Určuje, jestli se názvy sloupců zapisuje jako první řádek výstupu. Platí pro csv (DataFrameWriter).
ignoreLeadingWhiteSpace false true, false Určuje, zda při psaní oříznout počáteční prázdné znaky z hodnot. Platí pro csv (DataFrameWriter).
ignoreTrailingWhiteSpace false true, false Určuje, zda při psaní oříznout koncové prázdné znaky z hodnot. Platí pro csv (DataFrameWriter).
lineSep \n Řetězec Řetězec oddělovače řádků použitý mezi záznamy. Platí pro csv (DataFrameWriter).
locale en-US Identifikátor java.util.Locale Identifikátor java.util.Locale . Zjistili jsme Java národní prostředí, které má vliv na výchozí datum, časové razítko a parsování desetinných míst v rámci sdíleného svazku clusteru.
nullValue Prázdný řetězec Libovolný řetězec Řetězec napsaný pro hodnoty null. Platí pro csv (DataFrameWriter).
quote " Jeden znak Znak použitý k uvozovce hodnot polí, které obsahují oddělovač. Platí pro csv (DataFrameWriter).
quoteAll false true, false Zda uzavřít všechny hodnoty polí do uvozovek bez ohledu na obsah. Platí pro csv (DataFrameWriter).
sep , Řetězec Znak oddělovače polí. Platí pro csv (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Řetězec formátu časového razítka Formátovací řetězec pro hodnoty sloupců časového razítka. Platí pro csv (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Řetězec formátu časového razítka Formátovat řetězec pro časové razítko bez hodnot sloupců časového pásma (TimestampNTZType).

Excel

Při psaní Excel souborů platí následující možnosti.

Key Výchozí Platné hodnoty Description
dataAddress None Název listu nebo referenční řetězec buňky Název listu nebo počáteční buňka pro zápis Pokud tento argument vynecháte, zapíše se na list s názvem Sheet1 začínajícím na buňku A1. Přijímá název listu (SheetName) nebo jeden odkaz na buňku (SheetName!A1). Oblasti buněk nejsou podporovány pro zápisy.
dateFormatInWrite yyyy-mm-dd Řetězec formátu data Excel Excel řetězec formátu buňky použitý u sloupců Date. Používá syntaxi formátu Excel.
headerRows 0 0, 1 Určuje, jestli chcete napsat názvy sloupců jako první řádek.
timestampNTZFormat yyyy-mm-dd hh:mm:ss Řetězec formátu časového razítka Excel Excel řetězec formátu buňky použitý u sloupců TimestampNTZ a Timestamp. Používá syntaxi formátu Excel.
version xlsx xlsx, xls Verze formátu Excel souboru, která se má zapisovat.

JSON

Při psaní souborů JSON platí následující možnosti.

Key Výchozí Platné hodnoty Description
compression none none, bzip2, gzip, lz4, snappy, , deflatezstd Komprimační kodek, který se má použít při psaní. Platí pro json (DataFrameWriter).
dateFormat yyyy-MM-dd Řetězec formátu data Formátovací řetězec pro hodnoty sloupce kalendářních dat Platí pro json (DataFrameWriter).
encoding UTF-8 Název java.nio.charset.Charset Kódování znaků pro výstupní soubory. Platí pro json (DataFrameWriter).
ignoreNullFields hodnota spark.sql.jsonGenerator.ignoreNullFields true, false Zda se mají vynechat pole s hodnotami null z výstupu JSON. Platí pro json (DataFrameWriter).
lineSep \n Řetězec Řetězec oddělovače řádků použitý mezi záznamy. Platí pro json (DataFrameWriter).
locale en-US Identifikátor java.util.Locale Identifikátor národního prostředí Java, který má vliv na výchozí datum, časové razítko a parsování desetinných míst ve formátu JSON.
pretty false true, false Určuje, jestli chcete povolit výstup JSON s hezkým (odsazeným, víceřádkovým) kódem JSON.
sortKeys false true, false Určuje, jestli se mají klíče objektů JSON řadit abecedně ve výstupu. Užitečné při vytváření deterministického výstupu.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Řetězec formátu časového razítka Formátovací řetězec pro hodnoty sloupců časového razítka. Platí pro json (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Řetězec formátu časového razítka Formátovat řetězec pro časové razítko bez hodnot sloupců časového pásma (TimestampNTZType).
writeNonAsciiCharacterAsCodePoint false true, false Určuje, zda se mají znaky jiné než ASCII kódovat jako \uXXXX řídicí sekvence Unicode místo literálů UTF-8 znaků ve výstupu.

ORC

Při psaní souborů ORC platí následující možnosti.

Key Výchozí Platné hodnoty Description
compression zstd none, uncompressed, snappy, , zliblzo, zstd, , lz4brotli Komprimační kodek, který se má použít při psaní. Platí pro orc (DataFrameWriter).

Parketové

Při psaní souborů Parquet platí následující možnosti.

Key Výchozí Platné hodnoty Description
compression snappy none, uncompressed, , snappygziplzobrotlilz4, , lz4_rawzstd Komprimační kodek, který se má použít při psaní. Platí pro parquet (DataFrameWriter).
spark.sql.parquet.outputTimestampType INT96 INT96, , TIMESTAMP_MICROSTIMESTAMP_MILLIS Fyzický typ použitý ke kódování sloupců časového razítka. Používá se INT96 pro kompatibilitu se staršími čtečkami Parquet, které nepodporují standardní typy časových razítek.

Text

Při psaní textových souborů platí následující možnosti.

Key Výchozí Platné hodnoty Description
compression none none, bzip2, gzip, lz4, snappy, , deflatezstd Komprimační kodek, který se má použít při psaní. Platí pro text (DataFrameWriter).
encoding UTF-8 Název java.nio.charset.Charset Kódování znaků pro výstupní soubory.
lineSep \n Řetězec Řetězec oddělovače řádků použitý mezi záznamy. Platí pro text (DataFrameWriter).

XML

Při zápisu souborů XML platí následující možnosti.

Key Výchozí Platné hodnoty Description
arrayElementName item Libovolný řetězec Název elementu pro prvky pole, které nemají explicitní název. Platí pro xml (DataFrameWriter).
attributePrefix _ Libovolný řetězec Předpona je předpona názvů polí, které odpovídají atributům XML. Platí pro xml (DataFrameWriter).
compression none none, bzip2, gzip, lz4, snappy, , deflatezstd Komprimační kodek, který se má použít při psaní. Platí pro xml (DataFrameWriter).
dateFormat yyyy-MM-dd Řetězec formátu data Formátovací řetězec pro hodnoty sloupce kalendářních dat Platí pro xml (DataFrameWriter).
declaration version="1.0" encoding="UTF-8" standalone="yes" Řetězec deklarace XML nebo prázdný řetězec pro potlačení Řetězec deklarace XML napsaný v horní části každého výstupního souboru. Nastavte na prázdný řetězec, který potlačí deklaraci. Platí pro xml (DataFrameWriter).
encoding UTF-8 Název java.nio.charset.Charset Kódování znaků pro výstupní soubory. Platí pro xml (DataFrameWriter).
indent 4 mezery Libovolný řetězec Řetězec použitý k odsazení podřízených prvků ve výstupu. Nastavte na prázdný řetězec, který vypne odsazení a zapíše každý řádek na jeden řádek.
locale en-US Identifikátor java.util.Locale Identifikátor národního prostředí Java, který má vliv na výchozí datum, časové razítko a formátování desetinných míst v rámci XML.
nullValue null Libovolný řetězec Řetězec napsaný pro hodnoty null. Při nastavení na nullhodnotu , atributy a podřízené elementy pro pole null jsou vynechány. Platí pro xml (DataFrameWriter).
rootTag ROWS Libovolný řetězec Značka kořenového elementu, která zabalí všechny prvky řádku ve výstupu. Platí pro xml (DataFrameWriter).
rowTag ROW Libovolný řetězec Značka elementu, která představuje řádek ve výstupu. Platí pro xml (DataFrameWriter).
singleVariantColumn None Řetězec názvu sloupce Název jednoho sloupce Variant pro zápis do souborů XML. Platí pro xml (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Řetězec formátu časového razítka Formátovací řetězec pro hodnoty sloupců časového razítka. Platí pro xml (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Řetězec formátu časového razítka Formátovat řetězec pro časové razítko bez hodnot sloupců časového pásma. Platí pro xml (DataFrameWriter).
validateName true true, false Zda vyvolat výjimku, pokud název sloupce není platný identifikátor elementu XML. Platí pro xml (DataFrameWriter).
valueTag _VALUE Libovolný řetězec Název pole použitý pro znaková data v elementech XML, které mají také atributy nebo podřízené prvky. Platí pro xml (DataFrameWriter).

Možnosti DataStreamWriter

Pomocí těchto možností DataStreamWriter.option() můžete nakonfigurovat zápisy streamování.

Příklad

Následující příklad nastaví umístění kontrolního bodu pro datový proud:

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")

Společné

Následující možnosti platí pro všechny operace zápisu streamování.

Key Výchozí Platné hodnoty Description
checkpointLocation Žádné (povinné) Řetězec cesty Cesta k adresáři kontrolního bodu pro dotaz streamování. Vyžadováno pro odolnost proti chybám a záruky zpracování přesně jednou. Každý dotaz streamování musí používat jedinečné umístění kontrolního bodu. Databricks doporučuje ukládat kontrolní body do svazku katalogu Unity nebo cesty cloudového úložiště. Viz kontrolní body strukturovaného streamování.
path None Řetězec cesty Výstupní cesta pro jímky streamování založené na souborech, jako je Parquet. Platí jenom pro formáty založené na souborech.

Jímka konzoly

Při zápisu datových proudů do jímky konzoly platí následující možnosti.

Key Výchozí Platné hodnoty Description
numRows 20 Kladná celá čísla Počet řádků, které se mají zobrazit pro každou mikrodávku při zápisu do jímky konzoly.
truncate true true, false Zda chcete zkrátit dlouhé řetězce při zobrazení řádků. Nastavte na zobrazení false úplných řetězcových hodnot.

Delta Lake

Následující možnosti platí při zápisu datového proudu do tabulky Delta Lake pomocí format("delta"). Možnosti přepsání, jako overwriteSchemaje například , replaceWherea partitionOverwriteMode nejsou podporovány pro zápisy streamování.

Key Výchozí Platné hodnoty Description
mergeSchema false true, false Zda se má vývoj schématu tabulky Delta Lake při streamování datového rámce obsahovat nové sloupce. Platí jenom pro režim připojení výstupu. Platí pro aktualizaci schémat tabulek s vývojem schémat.
userMetadata None Libovolný řetězec Uživatelem definovaný řetězec připojený k metadatům potvrzení operace zápisu. Viditelné ve výstupu funkce DESCRIBE HISTORY. Platí pro obohacení tabulek s vlastními metadaty.

Jímka souboru

Následující možnost platí pro zápis datového proudu do formátů založených na souborech (Parquet, JSON, CSV, ORC, text). Informace o možnostech specifických pro formát naleznete v tématu Možnosti Prvku DataFrameWriter.

Key Výchozí Platné hodnoty Description
retention None Časový řetězec, například 7 days nebo 24 hours Jak dlouho se mají uchovávat soubory metadat jímky používané pro odolnost proti chybám a komprimace. Pokud nenastavíte, soubory metadat se zachovají na neomezenou dobu.

Jímka Kafka

Při zápisu do Systému Kafka platí následující možnosti.

Key Výchozí Platné hodnoty Description
kafka.bootstrap.servers None Čárkami oddělený seznam host:port řetězců Required. Čárkami oddělený seznam adres zprostředkovatele host:port Kafka.
topic None Libovolný řetězec Cílové téma Kafka pro všechny řádky. Vyžaduje se, pokud datový rámec neobsahuje topic sloupec.
kafka.* None Jakákoli hodnota konfigurace producenta Kafka Jakákoli konfigurace producenta Kafka s předponou kafka.. Například: kafka.compression.type.

Jímka paměti

Při zápisu datových proudů do jímky paměti platí následující možnosti.

Key Výchozí Platné hodnoty Description
queryName Žádné (povinné) Libovolný řetězec Název tabulky v paměti, do které dotaz zapisuje. Vyžaduje se pro jímku paměti. Je také možné konfigurovat prostřednictvím .queryName().
mode exactlyonce exactlyonce, atleastonce Záruka doručení pro jímku paměti. exactlyonce používá mikrodávkové režimy s přesně jednou sémantikou. atleastonce používá nepřetržitý režim s alespoň jednou sémantikou.

Možnosti funkce Sparku

Některé integrované funkce Spark SQL přijímají options mapu, která řídí chování analýzy nebo serializace. Předejte možnosti jako Python dict nebo Scala Map[String, String].

Příklad

Následující příklad parsuje sloupec JSON při odstraňování poškozených záznamů:

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

Funkce Avro přijímají stejné možnosti jako odpovídající možnosti datového rámce:

Příklad

Následující příklad dekóduje sloupec Avro s povoleným vývojem schématu:

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")))

Kromě toho varianty registru schématu a from_avroto_avro přijímají následující možnosti:

Key Výchozí Platné hodnoty Description
schemaId None Celé číslo ID schématu ID schématu z registru schématu Confluent k použití při dekódování dat Avro, která byla kódována schématem nekompatibilním se schématem jsonFormatSchema. Platí jenom pro from_avro .
confluent.schema.registry.* None Libovolná hodnota vlastnosti klienta Confluent SR Vlastnosti konfigurace klienta Confluent Schema Registry Pomocí této předpony předejte libovolnou vlastnost klienta Confluent SR, například confluent.schema.registry.basic.auth.user.info pro základní přihlašovací údaje pro ověřování. Požadováno pro varianty registru schématu from_avro a to_avro.

CSV

Funkce CSV přijímají stejné možnosti jako odpovídající možnosti datového rámce:

Příklad

Následující příklad načte CSV s vlastním oddělovačem a NULL hodnotou:

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

Funkce JSON přijímají stejné možnosti jako odpovídající možnosti datového rámce:

Příklad

Následující příklad zapíše JSON s NULL poli ignorovanými a poměrně povoleným formátováním:

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 a to_protobuf nepoužívejte souborový zdroj dat. Data Protobuf se vždy čtou a zapisují jako binární sloupce pomocí těchto funkcí. Možnosti se předávají jako Map[String, String] malá a velká písmena.

Příklad

Následující příklad dekóduje sloupec Protobuf pomocí režimu PERMISSIVE:

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")))

Funkce Protobuf používají následující možnosti:

Key Výchozí Platné hodnoty Description
mode FAILFAST FAILFAST, PERMISSIVE Zpracování poškozených záznamů FAILFAST zahodí výjimku. PERMISSIVE nastaví chybně formátovaná pole na hodnotu null. Platí pro from_protobuf.
recursive.fields.max.depth -1 (zakázáno) 0 na 10 Maximální hloubka rekurze pro rekurzivní pole Protobuf. Nastavte, aby 0 se vypnula podpora rekurzivních polí. Platí pro from_protobuf.
convert.any.fields.to.json false true, false Zda chcete převést pole Protobuf Any na řetězec JSON namísto STRUCT. Platí pro from_protobuf.
emit.default.values false true, false Určuje, jestli se mají generovat pole s nulovými nebo výchozími hodnotami (sémantika proto3). Pokud falsese ve výstupu vynechá pole s výchozími hodnotami. Platí pro from_protobuf.
enums.as.ints false true, false Zda se mají vykreslovat pole výčtu jako celočíselné hodnoty místo řetězců. Platí pro from_protobuf.
upcast.unsigned.ints false true, false Zda se má převést na uint32 přetečení Long a uint64Decimal(20,0) zabránit přetečení celého čísla. Platí pro from_protobuf.
unwrap.primitive.wrapper.types false true, false Určuje, google.protobuf jestli se mají rozbalit Int32Value typy obálky (například aStringValue) do odpovídajících primitivních typů Sparku. Platí pro from_protobuf.
retain.empty.message.types false true, false Zda zachovat prázdné typy zpráv Protobuf ve výstupním schématu vložením fiktivního sloupce. Platí pro from_protobuf.
schema.registry.subject None Libovolný řetězec Název subjektu registru schématu Požadováno při použití variant registru schématu from_protobuf a to_protobuf.
schema.registry.address None Řetězec host:port Adresa registru schématu (hostitel a port). Požadováno při použití variant registru schématu from_protobuf a to_protobuf.
schema.registry.protobuf.name None Libovolný řetězec Určuje, kterou zprávu Protobuf použít, když předmět registru schématu obsahuje více zpráv. Optional.
schema.registry.schema.evolution.mode "restart" "restart", "none" Způsob zpracování změn schématu při zjištění novějšího ID schématu v příchozím záznamu "restart" ukončí dotaz pomocí UnknownFieldExceptionpříkazu ; nakonfiguruje úlohy, které se mají restartovat při selhání vyzvednutí změn. "none" ignoruje změny id schématu a parsuje novější záznamy s původním schématem.
confluent.schema.registry.<option> Jakákoli platná hodnota možnosti klienta Confluent Schema Registry Předejte jakoukoli možnost klienta Confluent Schema Registry pomocí předpony "confluent.schema.registry". Můžete například nastavit "confluent.schema.registry.basic.auth.credentials.source""USER_INFO" a "confluent.schema.registry.basic.auth.user.info""<KEY>:<SECRET>" nakonfigurovat základní ověřování.

XML

Funkce XML přijímají stejné možnosti jako odpovídající možnosti datového rámce:

Příklad

Následující příklad zapíše XML s vlastní kořenovou a řádkovou značkou:

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")))