Referens för Alternativ för Spark API

På den här sidan visas tillgängliga indata- och utdataalternativ för Spark-API:er som läser och skriver data.

DataFrameReader-alternativ

Använd de här alternativen med DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO och Auto Loader för att styra hur Azure Databricks läser datafiler.

Example

I följande exempel anges multiLine till True för läsning av JSON-filer:

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)

Gemensamma

Följande alternativ gäller för alla filformat.

Key Standardinställning Beskrivning
ignoreCorruptFiles false Om du vill ignorera skadade filer. Om det är sant fortsätter Spark-jobben att köras när skadade filer påträffas och innehållet som har lästs returneras fortfarande. För COPY INTOkan du se överhoppade skadade filer som numSkippedCorruptFiles i kolumnen i operationMetrics Delta Lake-historiken. Finns i Databricks Runtime 11.3 LTS och senare.
ignoreMissingFiles false för Auto Loader, true för COPY INTO (äldre) Om du vill ignorera filer som saknas. Om det är sant fortsätter Spark-jobben att köras när filer saknas och innehållet returneras fortfarande. Finns i Databricks Runtime 11.3 LTS och senare.
modifiedAfter None En valfri tidsstämpel som ett filter för att endast mata in filer som har en tidsstämpel för ändring efter den angivna tidsstämpeln.
modifiedBefore None En valfri tidsstämpel som ett filter för att endast mata in filer som har en ändringstidsstämpel före den angivna tidsstämpeln.
pathGlobFilter eller fileNamePattern None Ett potentiellt globmönster för att välja filer. PATTERN Motsvarar i COPY INTO (äldre). fileNamePattern kan användas i read_files.
recursiveFileLookup false När truesöker det här alternativet igenom kapslade kataloger även om deras namn inte följer ett namngivningsschema för partitioner som date=2019-07-01.

Avro

Key Standardinställning Beskrivning
avroSchema None Valfritt schema som tillhandahålls av en användare i Avro-format. När du läser Avro kan det här alternativet ställas in på ett utvecklat schema som är kompatibelt men som skiljer sig från det faktiska Avro-schemat. Deserialiseringsschemat överensstämmer med det utvecklade schemat. Om du till exempel anger ett utvecklat schema som innehåller ytterligare en kolumn med ett standardvärde innehåller läsresultatet även den nya kolumnen.
avroSchemaEvolutionMode none Hantera schemautveckling när du använder ett schemaregister. Giltiga värden: none (ignorera schemaändringar och fortsätt jobbet), restart (när schemaändringar identifieras, genererar en UnknownFieldException och kräver en omstart av jobbet).
datetimeRebaseMode LEGACY Styr ombaseringen av DATE- och TIMESTAMP-värdena mellan julianska och proleptiska gregorianska kalendrar. Giltiga värden: EXCEPTION, LEGACYoch CORRECTED.
enableStableIdentifiersForUnionType false Om du vill använda stabila fältnamn för Avro Union-typer. När det är aktiverat härleds fältnamn för unionstyp från deras typnamn i gemener (till exempel member_int, member_string). Utlöser ett undantag om två typnamn är identiska efter nedsänkning.
mergeSchema false Om schemat ska härledas mellan flera filer och om schemat för varje fil ska sammanfogas. mergeSchema för Avro lättar inte på kraven för datatyper.
mode FAILFAST Parsningsläge för hantering av skadade poster. Giltiga värden: FAILFAST (utlöser ett undantag), PERMISSIVE (anger felaktiga fält till null) DROPMALFORMED (släpper ogiltiga poster i tysthet).
readerCaseSensitive true Anger hur skiftlägeskänslighet hanteras när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. När det är falskt läser du data på ett skiftlägesokänsligt sätt.
recursiveFieldMaxDepth None Det maximala rekursionsdjupet för rekursiva Avro-fält. Ange till för 1 att trunkera alla rekursiva fält för 2 att tillåta en rekursionsnivå och så vidare upp till 15. När oet eller 0, tillåts inte rekursiva fält. Giltiga värden: 0 till 15.
rescuedDataColumn None Huruvida man ska samla in all data som inte kan parsas på grund av datatypbortfall och schemafel (inklusive kolumnens hölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
Mer information finns i Vad är den räddade datakolumnen?.
stableIdentifierPrefixForUnionType member_ Prefixet som ska användas för stabila fältnamn av uniontyp när enableStableIdentifiersForUnionType=true.

CSV

Key Standardinställning Beskrivning
badRecordsPath None Sökvägen för att lagra filer för registrering av information om felaktiga CSV-poster.
charToEscapeQuoteEscaping \0 Tecknet som används för att undkomma det tecken som används för att undvika citattecken. Till exempel för följande post: [ " a\\", b ]
  • Om tecknet som ska undkomma '\' är odefinierat parsas inte posten. Parsern läser tecken: [a],[\],["],[,],[ ],[b] och utlöser ett fel eftersom det inte kan hitta ett avslutande citattecken.
  • Om tecknet för att undkomma '\' definieras som '\', kommer posten att läsas med 2 värden: [a\] och [b].
columnNameOfCorruptRecord _corrupt_record Stöd finns för Auto Loader. Stöds inte för COPY INTO (äldre).
Kolumnen för lagring av dataposter som är felaktiga och inte kan parsas. Om mode för parsning anges som DROPMALFORMED, kommer den här kolumnen att vara tom.
comment \0 Definierar det tecken som representerar en radkommentar när det hittas i början av en textrad. Använd '\0' för att inaktivera överhoppning av kommentarer.
dateFormat yyyy-MM-dd Formatet för parsning av datumsträngar.
emptyValue Tom sträng Strängrepresentation av ett tomt värde.
enableDateTimeParsingFallback false Om du vill återgå till det äldre datum- och tidsstämpelparseringsbeteendet när ett värde inte kan parsas med det angivna formatet. När falseskapar parsningsfel ett fel eller skapar null beroende på mode.
encoding eller charset UTF-8 Namnet på kodningen av CSV-filerna. Se java.nio.charset.Charset listan med alternativ. UTF-16 och UTF-32 kan inte användas när multiline är true.
enforceSchema true Huruvida man ska tvinga fram tillämpningen av det angivna eller härledda schemat på CSV-filerna. Om alternativet är aktiverat ignoreras rubrikerna för CSV-filer. Det här alternativet ignoreras som standard när du använder Auto Loader för att rädda data och tillåta schemautveckling.
escape \ Escape-tecknet som ska användas vid parsning av data.
extension csv Det förväntade filnamnstillägget. Filer utan det här tillägget filtreras bort under läsningar.
failOnUnknownFields false Om csv-posten ska misslyckas innehåller kolumner som inte finns i schemat. När false, tas okända kolumner tyst bort eller räddas beroende på rescuedDataColumn.
failOnWidenedFields false Om du vill misslyckas när ett fältvärde inte kan parsas som den deklarerade schematypen utan breddning. När false, räddas typbreddade värden tyst beroende på rescuedDataColumn. Inställningen failOnUnknownFields=true kan maskera effekterna av det här alternativet.
header false Om CSV-filerna innehåller ett huvud. Auto Loader förutsätter att filer har rubriker när schemat härleds.
ignoreLeadingWhiteSpace false Om du vill ignorera inledande blanksteg för varje parsat värde.
ignoreTrailingWhiteSpace false Huruvida avslutande blanksteg ska ignoreras för varje analyserat värde.
inferSchema false Om du vill härleda datatyperna för de parsade CSV-posterna eller anta att alla kolumner är av StringType. Kräver en ytterligare genomgång av data om det är inställt på true. Använd i stället cloudFiles.inferColumnTypes för Auto Loader.
inputBufferSize 1048576 (1 MB) Buffertstorleken i byte för CSV-parsern. Användbart för att justera minnesanvändningen vid parsning av stora CSV-filer. Giltiga värden: positiva heltal.
lineSep Ingen, som omfattar \r, \r\noch \n En sträng mellan två CSV-poster i följd.
locale US En java.util.Locale identifikator. Påverkar standarddatum, tidsstämpel och decimalparsning i CSV.
maxCharsPerColumn -1 Maximalt antal tecken som förväntas från ett värde att parsa. Kan användas för att undvika minnesfel. Standardvärdet är -1, vilket innebär obegränsat. Giltiga värden: positiva heltal eller -1 obegränsat.
maxColumns 20480 Den hårda begränsningen för hur många kolumner en datapost kan ha. Giltiga värden: positiva heltal.
mergeSchema false Om schemat ska härledas mellan flera filer och om schemat för varje fil ska sammanfogas. Aktiverad som standard för Auto Loader när schemat härleds.
mode PERMISSIVE Parserläge kring hantering av felaktiga poster. Giltiga värden: PERMISSIVE, DROPMALFORMED, FAILFAST.
multiLine false Om CSV-posterna sträcker sig över flera rader.
nanValue NaN Strängrepresentationen av ett värde som inte är ett tal vid parsning FloatType och DoubleType kolumner.
negativeInf -Inf Strängrepresentationen av negativ oändlighet vid parsning av kolumnerna FloatType eller DoubleType.
nullValue Tom sträng Strängrepresentation av ett null-värde.
parserCaseSensitive (inaktuell) false När du läser filer, överväg om du vill justera kolumnerna som deklarerats i rubriken så att de matchar schemat, med hänsyn till skiftlägeskänslighet. Detta är true som standard för Auto Loader. Kolumner som skiljer sig åt i skiftläge kommer att återställas i rescuedDataColumn om den är aktiverad. Det här alternativet har blivit inaktuellt till förmån för readerCaseSensitive.
positiveInf Inf Strängrepresentationen av den positiva oändligheten vid tolkningen av FloatType eller DoubleType-kolumnerna.
preferDate true Försöker härleda strängar som datum i stället för tidsstämpel när det är möjligt. Du måste också använda schemainferens, antingen genom att aktivera inferSchema eller använda cloudFiles.inferColumnTypes med Auto Loader.
quote " Tecknet som används för att ta bort värden där fältgränsaren är en del av värdet.
readerCaseSensitive true Anger hur skiftlägeskänslighet hanteras när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. När det är falskt läser du data på ett skiftlägesokänsligt sätt.
rescuedDataColumn None Huruvida man ska samla in all data som inte kan parsas på grund av datatypbortfall och schemafel (inklusive kolumnens hölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
sep eller delimiter , Avgränsarsträngen mellan kolumner.
singleVariantColumn None När den är inställd på ett kolumnnamn läser hela CSV-posten till en enda VariantType kolumn med det namnet i stället för att parsa varje fält i sin egen kolumn. Kräver header=true.
skipRows 0 Antalet rader från början av CSV-filen som ska ignoreras (inklusive kommenterade och tomma rader). Om header är sant blir rubriken den första förbigångna och okommenterade raden. Giltiga värden: positiva heltal eller 0.
timeFormat HH:mm:ss Formatet för parsning av TimeType kolumnvärden.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Formatet för att parsa tidsstämpelsträngar.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatet för parsning av tidsstämpel utan tidszonssträngar (TimestampNTZType).
timeZone None Vid parsning av tidsstämplar och datum, att använda java.time.ZoneId.
unescapedQuoteHandling STOP_AT_DELIMITER Strategin för hantering av okapslade citattecken. Tillåtna alternativ:
  • STOP_AT_CLOSING_QUOTE: Om okapslade citattecken hittas i indata ackumulerar du citattecknet och fortsätter att parsa värdet som ett citerat värde tills ett avslutande citattecken hittas.
  • BACK_TO_DELIMITER: Om okapslade citattecken hittas i indata, betrakta värdet som ett ocitat värde. Detta gör att parsern ackumulerar alla tecken i det aktuella parsade värdet tills avgränsaren som definieras av sep hittas. Om ingen avgränsare hittas i värdet fortsätter parsern att ackumulera tecken från indata tills en avgränsare eller radslut hittas.
  • STOP_AT_DELIMITER: Om okapslade citattecken hittas i indata, betrakta värdet som ett ocitat värde. Detta gör att parsern ackumulerar alla tecken tills avgränsaren som definieras av sep hittas, eller en radbrytning påträffas i indata.
  • SKIP_VALUE: Om okapslade citattecken hittas i indata kommer innehållet för det angivna värdet att hoppas över (tills nästa avgränsare hittas) och värdet som anges i nullValue kommer att skapas istället.
  • RAISE_ERROR: Om ej kapslade citattecken hittas i indata genereras ett TextParsingException .

Excel

Key Standardinställning Beskrivning
dataAddress None Cellområdet som ska läsas in Excel syntax. Om det utelämnas läser alla giltiga celler från det första bladet. Använd "SheetName!C5:H10" för att läsa ett intervall från ett namngivet blad, "C5:H10" för att läsa ett intervall från det första bladet eller "SheetName" för att läsa alla data från ett visst blad.
headerRows 0 Antal inledande rader som ska användas som kolumnnamnrubriker. När dataAddress anges gäller detta inom cellområdet. När 0genereras kolumnnamn automatiskt som _c1, _c2, _c3osv. Giltiga värden: 0, 1.
ignoreMissingSheet false Om du vill hoppa över filer som inte innehåller bladet som anges av dataAddress. När falseutlöses ett fel om en fil saknar det begärda bladet. Gäller endast när ett bladnamn anges i dataAddress. Giltiga värden: true, false.
includePhoneticRuns false Om du vill inkludera fonetiska anteckningar (till exempel pinyin eller furigana) sammanfogade till cellsträngsvärden när du läser XLSX-filer. Giltiga värden: true, false.
operation readSheet Åtgärden som ska utföras på arbetsboken Excel. Giltiga värden: readSheet (läser data från ett blad), listSheets (returnerar en struct med fält sheetIndex: long och sheetName: String för varje blad).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Anpassad formatsträng för tidsstämpel-utan-tidszonsvärden som lagras som strängar i Excel. Anpassade datumformat följer formaten i Datetime-mönster.
dateFormat yyyy-MM-dd Anpassad formatsträng för strängvärden som läse som Date. Anpassade datumformat följer formaten i Datetime-mönster.

JSON

Key Standardinställning Beskrivning
allowBackslashEscapingAnyCharacter false Huruvida man ska tillåta backslash att maskera vilket tecken som helst som följer det. Om det inte är aktiverat kan endast tecken som uttryckligen anges av JSON-specifikationen undantagas.
allowComments false Om du vill tillåta användning av Java-, C- och C++-formatkommentarer ('/', '*'och '//' sorter) inom parsat innehåll eller inte.
allowNonNumericNumbers true Om du vill tillåta uppsättningen med NaN-token (NaN) som giltiga flytande talvärden.
allowNumericLeadingZeros false Huruvida man ska tillåta att heltal börjar med ytterligare (ignorerbara) nollor (till exempel 000001).
allowSingleQuotes true Om du vill tillåta användning av enkla citattecken (apostrofer, tecken '\') för att citera strängar (namn och strängvärden).
allowUnquotedControlChars false Om JSON-strängar ska tillåtas innehålla icke kapslade kontrolltecken (ASCII-tecken med ett värde som är mindre än 32, inklusive flik- och radmatningstecken) eller inte.
allowUnquotedFieldNames false Om du vill tillåta användning av ociterade fältnamn, som tillåts av JavaScript, men inte av JSON-specifikationen.
alternateVariantEncoding None Kodningen som används för Variant-värden i JSON-källan. Ange till för att Z85 avkoda variantvärden som har base85-kodats i stället för lagrade som infogad JSON.
badRecordsPath None Sökvägen för att lagra filer som innehåller information om felaktiga JSON-poster.
Att använda alternativet badRecordsPath i en filbaserad datakälla har följande begränsningar:
  • Det är icke-transaktionellt och kan leda till inkonsekventa resultat.
  • Tillfälliga fel behandlas som fel.
columnNameOfCorruptRecord _corrupt_record Kolumnen för lagring av dataposter som är felaktiga och inte kan parsas. Om mode för parsning anges som DROPMALFORMED, kommer den här kolumnen att vara tom.
dateFormat yyyy-MM-dd Formatet för parsning av datumsträngar.
dropFieldIfAllNull false Om du vill ignorera kolumner med alla null-värden eller tomma matriser och structs under schemainferens.
encoding eller charset UTF-8 Namnet på kodningen av JSON-filerna. Se java.nio.charset.Charset för lista över alternativ. Du kan inte använda UTF-16 och UTF-32 när multiline är true.
inferTimestamp false Huruvida man ska försöka härleda tidsstämpelsträngar som en TimestampType. Schemainferensen kan ta märkbart längre tid när det är inställt på true. Du måste aktivera cloudFiles.inferColumnTypes för att kunna använda det med Auto Loader.
lineSep Ingen, som omfattar \r, \r\noch \n En sträng mellan två JSON-poster som följer på varandra.
locale US En java.util.Locale identifikator. Påverkar standarddatum, tidsstämpel och decimalparsning i JSON.
maxNestingDepth 500 Det maximala tillåtna kapslingsdjupet för JSON-objekt och matriser. Öka det här värdet för djupt kapslade dokument. Giltiga värden: positiva heltal.
maxNumLen 1000 Den maximala längden på antal token i JSON-indata. Öka det här värdet för JSON med stora numeriska literaler. Giltiga värden: positiva heltal.
maxStringLen Obegränsad Den maximala längden på strängvärden i JSON-indata. Ange för att begränsa minnesanvändningen vid parsning av JSON med stora strängar. Giltiga värden: positiva heltal.
mode PERMISSIVE Parserläge kring hantering av felaktiga poster. Giltiga värden: PERMISSIVE, DROPMALFORMED, FAILFAST.
multiLine false Om JSON-posterna sträcker sig över flera rader.
prefersDecimal false Försöker tolka strängar som DecimalType i stället för typen float eller dubbel när så är möjligt. Du måste också använda schemainferens, antingen genom att aktivera inferSchema eller använda cloudFiles.inferColumnTypes med Auto Loader.
primitivesAsString false Huruvida man ska härleda primitiva typer som tal och booleska värden som StringType.
readerCaseSensitive true Anger hur skiftlägeskänslighet hanteras när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. När det är falskt läser du data på ett skiftlägesokänsligt sätt. Tillgänglig i Databricks Runtime 13.3 och senare.
rescuedDataColumn None Om du vill samla in alla data som inte kan parsas på grund av ett matchningsfel av datatyp eller schemamatchning (inklusive kolumnhölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
singleVariantColumn None Om du vill mata in hela JSON-dokumentet, parsat i en enskild variantkolumn med den angivna strängen som kolumnens namn. Om de inte anges matas JSON-fälten in i sina egna kolumner. Giltiga värden: valfri sträng.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Formatet för att parsa tidsstämpelsträngar.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatet för parsning av tidsstämpel utan tidszonssträngar (TimestampNTZType).
timeZone None Vid parsning av tidsstämplar och datum, att använda java.time.ZoneId.
upgradeExceptionAsBadRecord false Om du vill behandla typuppgraderingsfel (till exempel när ett värde inte kan utvidgas till den deklarerade kolumntypen) som felaktiga poster i stället för att utlösa ett undantag.

Kafka

Den fullständiga listan över Alternativ för Kafka-läsare finns i DataStreamReader Kafka-alternativ. Följande alternativ gäller endast för batchläsningar med .spark.read.format("kafka")

Key Standardinställning Beskrivning
endingOffsets latest Var du kan sluta läsa. Giltiga värden: latest, eller en JSON-sträng med förskjutningar för varje partition, till exempel {"topicA":{"0":50,"1":-1}}.
I JSON-strängen -1 är den senaste förskjutningen. -2, som är den tidigaste förskjutningen, tillåts inte som en slutförskjutning.
endingOffsetsByTimestamp None Slutförskjutningar per partition anges som tidsstämplar i millisekunder. Giltiga värden: en JSON-sträng med tidsstämplar för varje partition, till exempel {"topicA":{"0":2000,"1":3000}}.
endingTimestamp None Global sluttidsstämpel i millisekunder som tillämpas på alla partitioner. Giltiga värden: icke-negativa heltal.

ORC

Key Standardinställning Beskrivning
mergeSchema false Om schemat ska härledas mellan flera filer och om schemat för varje fil ska sammanfogas.

Parkett

Key Standardinställning Beskrivning
datetimeRebaseMode LEGACY Styr ombaseringen av DATE- och TIMESTAMP-värdena mellan julianska och proleptiska gregorianska kalendrar. Giltiga värden: EXCEPTION, LEGACYoch CORRECTED.
int96RebaseMode LEGACY Styr ombaseringen av INT96-tidsstämpelvärdena mellan julianska och proleptiska gregorianska kalendrar. Giltiga värden: EXCEPTION, LEGACYoch CORRECTED.
mergeSchema false Om schemat ska härledas mellan flera filer och om schemat för varje fil ska sammanfogas.
readerCaseSensitive true Anger hur skiftlägeskänslighet hanteras när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. När det är falskt läser du data på ett skiftlägesokänsligt sätt.
rescuedDataColumn None Huruvida man ska samla in all data som inte kan parsas på grund av datatypbortfall och schemafel (inklusive kolumnens hölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?.
COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.

Tillståndslager

Använd de här alternativen med spark.read.format("statestore") eller tabellvärdesfunktionen read_statestore för att läsa tillståndsdata för strukturerad direktuppspelning. Se Läsa information om status för strukturerad direktuppspelning.

Key Standardinställning Beskrivning
batchId Senaste batch-ID Målbatchen som ska läsas från. Använd för att köra frågor mot ett tidigare tillstånd för frågan. Batchen måste kommitteras men inte rensas ännu. Giltiga värden: icke-negativa heltal.
operatorId 0 Måloperatorn som ska läsas från. Använd när frågan har flera tillståndskänsliga operatorer. Giltiga värden: icke-negativa heltal.
storeName DEFAULT Namnet på måltillståndsarkivet som ska läsas från. Använd när den tillståndskänsliga operatorn har flera tillståndslagerinstanser. Du måste ange antingen storeName eller joinSide för en stream-stream-koppling, men inte båda. Giltiga värden: valfri sträng.
joinSide None Målsidan att läsa från för en stream-stream-koppling. Du måste ange antingen storeName eller joinSide för en stream-stream-koppling, men inte båda. Giltiga värden: left, right.
snapshotStartBatchId None Batch-ID:t för ögonblicksbilden som ska användas som startpunkt när du läser tillstånd. Läsaren återskapar tillståndet genom att spela upp ändringar från den här ögonblicksbilden till .batchId Användbart när en ögonblicksbild är skadad. Måste anges tillsammans med snapshotPartitionId. Det går inte att använda med readChangeFeed. Stöder DET HDFS-baserade tillståndsarkivet och RocksDB-tillståndsarkivet med kontrollpunkter för ändringslogg aktiverat. Finns i Databricks Runtime 15.4 LTS och senare. Giltiga värden: icke-negativa heltal.
snapshotPartitionId None Om det anges läser frågan bara den här partitionen. Måste anges tillsammans med snapshotStartBatchId. Det går inte att använda med readChangeFeed. Finns i Databricks Runtime 15.4 LTS och senare. Giltiga värden: icke-negativa heltal.
readChangeFeed false När truereturnerar tillståndsändringar i ett angivet batchintervall mellan changeStartBatchId och changeEndBatchId. Kräver changeStartBatchId. Det går inte att använda med joinSide, batchId, snapshotStartBatchIdeller snapshotPartitionId. Finns i Databricks Runtime 16.4 LTS och senare. Giltiga värden: true, false.
Mer information finns i Read Structured Streaming state changes (Läsa ändringar av status för strukturerad direktuppspelning).
changeStartBatchId None Start batch-ID för ändringsflödesintervallet. Krävs när readChangeFeed är true. Gäller endast när readChangeFeed är inställt på true. Finns i Databricks Runtime 16.4 LTS och senare. Giltiga värden: icke-negativa heltal.
changeEndBatchId Senaste batch-ID Slut batch-ID för ändringsflödesintervallet. Måste vara större än eller lika med changeStartBatchId. Gäller endast när readChangeFeed är inställt på true. Finns i Databricks Runtime 16.4 LTS och senare. Giltiga värden: icke-negativa heltal.
stateVarName None Namnet på tillståndsvariabeln som ska läsas. Namnet på tillståndsvariabeln är det unika namnet på varje variabel i init funktionen för en StatefulProcessor som används av operatorn transformWithState . Krävs när du använder operatorn transformWithState . Finns i Databricks Runtime 16.4 LTS och senare. Giltiga värden: valfri sträng.
readRegisteredTimers false När trueläser läser registrerade timers som används av operatorn transformWithState . Gäller endast för operatorn transformWithState . Finns i Databricks Runtime 16.4 LTS och senare. Giltiga värden: true, false.
flattenCollectionTypes true När trueplattar du ut posterna som returneras för map- och listtillståndsvariabler. När falsereturnerar poster som en Spark SQL Array eller Map. Gäller endast för operatorn transformWithState . Finns i Databricks Runtime 16.4 LTS och senare. Giltiga värden: true, false.

Text

Key Standardinställning Beskrivning
encoding UTF-8 Namnet på kodningen av TEXT-filradsavgränsaren. En lista över alternativ finns i java.nio.charset.Charset. Innehållet i filen påverkas inte av det här alternativet och läses as-is.
lineSep Ingen, som omfattar \r, \r\n och \n En sträng mellan två på varandra följande TEXT-poster.
wholeText false Om en fil ska läsas som en enda post.

XML

Key Standardinställning Description
rowTag None Radtaggen för XML-filerna som ska behandlas som en rad. I xml-exemplet <books> <book><book>...<books>är booklämpligt värde . Det här är ett obligatoriskt alternativ.
samplingRatio 1.0 Definierar en bråkdel av rader som används för schemainferens. Inbyggda XML-funktioner ignorerar det här alternativet. Giltiga värden: 0.0 till 1.0.
excludeAttribute false Om du vill exkludera attribut i element.
mode None Metod för att hantera skadade poster under parsing. PERMISSIVE: För skadade poster placerar du den skadade strängen i ett fält som konfigurerats av columnNameOfCorruptRecord, och konfigurerar skadade fält till null. Om du vill behålla korrupta poster kan du ange ett fält av typen string med namnet columnNameOfCorruptRecord i ett användardefinierat schema. Om ett schema inte har fältet tas skadade poster bort under parsningen. När du härleder ett schema lägger parsern implicit till ett columnNameOfCorruptRecord fält i ett utdataschema. DROPMALFORMED: Ignorerar skadade registerposter. Det här läget stöds inte för inbyggda XML-funktioner. FAILFAST: Utlöser ett undantag om parsern möter korrupta register.
inferSchema true Om trueförsöker du härleda en lämplig typ för varje resulterande DataFrame-kolumn. Om falseär alla resulterande kolumner av string typen . Inbyggda XML-funktioner ignorerar det här alternativet.
columnNameOfCorruptRecord spark.sql.columnNameOfCorruptRecord Tillåter att du byter namn på det nya fältet som innehåller en felaktigt formaterad sträng som skapats av PERMISSIVE läget.
attributePrefix None Prefixet för attribut för att skilja attribut från element. Det här är prefixet för fältnamn. Standard är _. Kan vara tomt för läsning av XML, men inte för skrivning. Gäller även för XML-alternativ för DataFrameWriter.
valueTag _VALUE Taggen som används för teckendata i element som även har attribut eller underelement. Användaren kan ange fältet valueTag i schemat eller så läggs det till automatiskt under schemainferensen när teckendata finns i element med andra element eller attribut. Gäller även för XML-alternativ för DataFrameWriter.
encoding UTF-8 För läsning avkodar XML-filerna efter den angivna kodningstypen. För skrivning anger kodning (teckenuppsättning) för sparade XML-filer. Inbyggda XML-funktioner ignorerar det här alternativet. Gäller även för XML-alternativ för DataFrameWriter.
ignoreSurroundingSpaces true Om blanksteg som omger värden måste hoppas över. Teckendata som endast innehåller blanksteg ignoreras.
rowValidationXSDPath None Sökväg till en valfri XSD-fil som används för att verifiera XML för varje rad individuellt. Rader som inte kan verifieras behandlas som parsningsfel. XSD påverkar inte schemat, oavsett om det tillhandahålls eller härleds.
ignoreNamespace false Om trueignoreras namnrymdernas prefix för XML-element och attribut. Taggar <abc:author> och <def:author> behandlas, till exempel, som om båda bara är <author>. Det går inte att ignorera namnrymder på elementet rowTag, endast dess läsbara underordnade. XML-parsning är inte namnområdesmedveten även om false.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Anpassad tidsstämpelformatsträng som följer datetime-mönsterformatet . Detta gäller för timestamp typ. Gäller även för XML-alternativ för DataFrameWriter.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Anpassad formatsträng för tidsstämpel utan tidszon som följer datetime-mönsterformatet. Detta gäller för timestampNTZType-typen. Gäller även för XML-alternativ för DataFrameWriter.
dateFormat yyyy-MM-dd Anpassad datumformatsträng som följer datetime-mönsterformatet. Detta gäller för datumtyp. Gäller även för XML-alternativ för DataFrameWriter.
locale en-US Anger en platsinställning som en språktagg i IETF BCP 47-format. Används till exempel locale vid parsning av datum och tidsstämplar.
nullValue sträng null Anger strängrepresentationen av ett null-värde. När detta är nullskriver parsern inte attribut och element för fält. Gäller även för XML-alternativ för DataFrameWriter.
readerCaseSensitive true Anger skiftlägeskänslighetsbeteendet när rescuedDataColumn är aktiverat. Om det är sant kan du rädda de datakolumner vars namn skiljer sig från schemat. När det är falskt läser du data på ett skiftlägesokänsligt sätt.
rescuedDataColumn None Om du vill samla in alla data som inte kan parsas på grund av ett matchningsfel av datatyp och schemamatchning (inklusive kolumnhölje) till en separat kolumn. Den här kolumnen ingår som standard när du använder Auto Loader. Mer information finns i Vad är den räddade datakolumnen?. COPY INTO (äldre) stöder inte den räddade datakolumnen eftersom du inte kan ange schemat manuellt med hjälp av COPY INTO. Databricks rekommenderar att du använder Auto Loader för de flesta inmatningsscenarier.
singleVariantColumn none Anger namnet på den enskilda variantkolumnen. Om det här alternativet anges för läsning parsar du hela XML-posten i en enskild variantkolumn med det angivna alternativsträngsvärdet som kolumnens namn. Om det här alternativet anges för skrivning, skriv värdet för den enda kolumnen Variant till XML-filer. Gäller även för XML-alternativ för DataFrameWriter.
useLegacyXMLParser true Om du vill använda den äldre XML-parsern. Den äldre parsern har mindre strikt validering för felaktigt innehåll men är mindre minneseffektiv. Ange till för att false välja den striktare standardparsern.
wildcardColName xs_any Kolumnnamnet som används för att avbilda XML-element som matchar jokertecknet (xs:any) schemaelementet. Det går inte att använda tillsammans med rescuedDataColumn.

DataStreamReader-alternativ

Använd dessa alternativ med DataStreamReader.option() för att konfigurera strömmande läsningar från Delta Lake-tabeller och andra filbaserade källor.

Filformatalternativ (JSON, CSV, Parquet och andra) finns i DataFrameReader-alternativ.

Alternativ för automatisk inläsning (cloudFiles.*) finns i Automatisk inläsning.

Example

I följande exempel anges maxFilesPerTrigger till 10 för en Delta Lake-tabellström:

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

Gemensamma

Följande alternativ gäller för Delta Lake-tabeller och andra filbaserade strömningskällor.

Key Standardinställning Description
cleanSource off Hantera källfiler när de har bearbetats av dataströmmen. Giltiga värden: off (ingen åtgärd), delete (ta bort källfilen permanent) archive (flytta till sourceArchiveDir). När värdet archiveär måste sourceArchiveDir du också ange . Gäller inte för strömning av Delta Lake-tabeller.
fileNameOnly false Om du bara vill identifiera redan bearbetade filer efter filnamn i stället för med en fullständig sökväg. När truebehandlas filer på olika sökvägar med samma filnamn som samma fil och bearbetas inte på nytt. Gäller inte för strömning av Delta Lake-tabeller.
latestFirst false Om de senast ändrade filerna ska bearbetas först i varje mikrobatch. Användbart när du vill bearbeta de senaste data så snabbt som möjligt. När true och maxFilesPerTrigger eller maxBytesPerTrigger har angetts maxFileAge ignoreras. Gäller inte för strömning av Delta Lake-tabeller.
maxBytesPerTrigger None Mjukt maxvärde för mängden data som bearbetas för varje mikrobatch. En batch kan bearbeta mer än gränsen om den minsta indataenheten överskrider den. När de används tillsammans med maxFilesPerTriggerbearbetar mikrobatchdata tills någon av gränserna har nåtts först. Giltiga värden: positiva heltal.
Använd i stället cloudFiles.maxBytesPerTrigger för Auto Loader. Se Vanliga.
maxCachedFiles 10000 Maximalt antal obearbetade filer som ska cachelagrats för efterföljande mikrobatch. Ställ in på för att 0 inaktivera cachelagring. Öka det här värdet när källkatalogen innehåller många nya filer för varje utlösare. Gäller inte för strömning av Delta Lake-tabeller. Giltiga värden: positiva heltal eller 0.
maxFileAge 7d Maximal ålder för filer som övervägs för bearbetning, i förhållande till tidsstämpeln för den senast ändrade filen i stället för den aktuella systemtiden. Filer som är äldre än det här tröskelvärdet ignoreras. Accepterar varaktighetssträngar som 7d eller 4h. Ignoreras när latestFirst är true och maxFilesPerTrigger eller maxBytesPerTrigger har angetts. Gäller inte för strömning av Delta Lake-tabeller.
maxFilesPerTrigger 1000 för Delta Lake och Auto Loader. Inget maxvärde för andra filbaserade källor. Övre gräns för antalet nya filer som bearbetas i varje mikrobatch. När de används tillsammans med maxBytesPerTriggerbearbetar mikrobatchdata tills någon av gränserna har nåtts först. Giltiga värden: positiva heltal.
Använd i stället cloudFiles.maxFilesPerTrigger för Auto Loader. Se Vanliga.
sourceArchiveDir None Sökväg till arkivkatalogen när cleanSource är inställd på archive. Källfiler flyttas till den här sökvägen efter bearbetningen, vilket bevarar deras relativa katalogstruktur. Gäller inte för strömning av Delta Lake-tabeller.

Automatisk inläsning

Använd de här alternativen med cloudFiles källan för att konfigurera automatisk inläsning för strömmande inmatning från molnlagring. Alternativ som är specifika för cloudFiles källan är prefix med cloudFiles för att hålla dem i ett separat namnområde från andra källalternativ för strukturerad direktuppspelning .

Gemensamma

Key Standardinställning Description
cloudFiles.allowOverwrites false Om du vill tillåta ändringar i indatakatalogfilen för att skriva över befintliga data.
För konfigurationsvarningar, se Bearbetar autoinläsaren filen igen när filen läggs till eller skrivs över?.
cloudFiles.backfillInterval None Automatisk inläsning kan utlösa asynkrona återfyllningar med ett visst intervall. Till exempel 1 day för att återfylla dagligen eller 1 week till återfyllnad varje vecka. Mer information finns i Utlösa vanliga återfyllnad med cloudFiles.backfillInterval.
Använd inte när cloudFiles.useManagedFileEvents är inställt på true.
cloudFiles.cleanSource OFF Om bearbetade filer ska tas bort automatiskt från indatakatalogen. När värdet är ( OFF standard) tas inga filer bort.
När värdet är inställt på DELETEtar autoinläsaren bort filer automatiskt 30 dagar efter att de har bearbetats. För att göra detta måste autoinläsaren ha skrivbehörighet till källkatalogen.
När värdet är inställt MOVEpå flyttar Auto Loader automatiskt filer till den angivna platsen inom cloudFiles.cleanSource.moveDestination 30 dagar efter att de har bearbetats. För att göra detta måste autoinläsaren ha skrivbehörighet till källkatalogen samt till flyttplatsen.
En fil betraktas som bearbetad när den har ett värde som inte är null för commit_time i resultatet av cloud_files_state funktionen table-valued. Se cloud_files_state tabellvärdesfunktion. Den ytterligare 30-dagars väntan efter bearbetningen kan konfigureras med .cloudFiles.cleanSource.retentionDuration
Granska följande överväganden innan du aktiverar cloudFiles.cleanSource:
  • Azure Databricks rekommenderar inte att du använder det här alternativet om det finns flera strömmar som förbrukar data från källplatsen eftersom den snabbaste konsumenten tar bort filerna och inte matas in i de långsammare källorna.
  • För att aktivera den här funktionen krävs att Auto Loader behåller ytterligare tillstånd i sin kontrollpunkt, vilket medför prestandakostnader men möjliggör förbättrad observerbarhet via cloud_files_state funktionen tabellvärde. Se cloud_files_state tabellvärdesfunktion.
  • cleanSource använder den aktuella inställningen för att bestämma om du vill MOVE eller DELETE en viss fil. Anta till exempel att inställningen var MOVE när filen ursprungligen bearbetades men ändrades till DELETE när filen blev kandidat för rensning 30 dagar senare. I det här fallet tar cleanSource bort filen.
  • Filer garanteras inte att rensas så snart de retentionDuration upphör att gälla. För att hålla kostnaderna låga tar Auto Loader bort filer samtidigt med dataströmbearbetning och avslutas så snart dataströmbearbetningen är klar eller avslutas. Filer som var kandidater för rensning, men som inte kunde rensas under dataströmbearbetningen, hämtas nästa gång automatisk inläsning körs.

Tillgänglig i Databricks Runtime 16.4 och senare.
cloudFiles.cleanSource.retentionDuration 30 days Tid att vänta innan bearbetade filer blir kandidater för arkivering med cleanSource. Måste vara längre än 7 dagar för DELETE. Ingen minsta begränsning för MOVE.
Värdet är en CalendarInterval-sträng . Till exempel "14 days", "30 days", "2 weeks", eller "1 month".
Tillgänglig i Databricks Runtime 16.4 och senare.
cloudFiles.cleanSource.moveDestination None Sökväg för att arkivera bearbetade filer när cloudFiles.cleanSource är inställt på MOVE. Det kan vara en molnlagringssökväg eller en volymsökväg för Unity Catalog (till exempel /Volumes/my_catalog/my_schema/my_volume/archive/).
Flyttplatsen måste:
  • Inte underordnad källkatalogen. Om du placerar flyttmålet i källkatalogen matas de arkiverade filerna in igen.
  • Var på samma externa plats, volym eller DBFS-montering som källan. Flyttningar mellan bucketar och containrar stöds inte och resulterar i ett fel.

Automatisk inläsare måste ha skrivbehörighet till den här katalogen.
Tillgänglig i Databricks Runtime 16.4 och senare.
cloudFiles.format Ingen (obligatoriskt alternativ) Formatet för datafilen i sökvägen. Giltiga värden är:
cloudFiles.includeExistingFiles true Om du vill inkludera befintliga filer i indatasökvägen för dataströmbearbetning eller endast bearbeta nya filer som kommer efter den första installationen. Det här alternativet utvärderas endast när du startar en dataström för första gången. Att ändra det här alternativet efter att strömmen har startats om har ingen effekt.
cloudFiles.inferColumnTypes false Om du vill härleda exakta kolumntyper vid användning av schemainferens. Som standard härleds kolumner som strängar när JSON- och CSV-datauppsättningar härleds. Mer information finns i schemainferens .
cloudFiles.maxBytesPerTrigger None Det maximala antalet nya byte som ska bearbetas i varje utlösare. Du kan ange en bytesträng, till exempel 10g för att begränsa varje mikrobatch till 10 GB data. Detta är ett mjukt maxvärde. Om du har filer som är 3 GB vardera bearbetar Azure Databricks 12 GB i en mikrobatch. När det används tillsammans med cloudFiles.maxFilesPerTrigger förbrukar Azure Databricks upp till den lägre gränsen cloudFiles.maxFilesPerTrigger eller cloudFiles.maxBytesPerTrigger, beroende på vilket som först uppnås. Det här alternativet har ingen effekt när det används med Trigger.Once() (Trigger.Once() är inaktuellt).
I Databricks Runtime 18.0 och senare är det här alternativet dynamiskt konfigurerat och behöver inte anges manuellt.
cloudFiles.maxFileAge None Hur länge en filhändelse spåras i dedupliceringssyfte. Databricks rekommenderar inte att du justerar den här parametern om du inte matar in data i storleksordningen miljontals filer i timmen. Mer information finns i avsnittet om spårning av filhändelser .
Om du justerar cloudFiles.maxFileAge för aggressivt kan det orsaka problem med datakvaliteten, till exempel duplicerad inmatning eller filer som saknas. Därför rekommenderar Databricks en konservativ inställning för cloudFiles.maxFileAge, till exempel 90 dagar, vilket liknar vad jämförbara datainmatningslösningar rekommenderar.
cloudFiles.maxFilesPerTrigger 1000 Det maximala antalet nya filer som ska bearbetas i varje utlösare. När det används tillsammans med cloudFiles.maxBytesPerTrigger förbrukar Azure Databricks upp till den lägre gränsen cloudFiles.maxFilesPerTrigger eller cloudFiles.maxBytesPerTrigger, beroende på vilket som först uppnås. Det här alternativet har ingen effekt när det används med Trigger.Once() (inaktuellt).
I Databricks Runtime 18.0 och senare är det här alternativet dynamiskt konfigurerat och behöver inte anges manuellt.
cloudFiles.partitionColumns None En kommaavgränsad lista över Partitionskolumner i Hive-stil som du vill härleda från filernas katalogstruktur. Partitionskolumner i Hive-stil är nyckel/värde-par som kombineras med ett likhetstecken som <base-path>/a=x/b=1/c=y/file.format. I det här exemplet är partitionskolumnerna a, b, och c. Som standard läggs dessa kolumner automatiskt till i schemat om du använder schemainferens och anger <base-path> att data ska läsas in från. Om du anger ett schema förväntar sig Auto Loader att dessa kolumner inkluderas i schemat. Om du inte vill att dessa kolumner ska ingå i schemat kan du ange "" att dessa kolumner ska ignoreras. Dessutom kan du använda det här alternativet när du vill att kolumner ska härledas till filsökvägen i komplexa katalogstrukturer, som exemplet nedan:
<base-path>/year=2022/week=1/file1.csv
<base-path>/year=2022/month=2/day=3/file2.csv
<base-path>/year=2022/month=2/day=4/file3.csv
cloudFiles.partitionColumns som year,month,day returnerar year=2022 för file1.csv, men kolumnerna month och day är null.
month och day parsas korrekt för file2.csv och file3.csv.
cloudFiles.schemaEvolutionMode addNewColumns när ett schema inte har angetts, none annars Sättet att utveckla schemat när nya kolumner upptäcks i data. Som standard härleds kolumner som strängar när JSON-datauppsättningar härleds. Mer information finns i schemautveckling .
cloudFiles.schemaHints None Schemainformation som du anger för Auto Loader vid schemainferens. Mer information finns i schematips .
cloudFiles.schemaLocation Ingen (krävs för att härleda schemat) Platsen där du vill lagra det härledda schemat och efterföljande ändringar. Mer information finns i schemainferens .
cloudFiles.useStrictGlobber false Huruvida man ska använda en strikt globber som matchar standardglobbingbeteendet för andra filkällor i Apache Spark. Mer information finns i Vanliga datainläsningsmönster . Finns i Databricks Runtime 12.2 LTS och senare.
cloudFiles.validateOptions true Huruvida alternativ för automatisk inläsare ska verifieras och ett fel returneras för okända eller inkonsekventa alternativ.

Kataloglista

Key Standardinställning Description
cloudFiles.useIncrementalListing (inaktuell) auto på Databricks Runtime 17.2 och senare, false på Databricks Runtime 17.3 och senare Den här funktionen är inaktuell. Databricks rekommenderar att du använder filmeddelandeläget med filhändelser i stället för cloudFiles.useIncrementalListing.
Om du vill använda den inkrementella listan i stället för den fullständiga listan i kataloglistningsläge. Som standard gör Auto Loader det bästa för att automatiskt identifiera om en viss katalog är tillämplig för den inkrementella listan. Du kan uttryckligen använda den inkrementella listan eller använda den fullständiga kataloglistan genom att ange den som true eller false respektive.
Om du felaktigt aktiverar inkrementell lista i en icke-lexikalt ordnad katalog hindrar autoinläsaren från att identifiera nya filer.
Fungerar med Azure Data Lake Storage (abfss://), S3 (s3://) och GCS (gs://).
Finns i Databricks Runtime 9.1 LTS och senare.
Tillgängliga värden: auto, true, false

Filmeddelande

Information om hur du konfigurerar filmeddelandeläge, inklusive nödvändiga molnbehörigheter, konfigurationsinstruktioner och autentiseringsmetoder, finns i Konfigurera automatiska inläsningsströmmar i filmeddelandeläge.

Key Standardinställning Description
cloudFiles.fetchParallelism 1 Antal trådar som ska användas när meddelanden hämtas från kötjänsten.
Använd inte när cloudFiles.useManagedFileEvents är inställt på true.
cloudFiles.pathRewrites None Krävs endast om du anger en queueUrl som tar emot filmeddelanden från flera S3-bucketar och du vill använda monteringspunkter som konfigurerats för åtkomst till data i dessa containrar. Använd det här alternativet för att skriva om prefixet för sökvägen bucket/key med monteringspunkten. Bara prefix kan skrivas om. För konfigurationen {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}skrivs till exempel sökvägen s3://<databricks-mounted-bucket>/path/2017/08/fileA.json om till dbfs:/mnt/data-warehouse/2017/08/fileA.json.
Använd inte när cloudFiles.useManagedFileEvents är inställt på true.
cloudFiles.resourceTag None En serie nyckel/värde-taggpar som hjälper dig att associera och identifiera relaterade resurser, till exempel:
cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue")
.option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")
Mer information om AWS finns i Amazon SQS-kostnadsallokeringstaggar och Konfigurera taggar för ett Amazon SNS-ämne. (1)
Mer information om Azure finns i Namngivning av köer och metadata och täckningen för properties.labels i händelseprenumerationer. Auto Loader lagrar dessa nyckel/värde-taggpar i JSON som etiketter. (1)
Mer information om GCP finns i Rapportera användning med etiketter. (1)
Använd inte när cloudFiles.useManagedFileEvents är inställt på true. Ange i stället resurstaggar med hjälp av molnproviderkonsolen.
cloudFiles.useManagedFileEvents false När värdet är inställt på trueanvänder Auto Loader tjänsten för filhändelser för att identifiera filer på din externa plats. Du kan bara använda det här alternativet om inläsningssökvägen finns på en extern plats med filhändelser aktiverade. Se Använda filmeddelandeläge med filhändelser.
Filhändelser ger prestanda på meddelandenivå vid filidentifiering, eftersom automatisk inläsning kan identifiera nya filer efter den senaste körningen. Till skillnad från kataloglistan behöver den här processen inte visa alla filer i katalogen.
Det finns vissa situationer när Auto Loader använder kataloglista trots att alternativet filhändelser är aktiverat:
  • När den första inläsningen includeExistingFiles är inställd på true, sker en fullständig kataloglista för att identifiera alla filer som fanns i katalogen innan Auto Loader startade.
  • Tjänsten file events optimerar filidentifieringen genom att cachelagra de senast skapade filerna. Om automatisk inläsning körs sällan kan cacheminnet upphöra att gälla och Auto Loader återgår till kataloglistan för att identifiera filer och uppdatera cacheminnet. För att undvika det här scenariot anropar du Auto Loader minst en gång var sjunde dag.

Se När använder automatisk inläsning med filhändelser kataloglista? för en omfattande lista över situationer när Auto Loader använder kataloglista med det här alternativet.
Finns i Databricks Runtime 14.3 LTS och senare.
cloudFiles.listOnStart false När värdet är inställt truepå utför Auto Loader en fullständig kataloglista när strömmen startar, i stället för att börja med fortsättningstoken i kontrollpunkten. Använd det här alternativet för att återställa från fel, till exempel CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Se Hur återställer jag från ett CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN fel?.
cloudFiles.useNotifications false Om du vill använda filmeddelandeläget för att avgöra när det finns nya filer. Om falseanvänder du kataloglistningsläge. Se Jämför Auto Loader-filidentifieringslägen.
Använd inte när cloudFiles.useManagedFileEvents är inställt på true.

(1) Automatisk inläsning lägger till följande nyckel/värde-taggpar som standard på bästa möjliga sätt:

  • vendor: Databricks
  • path: Platsen där data läses in. Inte tillgänglig i GCP på grund av etiketteringsbegränsningar.
  • checkpointLocation: Platsen för dataströmmens kontrollpunkt. Inte tillgänglig i GCP på grund av etiketteringsbegränsningar.
  • streamId: En globalt unik identifierare för strömmen.

Databricks reserverar dessa nyckelnamn och du kan inte skriva över deras värden.

Molnspecifik

Automatisk inläsning innehåller alternativ för att konfigurera molninfrastruktur för filaviseringsläge. Nödvändiga molnbehörigheter och installationsinstruktioner finns i Konfigurera automatiska inläsningsströmmar i filmeddelandeläge.

AWS

Ange endast följande alternativ om du väljer cloudFiles.useNotifications = true och vill att Auto Loader ska konfigurera meddelandetjänsterna åt dig:

Key Standardinställning Description
cloudFiles.region Regionen för EC2-instansen Den region där käll-S3-bucketen finns och där du vill skapa AWS SNS- och SQS-tjänsterna.
Key Standardinställning Description
cloudFiles.restrictNotificationSetupToSameAWSAccountId false Tillåt endast händelsemeddelanden från AWS S3-bucketar i samma konto som SNS-ämnet. När det är sant accepterar Auto Loader endast händelsemeddelanden från AWS S3-bucketar i samma konto som SNS-ämnet.
När falsebegränsar inte åtkomstprincipen inställningar för bucket- och SNS-ämnen mellan konton. Detta är användbart när SNS-ämnet och bucketsökvägen är associerade med olika konton.
Tillgänglig i Databricks Runtime 17.2 och senare.

Ange endast följande alternativ om du väljer cloudFiles.useNotifications = true och vill att Auto Loader ska använda en kö som du redan har konfigurerat:

Key Standardinställning Description
cloudFiles.queueUrl None Webbadressen till SQS-kön. Om det är tillgängligt förbrukar Auto Loader händelser direkt från den här kön i stället för att konfigurera sina egna AWS SNS- och SQS-tjänster.

AWS-autentiseringsalternativ

Ange följande autentiseringsalternativ för att använda en Databricks-tjänstautentiseringsuppgift:

Key Standardinställning Description
databricks.serviceCredential None Namnet på din Databricks-tjänsts referenskod. Tillgänglig i Databricks Runtime 16.1 och senare.

När Databricks-tjänstens autentiseringsuppgifter eller IAM-roller inte är tillgängliga kan du ange följande autentiseringsalternativ i stället:

Key Standardinställning Description
cloudFiles.awsAccessKey None AWS-åtkomstnyckelns ID för användaren. Måste vara försett med cloudFiles.awsSecretKey.
cloudFiles.awsSecretKey None Den hemliga åtkomstnyckeln för AWS-användaren. Måste vara försett med cloudFiles.awsAccessKey.
cloudFiles.roleArn None ARN för en IAM-roll att använda, om det behövs. Rollen kan antas från klustrets instansprofil eller genom att ange autentiseringsuppgifter med cloudFiles.awsAccessKey och cloudFiles.awsSecretKey.
cloudFiles.roleExternalId None En identifierare att ange när du antar en roll med hjälp av cloudFiles.roleArn.
cloudFiles.roleSessionName None Ett valfritt sessionsnamn att använda när du antar en roll med hjälp av cloudFiles.roleArn.
cloudFiles.stsEndpoint None En valfri slutpunkt för att ge åtkomst till AWS STS när du antar en roll med hjälp av cloudFiles.roleArn.
Azure

Du måste ange värden för alla följande alternativ om du anger cloudFiles.useNotifications = true och vill att Auto Loader ska konfigurera meddelandetjänsterna åt dig:

Key Standardinställning Description
cloudFiles.resourceGroup None Den Azure resursgrupp där lagringskontot skapas.
cloudFiles.subscriptionId None Det Azure prenumerations-ID där resursgruppen skapas.
databricks.serviceCredential None Namnet på din Databricks-tjänsts referenskod. Tillgänglig i Databricks Runtime 16.1 och senare.

Om en Databricks-tjänstautentiseringsuppgift inte är tillgänglig kan du ange följande autentiseringsalternativ i stället:

Key Standardinställning Description
cloudFiles.clientId None Klient-ID eller program-ID för tjänstens huvudman.
cloudFiles.clientSecret None Klienthemligheten för serviceprincipalen.
cloudFiles.connectionString None Anslutningssträng för lagringskontot, baserat på antingen kontoåtkomstnyckel eller signatur för delad åtkomst (SAS).
cloudFiles.tenantId None Det Azure klientorganisations-ID där tjänstens huvudnamn skapas.

Ange endast följande alternativ om du anger cloudFiles.useNotifications = true och vill att Auto Loader ska använda en befintlig kö:

Key Standardinställning Description
cloudFiles.queueName None Namnet på kön i Azure. Om det tillhandahålls tar molnfilkällan emot händelser direkt från denna kö i stället för att konfigurera sina egna Azure Event Grid- och kölagringstjänster. I så fall kräver din databricks.serviceCredential eller cloudFiles.connectionString endast läsbehörigheter i kön.
GCP

Automatisk inläsare kan konfigurera meddelandetjänster åt dig automatiskt genom att utnyttja Databricks -tjänstens autentiseringsuppgifter. Tjänstkontot som skapats med Databricks-tjänstens autentiseringsuppgifter kräver de behörigheter som anges i Konfigurera automatiska inläsningsströmmar i filmeddelandeläge.

Key Standardinställning Description
cloudFiles.projectId None ID:t för projektet som GCS-bucketen finns i. Google Cloud Pub/Sub-prenumerationen skapas också i det här projektet.
databricks.serviceCredential None Namnet på din Databricks-tjänsts referenskod. Tillgänglig i Databricks Runtime 16.1 och senare.

Om en Databricks-tjänstautentiseringsuppgift inte är tillgänglig kan du använda Google-tjänstkonton direkt. Du kan antingen konfigurera klustret så att det förutsätter ett tjänstkonto genom att följa Konfiguration av Google-tjänsten eller ange följande autentiseringsalternativ direkt:

Key Standardinställning Description
cloudFiles.client None Klient-ID för Google-tjänstkontot.
cloudFiles.clientEmail None E-postmeddelandet för Google-tjänstkontot.
cloudFiles.privateKey None Den privata nyckel som genereras för Google-tjänstkontot.
cloudFiles.privateKeyId None ID för den privata nyckel som genereras för Google-tjänstkontot.

Ange endast följande alternativ om du väljer cloudFiles.useNotifications = true och vill att Auto Loader ska använda en kö som du redan har konfigurerat:

Key Standardinställning Description
cloudFiles.subscription None Namnet på Google Cloud Pub/Sub-prenumerationen. Om det är tillgängligt använder molnfilkällan händelser från den här kön i stället för att ställa in sina egna GCS-aviseringar och Google Cloud Pub/Sub-tjänster.

Delta Lake

Följande alternativ gäller vid läsning från en Delta Lake-tabell med hjälp av spark.readStream.

Key Standardinställning Description
allowSourceColumnDrop None Ange ett versionsnummer för Delta-tabellen eller "always" för att tillåta att strömmen fortsätter efter att kolumnerna har tagits bort från källtabellschemat. När det är inställt på ett versionsnummer bekräftar alla schemaändringar upp till den versionen. Kräver schemaTrackingLocation. Se Byt namn på och ta bort kolumner med kolumnmappning i Delta Lake.
allowSourceColumnRename None Ange ett versionsnummer för Delta-tabellen eller "always" för att tillåta att strömmen fortsätter efter att kolumnerna har bytt namn i källtabellen. När det är inställt på ett versionsnummer bekräftar alla schemaändringar upp till den versionen. Kräver schemaTrackingLocation. Se Byt namn på och ta bort kolumner med kolumnmappning i Delta Lake.
allowSourceColumnTypeChange None Ange ett versionsnummer för Delta-tabellen eller "always" så att strömmen kan fortsätta efter att kolumntyperna har ändrats i källtabellen. När det är inställt på ett versionsnummer bekräftar alla schemaändringar upp till den versionen. Kräver schemaTrackingLocation. Se Typbreddning.
excludeRegex None Ett mönster för reguljära uttryck. Filer vars sökvägar matchar mönstret undantas från strömningsläsningen. Användbart för att filtrera bort filer som inte överensstämmer med den förväntade namngivningskonventionen.
failOnDataLoss true Om strömningsfrågan ska misslyckas om källdata har tagits bort på grund av loggkvarhållning (logRetentionDuration). Ange till för att false hoppa över saknade data och fortsätta bearbetningen. Se Konfigurera datalagring för frågor rörande tidsresor.
ignoreChanges (inaktuell) false Finns i Databricks Runtime 11.3 LTS och lägre. Genererar omskrivna datafiler efter ändringsåtgärder som UPDATE, MERGE INTO, DELETEeller OVERWRITE. Oförändrade rader kan genereras tillsammans med nya rader, så nedströmsanvändare måste hantera dubbletter. Raderingar sprids inte nedströms. Ersatt av skipChangeCommits i Databricks Runtime 12.2 LTS och senare.
ignoreDeletes (inaktuell) false Ignorerar transaktioner som tar bort data vid partitionsgränser (endast fullständig partition tas bort). Hanterar inte icke-partitionsborttagningar, uppdateringar eller andra ändringar. Använd skipChangeCommits i stället.
readChangeFeed eller readChangeData false Om du vill aktivera läsning av ändringsdataflödet för strömningsfrågan. När den är aktiverad genererar strömmen ändringar på radnivå (infogningar, uppdateringar och borttagningar) med ytterligare metadatakolumner. Se Använd Delta Lake-ändringsdataflöde på Azure Databricks.
schemaTrackingLocation None Sökväg till en katalog där Delta Lake spårar schemaändringar för strömningsläsningen. Krävs vid direktuppspelning från tabeller med kolumnmappning aktiverat och med hjälp av allowSourceColumn* alternativ för att hantera schemautvecklingen. Måste finnas inom checkpointLocation strömningsfrågan. Se Byt namn på och ta bort kolumner med kolumnmappning i Delta Lake.
skipChangeCommits false Ignorerar transaktioner som tar bort eller ändrar befintliga poster och processer som endast lägger till. Databricks rekommenderar det här alternativet för de flesta arbetsbelastningar som inte använder ändringsdataflöden. Finns i Databricks Runtime 12.2 LTS och senare. Se Hoppa över överordnad ändrings incheckningar med skipChangeCommits.
startingTimestamp Senaste tillgängliga Tidsstämpel att börja läsa från. Strömmen läser alla tabelländringar som har checkats in vid eller efter den angivna tidsstämpeln. Om tidsstämpeln föregår alla tillgängliga tabellincheckningar börjar strömmen från den tidigaste tillgängliga incheckningen. Det går inte att använda tillsammans med startingVersion. Ignorerade om kontrollpunkten för direktuppspelning redan finns.
Giltiga värden: en tidsstämpelsträng, till exempel "2019-01-01T00:00:00.000Z" eller en datumsträng, till "2019-01-01"exempel .
startingVersion Senaste tillgängliga Deltatabellversion att börja läsa från. Strömmen läser alla ändringar som har utförts vid eller efter den angivna versionen. Ange "latest" att endast de senaste ändringarna ska börja. Det går inte att använda tillsammans med startingTimestamp. Ignorerade om kontrollpunkten för direktuppspelning redan finns. Se Arbeta med tabellhistorik.
withEventTimeOrder false Delar upp den första ögonblicksbilden av tabellen i bucketar för händelsetid för att förhindra att poster felaktigt markeras som sena händelser och tas bort i tillståndskänsliga frågor med vattenstämplar. Det går inte att ändra när den inledande bearbetningen av ögonblicksbilder har påbörjats utan att kontrollpunkten tas bort. Finns i Databricks Runtime 11.3 LTS och senare. Se Bearbeta den första ögonblicksbilden utan att ta bort data.

Kafka

Använd dessa alternativ med antingen spark.readStream.format("kafka") eller spark.read.format("kafka"):

Key Standardinställning Description
assign None De specifika partitioner som ska användas. Du måste ange exakt ett av subscribealternativen , subscribePatterneller assign . Giltiga värden: en JSON-sträng, till exempel {"topicA":[0,1],"topicB":[2,4]}.
failOnDataLoss true Om frågan ska misslyckas om data kan ha gått förlorade, till exempel på grund av borttagna ämnen eller förskjutning av trunkering. Ange till för att false hoppa över saknade data och fortsätta. Giltiga värden: true, false.
Databricks uppskattar konservativt om data kan ha gått förlorade. Detta kan dock orsaka falska larm.
fetchoffset.numretries 3 Antalet återförsök vid hämtning av Kafka-förskjutningar misslyckas. Giltiga värden: icke-negativa heltal.
fetchoffset.retryintervalms 1000 Intervallet i millisekunder mellan återförsök för förskjutningshämtning. Giltiga värden: icke-negativa heltal.
groupIdPrefix spark-kafka-source (direktuppspelning), spark-kafka-relation (batch) Det anpassade prefixet som ska användas för det automatiskt genererade Kafka-konsumentgrupps-ID:t. Om kafka.group.id anges uttryckligen ignorerar anslutningsappen det här alternativet. Giltiga värden: valfri sträng.
includeHeaders false Om kafka-meddelanderubriker ska inkluderas som en kolumn i utdata. Giltiga värden: true, false.
kafkaconsumer.polltimeoutms None Tidsgränsen i millisekunder för Kafka-konsumentanropet poll() . Giltiga värden: positiva heltal.
kafka.bootstrap.servers None En kommaavgränsad lista över värd:portadresser för Kafka-mäklare. Anger Kafka-klientens bootstrap.servers egenskap.
Om du upptäcker att det inte finns några data från Kafka kan du söka efter felaktiga adresser i den här asynkrona adresslistan. Om koordinatoradresslistan är felaktig kanske det inte finns några fel. Kafka-klienter förutsätter att koordinatorerna kommer att vara tillgängliga så småningom och försöka igen för alltid när de får nätverksfel.
maxRecordsPerPartition None Det maximala antalet poster för varje Spark-partition. När den är inställd delar anslutningsappen upp Kafka-partitioner så att varje Spark-partition läser högst så här många poster. Giltiga värden: positiva heltal.
Du kan också använda det här alternativet med minPartitions. När båda alternativen har angetts använder Spark det alternativ som resulterar i fler partitioner.
minPartitions None Det minsta antalet Spark-partitioner som ska läsas från Kafka. När den är inställd delar anslutningsappen upp stora Kafka-partitioner för att öka parallelliteten. När den inte har angetts skapar Spark en partition för varje Kafka topic-partition. Användbart för att hantera dataförskjutning eller högsta belastning. Giltiga värden: positiva heltal.
Det här alternativet initierar Kafka-konsumenter igen för varje utlösare, vilket kan påverka prestanda med SSL.
startingOffsets latest (direktuppspelning), earliest (batch) Förskjutningen som frågan börjar läsa från. Giltiga värden: earliest, latesteller en JSON-sträng med förskjutningar för varje partition, {"topicA":{"0":23,"1":-2}}till exempel . I JSON-strängen -1 är den senaste förskjutningen. -2 är den tidigaste förskjutningen.
För direktuppspelningsfrågor gäller det här alternativet endast när en ny fråga startas. Återupptagna frågor använder alltid kontrollpunkten. Under en fråga börjar nya partitioner läsa med den tidigaste förskjutningen.
För batchfrågor tillåts latest inte.
startingOffsetsByTimestamp None En lista över startförskjutningar för varje partition, angiven som tidsstämplar i millisekunder. När det inte finns någon förskjutning för en tidsstämpel bestäms frågebeteendet av startingOffsetsByTimestampStrategy. Giltiga värden: en JSON-sträng med tidsstämplar för varje partition, till exempel {"topicA":{"0":1000,"1":2000}}.
För direktuppspelningsfrågor gäller det här alternativet endast när en ny fråga startas. Återupptagna frågor använder alltid kontrollpunkten. Under en fråga börjar nya partitioner läsa med den tidigaste förskjutningen.
startingOffsetsByTimestampStrategy error Den strategi som ska användas när ingen förskjutning hittas för en tidsstämpel som anges i startingOffsetsByTimestamp eller startingTimestamp. Giltiga värden: error (genererar ett undantag) latest (använder den senaste tillgängliga förskjutningen).
startingTimestamp None Den globala starttidsstämpeln i millisekunder som gäller för alla partitioner. När det inte finns någon förskjutning för tidsstämpeln styrs beteendet av startingOffsetsByTimestampStrategy. Giltiga värden: icke-negativa heltal.
subscribe None Ämnena att prenumerera på. Du måste ange exakt ett av subscribealternativen , subscribePatterneller assign . Giltiga värden: en kommaavgränsad lista med ämnesnamn.
subscribePattern None Det mönster som används för att prenumerera på ämnen. Du måste ange exakt ett av subscribealternativen , subscribePatterneller assign . Till exempel topic.*. Giltiga värden: alla Java regex-sträng.

Följande alternativ gäller endast för direktuppspelningsläsningar med spark.readStream.format("kafka"):

Key Standardinställning Description
bytesEstimateWindowLength 300s Tidsfönstret som används för att uppskatta återstående byte för måttet estimatedTotalBytesBehindLatest . Giltiga värden: varaktighetssträngar som 10m eller 600s. Se Hämta Kafka-mått.
maxOffsetsPerTrigger None Det maximala antalet förskjutningar som ska bearbetas per utlösarintervall. Förskjutningar fördelas proportionellt mellan ämnespartitioner. Giltiga värden: positiva heltal.
maxTriggerDelay 15m Den maximala tiden att vänta minOffsetsPerTrigger på att ackumuleras innan utlösaren utlöses. Giltiga värden: varaktighetssträngar som 10m eller 600s.
minOffsetsPerTrigger None Det minsta antalet förskjutningar som ska ackumuleras innan du utlöser en mikrobatch. När maxTriggerDelay har nåtts körs mikrobatchen oavsett. Giltiga värden: positiva heltal.

För förskjutningsalternativ som endast gäller för batchläsningar med spark.read.format("kafka"), se DataFrameReader Kafka-alternativ.

Alternativ för Kafka-klient (kafka.*) och autentisering finns i Alternativ.

DataFrameWriter-alternativ

Använd de här alternativen med DataFrameWriter.option() och DataFrameWriterV2.option() för att styra hur Azure Databricks skriver data.

Example

I följande exempel anges mergeSchema till för att True skriva en Delta Lake-tabell:

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

Avro

Key Standardinställning Description
avroSchema None Det fullständiga Avro-schemat som en JSON-sträng. Använd det här alternativet om du vill konvertera Spark SQL-typer till specifika Avro-typer. Gäller för Avro-filen.
avroSchemaUrl None En URL som pekar på en Avro-schemafil. Använd i stället för avroSchema när schemat lagras externt. Ömsesidigt uteslutande med avroSchema. Gäller för Avro-filen.
compression snappy Komprimeringskodc som ska användas när du skriver. Giltiga värden: uncompressed, deflate, snappy, bzip2, xz, . zstandard Gäller för Avro-filen.
recordName topLevelRecord Postnamnet på den översta nivån i Avro-schemat för utdata. Gäller för Avro-filen.
positionalFieldMatching false Om kolumner ska matchas mellan Spark-schemat och Avro-schemat efter fältposition i stället för efter namn. Gäller för Avro-filen.
recordNamespace Tom sträng Namnområdet för posten på den översta nivån i utdataschemat för Avro. Gäller för Avro-filen.

Delta Lake och Apache Iceberg

Key Standardinställning Description
clusterByAuto false Om du vill aktivera automatisk flytande klustring, där Azure Databricks väljer klustringskolumner baserat på frågemönster. Endast giltigt med mode("overwrite"). Det går inte att använda med append läge. Tillgänglig i Databricks Runtime 16.4 och senare. Gäller för Använd flytande klustring för tabeller.
mergeSchema None Om du vill aktivera schemautveckling för skrivåtgärden. Nya kolumner i källdataramen läggs till i måltabellschemat. Gäller för batch- och strömmande tillägg. Gäller för Uppdatera tabellschema.
overwriteSchema None Om du vill ersätta tabellschemat och partitioneringen vid överskrivning. Kräver mode("overwrite") utan replaceWhere. Det går inte att använda med partitionOverwriteMode. Gäller för Uppdatera tabellschema.
partitionOverwriteMode None Partitionsöverskrivningsläget. Ställ in på så att dynamic endast partitioner som innehåller nya data skrivs över, vilket gör att alla andra partitioner är oförändrade. Äldre läge, stöds inte på serverlös beräkning eller Databricks SQL. Giltiga värden: static, dynamic. Gäller för selektivt överskrivning av data med Delta Lake.
replaceOn None Ett booleskt uttryck som matchar rader i måltabellen som ska ersättas med rader från källfrågan. Kan referera till kolumner från både måltabellen och källfrågan. Rader i målet som matchar en källrad tas bort och ersätts. Om källan är tom sker inga borttagningar. Använd targetAlias för att skilja kolumnreferenser åt. Tillgänglig i Databricks Runtime 17.1 och senare. Gäller för selektivt överskrivning av data med Delta Lake.
replaceUsing None En kommaavgränsad lista med kolumnnamn som används för att matcha rader mellan måltabellen och källfrågan. Både målet och källan måste innehålla alla kolumner i listan. Rader i målet som matchar en källrad under likhetsjämförelse tas bort och ersätts. NULL värden behandlas som inte lika med och matchar inte. Tillgänglig i Databricks Runtime 16.3 och senare. Gäller för selektivt överskrivning av data med Delta Lake.
replaceWhere None Ett predikatuttryck. Atomiskt skriver endast över de poster som matchar predikatet. Gäller för selektivt överskrivning av data med Delta Lake.
targetAlias None Ett strängalias för måltabellen. Använd med replaceOn eller replaceWhere för att skilja kolumnreferenser när villkoret refererar till kolumner från både måltabellen och källfrågan. Gäller för selektivt överskrivning av data med Delta Lake.
txnAppId None En unik sträng som identifierar programmet för idempotent-skrivningar i foreachBatch åtgärder. Använd tillsammans med txnVersion för att säkerställa exakt en gång skrivningar till flera Delta Lake-tabeller. Gäller för skrivningar foreachBatch av idempotenttabeller.
txnVersion None Ett monotont ökande tal som används som transaktionsversion för idempotent-skrivningar i foreachBatch åtgärder. Använd tillsammans med txnAppId för att säkerställa exakt en gång skrivningar till flera Delta Lake-tabeller. Gäller för skrivningar foreachBatch av idempotenttabeller.
optimizeWrite None Om du vill aktivera Automatisk optimering av skrivning för den här skrivåtgärden. Åsidosätter konfigurationen spark.databricks.delta.optimizeWrite.enabled . Gäller för Vad är Delta Lake i Azure Databricks?.
userMetadata None En användardefinierad sträng som läggs till i incheckningsmetadata för skrivåtgärden. Visas i utdata DESCRIBE HISTORYfrån . Gäller för Enrich-tabeller med anpassade metadata.

CSV

Key Standardinställning Description
charToEscapeQuoteEscaping \0 (inte aktiverat) Tecknet som användes för att undkomma escape-tecknet när det skiljer sig från citattecknet. Gäller för csv (DataFrameWriter).
compression none Komprimeringskodc som ska användas när du skriver. Giltiga värden: none, bzip2, gzip, lz4, snappy, , deflate. zstd Gäller för csv (DataFrameWriter).
dateFormat yyyy-MM-dd Formatera sträng för datumkolumnvärden. Gäller för csv (DataFrameWriter).
emptyValue Tom sträng Strängen skrivs för tomma (icke-null)-värden. Gäller för csv (DataFrameWriter).
encoding UTF-8 Teckenkodningen för utdatafilerna. Gäller för csv (DataFrameWriter).
escape \ Tecknet som användes för att undkomma angivna värden. Gäller för csv (DataFrameWriter).
escapeQuotes true Om du vill undvika citattecken i angivna fältvärden. Gäller för csv (DataFrameWriter).
header false Om du vill skriva kolumnnamn som den första raden i utdata. Gäller för csv (DataFrameWriter).
ignoreLeadingWhiteSpace false Om du vill trimma inledande blanksteg från värden när du skriver. Gäller för csv (DataFrameWriter).
ignoreTrailingWhiteSpace false Om du vill trimma avslutande blanksteg från värden när du skriver. Gäller för csv (DataFrameWriter).
lineSep \n Radavgränsarsträngen som används mellan poster. Gäller för csv (DataFrameWriter).
locale en-US En java.util.Locale identifikator. Påverkar formatering av datum- och tidsstämpelvärden när du skriver.
nullValue Tom sträng Sträng som skrivits för null-värden. Gäller för csv (DataFrameWriter).
quote " Tecknet som används för att citera fältvärden som innehåller avgränsaren. Gäller för csv (DataFrameWriter).
quoteAll false Om alla fältvärden ska omges av citattecken oavsett innehåll. Gäller för csv (DataFrameWriter).
sep , Fältgränstecknet. Gäller för csv (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Formatsträngen för tidsstämpelkolumnvärden. Gäller för csv (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatera sträng för tidsstämpel utan tidszonskolumnvärden (TimestampNTZType).

Excel

Key Standardinställning Description
dataAddress None Bladnamnet eller startcellen för skrivning. Om det utelämnas skrivs till ett blad med namnet Sheet1 från cellen A1. Accepterar ett bladnamn ("SheetName") eller en enskild cellreferens ("SheetName!A1"). Cellområden stöds inte för skrivningar.
dateFormatInWrite yyyy-mm-dd Excel cellformatsträng som tillämpas på Date kolumner. Använder Excel formatsyntax.
headerRows 0 Om du vill skriva kolumnnamn som den första raden. Giltiga värden: 0, 1.
timestampNTZFormat yyyy-mm-dd hh:mm:ss Excel cellformatsträng som tillämpas på kolumnerna TimestampNTZ och Timestamp. Använder Excel formatsyntax.
version xlsx Den Excel filformatversion som ska skrivas. Giltiga värden: xlsx, xls.

JSON

Key Standardinställning Description
compression none Komprimeringskodc som ska användas när du skriver. Giltiga värden: none, bzip2, gzip, lz4, snappy, , deflate. zstd Gäller för json (DataFrameWriter).
dateFormat yyyy-MM-dd Formatera sträng för datumkolumnvärden. Gäller för json (DataFrameWriter).
encoding UTF-8 Teckenkodningen för utdatafilerna. Gäller för json (DataFrameWriter).
ignoreNullFields värdet för spark.sql.jsonGenerator.ignoreNullFields Om fält med null-värden ska utelämnas från JSON-utdata. Gäller för json (DataFrameWriter).
lineSep \n Radavgränsarsträngen som används mellan poster. Gäller för json (DataFrameWriter).
locale en-US En java.util.Locale identifikator. Påverkar formatering av datum- och tidsstämpelvärden när du skriver.
pretty false Om du vill aktivera snygga (indragna, flerrads) JSON-utdata.
sortKeys false Om du vill sortera nycklarna för JSON-objekt alfabetiskt i utdata. Användbart för att producera deterministiska utdata.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Formatsträngen för tidsstämpelkolumnvärden. Gäller för json (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatera sträng för tidsstämpel utan tidszonskolumnvärden (TimestampNTZType).
writeNonAsciiCharacterAsCodePoint false Om du vill koda icke-ASCII-tecken som \uXXXX Unicode-escape-sekvenser i stället för literala UTF-8-tecken i utdata.

ORC

Key Standardinställning Description
compression zstd Komprimeringskodc som ska användas när du skriver. Giltiga värden: none, uncompressed, snappy, zlib, lzo, zstd, , lz4. brotli Gäller för orc (DataFrameWriter).

Parkett

Key Standardinställning Description
compression snappy Komprimeringskodc som ska användas när du skriver. Giltiga värden: none, uncompressed, snappy, gzip, lzo, brotli, lz4, , lz4_raw. zstd Gäller för parquet (DataFrameWriter).
spark.sql.parquet.outputTimestampType INT96 Den fysiska typ som används för att koda tidsstämpelkolumner. Giltiga värden: INT96, TIMESTAMP_MICROS, TIMESTAMP_MILLIS. Används INT96 för kompatibilitet med äldre Parquet-läsare som inte stöder standardtidsstämpeltyperna.

Text

Key Standardinställning Description
compression none Komprimeringskodc som ska användas när du skriver. Giltiga värden: none, bzip2, gzip, lz4, snappy, , deflate. zstd Gäller för text (DataFrameWriter).
encoding UTF-8 Teckenkodningen för utdatafilerna.
lineSep \n Radavgränsarsträngen som används mellan poster. Gäller för text (DataFrameWriter).

XML

Key Standardinställning Description
arrayElementName item Elementnamnet för matriselement som inte har något explicit namn. Gäller för XML (DataFrameWriter).
attributePrefix _ Prefixet har förberetts för fältnamn som motsvarar XML-attribut. Gäller för XML (DataFrameWriter).
compression none Komprimeringskodc som ska användas när du skriver. Giltiga värden: none, bzip2, gzip, lz4, snappy, , deflate. zstd Gäller för XML (DataFrameWriter).
dateFormat yyyy-MM-dd Formatera sträng för datumkolumnvärden. Gäller för XML (DataFrameWriter).
declaration version="1.0" encoding="UTF-8" standalone="yes" XML-deklarationssträngen som skrivs överst i varje utdatafil. Ange till en tom sträng för att utelämna deklarationen. Gäller för XML (DataFrameWriter).
encoding UTF-8 Teckenkodningen för utdatafilerna. Gäller för XML (DataFrameWriter).
indent 4 blanksteg Strängen som används för att dra in underordnade element i utdata. Ange till en tom sträng för att inaktivera indrag och skriva varje rad på en enda rad.
locale en-US En java.util.Locale identifikator. Påverkar formatering av datum- och tidsstämpelvärden när du skriver.
nullValue null Strängen som skrivits för null-värden. När värdet är inställt på nullutelämnas attribut och underordnade element för null-fält. Gäller för XML (DataFrameWriter).
rootTag ROWS Rotelementstaggen som omsluter alla radelement i utdata. Gäller för XML (DataFrameWriter).
rowTag ROW Elementtaggen som representerar en rad i utdata. Gäller för XML (DataFrameWriter).
singleVariantColumn None Namnet på den enda variantkolumnen som ska skrivas till XML-filer. Gäller för XML (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Formatsträngen för tidsstämpelkolumnvärden. Gäller för XML (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatera sträng för tidsstämpel utan tidszonskolumnvärden. Gäller för XML (DataFrameWriter).
validateName true Om ett undantag ska utlösas om ett kolumnnamn inte är en giltig XML-elementidentifierare. Gäller för XML (DataFrameWriter).
valueTag _VALUE Fältnamnet som används för teckendata i XML-element som också har attribut eller underordnade element. Gäller för XML (DataFrameWriter).

DataStreamWriter-alternativ

Använd dessa alternativ med DataStreamWriter.option() för att konfigurera direktuppspelningsskrivningar.

Example

I följande exempel anges kontrollpunktsplatsen för en dataström:

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

Gemensamma

Key Standardinställning Description
checkpointLocation Ingen (krävs) Sökväg till kontrollpunktskatalogen för strömningsfrågan. Krävs för feltolerans och bearbetningsgarantier exakt en gång. Varje direktuppspelningsfråga måste använda en unik kontrollpunktsplats. Databricks rekommenderar att du lagrar kontrollpunkter i en Unity Catalog-volym eller molnlagringssökväg. Se Kontrollpunkter för strukturerad strömning.
path None Utdatasökväg för filbaserade direktuppspelningsmottagare, till exempel Parquet. Gäller endast för filbaserade format.

Konsolmottagare

Key Standardinställning Description
numRows 20 Antalet rader som ska visas för varje mikrobatch när du skriver till konsolmottagaren.
truncate true Om du vill trunkera långa strängar när rader visas. Ange till för att false visa fullständiga strängvärden.

Delta Lake

Följande alternativ gäller när du skriver en dataström till en Delta Lake-tabell med hjälp av format("delta"). Skriv över alternativ som overwriteSchema, replaceWhereoch partitionOverwriteMode stöds inte för strömningsskrivningar.

Key Standardinställning Description
mergeSchema false Om du vill utveckla Delta Lake-tabellschemat när strömmande DataFrame innehåller nya kolumner. Gäller endast för tilläggsutdataläge. Gäller för Uppdatera tabellschema.
userMetadata None En användardefinierad sträng som läggs till i incheckningsmetadata för skrivåtgärden. Visas i utdata DESCRIBE HISTORYfrån . Gäller för Enrich-tabeller med anpassade metadata.

Filmottagare

Följande alternativ gäller när du skriver en dataström till filbaserade format (Parquet, JSON, CSV, ORC, text). Formatspecifika alternativ finns i DataFrameWriter-alternativ.

Key Standardinställning Description
retention None Hur länge du behåller metadatafiler för mottagare som används för feltolerans och komprimering. Accepterar en tidssträng som 7 days eller 24 hours. När de inte har angetts behålls metadatafiler på obestämd tid.

Kafka-mottagare

En fullständig lista över alternativ för att skriva strömmar till Kafka finns i Alternativ.

Key Standardinställning Description
kafka.bootstrap.servers None Required. En kommaavgränsad lista över Kafka-koordinatoradresser host:port .
topic None Kafka-målavsnittet för alla rader. Krävs om DataFrame inte innehåller någon topic kolumn.
kafka.* None Alla Kafka-producentkonfigurationer med prefixet kafka.. Till exempel kafka.compression.type.

Minnesmottagare

Key Standardinställning Description
queryName Ingen (krävs) Namnet på den minnesinterna tabell som frågan skriver till. Krävs för minnesmottagaren. Kan även konfigureras via .queryName().
mode exactlyonce Leveransgaranti för minnesmottagaren. exactlyonce använder mikrobatchläge med exakt en gång-semantik. atleastonce använder kontinuerligt läge med minst en gång semantik. Giltiga värden: exactlyonce, atleastonce.

Funktionsalternativ för Spark

Vissa inbyggda Spark SQL-funktioner accepterar en options karta som styr parsnings- eller serialiseringsbeteendet. Skicka alternativ som en Python dict eller en Scala Map[String, String].

Example

I följande exempel parsas en JSON-kolumn när felaktiga poster släpps:

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

Avro-funktioner accepterar samma alternativ som motsvarande DataFrame-alternativ:

Example

I följande exempel avkodas en Avro-kolumn med schemautveckling aktiverat:

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

Dessutom accepterar schemaregistrets varianter av from_avro och to_avro följande alternativ:

Key Standardinställning Description
schemaId None Schema-ID från Confluent Schema Registry som ska användas vid avkodning av Avro-data som kodades med ett schema som inte är kompatibelt med jsonFormatSchema. Gäller endast för from_avro .
confluent.schema.registry.* None Confluent Schema Registry-klientkonfigurationsegenskaper. Skicka alla Confluent SR-klientegenskaper med det här prefixet, till exempel confluent.schema.registry.basic.auth.user.info för grundläggande autentiseringsuppgifter. Krävs för schemaregistrets varianter av from_avro och to_avro.

CSV

CSV-funktioner accepterar samma alternativ som motsvarande DataFrame-alternativ:

Example

I följande exempel läss CSV med en anpassad avgränsare och NULL ett värde:

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

JSON-funktioner accepterar samma alternativ som motsvarande DataFrame-alternativ:

Example

I följande exempel skrivs JSON med NULL fält ignorerade och ganska formatering aktiverat:

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 och to_protobuf använd inte en filbaserad DataSource. Protobuf-data läss och skrivs alltid som binära kolumner med hjälp av dessa funktioner. Alternativen skickas som en Map[String, String] och är skiftlägeskänsliga.

Example

I följande exempel avkodas en Protobuf-kolumn med permissivt läge:

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

Protobuf-funktioner använder följande alternativ:

Key Standardinställning Description
mode FAILFAST Hantera skadade poster. FAILFAST genererar ett undantag. PERMISSIVE anger felaktiga fält till null. Giltiga värden: FAILFAST, PERMISSIVE. Gäller för from_protobuf.
recursive.fields.max.depth -1 (inaktiverad) Maximalt rekursionsdjup för rekursiva Protobuf-fält. Ställ in på för att 0 inaktivera rekursivt fältstöd. Giltiga värden: 0 till 10. Gäller för from_protobuf.
convert.any.fields.to.json false Om Protobuf-fält Any ska konverteras till en JSON-sträng i stället för en STRUCT. Gäller för from_protobuf.
emit.default.values false Om fält ska genereras med noll eller standardvärden (proto3-semantik). När falseutelämnas fält med standardvärden från utdata. Gäller för from_protobuf.
enums.as.ints false Om uppräkningsfält ska återges som heltalsvärden i stället för strängar. Gäller för from_protobuf.
upcast.unsigned.ints false Om du vill upcasta uint32 till Long och uint64 för att Decimal(20,0) förhindra heltalsspill. Gäller för from_protobuf.
unwrap.primitive.wrapper.types false Om du vill packa google.protobuf upp omslutningstyper (till exempel Int32Value och StringValue) till motsvarande primitiva Spark-typer. Gäller för from_protobuf.
retain.empty.message.types false Om du vill behålla tomma Protobuf-meddelandetyper i utdataschemat genom att infoga en dummy-kolumn. Gäller för from_protobuf.
schema.registry.subject None Schema Registry-ämnesnamn. Krävs när du använder schemaregistrets varianter av from_protobuf och to_protobuf.
schema.registry.address None Schemaregisteradress (värd och port). Krävs när du använder schemaregistrets varianter av from_protobuf och to_protobuf.
schema.registry.protobuf.name None Anger vilket Protobuf-meddelande som ska användas när schemaregisterämnet innehåller flera meddelanden. Optional.

XML

XML-funktioner accepterar samma alternativ som motsvarande DataFrame-alternativ:

Example

I följande exempel skrivs XML med anpassade rot- och radtaggar:

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