Naslaginformatie over Spark-API-opties

Deze pagina bevat beschikbare invoer- en uitvoeropties voor Spark-API's die gegevens lezen en schrijven.

Opties voor DataFrameReader

Gebruik deze opties met DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO en Auto Loader om te bepalen hoe Azure Databricks gegevensbestanden leest.

Example

In het volgende voorbeeld wordt het lezen van JSON-bestanden ingesteld multiLineTrue :

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)

Gemeenschappelijk

De volgende opties zijn van toepassing op alle bestandsindelingen.

Key Verstek Description
ignoreCorruptFiles false Of beschadigde bestanden moeten worden genegeerd. Als dit waar is, worden de Spark-taken nog steeds uitgevoerd wanneer beschadigde bestanden worden aangetroffen en wordt de gelezen inhoud nog steeds teruggegeven. Voor COPY INTOkunt u overgeslagen beschadigde bestanden observeren, zoals numSkippedCorruptFiles in de kolom van de operationMetrics Delta Lake-geschiedenis. Beschikbaar in Databricks Runtime 11.3 LTS en hoger.
ignoreMissingFiles false voor Automatisch laden, true voor COPY INTO (verouderd) Of ontbrekende bestanden moeten worden genegeerd. Indien waar, worden de Spark-taken nog steeds uitgevoerd wanneer er ontbrekende bestanden optreden en de inhoud nog steeds wordt geretourneerd. Beschikbaar in Databricks Runtime 11.3 LTS en hoger.
modifiedAfter None Een optionele tijdstempel als filter om alleen bestanden op te nemen die een wijzigingstijdstempel hebben na de opgegeven tijdstempel.
modifiedBefore None Een optionele tijdstempel als filter om alleen bestanden op te nemen met een wijzigingstijdstempel vóór de opgegeven tijdstempel.
pathGlobFilter of fileNamePattern None Een mogelijk globpatroon voor het selecteren van bestanden. Gelijk aan PATTERN in COPY INTO (verouderd). fileNamePattern kan worden gebruikt in read_files.
recursiveFileLookup false Wanneer true, deze optie doorzoekt geneste mappen, zelfs als hun namen geen partitienaamschema volgen, zoals date=2019-07-01.

Avro

Key Verstek Description
avroSchema None Optioneel schema dat wordt aangeleverd door een gebruiker in Avro-formaat. Bij het lezen van Avro kan deze optie worden ingesteld op een ontwikkeld schema dat compatibel is, maar verschilt van het werkelijke Avro-schema. Het deserialisatieschema is consistent met het ontwikkelde schema. Als u bijvoorbeeld een ontwikkeld schema instelt dat één extra kolom met een standaardwaarde bevat, bevat het leesresultaat ook de nieuwe kolom.
avroSchemaEvolutionMode none De ontwikkeling van schema's afhandelen bij het gebruik van een schemaregister. Geldige waarden: none (schemawijzigingen negeren en doorgaan met de taak), restart (wanneer schemawijzigingen worden gedetecteerd, wordt een UnknownFieldException en opnieuw opstarten van een taak vereist).
datetimeRebaseMode LEGACY Hiermee bepaalt u de herbepaling van de DATUM- en TIJDSTEMPEL-waarden tussen de Juliaanse en Proleptisch Gregoriaanse kalenders. Geldige waarden: EXCEPTION, LEGACYen CORRECTED.
enableStableIdentifiersForUnionType false Of u stabiele veldnamen wilt gebruiken voor Avro Union-typen. Wanneer deze optie is ingeschakeld, worden veldnamen van het samenvoegtype afgeleid van hun typenamen in kleine letters (bijvoorbeeld member_int, member_string). Hiermee wordt een uitzondering gegenereerd als twee typenamen identiek zijn na het verlagen.
mergeSchema false Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen. mergeSchema Avro versoepelt de gegevenstypen niet.
mode FAILFAST Parsermodus voor het verwerken van beschadigde records. Geldige waarden: FAILFAST (genereert een uitzondering), PERMISSIVE (hiermee worden ongeldige velden ingesteld op null), DROPMALFORMED (op de achtergrond worden ongeldige records verwijderd).
readerCaseSensitive true Hiermee specificeert u de hoofdlettergevoeligheid wanneer rescuedDataColumn is ingeschakeld. Indien waar, kunt u de gegevenskolommen redden waarvan de namen verschillen per geval van het schema. Als dit onwaar is, leest u de gegevens op een niet-hoofdlettergevoelige manier.
recursiveFieldMaxDepth None De maximale recursiediepte voor recursieve Avro-velden. Ingesteld op 1 het afkappen van alle recursieve velden, 2 om één recursieniveau toe te staan, enzovoort 15. Wanneer niet-begin- of 0recursieve velden niet zijn toegestaan. Geldige waarden: 0 tot 15.
rescuedDataColumn None Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd vanwege: een gegevenstype komt niet overeen en het schema komt niet overeen (inclusief kolombehuizing) in een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
Voor meer informatie, raadpleeg Wat is de kolom met geredde gegevens?.
stableIdentifierPrefixForUnionType member_ Het voorvoegsel dat moet worden gebruikt voor stabiele samenvoegingsveldnamen wanneer enableStableIdentifiersForUnionType=true.

CSV

Key Verstek Description
badRecordsPath None Het pad voor het opslaan van bestanden met informatie over ongeldige CSV-records.
charToEscapeQuoteEscaping \0 Het teken dat wordt gebruikt om het teken te escapen dat wordt gebruikt voor aanhalingstekens. Bijvoorbeeld voor de volgende record: [ " a\\", b ]
  • Als het teken om aan de '\' escape-code te ontsnappen niet is gedefinieerd, wordt de record niet geparseerd. De parser leest de tekens: [a],[\],["],[,],[ ],[b] en geeft een foutmelding omdat er geen afsluitend aanhalingsteken kan worden gevonden.
  • Als het teken om aan het '\' te ontsnappen gedefinieerd is als '\', wordt het record gelezen met 2 waarden: [a\] en [b].
columnNameOfCorruptRecord _corrupt_record Ondersteund voor automatisch laden. Niet ondersteund voor COPY INTO (verouderd).
De kolom voor het opslaan van records die misvormd zijn en niet kunnen worden geparseerd. Als het mode voor parseren is ingesteld als DROPMALFORMED, is deze kolom leeg.
comment \0 Hiermee definieert u het teken dat een regelcommentaar aangeeft wanneer deze wordt gevonden aan het begin van een tekstregel. Hiermee '\0' schakelt u het overslaan van opmerkingen uit.
dateFormat yyyy-MM-dd De notatie voor het parseren van datumtekenreeksen.
emptyValue Lege tekenreeks Tekenreeksweergave van een lege waarde.
enableDateTimeParsingFallback false Of u wilt terugvallen op het verouderde datum- en tijdstempelparseringsgedrag wanneer een waarde niet kan worden geparseerd met de opgegeven indeling. Wanneer falseparseringsfouten een fout veroorzaken of null produceren, afhankelijk van mode.
encoding of charset UTF-8 De naam van de codering van de CSV-bestanden. Zie java.nio.charset.Charset voor de lijst met opties. UTF-16 en UTF-32 kunnen niet worden gebruikt wanneer multilinetrue is.
enforceSchema true Of u het opgegeven of afgeleid schema geforceerd wilt toepassen op de CSV-bestanden. Als de optie is ingeschakeld, worden headers van CSV-bestanden genegeerd. Deze optie wordt standaard genegeerd wanneer u AutoLoader gebruikt om gegevens te redden en schemaontwikkeling mogelijk te maken.
escape \ Het escape-teken dat moet worden gebruikt bij het parseren van de gegevens.
extension csv De verwachte bestandsnaamextensie. Bestanden zonder deze extensie worden uitgefilterd tijdens leesbewerkingen.
failOnUnknownFields false Of dit mislukt wanneer de CSV-record kolommen bevat die niet aanwezig zijn in het schema. Wanneer false, niet-herkende kolommen op de achtergrond worden verwijderd of gered, afhankelijk rescuedDataColumnvan .
failOnWidenedFields false Of een veldwaarde niet kan worden geparseerd als het gedeclareerde schematype zonder breder te worden. Wanneer false, typebrede waarden op de achtergrond worden gered, afhankelijk rescuedDataColumnvan . De instelling failOnUnknownFields=true kan de effecten van deze optie maskeren.
header false Of de CSV-bestanden een koptekst bevatten. Auto Loader gaat ervan uit dat bestanden headers hebben bij het uitstellen van het schema.
ignoreLeadingWhiteSpace false Of u voorloopspaties voor elke geparseerde waarde wilt negeren.
ignoreTrailingWhiteSpace false Hiermee wordt aangegeven of u volgspaties voor elke geparseerde waarde wilt negeren.
inferSchema false Of u de gegevenstypen van de geparseerde CSV-records wilt afleiden of ervan wilt uitgaan dat alle kolommen van StringTypezijn. Vereist een extra pass over de gegevens indien ingesteld op true. Voor Auto Loader moet je in plaats daarvan cloudFiles.inferColumnTypes gebruiken.
inputBufferSize 1048576 (1 MB) De buffergrootte in bytes voor de CSV-parser. Handig voor het afstemmen van het geheugengebruik bij het parseren van grote CSV-bestanden. Geldige waarden: positieve gehele getallen.
lineSep Geen, die betrekking heeft \rop , \r\nen \n Een tekst tussen twee opeenvolgende CSV-records.
locale US Een java.util.Locale-id. Beïnvloedt de standaarddatum, tijdstempel en decimale parsering in het CSV-bestand.
maxCharsPerColumn -1 Maximum aantal tekens dat wordt verwacht van een waarde om te parseren. Kan worden gebruikt om geheugenfouten te voorkomen. Standaard ingesteld op -1, wat onbeperkt betekent. Geldige waarden: positieve gehele getallen of -1 onbeperkt.
maxColumns 20480 De vaste limiet van het aantal kolommen dat een record kan hebben. Geldige waarden: positieve gehele getallen.
mergeSchema false Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen. Standaard ingeschakeld voor Auto Loader bij het afleiden van het schema.
mode PERMISSIVE Parsermodus voor het omgaan met verkeerd gevormde records. Geldige waarden: PERMISSIVE, DROPMALFORMED, FAILFAST.
multiLine false Of de CSV-records meerdere regels omvatten.
nanValue NaN De tekenreeksweergave van een niet-getal waarde bij het parseren van FloatType- en DoubleType-kolommen.
negativeInf -Inf De tekenreeksweergave van negatief oneindig bij het parseren van de kolommen FloatType of DoubleType.
nullValue Lege tekenreeks Tekenreeksweergave van een null-waarde.
parserCaseSensitive (afgeschaft) false Tijdens het lezen van bestanden moet worden bepaald of kolommen in de koptekst hoofdlettergevoelig moeten worden uitgelijnd met het schema. Dit is true standaard voor autolaadprogramma's. Kolommen die in lettergrootte verschillen, worden in de rescuedDataColumn hersteld indien ingeschakeld. Deze optie is afgeschaft ten gunste van readerCaseSensitive.
positiveInf Inf De tekenreeksweergave van positieve oneindigheid bij het parseren van FloatType- of DoubleType-kolommen.
preferDate true Probeert indien mogelijk strings als datums te interpreteren in plaats van als een tijdstempel. U moet ook schemadeductie gebruiken door het in- inferSchema of gebruiken cloudFiles.inferColumnTypes van automatisch laden.
quote " Het teken dat wordt gebruikt voor het escapen van waarden waarin het veldscheidingsteken deel uitmaakt van de waarde.
readerCaseSensitive true Hiermee specificeert u de hoofdlettergevoeligheid wanneer rescuedDataColumn is ingeschakeld. Indien waar, kunt u de gegevenskolommen redden waarvan de namen verschillen per geval van het schema. Als dit onwaar is, leest u de gegevens op een niet-hoofdlettergevoelige manier.
rescuedDataColumn None Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd vanwege: een gegevenstype komt niet overeen en het schema komt niet overeen (inclusief kolombehuizing) in een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden. Voor meer informatie, raadpleeg Wat is de kolom met geredde gegevens?.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
sep of delimiter , De scheidingstekenreeks tussen kolommen.
singleVariantColumn None Als deze is ingesteld op een kolomnaam, leest u de hele CSV-record in één VariantType kolom met die naam in plaats van elk veld in een eigen kolom te parseren. Vereist header=true.
skipRows 0 Het aantal rijen vanaf het begin van het CSV-bestand dat moet worden genegeerd (inclusief opmerkingen en lege rijen). Als header waar is, is de koptekst de eerste niet-overgeslagen en niet als commentaar gemarkeerde rij. Geldige waarden: positieve gehele getallen of 0.
timeFormat HH:mm:ss De notatie voor het parseren van TimeType kolomwaarden.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Het formaat voor het parseren van tijdstempelreeksen.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] De notatie voor het parseren van tijdstempels zonder tijdzonetekenreeksen (TimestampNTZType).
timeZone None De java.time.ZoneId te gebruiken bij het parseren van tijdstempels en datums.
unescapedQuoteHandling STOP_AT_DELIMITER De aanpak voor het omgaan met niet-ontsloten aanhalingstekens. Toegestane opties:
  • STOP_AT_CLOSING_QUOTE: Als er ongemarkeerde aanhalingstekens worden gevonden in de invoer, moet u het aanhalingsteken accumuleren en doorgaan met het parseren van de waarde als een gequote waarde, totdat er een afsluitend aanhalingsteken wordt gevonden.
  • BACK_TO_DELIMITER: Als er niet-escapete aanhalingstekens worden gevonden in de invoer, kunt u de waarde beschouwen als een waarde zonder aanhalingstekens. Hierdoor verzamelt de parser alle tekens van de huidige geparseerde waarde totdat het scheidingsteken dat is gedefinieerd door sep is gevonden. Als er geen scheidingsteken in de waarde wordt gevonden, blijft de parser tekens uit de invoer accumuleren totdat een scheidingsteken of regeleinde is gevonden.
  • STOP_AT_DELIMITER: Als er niet-escapete aanhalingstekens worden gevonden in de invoer, kunt u de waarde beschouwen als een waarde zonder aanhalingstekens. Hierdoor verzamelt de parser alle tekens totdat het scheidingsteken dat is gedefinieerd door sep of een regeleinde in de invoer wordt gevonden.
  • SKIP_VALUE: Als niet-omsloten aanhalingstekens in de invoer worden gevonden, wordt de inhoud die voor de opgegeven waarde is geëxtraheerd overgeslagen (totdat het volgende scheidingsteken is gevonden) en de waarde die in nullValue is ingesteld, wordt in plaats daarvan geproduceerd.
  • RAISE_ERROR: Als er onopgezichtige aanhalingstekens worden gevonden in de invoer, wordt er een TextParsingException gegenereerd.

Excel

Key Verstek Description
dataAddress None Het celbereik dat moet worden gelezen in Excel syntaxis. Als u dit weglaat, worden alle geldige cellen uit het eerste blad gelezen. Gebruik "SheetName!C5:H10" deze functie om een bereik te lezen van een benoemd blad, "C5:H10" om een bereik te lezen van het eerste blad of "SheetName" om alle gegevens uit een specifiek blad te lezen.
headerRows 0 Het aantal initiële rijen dat moet worden gebruikt als kolomnaamkoppen. Wanneer dataAddress dit is opgegeven, is dit van toepassing binnen het celbereik. Wanneer 0, kolomnamen worden automatisch gegenereerd als _c1, _c2, _c3enz. Geldige waarden: 0, 1.
ignoreMissingSheet false Of u bestanden die niet het blad bevatten dat is opgegeven, dataAddressop de achtergrond wilt overslaan. Wanneer falseer een fout optreedt als er een bestand ontbreekt in het aangevraagde blad. Alleen van toepassing wanneer een bladnaam is opgegeven in dataAddress. Geldige waarden: true, false.
includePhoneticRuns false Of fonetische aantekeningen (zoals pinyin of furigana) moeten worden samengevoegd met celtekenreekswaarden bij het lezen van XLSX-bestanden. Geldige waarden: true, false.
operation readSheet De bewerking die moet worden uitgevoerd op de Excel werkmap. Geldige waarden: readSheet (leest gegevens uit een blad) listSheets (retourneert een struct met velden sheetIndex: long en sheetName: String voor elk blad).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Aangepaste notatietekenreeks voor tijdstempel-zonder-tijdzonewaarden die zijn opgeslagen als tekenreeksen in Excel. Aangepaste datumnotaties volgen de notaties bij Datum/tijd-patronen.
dateFormat yyyy-MM-dd Tekenreeks voor aangepaste notatie voor tekenreekswaarden gelezen als Date. Aangepaste datumnotaties volgen de notaties bij Datum/tijd-patronen.

JSON

Key Verstek Description
allowBackslashEscapingAnyCharacter false Of backslashes toegestaan zijn om karakters die hen opvolgen te ontsnappen. Als dit niet is ingeschakeld, kunnen alleen tekens die expliciet door de JSON-specificatie zijn vermeld, worden geëscaped.
allowComments false Of het gebruik van opmerkingen in java-, C- en C++-stijl ('/', '*'en '//' variëteiten) binnen geparseerde inhoud al dan niet is toegestaan.
allowNonNumericNumbers true Hiermee wordt aangegeven of de reeks niet-nummer tokens (NaN) als geldige drijvende getalwaarden kunnen worden gebruikt.
allowNumericLeadingZeros false Of u wilt toestaan dat integrale getallen beginnen met extra (negeerbare) nullen (bijvoorbeeld 000001).
allowSingleQuotes true Hiermee wordt aangegeven of enkele aanhalingstekens (apostrof, teken '\') kunnen worden toegestaan voor het citeren van strings (namen en waarden).
allowUnquotedControlChars false Of JSON-tekenreeksen ongescapete besturingstekens mogen bevatten (ASCII-tekens met een waarde kleiner dan 32, inclusief tab- en regelinvoertekens) of niet.
allowUnquotedFieldNames false Of u het gebruik van niet-aanhalingeerde veldnamen wilt toestaan, die zijn toegestaan door JavaScript, maar niet door de JSON-specificatie.
alternateVariantEncoding None De codering die wordt gebruikt voor variantwaarden in de bron-JSON. Ingesteld op Z85 het decoderen van variantwaarden die zijn gecodeerd met Base85 in plaats van opgeslagen als inline JSON.
badRecordsPath None Het pad voor het opslaan van bestanden met informatie over ongeldige JSON-records.
Het gebruik van de badRecordsPath optie in een gegevensbron op basis van bestanden heeft de volgende beperkingen:
  • Het is niet-transactioneel en kan leiden tot inconsistente resultaten.
  • Tijdelijke fouten worden behandeld als fouten.
columnNameOfCorruptRecord _corrupt_record De kolom voor het opslaan van records die misvormd zijn en niet kunnen worden geparseerd. Als het mode voor parseren is ingesteld als DROPMALFORMED, is deze kolom leeg.
dateFormat yyyy-MM-dd De notatie voor het parseren van datumtekenreeksen.
dropFieldIfAllNull false Of kolommen van alle null-waarden of lege matrices en structs tijdens schemadeductie moeten worden genegeerd.
encoding of charset UTF-8 De naam van de codering van de JSON-bestanden. Zie java.nio.charset.Charset voor een lijst met opties. U kunt niet gebruiken UTF-16 en UTF-32 wanneer multiline is true.
inferTimestamp false Of je al dan niet wilt proberen om tijdstempelreeksen af te leiden als een TimestampType. Wanneer dit is ingesteld, kan het aanzienlijk langer duren voordat schemadeductie is ingesteld true. U moet cloudFiles.inferColumnTypes inschakelen om te gebruiken met Auto Loader.
lineSep Geen, die betrekking heeft \rop , \r\nen \n Een string tussen twee opeenvolgende JSON-records.
locale US Een java.util.Locale-id. Beïnvloedt de standaarddatum, tijdstempel en decimale parsering binnen de JSON.
maxNestingDepth 500 De maximaal toegestane nestdiepte voor JSON-objecten en matrices. Verhoog deze waarde voor diep geneste documenten. Geldige waarden: positieve gehele getallen.
maxNumLen 1000 De maximale lengte van het aantal tokens in de JSON-invoer. Verhoog deze waarde voor JSON met grote numerieke letterlijke waarden. Geldige waarden: positieve gehele getallen.
maxStringLen Onbeperkt De maximale lengte van tekenreekswaarden in de JSON-invoer. Ingesteld om het geheugengebruik te beperken bij het parseren van JSON met grote tekenreeksen. Geldige waarden: positieve gehele getallen.
mode PERMISSIVE Parsermodus voor het omgaan met verkeerd gevormde records. Geldige waarden: PERMISSIVE, DROPMALFORMED, FAILFAST.
multiLine false Of de JSON-records meerdere regels omvatten.
prefersDecimal false Probeert tekenreeksen af te leiden als DecimalType in plaats van float- of double-type, indien mogelijk. U moet ook schemadeductie gebruiken door het in- inferSchema of gebruiken cloudFiles.inferColumnTypes van automatisch laden.
primitivesAsString false Of primitieve typen zoals getallen en booleaanse waarden als StringType moeten worden afgeleid.
readerCaseSensitive true Hiermee specificeert u de hoofdlettergevoeligheid wanneer rescuedDataColumn is ingeschakeld. Indien waar, kunt u de gegevenskolommen redden waarvan de namen verschillen per geval van het schema. Als dit onwaar is, leest u de gegevens op een niet-hoofdlettergevoelige manier. Beschikbaar in Databricks Runtime 13.3 en hoger.
rescuedDataColumn None Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd als gevolg van een niet-overeenkomend gegevenstype of niet-overeenkomende schema's (inclusief kolombehuizing) naar een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden. Raadpleeg voor meer details Wat is de kolom met geredde data?.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
singleVariantColumn None Of u het hele JSON-document wilt opnemen, geparseerd in één variantkolom met de opgegeven tekenreeks als de naam van de kolom. Als deze niet is ingesteld, worden de JSON-velden opgenomen in hun eigen kolommen. Geldige waarden: elke tekenreeks.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Het formaat voor het parseren van tijdstempelreeksen.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] De notatie voor het parseren van tijdstempels zonder tijdzonetekenreeksen (TimestampNTZType).
timeZone None De java.time.ZoneId te gebruiken bij het parseren van tijdstempels en datums.
upgradeExceptionAsBadRecord false Of u type-upgradeuitzondering wilt behandelen (bijvoorbeeld wanneer een waarde niet kan worden uitgebreid naar het opgegeven kolomtype) als slechte records in plaats van een uitzondering te genereren.

Kafka

Zie DataStreamReader Kafka-opties voor de volledige lijst met opties voor Kafka-lezers. De volgende opties zijn alleen van toepassing op batchleesbewerkingen met behulp van spark.read.format("kafka").

Key Verstek Description
endingOffsets latest Waar kan ik stoppen met lezen. Geldige waarden: latest, of een JSON-tekenreeks met offsets voor elke partitie, zoals {"topicA":{"0":50,"1":-1}}.
In de JSON-tekenreeks -1 is de meest recente offset. -2, wat de vroegste verschuiving is, is niet toegestaan als een eindverrekening.
endingOffsetsByTimestamp None Eindverschuivingen per partitie die zijn opgegeven als tijdstempels in milliseconden. Geldige waarden: een JSON-tekenreeks met tijdstempels voor elke partitie, zoals {"topicA":{"0":2000,"1":3000}}.
endingTimestamp None Globale eindtijdstempel in milliseconden die worden toegepast op alle partities. Geldige waarden: niet-negatieve gehele getallen.

ORC

Key Verstek Description
mergeSchema false Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen.

Parket

Key Verstek Description
datetimeRebaseMode LEGACY Hiermee bepaalt u de herbepaling van de DATUM- en TIJDSTEMPEL-waarden tussen de Juliaanse en Proleptisch Gregoriaanse kalenders. Geldige waarden: EXCEPTION, LEGACYen CORRECTED.
int96RebaseMode LEGACY Hiermee regelt u de rebasing van de INT96-tijdstempelwaarden bij Julian- en Proleptische Gregoriaanse kalenders. Geldige waarden: EXCEPTION, LEGACYen CORRECTED.
mergeSchema false Of u het schema wilt afleiden over meerdere bestanden en het schema van elk bestand wilt samenvoegen.
readerCaseSensitive true Hiermee specificeert u de hoofdlettergevoeligheid wanneer rescuedDataColumn is ingeschakeld. Indien waar, kunt u de gegevenskolommen redden waarvan de namen verschillen per geval van het schema. Als dit onwaar is, leest u de gegevens op een niet-hoofdlettergevoelige manier.
rescuedDataColumn None Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd vanwege: een gegevenstype komt niet overeen en het schema komt niet overeen (inclusief kolombehuizing) in een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden. Voor meer informatie, raadpleeg Wat is de kolom met geredde gegevens?.
COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.

Statusarchief

Gebruik deze opties met spark.read.format("statestore") of de read_statestore functie met de tabelwaarde om statusgegevens van structured streaming te lezen. Zie Lees informatie over de status van Structured Streaming.

Key Verstek Description
batchId Meest recente batch-id De doelbatch waaruit moet worden gelezen. Gebruik dit om een query uit te voeren op een eerdere status van de query. De batch moet worden vastgelegd, maar nog niet worden opgeschoond. Geldige waarden: niet-negatieve gehele getallen.
operatorId 0 De doeloperator waaruit moet worden gelezen. Gebruik deze query wanneer de query meerdere stateful operators heeft. Geldige waarden: niet-negatieve gehele getallen.
storeName DEFAULT De naam van het doelstatusarchief waaruit moet worden gelezen. Gebruik deze functie wanneer de stateful operator meerdere exemplaren van het statusarchief heeft. U moet een storeName van beide opgeven of joinSide voor een stream-stream-join, maar niet voor beide. Geldige waarden: elke tekenreeks.
joinSide None De doelzijde waaruit moet worden gelezen voor een stream-stream-join. U moet een storeName van beide opgeven of joinSide voor een stream-stream-join, maar niet voor beide. Geldige waarden: left, right.
snapshotStartBatchId None De batch-id van de momentopname die moet worden gebruikt als uitgangspunt bij het lezen. De lezer herbouwt de status door wijzigingen van deze momentopname opnieuw af te spelen tot batchId. Handig wanneer een momentopname beschadigd is. Moet samen met snapshotPartitionId. Kan niet gebruiken met readChangeFeed. Ondersteunt het statusarchief met HDFS-ondersteuning en het RocksDB-statusarchief waarvoor controlepunten voor changelogs zijn ingeschakeld. Beschikbaar in Databricks Runtime 15.4 LTS en hoger. Geldige waarden: niet-negatieve gehele getallen.
snapshotPartitionId None Indien opgegeven, leest de query deze partitie alleen. Moet samen met snapshotStartBatchId. Kan niet gebruiken met readChangeFeed. Beschikbaar in Databricks Runtime 15.4 LTS en hoger. Geldige waarden: niet-negatieve gehele getallen.
readChangeFeed false Wanneer , retourneert truestatuswijzigingen binnen een opgegeven bereik van batches tussen changeStartBatchId en changeEndBatchId. Vereist changeStartBatchId. Kan niet gebruiken metjoinSide, batchIdof snapshotStartBatchIdsnapshotPartitionId. Beschikbaar in Databricks Runtime 16.4 LTS en hoger. Geldige waarden: true, false.
Zie Wijzigingen in de status Structured Streaming lezen voor meer informatie.
changeStartBatchId None De batch-id voor het wijzigingsfeedbereik. Vereist wanneer readChangeFeedtrue is. Alleen van toepassing wanneer readChangeFeed is ingesteld op true. Beschikbaar in Databricks Runtime 16.4 LTS en hoger. Geldige waarden: niet-negatieve gehele getallen.
changeEndBatchId Meest recente batch-id De eindbatch-id voor het wijzigingenfeedbereik. Moet groter dan of gelijk aan changeStartBatchIdzijn. Alleen van toepassing wanneer readChangeFeed is ingesteld op true. Beschikbaar in Databricks Runtime 16.4 LTS en hoger. Geldige waarden: niet-negatieve gehele getallen.
stateVarName None De naam van de statusvariabele die moet worden gelezen. De naam van de statusvariabele is de unieke naam van elke variabele binnen de init functie van een StatefulProcessor operator die door de transformWithState operator wordt gebruikt. Vereist wanneer u de transformWithState operator gebruikt. Beschikbaar in Databricks Runtime 16.4 LTS en hoger. Geldige waarden: elke tekenreeks.
readRegisteredTimers false Wanneer trueworden geregistreerde timers gelezen die door de transformWithState operator worden gebruikt. Alleen van toepassing op de transformWithState operator. Beschikbaar in Databricks Runtime 16.4 LTS en hoger. Geldige waarden: true, false.
flattenCollectionTypes true Wanneer true, worden de records die worden geretourneerd voor toewijzings- en lijststatusvariabelen afgevlakt. Wanneer false, retourneert records als spark SQL Array of Map. Alleen van toepassing op de transformWithState operator. Beschikbaar in Databricks Runtime 16.4 LTS en hoger. Geldige waarden: true, false.

Tekst

Key Verstek Description
encoding UTF-8 De naam van de codering van het scheidingsteken voor tekstbestandsregeldelers. Zie voor een lijst met opties java.nio.charset.Charset. De inhoud van het bestand wordt niet beïnvloed door deze optie en wordt gelezen as-is.
lineSep Geen, die betrekking heeft \rop , \r\n en \n Een reeks tussen twee opeenvolgende TEKST-records.
wholeText false Of u een bestand als één record wilt lezen.

XML

Key Verstek Description
rowTag None De rijtag van de XML-bestanden die moeten worden behandeld als een rij. In het voorbeeld-XML <books> <book><book>...<books>is bookde juiste waarde. Dit is een vereiste optie.
samplingRatio 1.0 Definieert een fractie van rijen die worden gebruikt voor schemadeductie. Ingebouwde XML-functies negeren deze optie. Geldige waarden: 0.0 tot 1.0.
excludeAttribute false Of kenmerken in elementen moeten worden uitgesloten.
mode None Modus voor het verwerken van beschadigde records tijdens het parseren. PERMISSIVE: Voor beschadigde records plaatst u de ongeldige tekenreeks in een veld dat is geconfigureerd door columnNameOfCorruptRecorden stelt u onjuiste velden in op null. Als u beschadigde records wilt behouden, kunt u een string typeveld instellen met de naam columnNameOfCorruptRecord in een door de gebruiker gedefinieerd schema. Als een schema het veld niet heeft, worden beschadigde records verwijderd tijdens het parseren. Wanneer een schema wordt afgeleid, voegt de parser impliciet een columnNameOfCorruptRecord-veld toe in een uitvoerschema. DROPMALFORMED: Hiermee worden beschadigde records genegeerd. Deze modus wordt niet ondersteund voor ingebouwde XML-functies. FAILFAST: Genereert een uitzondering wanneer de parser beschadigde gegevens tegenkomt.
inferSchema true Wanneer true, wordt geprobeerd om een geschikt type af te leiden voor elke resulterende DataFrame-kolom. Als falsealle resulterende kolommen van het string type zijn. Ingebouwde XML-functies negeren deze optie.
columnNameOfCorruptRecord spark.sql.columnNameOfCorruptRecord Hiermee kunt u de naam van het nieuwe veld wijzigen dat een ongeldige tekenreeks bevat die is gemaakt door PERMISSIVE de modus.
attributePrefix None Het voorvoegsel voor kenmerken om kenmerken te onderscheiden van elementen. Dit is het voorvoegsel voor veldnamen. De standaardwaarde is _. Kan leeg zijn voor het lezen van XML, maar niet voor schrijven. Is ook van toepassing op XML-opties van DataFrameWriter.
valueTag _VALUE De tag die wordt gebruikt voor de karakterdata in elementen die ook attribuut(en) of kindelement(en) bevatten. Gebruiker kan het valueTag veld in het schema opgeven of het wordt automatisch toegevoegd tijdens schemadeductie wanneer tekengegevens aanwezig zijn in elementen met andere elementen of kenmerken. Is ook van toepassing op XML-opties van DataFrameWriter.
encoding UTF-8 Voor het lezen decodeert u de XML-bestanden op basis van het opgegeven coderingstype. Voor schrijven geeft u codering (charset) van opgeslagen XML-bestanden op. Ingebouwde XML-functies negeren deze optie. Is ook van toepassing op XML-opties van DataFrameWriter.
ignoreSurroundingSpaces true Of witruimten rondom waarden moeten worden overgeslagen. Karaktergegevens die alleen uit witruimte bestaan worden genegeerd.
rowValidationXSDPath None Pad naar een optioneel XSD-bestand dat wordt gebruikt om de XML voor elke rij afzonderlijk te valideren. Rijen die niet kunnen worden gevalideerd, worden behandeld als parseringsfouten. De XSD heeft anders geen invloed op het schema, ongeacht of dit is opgegeven of afgeleid.
ignoreNamespace false Als true wordt toegepast, worden de voorvoegsels van naamruimten op XML-elementen en -kenmerken genegeerd. Tags <abc:author> en <def:author>, bijvoorbeeld, worden behandeld alsof ze alleen <author>zijn. Naamruimten kunnen niet worden genegeerd op het rowTag element, alleen de leesbare kindelementen. XML-parsering is niet naamruimtebewust, zelfs niet als false.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Aangepaste tekenreeks voor tijdstempelnotatie die de datum/tijd-patroonnotatie volgt. Dit is van toepassing op timestamp het type. Is ook van toepassing op XML-opties van DataFrameWriter.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Aangepaste formaatstring voor tijdstempel zonder tijdzone die het datumpatroon volgt. Dit is van toepassing op het type TimestampNTZType. Is ook van toepassing op XML-opties van DataFrameWriter.
dateFormat yyyy-MM-dd Aangepaste datumnotatiestring die het datum/tijd-patroon volgt. Dit is van toepassing op het datumtype. Is ook van toepassing op XML-opties van DataFrameWriter.
locale en-US Hiermee stelt u een locale in als taaltag volgens de IETF BCP 47-indeling. Wordt bijvoorbeeld locale gebruikt tijdens het parseren van datums en tijdstempels.
nullValue snaar null Hiermee stelt u de tekenreeksweergave van een null-waarde in. Als dit het geval is null, schrijft de parser geen kenmerken en elementen voor velden. Is ook van toepassing op XML-opties van DataFrameWriter.
readerCaseSensitive true Hiermee geeft u het hoofdlettergevoeligheidsgedrag op wanneer rescuedDataColumn is ingeschakeld. Indien waar, kunt u de gegevenskolommen redden waarvan de namen verschillen per geval van het schema. Als dit onwaar is, leest u de gegevens op een niet-hoofdlettergevoelige manier.
rescuedDataColumn None Of u alle gegevens wilt verzamelen die niet kunnen worden geparseerd vanwege een niet-overeenkomend gegevenstype en niet-overeenkomende schema's (inclusief kolombehuizing) naar een afzonderlijke kolom. Deze kolom wordt standaard opgenomen bij het gebruik van automatisch laden. Zie Wat is de kolom met geredde gegevens? voor meer informatie. COPY INTO (verouderd) biedt geen ondersteuning voor de kolom met geredde gegevens, omdat u het schema niet handmatig kunt instellen met behulp van COPY INTO. Databricks raadt het gebruik van autolaadprogramma's aan voor de meeste opnamescenario's.
singleVariantColumn none Hiermee geeft u de naam van de kolom met één variant op. Als deze optie is opgegeven voor lezen, parseert u de hele XML-record in één variantkolom met de opgegeven optietekenreekswaarde als de naam van de kolom. Als deze optie wordt opgegeven bij het schrijven, schrijft u de waarde van de enkelvoudige Variant-kolom naar XML-bestanden. Is ook van toepassing op XML-opties van DataFrameWriter.
useLegacyXMLParser true Of u de verouderde XML-parser wilt gebruiken. De verouderde parser heeft minder strenge validatie voor ongeldige inhoud, maar is minder geheugenefficiënt. Ingesteld om u aan te false kiezen voor de strengere standaardparser.
wildcardColName xs_any De kolomnaam die wordt gebruikt om XML-elementen vast te leggen die overeenkomen met het jokerteken (xs:any) schema-element. Kan niet samen met rescuedDataColumn.

Opties voor DataStreamReader

Gebruik deze opties voor DataStreamReader.option() het configureren van streaming-leesbewerkingen uit Delta Lake-tabellen en andere bronnen op basis van bestanden.

Zie DataFrameReader-opties voor opties voor bestandsindelingen (JSON, CSV, Parquet en andere).

Zie AutoLoader (cloudFiles.*) voor opties voor automatisch laden.

Example

In het volgende voorbeeld wordt ingesteld maxFilesPerTrigger op 10 een Delta Lake-tabelstroom:

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

Gemeenschappelijk

De volgende opties zijn van toepassing op Delta Lake-tabellen en andere streamingbronnen op basis van bestanden.

Key Verstek Description
cleanSource off Bronbestanden verwerken nadat ze door de stream zijn verwerkt. Geldige waarden: off (geen actie), delete (definitief het bronbestand verwijderen), archive (naar sourceArchiveDir). Indien ingesteld op archive, sourceArchiveDir moet ook worden ingesteld. Is niet van toepassing op Delta Lake-tabelstreaming.
fileNameOnly false Of u al verwerkte bestanden alleen per bestandsnaam wilt identificeren in plaats van op volledig pad. Wanneer truebestanden op verschillende paden met dezelfde bestandsnaam worden behandeld als hetzelfde bestand en niet opnieuw worden verwerkt. Is niet van toepassing op Delta Lake-tabelstreaming.
latestFirst false Of u nu eerst de laatst gewijzigde bestanden binnen elke microbatch wilt verwerken. Handig als u de meest recente gegevens zo snel mogelijk wilt verwerken. Wanneer true en maxFilesPerTrigger of maxBytesPerTrigger is ingesteld, maxFileAge wordt genegeerd. Is niet van toepassing op Delta Lake-tabelstreaming.
maxBytesPerTrigger None Voorlopig maximum voor de hoeveelheid gegevens die voor elke microbatch wordt verwerkt. Een batch kan meer verwerken dan de limiet als de kleinste invoereenheid deze overschrijdt. Wanneer de microbatch samen wordt maxFilesPerTriggergebruikt, verwerkt de microbatch gegevens totdat een van beide limieten eerst wordt bereikt. Geldige waarden: positieve gehele getallen.
Voor Auto Loader moet je in plaats daarvan cloudFiles.maxBytesPerTrigger gebruiken. Zie Algemeen.
maxCachedFiles 10000 Maximum aantal niet-verwerkte bestanden dat in de cache moet worden opgeslagen voor volgende microbatches. Ingesteld om 0 caching uit te schakelen. Verhoog deze waarde wanneer de bronmap veel nieuwe bestanden voor elke trigger bevat. Is niet van toepassing op Delta Lake-tabelstreaming. Geldige waarden: positieve gehele getallen of 0.
maxFileAge 7d Maximale leeftijd van bestanden die worden beschouwd voor verwerking, ten opzichte van de tijdstempel van het meest recent gewijzigde bestand in plaats van de huidige systeemtijd. Bestanden die ouder zijn dan deze drempelwaarde worden genegeerd. Accepteert duurtekenreeksen zoals 7d of 4h. Genegeerd wanneer latestFirst en truemaxFilesPerTrigger of maxBytesPerTrigger is ingesteld. Is niet van toepassing op Delta Lake-tabelstreaming.
maxFilesPerTrigger 1000 voor Delta Lake en Auto Loader. Geen maximum voor andere bronnen op basis van bestanden. Bovengrens voor het aantal nieuwe bestanden dat in elke microbatch wordt verwerkt. Wanneer de microbatch samen wordt maxBytesPerTriggergebruikt, verwerkt de microbatch gegevens totdat een van beide limieten eerst wordt bereikt. Geldige waarden: positieve gehele getallen.
Voor Auto Loader moet je in plaats daarvan cloudFiles.maxFilesPerTrigger gebruiken. Zie Algemeen.
sourceArchiveDir None Pad naar de archiefmap wanneer cleanSource deze is ingesteld op archive. Bronbestanden worden na verwerking naar dit pad verplaatst, waarbij de relatieve mapstructuur behouden blijft. Is niet van toepassing op Delta Lake-tabelstreaming.

Automatisch laadprogramma

Gebruik deze opties met de cloudFiles bron om automatisch laden te configureren voor streamingopname vanuit cloudopslag. Opties die specifiek zijn voor de cloudFiles bron, worden voorafgegaan door cloudFiles ze in een afzonderlijke naamruimte te houden van andere opties voor gestructureerd streamen .

Gemeenschappelijk

Key Verstek Description
cloudFiles.allowOverwrites false Of wijzigingen in invoerbestanden bestaande gegevens mogen overschrijven.
Voor aandachtspunten bij de configuratie, zie Wordt het bestand opnieuw verwerkt door Auto Loader wanneer het bestand wordt toegevoegd of overschreven?.
cloudFiles.backfillInterval None Auto Loader kan asynchrone backfills activeren op een bepaald interval. Bijvoorbeeld 1 day om dagelijks in te vullen of 1 week wekelijks in te vullen. Zie Reguliere backfills activeren met behulp van cloudFiles.backfillInterval voor meer informatie.
Niet gebruiken wanneer cloudFiles.useManagedFileEvents is ingesteld op true.
cloudFiles.cleanSource OFF Of verwerkte bestanden automatisch uit de invoermap moeten worden verwijderd. Als deze is ingesteld op OFF (standaard), worden er geen bestanden verwijderd.
Wanneer DELETE is ingesteld, worden bestanden 30 dagen nadat ze zijn verwerkt automatisch verwijderd. Hiervoor moet Auto Loader schrijfmachtigingen hebben voor de bronmap.
Wanneer ingesteld op MOVE, worden bestanden binnen cloudFiles.cleanSource.moveDestination 30 dagen na verwerking automatisch naar de opgegeven locatie verplaatst. Hiervoor moet Auto Loader schrijfmachtigingen hebben voor zowel de bronmap als de verplaatsingslocatie.
Een bestand wordt beschouwd als verwerkt wanneer het een niet-null-waarde heeft voor commit_time in het resultaat van de cloud_files_state functie met tabelwaarde. Zie cloud_files_state tabelwaardefunctie. De extra wachttijd van 30 dagen na verwerking kan worden geconfigureerd met behulp van cloudFiles.cleanSource.retentionDuration.
Bekijk de volgende overwegingen voordat u het inschakelt cloudFiles.cleanSource:
  • Azure Databricks raadt het gebruik van deze optie niet aan als er meerdere streams zijn die gegevens van de bronlocatie verbruiken, omdat de snelste consument de bestanden verwijdert en ze niet worden opgenomen in de tragere bronnen.
  • Voor het inschakelen van deze functie moet automatisch laden de extra status in het controlepunt behouden, wat prestatieoverhead oplevert, maar verbeterde waarneembaarheid mogelijk maakt via de cloud_files_state functie met tabelwaarde. Zie cloud_files_state tabelwaardefunctie.
  • cleanSource gebruikt de huidige instelling om te bepalen of een MOVE bepaald bestand of DELETE een bepaald bestand. Stel dat de instelling was MOVE toen het bestand oorspronkelijk werd verwerkt, maar werd gewijzigd in DELETE toen het bestand 30 dagen later een kandidaat werd voor het opschonen. In dit geval wordt het bestand verwijderd door cleanSource.
  • Bestanden worden niet gegarandeerd opgeschoond zodra het retentionDuration verloopt. Om de kosten laag te houden, verwijdert Auto Loader bestanden gelijktijdig met stroomverwerking en wordt beëindigd zodra de stroomverwerking is voltooid of wordt beëindigd. Bestanden die kandidaten waren voor opschonen, maar niet konden worden opgeschoond tijdens de stroomverwerking, worden de volgende keer dat AutoLoader wordt uitgevoerd, opgehaald.

Beschikbaar in Databricks Runtime 16.4 en hoger.
cloudFiles.cleanSource.retentionDuration 30 days De hoeveelheid tijd die moet worden gewacht voordat verwerkte bestanden kandidaten worden voor archivering met cleanSource. Moet langer zijn dan 7 dagen voor DELETE. Geen minimale beperking voor MOVE.
De waarde is een CalendarInterval-tekenreeks . Bijvoorbeeld, "14 days", "30 days", "2 weeks"of "1 month".
Beschikbaar in Databricks Runtime 16.4 en hoger.
cloudFiles.cleanSource.moveDestination None Pad waarnaar verwerkte bestanden moeten worden gearchiveerd wanneer cloudFiles.cleanSource is ingesteld op MOVE. Dit kan een cloudopslagpad of een Unity Catalog-volumepad zijn (bijvoorbeeld /Volumes/my_catalog/my_schema/my_volume/archive/).
De locatie voor verplaatsen moet:
  • Wees geen onderliggend element van de bronmap. Als u de verplaatsingsbestemming in de bronmap plaatst, worden de gearchiveerde bestanden opnieuw opgenomen.
  • Zich op dezelfde externe locatie, volume of DBFS-koppeling bevinden als de bron. Verplaatsingen tussen verschillende buckets en containers worden niet ondersteund en resulteren in een fout.

Auto Loader moet schrijfmachtigingen hebben voor deze map.
Beschikbaar in Databricks Runtime 16.4 en hoger.
cloudFiles.format Geen (vereiste optie) De indeling van het gegevensbestand in het bronpad. Geldige waarden zijn:
cloudFiles.includeExistingFiles true Of u bestaande bestanden in het invoerpad voor stroomverwerking wilt opnemen of alleen nieuwe bestanden wilt verwerken die binnenkomen na de eerste installatie. Deze optie wordt alleen geëvalueerd wanneer u een stream voor de eerste keer start. Als u deze optie wijzigt nadat de stream opnieuw is opgestart, heeft dit geen effect.
cloudFiles.inferColumnTypes false Of u exacte kolomtypen wilt afleiden bij het gebruik van schemadeductie. Kolommen worden standaard afgeleid als tekenreeksen bij het afleiden van JSON- en CSV-gegevenssets. Zie schemadeductie voor meer informatie.
cloudFiles.maxBytesPerTrigger None Het maximum aantal nieuwe bytes dat in elke trigger moet worden verwerkt. U kunt een bytetekenreeks opgeven, bijvoorbeeld 10g om elke microbatch te beperken tot 10 GB aan gegevens. Dit is een zacht maximum. Als u bestanden hebt die elk 3 GB zijn, verwerkt Azure Databricks 12 GB in een microbatch. Wanneer Azure Databricks samen met cloudFiles.maxFilesPerTrigger wordt gebruikt, verbruikt Azure Databricks tot de ondergrens van cloudFiles.maxFilesPerTrigger of cloudFiles.maxBytesPerTrigger, afhankelijk van welke het eerst wordt bereikt. Deze optie heeft geen effect wanneer deze wordt gebruikt met Trigger.Once() (Trigger.Once() is verouderd).
In Databricks Runtime 18.0 en hoger is deze optie dynamisch geconfigureerd en hoeft deze niet handmatig te worden ingesteld.
cloudFiles.maxFileAge None Hoe lang een bestandsgebeurtenis wordt bijgehouden voor ontdubbelingsdoeleinden. Databricks raadt u aan deze parameter niet af te stemmen, tenzij u gegevens opneemt in de volgorde van miljoenen bestanden per uur. Zie de sectie over het bijhouden van bestandsevenementen voor meer informatie.
Het afstemmen cloudFiles.maxFileAge kan te agressief leiden tot problemen met gegevenskwaliteit, zoals dubbele opname of ontbrekende bestanden. Daarom raadt Databricks een conservatieve instelling aan voor cloudFiles.maxFileAge, zoals 90 dagen, die vergelijkbaar is met wat vergelijkbare oplossingen voor gegevensopname aanbevelen.
cloudFiles.maxFilesPerTrigger 1000 Het maximum aantal nieuwe bestanden dat in elke trigger moet worden verwerkt. Wanneer Azure Databricks samen met cloudFiles.maxBytesPerTrigger wordt gebruikt, verbruikt Azure Databricks tot de ondergrens van cloudFiles.maxFilesPerTrigger of cloudFiles.maxBytesPerTrigger, afhankelijk van welke het eerst wordt bereikt. Deze optie heeft geen effect wanneer deze wordt gebruikt met Trigger.Once() (afgeschaft).
In Databricks Runtime 18.0 en hoger is deze optie dynamisch geconfigureerd en hoeft deze niet handmatig te worden ingesteld.
cloudFiles.partitionColumns None Een door komma's gescheiden lijst met partitiekolommen in Hive-stijl die u wilt afleiden uit de mapstructuur van de bestanden. Partitiekolommen in Hive-stijl zijn sleutel-waardeparen gecombineerd door een gelijkheidsteken zoals <base-path>/a=x/b=1/c=y/file.format. In dit voorbeeld zijn ade partitiekolommen , ben c. Deze kolommen worden standaard automatisch aan uw schema toegevoegd als u schemaschatting gebruikt en de <base-path> opgeeft om gegevens uit te laden. Als u een schema opgeeft, verwacht Auto Loader dat deze kolommen worden opgenomen in het schema. Als u deze kolommen niet wilt gebruiken als onderdeel van uw schema, kunt u deze kolommen negeren "" . Daarnaast kunt u deze optie gebruiken als u wilt dat kolommen het bestandspad in complexe mapstructuren worden afgeleid, zoals in het onderstaande voorbeeld:
<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
Het specificeren van cloudFiles.partitionColumns als year,month,day retourneert year=2022 voor file1.csv, maar de kolommen month en day zijn null.
month en day worden correct geparseerd voor file2.csv en file3.csv.
cloudFiles.schemaEvolutionMode addNewColumns wanneer er geen schema wordt opgegeven, none anders De modus voor het bijwerken van het schema wanneer nieuwe kolommen in de gegevens worden ontdekt. Standaard worden kolommen afgeleid als tekenreeksen bij het afleiden van JSON-gegevenssets. Zie de ontwikkeling van schema's voor meer informatie.
cloudFiles.schemaHints None Schema-informatie die u aan Auto Loader verstrekt tijdens schema-inferentie. Zie schemahints voor meer informatie.
cloudFiles.schemaLocation Geen (vereist om het schema af te leiden) De locatie voor het opslaan van het afgeleid schema en de volgende wijzigingen. Zie schemadeductie voor meer informatie.
cloudFiles.useStrictGlobber false Of u een strikte globber wilt gebruiken die overeenkomt met het standaardgedrag voor globbing van andere bestandsbronnen in Apache Spark. Zie Algemene patronen voor het laden van gegevens voor meer informatie. Beschikbaar in Databricks Runtime 12.2 LTS en hoger.
cloudFiles.validateOptions true Het al dan niet valideren van Autoloader-opties en het geven van een foutmelding voor onbekende of inconsistente opties.

Adreslijstvermelding

Key Verstek Description
cloudFiles.useIncrementalListing (afgeschaft) auto in Databricks Runtime 17.2 en lager, false op Databricks Runtime 17.3 en hoger Deze functie is afgeschaft. Databricks raadt aan om de modus voor bestandsmeldingen te gebruiken met bestandsevenementen in plaats van cloudFiles.useIncrementalListing.
Of u de incrementele vermelding wilt gebruiken in plaats van de volledige vermelding in de modus voor adreslijstvermeldingen. Auto Loader zet standaard de beste moeite in om automatisch te detecteren of een bepaalde map geschikt is voor het incrementeel vermelden. U kunt de incrementele vermelding expliciet gebruiken of de volledige adreslijstvermelding gebruiken door deze in te stellen als true of false respectievelijk.
Het onjuist inschakelen van incrementele vermeldingen in een niet-lexisch geordende map voorkomt dat Auto Loader nieuwe bestanden ontdekt.
Werkt met Azure Data Lake Storage (abfss://), S3 (s3://) en GCS (gs://).
Beschikbaar in Databricks Runtime 9.1 LTS en hoger.
Beschikbare waarden: auto, truefalse

Bestandsmelding

Zie Voor informatie over het configureren van de modus voor bestandsmeldingen, inclusief vereiste cloudmachtigingen, installatie-instructies en verificatiemethoden, autoladerstreams configureren in de modus voor bestandsmeldingen.

Key Verstek Description
cloudFiles.fetchParallelism 1 Het aantal threads dat moet worden gebruikt bij het ophalen van berichten uit de wachtrijservice.
Niet gebruiken wanneer cloudFiles.useManagedFileEvents is ingesteld op true.
cloudFiles.pathRewrites None Alleen vereist als u een queueUrl bestand opgeeft dat bestandsmeldingen van meerdere S3-buckets ontvangt en u koppelpunten wilt gebruiken die zijn geconfigureerd voor toegang tot gegevens in deze containers. Gebruik deze optie om het voorvoegsel van het bucket/key pad te herschrijven met het aankoppelpunt. Alleen voorvoegsels kunnen opnieuw worden geschreven. Voor de configuratie {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}wordt het pad s3://<databricks-mounted-bucket>/path/2017/08/fileA.json bijvoorbeeld herschreven naar dbfs:/mnt/data-warehouse/2017/08/fileA.json.
Niet gebruiken wanneer cloudFiles.useManagedFileEvents is ingesteld op true.
cloudFiles.resourceTag None Een reeks sleutel-waardetagparen om gerelateerde resources te koppelen en te identificeren, bijvoorbeeld:
cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue")
.option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")
Zie Amazon SQS-tags voor kostentoewijzing en tags configureren voor een Amazon SNS-onderwerp voor meer informatie over AWS. (1)
Voor meer informatie over Azure, zie Naamgevingswachtrijen en metagegevens en de dekking van properties.labels in gebeurtenisabonnementen. Auto Loader slaat deze sleutel-waarde tagparen op in JSON als labels. (1)
Zie Rapportagegebruik met labels voor meer informatie over GCP. (1)
Niet gebruiken wanneer cloudFiles.useManagedFileEvents is ingesteld op true. Stel in plaats daarvan resourcetags in met behulp van de cloudproviderconsole.
cloudFiles.useManagedFileEvents false Wanneer dit is ingesteld true, gebruikt Auto Loader de service voor bestandsevenementen om bestanden op uw externe locatie te detecteren. U kunt deze optie alleen gebruiken als het laadpad zich op een externe locatie bevindt waarop bestandsevenementen zijn ingeschakeld. Zie De modus Bestandsmelding gebruiken met bestandsevenementen.
Bestandsgebeurtenissen bieden prestaties op het niveau van bestandsdetectie, omdat Auto Loader nieuwe bestanden kan detecteren na de laatste uitvoering. In tegenstelling tot mapvermelding hoeft dit proces niet alle bestanden in de map weer te geven.
Er zijn enkele situaties waarin Automatisch laden gebruikmaakt van een mapvermelding, ook al is de optie bestandsevenementen ingeschakeld:
  • Tijdens het initiale laden, wanneer includeExistingFiles is ingesteld op true, vindt er een volledige directorylijst plaats om alle bestanden te ontdekken die aanwezig waren in de map voordat Auto Loader werd gestart.
  • De bestands gebeurtenissenservice optimaliseert bestandsdetectie door de laatst gemaakte bestanden in de cache op te slaan. Als automatisch laadprogramma niet regelmatig wordt uitgevoerd, kan deze cache verlopen en wordt automatisch laadprogramma teruggezet naar de mappenlijst om bestanden te detecteren en de cache bij te werken. Om dit scenario te voorkomen, roept u autolader ten minste één keer per zeven dagen aan.

Zie Wanneer gebruikt Auto Loader met bestandsevenementen een lijst met mappen? voor een uitgebreide lijst met situaties waarin Auto Loader gebruikmaakt van mapvermelding met deze optie.
Beschikbaar in Databricks Runtime 14.3 LTS en hoger.
cloudFiles.listOnStart false Als dit is ingesteld trueop, voert Auto Loader een volledige directoryvermelding uit wanneer de stream wordt gestart, in plaats van te beginnen met het vervolgtoken in het controlepunt. Gebruik deze optie om fouten te herstellen, zoals CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Zie Hoe herstel ik een CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN fout?
cloudFiles.useNotifications false Of u de modus voor bestandsmeldingen wilt gebruiken om te bepalen wanneer er nieuwe bestanden zijn. Als false, gebruik de directorylistingmodus. Zie Vergelijk de detectiemodi voor automatisch laden van bestanden.
Niet gebruiken wanneer cloudFiles.useManagedFileEvents is ingesteld op true.

(1) Automatisch laadprogramma voegt standaard de volgende sleutel-waarde tagparen toe op basis van best effort:

  • vendor: Databricks
  • path: de locatie waar de gegevens worden geladen. Niet beschikbaar in GCP vanwege labelbeperkingen.
  • checkpointLocation: De locatie van het controlepunt van de stream. Niet beschikbaar in GCP vanwege labelbeperkingen.
  • streamId: Een wereldwijd unieke id voor de stream.

Databricks behoudt deze sleutelnamen voor en u kunt hun waarden niet overschrijven.

Cloudspecifiek

Auto Loader biedt opties voor het configureren van de cloudinfrastructuur voor bestandsmeldingsmodus. Zie Voor de vereiste cloudmachtigingen en installatie-instructies autolaadprogramma's configureren in de modus voor bestandsmeldingen.

AWS

Geef alleen de volgende opties op als u kiest cloudFiles.useNotifications = true en u wilt dat automatisch laadprogramma de meldingsservices voor u instelt:

Key Verstek Description
cloudFiles.region De regio van het EC2-exemplaar De regio waar de bron-S3-bucket zich bevindt en waar u de AWS SNS- en SQS-services wilt maken.
Key Verstek Description
cloudFiles.restrictNotificationSetupToSameAWSAccountId false Alleen evenementmeldingen van AWS S3-buckets toestaan in hetzelfde account als hetzelfde SNS-onderwerp. Indien waar, accepteert Auto Loader alleen gebeurtenismeldingen van AWS S3-buckets in hetzelfde account als het SNS-onderwerp.
Wanneer false, het toegangsbeleid geen instellingen voor buckets voor meerdere accounts en SNS-onderwerpen beperkt. Dit is handig wanneer het SNS-onderwerp en het bucketpad zijn gekoppeld aan verschillende accounts.
Beschikbaar in Databricks Runtime 17.2 en hoger.

Geef alleen de volgende optie op als u kiest cloudFiles.useNotifications = true en u wilt dat automatisch laadprogramma een wachtrij gebruikt die u al hebt ingesteld:

Key Verstek Description
cloudFiles.queueUrl None De URL van de SQS-wachtrij. Indien opgegeven, gebruikt Auto Loader rechtstreeks gebeurtenissen uit deze wachtrij in plaats van eigen AWS SNS- en SQS-services in te stellen.

AWS-verificatieopties

Geef de volgende verificatieoptie op om een Databricks-servicereferentie te gebruiken:

Key Verstek Description
databricks.serviceCredential None De naam van uw Databricks-servicereferentie. Beschikbaar in Databricks Runtime 16.1 en hoger.

Wanneer databricks-servicereferenties of IAM-rollen niet beschikbaar zijn, kunt u in plaats daarvan de volgende verificatieopties opgeven:

Key Verstek Description
cloudFiles.awsAccessKey None De AWS-toegangssleutel-id voor de gebruiker. Moet worden voorzien van cloudFiles.awsSecretKey.
cloudFiles.awsSecretKey None De GEHEIME AWS-toegangssleutel voor de gebruiker. Moet worden voorzien van cloudFiles.awsAccessKey.
cloudFiles.roleArn None Het ARN van een IAM-rol dat moet worden aangenomen, indien nodig. De rol kan worden aangenomen vanuit het instance-profiel van uw cluster of door referenties op te geven met cloudFiles.awsAccessKey en cloudFiles.awsSecretKey.
cloudFiles.roleExternalId None Een identificator die moet worden opgegeven bij het aannemen van een rol met behulp van cloudFiles.roleArn.
cloudFiles.roleSessionName None Een optionele sessienaam die moet worden gebruikt terwijl een rol wordt aangenomen met behulp van cloudFiles.roleArn.
cloudFiles.stsEndpoint None Een optioneel eindpunt om toegang te krijgen tot AWS STS bij het aannemen van een rol met behulp van cloudFiles.roleArn.
Azure

U moet waarden opgeven voor alle volgende opties als u opgeeft cloudFiles.useNotifications = true en u wilt dat automatisch laadprogramma de meldingsservices voor u instelt:

Key Verstek Description
cloudFiles.resourceGroup None De Azure resourcegroep waarin het opslagaccount wordt gemaakt.
cloudFiles.subscriptionId None De Azure-abonnements-id waarin de resourcegroep wordt gemaakt.
databricks.serviceCredential None De naam van uw Databricks-servicereferentie. Beschikbaar in Databricks Runtime 16.1 en hoger.

Als er geen Databricks-servicereferentie beschikbaar is, kunt u in plaats daarvan de volgende verificatieopties opgeven:

Key Verstek Description
cloudFiles.clientId None De client-id of de toepassings-id van de serviceprincipal.
cloudFiles.clientSecret None Het clientgeheim van de service-principal.
cloudFiles.connectionString None De verbindingsreeks voor het opslagaccount, gebaseerd op de toegangssleutel van het account of de SAS (Shared Access Signature).
cloudFiles.tenantId None De Azure tenant-id waarin de service-principal wordt gemaakt.

Geef alleen de volgende optie op als u instelt cloudFiles.useNotifications = true en u wilt dat automatisch laden een bestaande wachtrij gebruikt:

Key Verstek Description
cloudFiles.queueName None De naam van de Azure-wachtrij. Indien opgegeven, ontvangt de bron van cloudbestanden rechtstreeks gebeurtenissen uit deze wachtrij in plaats van zijn eigen Azure Event Grid- en Queue Storage-services in te richten. In dat geval zijn voor uw databricks.serviceCredential of cloudFiles.connectionString alleen leesrechten voor de wachtrij vereist.
GCP

Auto Loader kan meldingsservices automatisch voor u instellen door gebruik te maken van Databricks-servicereferenties. Voor het serviceaccount dat is gemaakt met de Databricks-servicereferentie, zijn de machtigingen vereist die zijn gespecificeerd in Configureer Auto Loader streams in de bestandsmeldingsmodus.

Key Verstek Description
cloudFiles.projectId None De id van het project waarin de GCS-bucket zich bevindt. Het Google Cloud Pub/Sub-abonnement wordt ook in dit project gemaakt.
databricks.serviceCredential None De naam van uw Databricks-servicereferentie. Beschikbaar in Databricks Runtime 16.1 en hoger.

Als er geen Databricks-servicereferentie beschikbaar is, kunt u Google-serviceaccounts rechtstreeks gebruiken. U kunt uw cluster configureren om aan te nemen dat een service-account wordt gebruikt door de installatie van de Google-service te volgen, of door de volgende authenticatieopties direct op te geven:

Key Verstek Description
cloudFiles.client None De client-id van het Google-serviceaccount.
cloudFiles.clientEmail None Het e-mailadres van het Google-serviceaccount.
cloudFiles.privateKey None De persoonlijke sleutel die wordt gegenereerd voor het Google-serviceaccount.
cloudFiles.privateKeyId None De id van de persoonlijke sleutel die wordt gegenereerd voor het Google-serviceaccount.

Geef alleen de volgende optie op als u kiest cloudFiles.useNotifications = true en u wilt dat automatisch laadprogramma een wachtrij gebruikt die u al hebt ingesteld:

Key Verstek Description
cloudFiles.subscription None De naam van het Google Cloud Pub/Sub-abonnement. Indien opgegeven, gebruikt de bron van cloudbestanden gebeurtenissen uit deze wachtrij in plaats van het instellen van eigen GCS-meldingen en Google Cloud Pub/Sub-diensten.

Delta Lake

De volgende opties zijn van toepassing bij het lezen vanuit een Delta Lake-tabel met behulp van spark.readStream.

Key Verstek Description
allowSourceColumnDrop None Ingesteld op een versienummer van een Delta-tabel of "always" om de stroom door te laten gaan nadat kolommen uit het brontabelschema zijn verwijderd. Wanneer deze is ingesteld op een versienummer, worden alle schemawijzigingen tot die versie bevestigd. Vereist schemaTrackingLocation. Zie Kolommen hernoemen en verwijderen met kolomtoewijzing van Delta Lake.
allowSourceColumnRename None Ingesteld op een versienummer van een Delta-tabel of "always" om de stroom door te laten gaan nadat de naam van kolommen in de brontabel is gewijzigd. Wanneer deze is ingesteld op een versienummer, worden alle schemawijzigingen tot die versie bevestigd. Vereist schemaTrackingLocation. Zie Kolommen hernoemen en verwijderen met kolomtoewijzing van Delta Lake.
allowSourceColumnTypeChange None Ingesteld op een versienummer van de Delta-tabel of "always" om de stroom door te laten gaan nadat de kolomtypen zijn gewijzigd in de brontabel. Wanneer deze is ingesteld op een versienummer, worden alle schemawijzigingen tot die versie bevestigd. Vereist schemaTrackingLocation. Zie Type breder maken.
excludeRegex None Een normaal expressiepatroon. Bestanden waarvan de paden overeenkomen met het patroon, worden uitgesloten van het lezen van streaming. Handig voor het filteren van bestanden die niet voldoen aan de verwachte naamconventie.
failOnDataLoss true Of de streamingquery mislukt als brongegevens zijn verwijderd vanwege logboekretentie (logRetentionDuration). Ingesteld om false ontbrekende gegevens over te slaan en door te gaan met verwerken. Zie Gegevensretentie configureren voor tijdreis-query's.
ignoreChanges (afgeschaft) false Beschikbaar in Databricks Runtime 11.3 LTS en lager. Opnieuw verzonden gegevensbestanden na wijzigingsbewerkingen zoals UPDATE, MERGE INTO, DELETEof OVERWRITE. Ongewijzigde rijen kunnen naast nieuwe rijen worden verzonden, zodat downstreamgebruikers dubbele waarden moeten verwerken. Verwijderingen worden niet naar de volgende stap doorgegeven. Vervangen door skipChangeCommits databricks Runtime 12.2 LTS en hoger.
ignoreDeletes (afgeschaft) false Hiermee worden transacties genegeerd die gegevens op partitiegrenzen verwijderen (alleen volledige partities worden verwijderd). Verwerkt geen verwijderingen, updates of andere wijzigingen buiten partities. Gebruik in plaats daarvan skipChangeCommits.
readChangeFeed of readChangeData false Of u het lezen van de wijzigingengegevensfeed voor de streamingquery wilt inschakelen. Wanneer deze optie is ingeschakeld, verzendt de stream wijzigingen op rijniveau (invoegingen, updates en verwijderingen) met extra metagegevenskolommen. Zie Delta Lake Change Data Feed gebruiken op Azure Databricks.
schemaTrackingLocation None Pad naar een map waarin Delta Lake schemawijzigingen voor het lezen van streaming bijhoudt. Vereist bij het streamen van tabellen met kolomtoewijzing ingeschakeld en met behulp van opties voor het afhandelen van allowSourceColumn* de ontwikkeling van schema's. Moet binnen de checkpointLocation streamingquery vallen. Zie Kolommen hernoemen en verwijderen met kolomtoewijzing van Delta Lake.
skipChangeCommits false Hiermee worden transacties genegeerd die bestaande records en processen verwijderen of wijzigen, worden alleen toegevoegd. Databricks raadt deze optie aan voor de meeste workloads die geen gegevensfeeds wijzigen. Beschikbaar in Databricks Runtime 12.2 LTS en hoger. Zie Upstream-wijzigingsdoorvoeren overslaan met skipChangeCommits.
startingTimestamp Meest recente beschikbaar Tijdstempel waaruit moet worden gelezen. De stroom leest alle tabelwijzigingen die zijn doorgevoerd op of na de opgegeven tijdstempel. Als de tijdstempel voorafgaat aan alle beschikbare tabeldoorvoeringen, begint de stream vanaf de vroegste beschikbare doorvoer. Kan niet samen met startingVersion. Genegeerd als het streamingcontrolepunt al bestaat.
Geldige waarden: een tijdstempeltekenreeks zoals "2019-01-01T00:00:00.000Z" of een datumtekenreeks zoals "2019-01-01".
startingVersion Meest recente beschikbaar Delta-tabelversie waaruit u kunt beginnen met lezen. De stream leest alle wijzigingen die zijn doorgevoerd op of na de opgegeven versie. Geef "latest" op om alleen te beginnen met de meest recente wijzigingen. Kan niet samen met startingTimestamp. Genegeerd als het streamingcontrolepunt al bestaat. Zie Werken met tabelgeschiedenis.
withEventTimeOrder false Verdeelt de eerste momentopname van de tabel in buckets voor gebeurtenistijd om te voorkomen dat records onjuist worden gemarkeerd als late gebeurtenissen en verwijderd in stateful query's met watermerken. Kan niet worden gewijzigd nadat de eerste momentopnameverwerking is gestart zonder het controlepunt te verwijderen. Beschikbaar in Databricks Runtime 11.3 LTS en hoger. Zie Eerste momentopname van het proces zonder gegevensverlies.

Kafka

Gebruik deze opties met een spark.readStream.format("kafka") van de volgende opties:spark.read.format("kafka")

Key Verstek Description
assign None De specifieke partities die moeten worden gebruikt. U moet precies een van de subscribe, subscribePatternof assign opties opgeven. Geldige waarden: een JSON-tekenreeks, zoals {"topicA":[0,1],"topicB":[2,4]}.
failOnDataLoss true Of de query mislukt als gegevens mogelijk verloren zijn gegaan, bijvoorbeeld vanwege verwijderde onderwerpen of offsetafkapping. Ingesteld om false ontbrekende gegevens over te slaan en door te gaan. Geldige waarden: true, false.
Databricks schat conservatief of gegevens verloren zijn gegaan. Dit kan echter valse waarschuwingen veroorzaken.
fetchoffset.numretries 3 Het aantal nieuwe pogingen bij het ophalen van Kafka-offsets mislukt. Geldige waarden: niet-negatieve gehele getallen.
fetchoffset.retryintervalms 1000 Het interval in milliseconden tussen nieuwe pogingen voor het ophalen van verschuivingen. Geldige waarden: niet-negatieve gehele getallen.
groupIdPrefix spark-kafka-source (streaming), spark-kafka-relation (batch) Het aangepaste voorvoegsel dat moet worden gebruikt voor de automatisch gegenereerde Kafka-consumentengroep-id. Als kafka.group.id deze optie expliciet is ingesteld, negeert de connector deze optie. Geldige waarden: elke tekenreeks.
includeHeaders false Of u Kafka-berichtkoppen wilt opnemen als een kolom in de uitvoer. Geldige waarden: true, false.
kafkaconsumer.polltimeoutms None De time-out in milliseconden voor de aanroep van de Kafka-consument poll() . Geldige waarden: positieve gehele getallen.
kafka.bootstrap.servers None Een door komma's gescheiden lijst met host:poortadressen voor Kafka-brokers. Hiermee stelt u de eigenschap van bootstrap.servers de Kafka-client in.
Als u merkt dat er geen gegevens uit Kafka zijn, controleert u deze lijst met brokeradressen op onjuiste adressen. Als de adreslijst van de broker onjuist is, zijn er mogelijk geen fouten. Kafka-clients gaan ervan uit dat de brokers uiteindelijk beschikbaar zijn en het voor altijd opnieuw proberen wanneer ze netwerkfouten ontvangen.
maxRecordsPerPartition None Het maximum aantal records voor elke Spark-partitie. Wanneer de connector is ingesteld, worden Kafka-partities gesplitst, zodat elke Spark-partitie maximaal zoveel records leest. Geldige waarden: positieve gehele getallen.
U kunt deze optie ook gebruiken met minPartitions. Wanneer beide opties zijn ingesteld, gebruikt Spark welke optie resulteert in meer partities.
minPartitions None Het minimale aantal Spark-partities dat moet worden gelezen uit Kafka. Wanneer de connector is ingesteld, worden grote Kafka-partities gesplitst om parallelle uitvoering te vergroten. Als deze niet is ingesteld, maakt Spark één partitie voor elke Kafka-onderwerppartitie. Handig voor het verwerken van scheeftrekken van gegevens of piekbelastingen. Geldige waarden: positieve gehele getallen.
Met deze optie worden Kafka-consumenten voor elke trigger opnieuw geïnitialiseerd, wat van invloed kan zijn op de prestaties met SSL.
startingOffsets latest (streaming), earliest (batch) De verschuiving waaruit de query begint met lezen. Geldige waarden: earliest, latestof een JSON-tekenreeks met offsets voor elke partitie, zoals {"topicA":{"0":23,"1":-2}}. In de JSON-tekenreeks -1 is de meest recente offset. -2 is de vroegste verschuiving.
Voor streamingquery's geldt deze optie alleen wanneer een nieuwe query wordt gestart. Hervate query's maken altijd gebruik van het controlepunt. Tijdens een query beginnen nieuwe partities met het lezen van de eerste offset.
Voor batchquery's latest is dit niet toegestaan.
startingOffsetsByTimestamp None Een lijst met begin offsets voor elke partitie, opgegeven als tijdstempels in milliseconden. Wanneer er geen offset bestaat voor een tijdstempel, wordt het querygedrag bepaald door startingOffsetsByTimestampStrategy. Geldige waarden: een JSON-tekenreeks met tijdstempels voor elke partitie, zoals {"topicA":{"0":1000,"1":2000}}.
Voor streamingquery's geldt deze optie alleen wanneer een nieuwe query wordt gestart. Hervate query's maken altijd gebruik van het controlepunt. Tijdens een query beginnen nieuwe partities met het lezen van de eerste offset.
startingOffsetsByTimestampStrategy error De strategie die moet worden gebruikt wanneer er geen offset wordt gevonden voor een tijdstempel die is opgegeven in startingOffsetsByTimestamp of startingTimestamp. Geldige waarden: error (genereert een uitzondering), latest (maakt gebruik van de meest recente beschikbare offset).
startingTimestamp None De globale begintijdstempel in milliseconden die van toepassing is op alle partities. Wanneer er geen offset bestaat voor de tijdstempel, wordt het gedrag bepaald door startingOffsetsByTimestampStrategy. Geldige waarden: niet-negatieve gehele getallen.
subscribe None De onderwerpen waarop u zich wilt abonneren. U moet precies een van de subscribe, subscribePatternof assign opties opgeven. Geldige waarden: een door komma's gescheiden lijst met onderwerpnamen.
subscribePattern None Het patroon dat wordt gebruikt om u te abonneren op onderwerpen. U moet precies een van de subscribe, subscribePatternof assign opties opgeven. Bijvoorbeeld: topic.*. Geldige waarden: elke Java regex-tekenreeks.

De volgende opties zijn alleen van toepassing op streaming-leesbewerkingen met spark.readStream.format("kafka"):

Key Verstek Description
bytesEstimateWindowLength 300s Het tijdvenster dat wordt gebruikt om de resterende bytes voor de estimatedTotalBytesBehindLatest metrische waarde te schatten. Geldige waarden: duurtekenreeksen zoals 10m of 600s. Zie Kafka-metrieken ophalen.
maxOffsetsPerTrigger None Het maximum aantal offsets dat per triggerinterval moet worden verwerkt. Verschuivingen worden proportioneel verdeeld over onderwerppartities. Geldige waarden: positieve gehele getallen.
maxTriggerDelay 15m De maximale tijd die moet worden gewacht voordat minOffsetsPerTrigger deze wordt geactiveerd. Geldige waarden: duurtekenreeksen zoals 10m of 600s.
minOffsetsPerTrigger None Het minimale aantal offsets dat moet worden verzameld voordat een microbatch wordt geactiveerd. Wanneer maxTriggerDelay dit is bereikt, wordt de microbatch ongeacht uitgevoerd. Geldige waarden: positieve gehele getallen.

Zie De opties van DataFrameReader Kafka voor offsetopties die alleen van toepassing zijn op batchleesbewerkingen.spark.read.format("kafka")

Zie Opties voor kafka-client (kafka.*) en verificatieopties.

Opties voor DataFrameWriter

Gebruik deze opties met DataFrameWriter.option() en DataFrameWriterV2.option() om te bepalen hoe Azure Databricks gegevens schrijft.

Example

In het volgende voorbeeld wordt ingesteld mergeSchema op True het schrijven van een Delta Lake-tabel:

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

Avro

Key Verstek Description
avroSchema None Het volledige Avro-schema als een JSON-tekenreeks. Gebruik deze optie om Spark SQL-typen te converteren naar specifieke Avro-typen. Van toepassing op Avro-bestand.
avroSchemaUrl None Een URL die verwijst naar een Avro-schemabestand. Gebruik in plaats van avroSchema wanneer het schema extern wordt opgeslagen. Wederzijds uitsluiten met avroSchema. Van toepassing op Avro-bestand.
compression snappy Compressiecodec die moet worden gebruikt bij het schrijven. Geldige waarden: uncompressed, deflate, snappy, bzip2, , xz. zstandard Van toepassing op Avro-bestand.
recordName topLevelRecord De recordnaam op het hoogste niveau in het Avro-uitvoerschema. Van toepassing op Avro-bestand.
positionalFieldMatching false Of kolommen moeten worden vergeleken tussen het Spark-schema en het Avro-schema op veldpositie in plaats van op naam. Van toepassing op Avro-bestand.
recordNamespace Lege tekenreeks De naamruimte voor de record op het hoogste niveau in het Avro-uitvoerschema. Van toepassing op Avro-bestand.

Delta Lake en Apache Iceberg

Key Verstek Description
clusterByAuto false Of automatische liquide clustering moet worden ingeschakeld, waarbij Azure Databricks clusteringkolommen selecteert op basis van querypatronen. Alleen geldig met mode("overwrite"). Kan niet worden gebruikt met append de modus. Beschikbaar in Databricks Runtime 16.4 en hoger. Is van toepassing op Liquid Clustering gebruiken voor tabellen.
mergeSchema None Of u de ontwikkeling van schema's voor de schrijfbewerking wilt inschakelen. Nieuwe kolommen in het dataframe van de bron worden toegevoegd aan het doeltabelschema. Van toepassing op batch- en streaming-toevoegbewerkingen. Is van toepassing op updatetabelschema.
overwriteSchema None Of u het tabelschema en de partitionering wilt vervangen bij het overschrijven. Vereist mode("overwrite") zonder replaceWhere. Kan niet worden gebruikt met partitionOverwriteMode. Is van toepassing op updatetabelschema.
partitionOverwriteMode None De partitie overschrijfmodus. Stel dit in om dynamic alleen partities met nieuwe gegevens te overschrijven, waardoor alle andere partities ongewijzigd blijven. Verouderde modus, niet ondersteund op serverloze berekeningen of Databricks SQL. Geldige waarden: static, dynamic. Van toepassing op selectief overschrijven van gegevens met Delta Lake.
replaceOn None Een Booleaanse expressie die overeenkomt met rijen in de doeltabel om te vervangen door rijen uit de bronquery. Kan verwijzen naar kolommen uit zowel de doeltabel als de bronquery. Rijen in het doel die overeenkomen met een bronrij worden verwijderd en vervangen. Als de bron leeg is, worden er geen verwijderingen uitgevoerd. Gebruik targetAlias dit om kolomverwijzingen niet eenduidig te maken. Beschikbaar in Databricks Runtime 17.1 en hoger. Van toepassing op selectief overschrijven van gegevens met Delta Lake.
replaceUsing None Een door komma's gescheiden lijst met kolomnamen die worden gebruikt om rijen tussen de doeltabel en de bronquery te vergelijken. Zowel het doel als de bron moeten alle vermelde kolommen bevatten. Rijen in het doel die overeenkomen met een bronrij onder gelijkheidsvergelijking worden verwijderd en vervangen. NULL waarden worden behandeld als niet gelijk en komen niet overeen. Beschikbaar in Databricks Runtime 16.3 en hoger. Van toepassing op selectief overschrijven van gegevens met Delta Lake.
replaceWhere None Een predicaatexpressie. Atomisch overschrijft alleen de records die overeenkomen met het predicaat. Van toepassing op selectief overschrijven van gegevens met Delta Lake.
targetAlias None Een tekenreeksalias voor de doeltabel. Gebruik deze indeling met replaceOn of replaceWhere om kolomverwijzingen te ontkoppelen wanneer de voorwaarde verwijst naar kolommen uit zowel de doeltabel als de bronquery. Van toepassing op selectief overschrijven van gegevens met Delta Lake.
txnAppId None Een unieke tekenreeks die de toepassing identificeert voor idempotente schrijfbewerkingen.foreachBatch Gebruik dit samen om txnVersion precies één keer schrijfbewerkingen naar meerdere Delta Lake-tabellen te garanderen. Is van toepassing op Gebruik foreachBatch voor idempotente tabelschrijfbewerkingen.
txnVersion None Een monotonisch toenemend aantal dat wordt gebruikt als transactieversie voor idempotente schrijfbewerkingen.foreachBatch Gebruik dit samen om txnAppId precies één keer schrijfbewerkingen naar meerdere Delta Lake-tabellen te garanderen. Is van toepassing op Gebruik foreachBatch voor idempotente tabelschrijfbewerkingen.
optimizeWrite None Hiermee wordt aangegeven of automatisch optimaliseren voor deze schrijfbewerking moet worden ingeschakeld. Hiermee wordt de spark.databricks.delta.optimizeWrite.enabled configuratie overschreven. Is van toepassing op Wat is Delta Lake in Azure Databricks?.
userMetadata None Een door de gebruiker gedefinieerde tekenreeks die is toegevoegd aan de doorvoermetagegevens voor de schrijfbewerking. Zichtbaar in de uitvoer van DESCRIBE HISTORY. Van toepassing op Verrijken-tabellen met aangepaste metagegevens.

CSV

Key Verstek Description
charToEscapeQuoteEscaping \0 (niet ingeschakeld) Het teken dat wordt gebruikt om het escape-teken te ontsnappen wanneer het afwijkt van het aanhalingsteken. Van toepassing op CSV (DataFrameWriter).
compression none Compressiecodec die moet worden gebruikt bij het schrijven. Geldige waarden: none, bzip2, gzip, lz4, , snappy, deflate. zstd Van toepassing op CSV (DataFrameWriter).
dateFormat yyyy-MM-dd Tekenreeks opmaken voor datumkolomwaarden. Van toepassing op CSV (DataFrameWriter).
emptyValue Lege tekenreeks De tekenreeks die is geschreven voor lege (niet-null) waarden. Van toepassing op CSV (DataFrameWriter).
encoding UTF-8 De tekencodering voor de uitvoerbestanden. Van toepassing op CSV (DataFrameWriter).
escape \ Het teken dat wordt gebruikt om waarden tussen aanhalingstekens te ontsnappen. Van toepassing op CSV (DataFrameWriter).
escapeQuotes true Of u aanhalingstekens tussen aanhalingstekens in veldwaarden tussen aanhalingstekens wilt ontsnappen. Van toepassing op CSV (DataFrameWriter).
header false Of u kolomnamen wilt schrijven als de eerste regel van de uitvoer. Van toepassing op CSV (DataFrameWriter).
ignoreLeadingWhiteSpace false Of u voorloopspaties wilt knippen van waarden bij het schrijven. Van toepassing op CSV (DataFrameWriter).
ignoreTrailingWhiteSpace false Of u volgspaties van waarden wilt knippen tijdens het schrijven. Van toepassing op CSV (DataFrameWriter).
lineSep \n De tekenreeks voor regelscheidingstekens die tussen records wordt gebruikt. Van toepassing op CSV (DataFrameWriter).
locale en-US Een java.util.Locale-id. Beïnvloedt de opmaak van datum- en tijdstempelwaarden bij het schrijven.
nullValue Lege tekenreeks Tekenreeks die is geschreven voor null-waarden. Van toepassing op CSV (DataFrameWriter).
quote " Het teken dat wordt gebruikt voor het aanhalen van veldwaarden die het scheidingsteken bevatten. Van toepassing op CSV (DataFrameWriter).
quoteAll false Of alle veldwaarden tussen aanhalingstekens moeten worden geplaatst, ongeacht de inhoud. Van toepassing op CSV (DataFrameWriter).
sep , Het veldscheidingsteken. Van toepassing op CSV (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] De notatietekenreeks voor tijdstempelkolomwaarden. Van toepassing op CSV (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Tekenreeks opmaken voor tijdstempel zonder tijdzonekolomwaarden.a0>

Excel

Key Verstek Description
dataAddress None De bladnaam of begincel voor de schrijfbewerking. Als u dit weglaat, schrijft u naar een blad met de naam Sheet1 beginnend bij cel A1. Accepteert een bladnaam ("SheetName") of één celverwijzing ("SheetName!A1"). Celbereiken worden niet ondersteund voor schrijfbewerkingen.
dateFormatInWrite yyyy-mm-dd Excel tekenreeks voor celopmaak toegepast op Date kolommen. Maakt gebruik van Excel notatiesyntaxis.
headerRows 0 Of u kolomnamen als eerste rij wilt schrijven. Geldige waarden: 0, 1.
timestampNTZFormat yyyy-mm-dd hh:mm:ss Excel tekenreeks voor celopmaak die is toegepast op kolommen TimestampNTZ en Timestamp. Maakt gebruik van Excel notatiesyntaxis.
version xlsx De versie van de Excel-bestandsindeling die moet worden geschreven. Geldige waarden: xlsx, xls.

JSON

Key Verstek Description
compression none Compressiecodec die moet worden gebruikt bij het schrijven. Geldige waarden: none, bzip2, gzip, lz4, , snappy, deflate. zstd Van toepassing op json (DataFrameWriter).
dateFormat yyyy-MM-dd Tekenreeks opmaken voor datumkolomwaarden. Van toepassing op json (DataFrameWriter).
encoding UTF-8 De tekencodering voor de uitvoerbestanden. Van toepassing op json (DataFrameWriter).
ignoreNullFields waarde van spark.sql.jsonGenerator.ignoreNullFields Hiermee wordt aangegeven of velden met null-waarden uit de JSON-uitvoer moeten worden weggelaten. Van toepassing op json (DataFrameWriter).
lineSep \n De tekenreeks voor regelscheidingstekens die tussen records wordt gebruikt. Van toepassing op json (DataFrameWriter).
locale en-US Een java.util.Locale-id. Beïnvloedt de opmaak van datum- en tijdstempelwaarden bij het schrijven.
pretty false Of u de JSON-uitvoer (ingesprongen, multiline) wilt inschakelen.
sortKeys false Of u de sleutels van JSON-objecten alfabetisch in de uitvoer wilt sorteren. Handig voor het produceren van deterministische uitvoer.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] De notatietekenreeks voor tijdstempelkolomwaarden. Van toepassing op json (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Tekenreeks opmaken voor tijdstempel zonder tijdzonekolomwaarden.a0>
writeNonAsciiCharacterAsCodePoint false Of u niet-ASCII-tekens wilt coderen als \uXXXX Unicode-escapereeksen in plaats van letterlijke UTF-8 tekens in de uitvoer.

ORC

Key Verstek Description
compression zstd Compressiecodec die moet worden gebruikt bij het schrijven. Geldige waarden: none, uncompressed, snappy, , zlib, lzo, zstd, lz4. brotli Van toepassing op orc (DataFrameWriter).

Parket

Key Verstek Description
compression snappy Compressiecodec die moet worden gebruikt bij het schrijven. Geldige waarden: none, uncompressed, snappy, , gzip, lzo, brotli, lz4, lz4_raw. zstd Van toepassing op parquet (DataFrameWriter).
spark.sql.parquet.outputTimestampType INT96 Het fysieke type dat wordt gebruikt om tijdstempelkolommen te coderen. Geldige waarden: INT96, TIMESTAMP_MICROS, TIMESTAMP_MILLIS. Gebruik INT96 deze functie voor compatibiliteit met verouderde Parquet-lezers die geen ondersteuning bieden voor de standaard timestamptypen.

Tekst

Key Verstek Description
compression none Compressiecodec die moet worden gebruikt bij het schrijven. Geldige waarden: none, bzip2, gzip, lz4, , snappy, deflate. zstd Van toepassing op tekst (DataFrameWriter).
encoding UTF-8 De tekencodering voor de uitvoerbestanden.
lineSep \n De tekenreeks voor regelscheidingstekens die tussen records wordt gebruikt. Van toepassing op tekst (DataFrameWriter).

XML

Key Verstek Description
arrayElementName item De elementnaam voor matrixelementen zonder expliciete naam. Van toepassing op xml (DataFrameWriter).
attributePrefix _ Het voorvoegsel dat is voorafgegaan aan veldnamen die overeenkomen met XML-kenmerken. Van toepassing op xml (DataFrameWriter).
compression none Compressiecodec die moet worden gebruikt bij het schrijven. Geldige waarden: none, bzip2, gzip, lz4, , snappy, deflate. zstd Van toepassing op xml (DataFrameWriter).
dateFormat yyyy-MM-dd Tekenreeks opmaken voor datumkolomwaarden. Van toepassing op xml (DataFrameWriter).
declaration version="1.0" encoding="UTF-8" standalone="yes" De XML-declaratietekenreeks die boven aan elk uitvoerbestand is geschreven. Ingesteld op een lege tekenreeks om de declaratie te onderdrukken. Van toepassing op xml (DataFrameWriter).
encoding UTF-8 De tekencodering voor de uitvoerbestanden. Van toepassing op xml (DataFrameWriter).
indent 4 spaties De tekenreeks die wordt gebruikt om onderliggende elementen in de uitvoer te laten inspringen. Stel deze in op een lege tekenreeks om inspringing uit te schakelen en elke rij op één regel te schrijven.
locale en-US Een java.util.Locale-id. Beïnvloedt de opmaak van datum- en tijdstempelwaarden bij het schrijven.
nullValue null De tekenreeks die is geschreven voor null-waarden. Wanneer deze waarde is ingesteld null, worden kenmerken en onderliggende elementen voor null-velden weggelaten. Van toepassing op xml (DataFrameWriter).
rootTag ROWS De hoofdelementtag waarmee alle rijelementen in de uitvoer worden verpakt. Van toepassing op xml (DataFrameWriter).
rowTag ROW De elementtag die een rij in de uitvoer vertegenwoordigt. Van toepassing op xml (DataFrameWriter).
singleVariantColumn None De naam van de kolom Met één variant die moet worden geschreven naar XML-bestanden. Van toepassing op xml (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] De notatietekenreeks voor tijdstempelkolomwaarden. Van toepassing op xml (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Tekenreeks opmaken voor tijdstempel zonder tijdzonekolomwaarden. Van toepassing op xml (DataFrameWriter).
validateName true Of een uitzondering moet worden gegenereerd als een kolomnaam geen geldige XML-element-id is. Van toepassing op xml (DataFrameWriter).
valueTag _VALUE De veldnaam die wordt gebruikt voor tekengegevens in XML-elementen die ook kenmerken of onderliggende elementen bevatten. Van toepassing op xml (DataFrameWriter).

Opties voor DataStreamWriter

Gebruik deze opties om DataStreamWriter.option() streaming-schrijfbewerkingen te configureren.

Example

In het volgende voorbeeld wordt de locatie van het controlepunt voor een stream ingesteld:

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

Gemeenschappelijk

Key Verstek Description
checkpointLocation Geen (vereist) Pad naar de controlepuntmap voor de streamingquery. Vereist voor fouttolerantie en exact-eenmaal verwerkingsgaranties. Elke streamingquery moet een unieke controlepuntlocatie gebruiken. Databricks raadt aan controlepunten op te slaan in een Unity Catalog-volume of cloudopslagpad. Zie Controlepunten voor gestructureerd streamen.
path None Uitvoerpad voor streaming-sinks op basis van bestanden, zoals Parquet. Alleen van toepassing op bestandsindelingen.

Console-sink

Key Verstek Description
numRows 20 Het aantal rijen dat moet worden weergegeven voor elke microbatch bij het schrijven naar de console-sink.
truncate true Of lange tekenreeksen moeten worden afgekapt bij het weergeven van rijen. Ingesteld op het false weergeven van volledige tekenreekswaarden.

Delta Lake

De volgende opties zijn van toepassing bij het schrijven van een stroom naar een Delta Lake-tabel met behulp van format("delta"). Opties voor alleen overschrijven, zoals overwriteSchema, replaceWhereen partitionOverwriteMode worden niet ondersteund voor streaming-schrijfbewerkingen.

Key Verstek Description
mergeSchema false Of u het Delta Lake-tabelschema wilt ontwikkelen wanneer het streaming DataFrame nieuwe kolommen bevat. Alleen van toepassing op de toevoeguitvoermodus. Is van toepassing op updatetabelschema.
userMetadata None Een door de gebruiker gedefinieerde tekenreeks die is toegevoegd aan de doorvoermetagegevens voor de schrijfbewerking. Zichtbaar in de uitvoer van DESCRIBE HISTORY. Van toepassing op Verrijken-tabellen met aangepaste metagegevens.

Bestandssink

De volgende optie is van toepassing bij het schrijven van een stream naar bestandsindelingen (Parquet, JSON, CSV, ORC, tekst). Zie DataFrameWriter-opties voor specifieke indelingen.

Key Verstek Description
retention None Hoe lang het bewaren van sinkmetagegevensbestanden die worden gebruikt voor fouttolerantie en compressie. Accepteert een tijdtekenreeks zoals 7 days of 24 hours. Wanneer deze niet is ingesteld, worden metagegevensbestanden voor onbepaalde tijd bewaard.

Kafka-sink

Zie Opties voor een volledige lijst met opties voor het schrijven van streams naar Kafka.

Key Verstek Description
kafka.bootstrap.servers None Verplicht. Een door komma's gescheiden lijst met Kafka-brokeradressen host:port .
topic None Het Kafka-doelonderwerp voor alle rijen. Vereist als het DataFrame geen kolom bevat topic .
kafka.* None Elke Kafka-producentconfiguratie voorafgegaan door kafka.. Bijvoorbeeld: kafka.compression.type.

Geheugensink

Key Verstek Description
queryName Geen (vereist) De naam van de in-memory tabel waarnaar de query schrijft. Vereist voor de geheugensink. Ook configureerbaar via .queryName().
mode exactlyonce Leveringsgarantie voor de geheugensink. exactlyonce maakt gebruik van microbatchmodus met exactly-once semantiek. atleastonce maakt gebruik van continue modus met ten minste één keer semantiek. Geldige waarden: exactlyonce, atleastonce.

Spark-functieopties

Sommige ingebouwde Spark SQL-functies accepteren een options kaart waarmee het parserings- of serialisatiegedrag wordt beheerd. Geef opties door als een Python dict of een Scala-Map[String, String].

Example

In het volgende voorbeeld wordt een JSON-kolom geparseerd terwijl onjuiste records worden verwijderd:

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-functies accepteren dezelfde opties als de bijbehorende DataFrame-opties:

Example

In het volgende voorbeeld wordt een Avro-kolom gedecodeert waarvoor schemaontwikkeling is ingeschakeld:

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

Daarnaast accepteren de schemaregistervarianten from_avro de volgende opties:to_avro

Key Verstek Description
schemaId None Schema-id uit het Confluent-schemaregister dat moet worden gebruikt bij het decoderen van Avro-gegevens die zijn gecodeerd met een schema dat niet compatibel is met jsonFormatSchema. from_avro Alleen van toepassing op.
confluent.schema.registry.* None Confluent Schema Registry-clientconfiguratie-eigenschappen. Geef een Confluent SR-clienteigenschap door met behulp van dit voorvoegsel, bijvoorbeeld confluent.schema.registry.basic.auth.user.info voor basisverificatiereferenties. Vereist voor de schemaregistervarianten van from_avro en to_avro.

CSV

CSV-functies accepteren dezelfde opties als de bijbehorende DataFrame-opties:

Example

In het volgende voorbeeld wordt CSV gelezen met een aangepast scheidingsteken en NULL een aangepaste waarde:

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-functies accepteren dezelfde opties als de bijbehorende DataFrame-opties:

Example

In het volgende voorbeeld wordt JSON geschreven met NULL velden genegeerd en mooie opmaak ingeschakeld:

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 en to_protobuf gebruik geen gegevensbron op basis van bestanden. Protobuf-gegevens worden altijd gelezen en geschreven als binaire kolommen met behulp van deze functies. Opties worden doorgegeven als hoofdlettergevoelig Map[String, String] .

Example

In het volgende voorbeeld wordt een Protobuf-kolom gedecodeert met behulp van de PERMISSIVE-modus:

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-functies gebruiken de volgende opties:

Key Verstek Description
mode FAILFAST Beschadigde records verwerken. FAILFAST retourneert een uitzondering. PERMISSIVE hiermee stelt u onjuiste velden in op null. Geldige waarden: FAILFAST, PERMISSIVE. Van toepassing op from_protobuf.
recursive.fields.max.depth -1 (uitgeschakeld) Maximale recursiediepte voor recursieve Protobuf-velden. Ingesteld om 0 recursieve veldondersteuning uit te schakelen. Geldige waarden: 0 tot 10. Van toepassing op from_protobuf.
convert.any.fields.to.json false Of u Protobuf-velden Any wilt converteren naar een JSON-tekenreeks in plaats van een STRUCT. Van toepassing op from_protobuf.
emit.default.values false Of velden met nul of standaardwaarden moeten worden verzonden (proto3-semantiek). Wanneer false, velden met standaardwaarden worden weggelaten uit de uitvoer. Van toepassing op from_protobuf.
enums.as.ints false Of u enumvelden wilt weergeven als geheel getalwaarden in plaats van tekenreeksen. Van toepassing op from_protobuf.
upcast.unsigned.ints false Of u wilt upcasten uint32 naar Long en uint64 om een overloop van gehele getallen te Decimal(20,0) voorkomen. Van toepassing op from_protobuf.
unwrap.primitive.wrapper.types false Of u wrappertypen (bijvoorbeeld Int32Value en StringValue) wilt uitpakken google.protobuf voor de bijbehorende primitieve Spark-typen. Van toepassing op from_protobuf.
retain.empty.message.types false Of u lege Protobuf-berichttypen in het uitvoerschema wilt behouden door een dummykolom in te voegen. Van toepassing op from_protobuf.
schema.registry.subject None Onderwerpnaam schemaregister. Vereist bij het gebruik van de schemaregistervarianten van from_protobuf en to_protobuf.
schema.registry.address None SchemaRegisteradres (host en poort). Vereist bij het gebruik van de schemaregistervarianten van from_protobuf en to_protobuf.
schema.registry.protobuf.name None Hiermee geeft u op welk Protobuf-bericht moet worden gebruikt wanneer het onderwerp van het schemaregister meerdere berichten bevat. Optional.

XML

XML-functies accepteren dezelfde opties als de bijbehorende DataFrame-opties:

Example

In het volgende voorbeeld wordt XML geschreven met aangepaste hoofd- en rijtags:

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