Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 ]
|
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í:
|
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í:
|
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
|
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:
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í:
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.csvUrč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ů.
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:
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:
-
from_avroaschema_of_avropoužijte možnosti třídy DataFrameReader Avro. -
to_avropoužívá možnosti DataFrameWriter Avro.
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:
-
from_csvaschema_of_csvpoužijte možnosti CSV třídy DataFrameReader. -
to_csvpoužívá možnosti souboru CSV dataFrameWriter.
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:
-
from_jsonaschema_of_jsonpoužijte možnosti JSON třídy DataFrameReader. -
to_jsonpoužívá možnosti JSON objektu DataFrameWriter.
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:
-
from_xmlaschema_of_xmlpoužijte možnosti XML třídy DataFrameReader. -
to_xmlpoužívá možnosti XML objektu DataFrameWriter.
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")))