Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 ]
|
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:
|
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:
|
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:
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:
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.csvHet 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:
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:
-
from_avroenschema_of_avrogebruik Avro-opties voor DataFrameReader. -
to_avromaakt gebruik van Avro-opties voor DataFrameWriter.
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:
-
from_csvenschema_of_csvgebruik CSV-opties voor DataFrameReader. -
to_csvmaakt gebruik van CSV-opties voor DataFrameWriter.
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:
-
from_jsonenschema_of_jsongebruik JSON-opties voor DataFrameReader. -
to_jsonmaakt gebruik van DataFrameWriter JSON-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:
-
from_xmlenschema_of_xmlgebruik XML-opties voor DataFrameReader. -
to_xmlmaakt gebruik van XML-opties voor DataFrameWriter.
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")))