Referenz zu Spark-API-Optionen

Auf dieser Seite sind die verfügbaren Eingabe- und Ausgabeoptionen für Spark-APIs aufgeführt, die Daten lesen und schreiben.

DataFrameReader-Optionen

Verwenden Sie diese Optionen mit DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO und Auto Loader, um zu steuern, wie Azure Databricks Datendateien liest.

Example

Im folgenden Beispiel wird festgelegt multiLine , dass True JSON-Dateien gelesen werden:

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)

Gemeinsam

Die folgenden Optionen gelten für alle Dateiformate.

Schlüssel Vorgabe Description
ignoreCorruptFiles false Gibt an, ob beschädigte Dateien ignoriert werden sollen. Bei TRUE werden die Spark-Aufträge weiterhin ausgeführt, wenn beschädigte Dateien festgestellt werden, und gelesene Inhalte werden weiterhin zurückgegeben. Für COPY INTO, können Sie übersprungene Dateien wie numSkippedCorruptFiles in der operationMetrics Spalte der Delta Lake Geschichte beobachten. Verfügbar in Databricks Runtime 11.3 LTS und höher.
ignoreMissingFiles false für das automatische Laden true für COPY INTO (Legacy) Gibt an, ob fehlende Dateien ignoriert werden sollen. Wenn true, werden die Spark-Aufträge weiterhin ausgeführt, wenn fehlende Dateien auftreten und die Inhalte weiterhin zurückgegeben werden. Verfügbar in Databricks Runtime 11.3 LTS und höher.
modifiedAfter None Optionaler Zeitstempel als Filter, um nur Dateien aufzunehmen, die nach dem angegebenen Zeitstempel einen Änderungszeitstempel aufweisen.
modifiedBefore None Ein optionaler Zeitstempel als Filter, um nur Dateien aufzunehmen, die einen Änderungszeitstempel vor dem bereitgestellten Zeitstempel aufweisen.
pathGlobFilter oder fileNamePattern None Ein mögliches Globmuster für die Auswahl von Dateien. PATTERN Entspricht in COPY INTO (Vorversion). fileNamePattern kann in read_files verwendet werden.
recursiveFileLookup false Wenn truediese Option geschachtelte Verzeichnisse durchsucht, auch wenn deren Namen keinem Partitionsbenennungsschema folgen, z date=2019-07-01. B. .

Avro

Schlüssel Vorgabe Description
avroSchema None Optionales Schema, das von einem Benutzer im Avro-Format bereitgestellt wird. Beim Lesen von Avro kann diese Option auf ein weiterentwickeltes Schema festgelegt werden, das kompatibel ist, aber sich von dem tatsächlichen Avro-Schema unterscheidet. Das Deserialisierungsschema entspricht dem weiterentwickelten Schema. Wenn Sie beispielsweise ein weiterentwickeltes Schema mit einer zusätzlichen Spalte mit einem Standardwert festlegen, enthält das Leseergebnis auch die neue Spalte.
avroSchemaEvolutionMode none Behandeln der Schemaentwicklung bei Verwendung einer Schemaregistrierung Gültige Werte: none (Schemaänderungen ignorieren und den Auftrag fortsetzen), restart (wenn Schemaänderungen erkannt werden, löst einen UnknownFieldException Auftrag neu aus und erfordert einen Auftragsneustart).
datetimeRebaseMode LEGACY Steuert, ob DATE- und TIMESTAMP-Werte auf dem gregorianischen Kalender und dem proleptischen gregorianischen Kalender basieren sollen. Gültige Werte sind EXCEPTION, LEGACY und CORRECTED.
enableStableIdentifiersForUnionType false Gibt an, ob stabile Feldnamen für Avro Union-Typen verwendet werden sollen. Wenn diese Option aktiviert ist, werden Die Namen von Union-Typfeldern aus ihren Typnamen in Kleinbuchstaben abgeleitet (z member_int. B. , member_string). Löst eine Ausnahme aus, wenn zwei Typnamen nach der Unterschreibweise identisch sind.
mergeSchema false Gibt an, ob das Schema über mehrere Dateien hinweg abgeleitet und das Schema der einzelnen Dateien zusammengeführt werden soll. mergeSchema für Avro bewirkt keine Lockerung von Datentypen.
mode FAILFAST Parsermodus für die Behandlung beschädigter Datensätze. Gültige Werte: FAILFAST (löst eine Ausnahme aus), PERMISSIVE (legt falsch formatierte Felder auf NULL fest), DROPMALFORMED (im Hintergrund werden ungültige Datensätze entfernt).
readerCaseSensitive true Diese Option gibt das Verhalten bei Groß- und Kleinschreibung an, wenn rescuedDataColumn aktiviert ist. Wenn true, retten Sie die Datenspalten, deren Namen sich vom Schema unterscheiden. Wenn "false" lautet, lesen Sie die Daten ohne Groß-/Kleinschreibung.
recursiveFieldMaxDepth None Die maximale Rekursionstiefe für rekursive Avro-Felder. Legen Sie fest 1 , dass alle rekursiven Felder abgeschnitten werden sollen, 2 um eine Rekursionsebene usw. zuzulassen 15. Wenn nicht festgelegte oder 0rekursive Felder nicht zulässig sind. Gültige Werte: 0 bis 15.
rescuedDataColumn None Gibt an, ob alle Daten, die aufgrund eines Datentypkonflikts oder eines Schemakonflikts (einschließlich der Schreibweise von Spaltennamen) nicht geparst werden können, in einer separaten Spalte gesammelt werden sollen. Diese Spalte ist bei Verwendung des Autoloaders standardmäßig enthalten.
COPY INTO (Legacy) unterstützt die gerettete Datenspalte nicht, da Sie das Schema nicht manuell mit COPY INTOfestlegen können. Databricks empfiehlt die Verwendung des automatischen Ladens für die meisten Aufnahmeszenarien.
Weitere Informationen finden Sie unter "Was ist die Spalte mit den geretteten Daten?".
stableIdentifierPrefixForUnionType member_ Das Präfix, das für stabile Union-Typ-Feldnamen verwendet werden soll, wenn enableStableIdentifiersForUnionType=true.

CSV

Schlüssel Vorgabe Description
badRecordsPath None Der Speicherpfad für Dateien, die Informationen über fehlerhafte CSV-Datensätze aufzeichnen.
charToEscapeQuoteEscaping \0 Das Zeichen, das als Escapezeichen für das Zeichen verwendet wird, das als Escapezeichen für Anführungszeichen verwendet wird. z. B. für den Datensatz [ " a\\", b ]:
  • Wenn das Zeichen, um dem '\' zu entkommen, nicht definiert ist, werden die Daten nicht analysiert. Der Parser liest die Zeichen [a],[\],["],[,],[ ],[b] und löst einen Fehler aus, da kein schließendes Anführungszeichen gefunden wird.
  • Wenn das Zeichen, das zum Escapen des '\' verwendet wird, als '\' definiert ist, wird der Datensatz mit 2 Werten gelesen: [a\] und [b].
columnNameOfCorruptRecord _corrupt_record Unterstützt für das Auto-Ladeprogramm Wird für COPY INTO (Legacy) nicht unterstützt.
Die Spalte zum Speichern von Datensätzen, die fehlerhaft formatiert sind und nicht analysiert werden können. Wenn mode für die Analyse auf DROPMALFORMED festgelegt ist, ist diese Spalte leer.
comment \0 Definiert das Zeichen, das einen Zeilenkommentar darstellt, wenn es am Anfang einer Textzeile steht. Verwenden Sie '\0', um das Überspringen von Kommentaren zu deaktivieren.
dateFormat yyyy-MM-dd Das Format für die Analyse von Datumszeichenfolgen.
emptyValue Leere Zeichenfolge Zeichenfolgendarstellung eines leeren Werts.
enableDateTimeParsingFallback false Gibt an, ob auf das Alte Datums- und Zeitstempelanalyseverhalten zurückfallen soll, wenn ein Wert nicht mit dem angegebenen Format analysiert werden kann. Beim falseAnalysieren von Fehlern wird ein Fehler ausgelöst oder je nach modeNull erzeugt.
encoding oder charset UTF-8 Der Name der Codierung der CSV-Dateien. Eine Liste der Optionen finden Sie unter java.nio.charset.Charset. UTF-16 und UTF-32 können nicht verwendet werden, wenn multiline ist true.
enforceSchema true Gibt an, ob das angegebene oder abgeleitete Schema zwangsweise auf die CSV-Dateien angewendet werden soll. Wenn die Option aktiviert ist, werden Kopfzeilen von CSV-Dateien ignoriert. Diese Option wird standardmäßig ignoriert, wenn der Autoloader verwendet wird, um Daten zu retten und die Schemaentwicklung zu ermöglichen.
escape \ Das Escapezeichen, das beim Analysieren der Daten verwendet werden soll.
extension csv Die erwartete Dateinamenerweiterung. Dateien ohne diese Erweiterung werden während der Lesevorgänge herausgefiltert.
failOnUnknownFields false Gibt an, ob ein Fehler auftritt, wenn der CSV-Eintrag Spalten enthält, die im Schema nicht vorhanden sind. Wenn false, nicht erkannte Spalten werden in Abhängigkeit von rescuedDataColumn.
failOnWidenedFields false Gibt an, ob ein Feldwert nicht als deklarierter Schematyp analysiert werden kann, ohne zu verbreitern. Wenn false, type-widened values are silently rescueed depending on rescuedDataColumn. Die Einstellung failOnUnknownFields=true kann die Effekte dieser Option maskierung.
header false Gibt an, ob die CSV-Dateien ein Kopfzeile enthalten. Der Autoloader geht bei der Schemaableitung davon aus, dass Dateien Kopfzeilen enthalten.
ignoreLeadingWhiteSpace false Gibt an, ob führende Leerzeichen für einzelne analysierte Werte ignoriert werden sollen.
ignoreTrailingWhiteSpace false Gibt an, ob nachstehende Leerzeichen für einzelne analysierte Werte ignoriert werden sollen.
inferSchema false Gibt an, ob die Datentypen der analysierten CSV-Datensätze abgeleitet werden sollen oder angenommen werden soll, dass alle Spalten den Typ StringType aufweisen. Bei Festlegung auf true ist eine zusätzliche Übergabe der Daten erforderlich. Verwenden Sie für den Autoloader stattdessen cloudFiles.inferColumnTypes.
inputBufferSize 1048576 (1 MB) Die Puffergröße in Byte für den CSV-Parser. Nützlich für die Optimierung der Speicherauslastung beim Analysieren großer CSV-Dateien. Gültige Werte: positive ganze Zahlen.
lineSep Keine, die , \r\r\n, und\n Eine Zeichenfolge zwischen zwei aufeinander folgenden CSV-Datensätzen.
locale US Ein java.util.Locale-Bezeichner. Beeinflusst die standardmäßige Analyse von Datumsangaben, Zeitstempeln und Dezimalzahlen in der CSV-Datei.
maxCharsPerColumn -1 Maximale Anzahl von Zeichen, die von einem zu analysierenden Wert erwartet werden. Kann verwendet werden, um Speicherfehler zu vermeiden. Der Standardwert ist -1, d. h. unbegrenzt. Gültige Werte: positive ganze Zahlen oder -1 für unbegrenzt.
maxColumns 20480 Der absolute Höchstwert für die Anzahl der Spalten, die ein Datensatz enthalten kann. Gültige Werte: positive ganze Zahlen.
mergeSchema false Gibt an, ob das Schema über mehrere Dateien hinweg abgeleitet und das Schema der einzelnen Dateien zusammengeführt werden soll. Standardmäßig für Autoloader aktiviert, wenn das Schema abgeleitet wird.
mode PERMISSIVE Parsermodus für die Verarbeitung fehlerhaft formatierter Datensätze. Gültige Werte: PERMISSIVE, DROPMALFORMED, FAILFAST.
multiLine false Gibt an, ob die CSV-Datensätze mehrere Zeilen umfassen.
nanValue NaN Die Zeichenfolgendarstellung eines NaN-Werts, wenn FloatType- und DoubleType-Spalten verwendet werden.
negativeInf -Inf Die Zeichenfolgendarstellung von negativ Unendlich, wenn FloatType- und DoubleType-Spalten verwendet werden.
nullValue Leere Zeichenfolge Zeichenfolgendarstellung eines NULL-Werts.
parserCaseSensitive (veraltet) false Gibt beim Lesen von Dateien an, ob Spalten, die in der Kopfzeile deklariert sind, unter Berücksichtigung der Groß-/Kleinschreibung am Schema angepasst werden sollen. Diese Option ist für den Autoloader standardmäßig true. Spalten, deren Groß-/Kleinschreibung abweicht, werden in die rescuedDataColumn-Spalte gerettet (sofern aktiviert). Diese Option wurde durch readerCaseSensitive ersetzt und gilt als veraltet.
positiveInf Inf Die Zeichenfolgendarstellung von positiv Unendlich, wenn FloatType- und DoubleType-Spalten verwendet werden.
preferDate true Versucht, Zeichenfolgen nach Möglichkeit als Datumsangaben abzuleiten, nicht als Zeitstempel. Sie müssen auch die Schemaausleitung verwenden, indem Sie das automatische Laden aktivieren inferSchema oder verwenden cloudFiles.inferColumnTypes .
quote " Das Zeichen, das als Escapezeichen für Werte verwendet wird, bei denen das Feldtrennzeichen Bestandteil des Werts ist.
readerCaseSensitive true Diese Option gibt das Verhalten bei Groß- und Kleinschreibung an, wenn rescuedDataColumn aktiviert ist. Wenn true, retten Sie die Datenspalten, deren Namen sich vom Schema unterscheiden. Wenn "false" lautet, lesen Sie die Daten ohne Groß-/Kleinschreibung.
rescuedDataColumn None Gibt an, ob alle Daten, die aufgrund eines Datentypkonflikts oder eines Schemakonflikts (einschließlich der Schreibweise von Spaltennamen) nicht geparst werden können, in einer separaten Spalte gesammelt werden sollen. Diese Spalte ist bei Verwendung des Autoloaders standardmäßig enthalten. Weitere Informationen finden Sie unter "Was ist die Spalte mit den geretteten Daten?".
COPY INTO (Legacy) unterstützt die gerettete Datenspalte nicht, da Sie das Schema nicht manuell mit COPY INTOfestlegen können. Databricks empfiehlt die Verwendung des automatischen Ladens für die meisten Aufnahmeszenarien.
sep oder delimiter , Die Trennzeichenfolge zwischen Spalten.
singleVariantColumn None Wenn sie auf einen Spaltennamen festgelegt ist, wird der gesamte CSV-Eintrag in einer einzelnen VariantType Spalte mit diesem Namen gelesen, anstatt jedes Feld in eine eigene Spalte zu analysieren. Erfordert header=true.
skipRows 0 Die Anzahl der Zeilen vom Anfang der CSV-Datei, die ignoriert werden sollen (einschließlich auskommentierter und leerer Zeilen). Wenn header „True“ ist, ist die Kopfzeile die erste nicht übersprungene und nicht auskommentierte Zeile. Gültige Werte: positive ganze Zahlen oder 0.
timeFormat HH:mm:ss Das Format für die Analyse von TimeType Spaltenwerten.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Das Format zum Analysieren von Zeitstempelzeichenfolgen.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Das Format für die Analyse des Zeitstempels ohne Zeitzonenzeichenfolgen .The format for parsing timestamp without timezone (TimestampNTZType) strings.
timeZone None Die java.time.ZoneId, die beim Analysieren von Zeitstempeln und Datumsangaben verwendet werden soll.
unescapedQuoteHandling STOP_AT_DELIMITER Die Strategie für die Behandlung von Anführungszeichen ohne Escapezeichen. Zulässige Optionen:
  • STOP_AT_CLOSING_QUOTE: Wenn in der Eingabe Anführungszeichen ohne Escapezeichen erkannt werden, wird das Anführungszeichen akkumuliert und der Wert als Wert in Anführungszeichen analysiert, bis ein schließendes Anführungszeichen erkannt wird.
  • BACK_TO_DELIMITER: Wenn in der Eingabe Anführungszeichen ohne Escapezeichen erkannt werden, wird der Wert als Wert ohne Anführungszeichen betrachtet. Der Parser akkumuliert dann alle Zeichen des aktuellen analysierten Werts, bis das von sep definierte Trennzeichen gefunden wird. Wenn im Wert kein Trennzeichen gefunden wird, akkumuliert der Parser weiter Zeichen aus der Eingabe, bis ein Trennzeichen oder Zeilenende gefunden wird.
  • STOP_AT_DELIMITER: Wenn in der Eingabe Anführungszeichen ohne Escapezeichen erkannt werden, wird der Wert als Wert ohne Anführungszeichen betrachtet. Dadurch wird der Parser veranlasst, alle Zeichen zu akkumulieren, bis das durch sep definierte Trennzeichen oder ein Zeilenende in der Eingabe gefunden wird.
  • SKIP_VALUE: Wenn in der Eingabe Anführungszeichen ohne Escapezeichen gefunden werden, wird der Inhalt, der für den angegebenen Wert geparst wurde, übersprungen (bis das nächste Trennzeichen gefunden wird) und stattdessen wird der in nullValue angegebene Wert erzeugt.
  • RAISE_ERROR: Wenn nicht gescapete Anführungszeichen in der Eingabe gefunden werden, wird eine TextParsingException ausgelöst.

Excel

Schlüssel Vorgabe Description
dataAddress None Der zu lesende Zellbereich in Excel Syntax. Wenn dieser Wert nicht angegeben wird, werden alle gültigen Zellen aus dem ersten Blatt gelesen. Dient "SheetName!C5:H10" zum Lesen eines Bereichs aus einem benannten Blatt, "C5:H10" zum Lesen eines Bereichs vom ersten Blatt oder "SheetName" zum Lesen aller Daten aus einem bestimmten Blatt.
headerRows 0 Anzahl der anfänglichen Zeilen, die als Spaltennamenüberschriften verwendet werden sollen. Wenn dataAddress angegeben, gilt dies innerhalb des Zellbereichs. Wenn 0, Spaltennamen automatisch generiert werden als _c1, _c2, , _c3usw. Gültige Werte: 0, 1.
ignoreMissingSheet false Gibt an, ob Dateien ohne Hintergrund übersprungen werden sollen, die nicht das durch dataAddress. Wenn falseein Fehler ausgelöst wird, wenn eine Datei das angeforderte Blatt fehlt. Gilt nur, wenn ein Blattname angegeben dataAddresswird. Gültige Werte: true, false.
includePhoneticRuns false Gibt an, ob phonetische Anmerkungen (z. B. Pinyin oder Furigana) beim Lesen von XLSX-Dateien mit Zellzeichenfolgenwerten verkettet werden sollen. Gültige Werte: true, false.
operation readSheet Der Vorgang, der für die Excel Arbeitsmappe ausgeführt werden soll. Gültige Werte: readSheet (liest Daten aus einem Blatt), listSheets (gibt eine Struktur mit Feldern sheetIndex: long und sheetName: String für jedes Blatt zurück).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Benutzerdefinierte Formatzeichenfolge für Zeitstempel-ohne-Zeitzone-Werte, die als Zeichenfolgen in Excel gespeichert sind. Benutzerdefinierte Datumsformate folgen den Formaten der Datum-Zeit-Muster.
dateFormat yyyy-MM-dd Benutzerdefinierte Formatzeichenfolge für Zeichenfolgenwerte, die als gelesen werden Date. Benutzerdefinierte Datumsformate folgen den Formaten der Datum-Zeit-Muster.

JSON

Schlüssel Vorgabe Description
allowBackslashEscapingAnyCharacter false Gibt an, ob umgekehrte Schrägstriche als Escapezeichen für das folgende Zeichen zugelassen werden sollen. Wenn diese Option nicht aktiviert ist, können nur Zeichen mit Escapezeichen versehen werden, die explizit in der JSON-Spezifikation aufgeführt werden.
allowComments false Gibt an, ob die Verwendung von Java-, C- und C++-Kommentaren ('/', '*' bzw. '//') in analysierten Inhalten zugelassen werden soll oder nicht.
allowNonNumericNumbers true Gibt an, ob die Menge der NaN-Token (Not-a-Number) als zulässige Gleitkommazahlenwerte zugelassen werden soll.
allowNumericLeadingZeros false Gibt an, ob ganze Zahlen mit zusätzlichen (zu ignorierenden) Nullen beginnen sollen (z. B. 000001).
allowSingleQuotes true Gibt an, ob die Verwendung von einfachen Anführungszeichen (Apostroph, Zeichen '\') für das Zitieren von Zeichenfolgen, einschließlich Namen und Werte, zugelassen werden soll.
allowUnquotedControlChars false Gibt an, ob JSON-Zeichenfolgen Steuerzeichen ohne Escapezeichen (ASCII-Zeichen mit einem Wert kleiner als 32, z. B. Tabstopp- und Zeilenvorschubzeichen) enthalten dürfen.
allowUnquotedFieldNames false Gibt an, ob nicht angestellte Feldnamen verwendet werden sollen, die von JavaScript zulässig sind, aber nicht durch die JSON-Spezifikation.
alternateVariantEncoding None Die Codierung, die für Variant-Werte im JSON-Quellwert verwendet wird. Legen Sie diesen Wert fest, um Z85 Variant-Werte zu decodieren, die base85-codiert wurden, anstatt als Inline-JSON zu speichern.
badRecordsPath None Der Pfad zum Speichern von Dateien zur Aufzeichnung von Informationen über fehlerhafte JSON-Datensätze.
Die Verwendung der badRecordsPath Option in einer dateibasierten Datenquelle hat die folgenden Einschränkungen:
  • Es ist nicht transaktional und kann zu inkonsistenten Ergebnissen führen.
  • Vorübergehende Fehler werden als Fehler behandelt.
columnNameOfCorruptRecord _corrupt_record Die Spalte zum Speichern von Datensätzen, die fehlerhaft formatiert sind und nicht analysiert werden können. Wenn mode für die Analyse auf DROPMALFORMED festgelegt ist, ist diese Spalte leer.
dateFormat yyyy-MM-dd Das Format für die Analyse von Datumszeichenfolgen.
dropFieldIfAllNull false Ob Spalten während der Schemaerkennung ignoriert werden sollen, die nur NULL-Werte oder leere Arrays und Strukturen enthalten.
encoding oder charset UTF-8 Der Name der Codierung der JSON-Dateien. Eine Liste der Optionen finden Sie unter java.nio.charset.Charset. Sie können UTF-16 und UTF-32 nicht verwenden, wenn multilinetrue ist.
inferTimestamp false Gibt an, ob versucht werden soll, Zeitstempelzeichenfolgen als TimestampType abzuleiten. Bei Festlegung auf true", kann die Schema-Ableitung spürbar länger dauern. Für die Verwendung mit dem Autoloader müssen Sie cloudFiles.inferColumnTypes aktivieren.
lineSep Keine, die , \r\r\n, und\n Eine Zeichenfolge zwischen zwei aufeinander folgenden JSON-Datensätzen.
locale US Ein java.util.Locale-Bezeichner. Beeinflusst die standardmäßige Analyse von Datumsangaben, Zeitstempeln und Dezimalzahlen im JSON-Code.
maxNestingDepth 500 Die maximal zulässige Schachtelungstiefe für JSON-Objekte und Arrays. Erhöhen Sie diesen Wert für tief geschachtelte Dokumente. Gültige Werte: positive ganze Zahlen.
maxNumLen 1000 Die maximale Länge von Zahlentoken in der JSON-Eingabe. Erhöhen Sie diesen Wert für JSON mit großen numerischen Literalen. Gültige Werte: positive ganze Zahlen.
maxStringLen Unbeschränkt Die maximale Länge von Zeichenfolgenwerten in der JSON-Eingabe. Legen Sie fest, dass die Speicherauslastung beim Analysieren von JSON mit großen Zeichenfolgen begrenzt wird. Gültige Werte: positive ganze Zahlen.
mode PERMISSIVE Parsermodus für die Verarbeitung fehlerhaft formatierter Datensätze. Gültige Werte: PERMISSIVE, DROPMALFORMED, FAILFAST.
multiLine false Gibt an, ob die JSON-Datensätze mehrere Zeilen umfassen.
prefersDecimal false Versucht, Zeichenfolgen nach Möglichkeit als DecimalType abzuleiten, nicht als float- oder double-Typ. Sie müssen auch die Schemaausleitung verwenden, indem Sie das automatische Laden aktivieren inferSchema oder verwenden cloudFiles.inferColumnTypes .
primitivesAsString false Gibt an, ob primitive Typen wie Zahlen und boolesche Werte als StringType abgeleitet werden sollen.
readerCaseSensitive true Diese Option gibt das Verhalten bei Groß- und Kleinschreibung an, wenn rescuedDataColumn aktiviert ist. Wenn true, retten Sie die Datenspalten, deren Namen sich vom Schema unterscheiden. Wenn "false" lautet, lesen Sie die Daten ohne Groß-/Kleinschreibung. Verfügbar in Databricks Runtime 13.3 und höher.
rescuedDataColumn None Gibt an, ob alle Daten gesammelt werden sollen, die aufgrund eines Datentypkonflikts oder eines Schemakonflikts (einschließlich spaltenweiser Groß-/Kleinschreibung) nicht analysiert werden können. Diese Spalte ist bei Verwendung des Autoloaders standardmäßig enthalten. Weitere Informationen finden Sie unter "Was ist die Spalte für gerettete Daten?".
COPY INTO (Legacy) unterstützt die gerettete Datenspalte nicht, da Sie das Schema nicht manuell mit COPY INTOfestlegen können. Databricks empfiehlt die Verwendung des automatischen Ladens für die meisten Aufnahmeszenarien.
singleVariantColumn None Gibt an, ob das gesamte JSON-Dokument aufgenommen werden soll, analysiert in eine einzelne Variant-Spalte mit der angegebenen Zeichenfolge als Namen der Spalte. Wenn nicht festgelegt, werden die JSON-Felder in ihre eigenen Spalten aufgenommen. Gültige Werte: eine beliebige Zeichenfolge.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Das Format zum Analysieren von Zeitstempelzeichenfolgen.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Das Format für die Analyse des Zeitstempels ohne Zeitzonenzeichenfolgen .The format for parsing timestamp without timezone (TimestampNTZType) strings.
timeZone None Die java.time.ZoneId, die beim Analysieren von Zeitstempeln und Datumsangaben verwendet werden soll.
upgradeExceptionAsBadRecord false Gibt an, ob Typupgrade-Ausnahmen behandelt werden sollen (z. B. wenn ein Wert nicht auf den deklarierten Spaltentyp erweitert werden kann) als ungültige Datensätze, anstatt eine Ausnahme auszuwerfen.

Kafka

Eine vollständige Liste der Kafka-Leseoptionen finden Sie unter DataStreamReader Kafka-Optionen. Die folgenden Optionen gelten nur für Batchlesevorgänge.spark.read.format("kafka")

Schlüssel Vorgabe Description
endingOffsets latest Wo das Lesen beendet werden soll. Gültige Werte: latest, oder eine JSON-Zeichenfolge von Offsets für jede Partition, z {"topicA":{"0":50,"1":-1}}. B. .
In der JSON-Zeichenfolge -1 ist der neueste Offset angegeben. -2, bei dem es sich um den frühesten Offset handelt, ist nicht als Endoffset zulässig.
endingOffsetsByTimestamp None Verschiebungen pro Partition, die als Zeitstempel in Millisekunden angegeben sind. Gültige Werte: eine JSON-Zeichenfolge mit Zeitstempeln für jede Partition, z {"topicA":{"0":2000,"1":3000}}. B. .
endingTimestamp None Globaler Endzeitstempel in Millisekunden, der auf alle Partitionen angewendet wird. Gültige Werte: nicht negative ganze Zahlen.

ORC

Schlüssel Vorgabe Description
mergeSchema false Gibt an, ob das Schema über mehrere Dateien hinweg abgeleitet und das Schema der einzelnen Dateien zusammengeführt werden soll.

Parkett

Schlüssel Vorgabe Description
datetimeRebaseMode LEGACY Steuert, ob DATE- und TIMESTAMP-Werte auf dem gregorianischen Kalender und dem proleptischen gregorianischen Kalender basieren sollen. Gültige Werte sind EXCEPTION, LEGACY und CORRECTED.
int96RebaseMode LEGACY Steuert, ob INT96-Zeitstempelwerte auf dem gregorianischen Kalender und dem proleptischen gregorianischen Kalender basieren sollen. Gültige Werte sind EXCEPTION, LEGACY und CORRECTED.
mergeSchema false Gibt an, ob das Schema über mehrere Dateien hinweg abgeleitet und das Schema der einzelnen Dateien zusammengeführt werden soll.
readerCaseSensitive true Diese Option gibt das Verhalten bei Groß- und Kleinschreibung an, wenn rescuedDataColumn aktiviert ist. Wenn true, retten Sie die Datenspalten, deren Namen sich vom Schema unterscheiden. Wenn "false" lautet, lesen Sie die Daten ohne Groß-/Kleinschreibung.
rescuedDataColumn None Gibt an, ob alle Daten, die aufgrund eines Datentypkonflikts oder eines Schemakonflikts (einschließlich der Schreibweise von Spaltennamen) nicht geparst werden können, in einer separaten Spalte gesammelt werden sollen. Diese Spalte ist bei Verwendung des Autoloaders standardmäßig enthalten. Weitere Informationen finden Sie unter "Was ist die Spalte mit den geretteten Daten?".
COPY INTO (Legacy) unterstützt die gerettete Datenspalte nicht, da Sie das Schema nicht manuell mit COPY INTOfestlegen können. Databricks empfiehlt die Verwendung des automatischen Ladens für die meisten Aufnahmeszenarien.

Statusspeicher

Verwenden Sie diese Optionen mit spark.read.format("statestore") oder der read_statestore Tabellenwertfunktion, um Strukturierte Streaming-Statusdaten zu lesen. Weitere Informationen finden Sie unter Lesen von strukturierten Streamingstatusinformationen.

Schlüssel Vorgabe Description
batchId Neueste Batch-ID Der Zielbatch, aus dem gelesen werden soll. Wird verwendet, um einen früheren Status der Abfrage abzufragen. Der Batch muss committet, aber noch nicht bereinigt werden. Gültige Werte: nicht negative ganze Zahlen.
operatorId 0 Der Zieloperator, aus dem gelesen werden soll. Wird verwendet, wenn die Abfrage über mehrere zustandsbehaftete Operatoren verfügt. Gültige Werte: nicht negative ganze Zahlen.
storeName DEFAULT Der Name des Zielstatusspeichers, aus dem gelesen werden soll. Wird verwendet, wenn der zustandsbehaftete Operator über mehrere Instanzen des Zustandsspeichers verfügt. Sie müssen entweder storeName oder joinSide für einen Stream-Stream-Join angeben, aber nicht für beides. Gültige Werte: eine beliebige Zeichenfolge.
joinSide None Die Zielseite, aus der für eine Streamstream-Verknüpfung gelesen werden soll. Sie müssen entweder storeName oder joinSide für einen Stream-Stream-Join angeben, aber nicht für beides. Gültige Werte: left, right.
snapshotStartBatchId None Die Batch-ID der Momentaufnahme, die beim Lesen als Ausgangspunkt verwendet werden soll. Der Leser erstellt den Zustand neu, indem Änderungen von dieser Momentaufnahme bis zur batchIdWiedergabe wiedergegeben werden. Nützlich, wenn eine Momentaufnahme beschädigt ist. Muss zusammen mit snapshotPartitionId. Kann nicht mit readChangeFeed. Unterstützt den HDFS-gesicherten Zustandsspeicher und den RocksDB-Zustandsspeicher mit aktivierter Changelog-Prüfpunkterstellung. Verfügbar in Databricks Runtime 15.4 LTS und höher. Gültige Werte: nicht negative ganze Zahlen.
snapshotPartitionId None Wenn angegeben, liest die Abfrage nur diese Partition. Muss zusammen mit snapshotStartBatchId. Kann nicht mit readChangeFeed. Verfügbar in Databricks Runtime 15.4 LTS und höher. Gültige Werte: nicht negative ganze Zahlen.
readChangeFeed false Wenn true, gibt Zustandsänderungen in einem angegebenen Bereich von Batches zwischen changeStartBatchId und changeEndBatchId. Erfordert changeStartBatchId. Kann nicht mit joinSide, , batchId, snapshotStartBatchIdoder snapshotPartitionId. Verfügbar in Databricks Runtime 16.4 LTS und höher. Gültige Werte: true, false.
Ausführliche Informationen finden Sie unter Änderungen des Status "Strukturiertes Streaming lesen".
changeStartBatchId None Die Startbatch-ID für den Änderungsfeedbereich. Erforderlich, wenn readChangeFeed gleich true ist. Gilt nur, wenn readChangeFeed sie auf true. Verfügbar in Databricks Runtime 16.4 LTS und höher. Gültige Werte: nicht negative ganze Zahlen.
changeEndBatchId Neueste Batch-ID Die endende Batch-ID für den Änderungsfeedbereich. Muss größer oder gleich sein.changeStartBatchId Gilt nur, wenn readChangeFeed sie auf true. Verfügbar in Databricks Runtime 16.4 LTS und höher. Gültige Werte: nicht negative ganze Zahlen.
stateVarName None Der zu lesende Statusvariablenname. Der Name der Statusvariablen ist der eindeutige Name jeder Variablen innerhalb der init Funktion eines StatefulProcessor vom transformWithState Operator verwendeten. Erforderlich, wenn Sie den transformWithState Operator verwenden. Verfügbar in Databricks Runtime 16.4 LTS und höher. Gültige Werte: eine beliebige Zeichenfolge.
readRegisteredTimers false Wenn true, liest registrierte Zeitgeber, die vom transformWithState Operator verwendet werden. Gilt nur für den transformWithState Operator. Verfügbar in Databricks Runtime 16.4 LTS und höher. Gültige Werte: true, false.
flattenCollectionTypes true Wenn truedie datensätze, die für Karten- und Listenzustandsvariablen zurückgegeben werden, wird abgeflacht. Wenn false, gibt Datensätze als Spark SQL Array oder Map. Gilt nur für den transformWithState Operator. Verfügbar in Databricks Runtime 16.4 LTS und höher. Gültige Werte: true, false.

Text

Schlüssel Vorgabe Description
encoding UTF-8 Der Name der Codierung des TEXT-Dateizeilentrennzeichens. Eine Liste der Optionen finden Sie unter java.nio.charset.Charset. Der Inhalt der Datei ist von dieser Option nicht betroffen und wird as-isgelesen.
lineSep Keine, die umfasst \rund \r\n\n Eine Zeichenfolge zwischen zwei aufeinander folgenden TEXT-Datensätzen.
wholeText false Gibt an, ob eine Datei als einzelner Datensatz gelesen werden soll.

XML

Schlüssel Vorgabe Description
rowTag None Das Reihen-Tag der XML-Dateien, die als Reihe behandelt werden sollen. Im XML-Beispiel <books> <book><book>...<books> ist der entsprechende Wert book. Diese Option muss angegeben werden.
samplingRatio 1.0 Hiermit wird ein Bruchteil von Zeilen definiert, die für den Schemarückschluss verwendet werden. Diese Option wird von integrierten XML-Funktionen ignoriert. Gültige Werte: 0.0 bis 1.0.
excludeAttribute false Gibt an, ob Attribute in Elementen ausgeschlossen werden sollen.
mode None Modus für den Umgang mit beschädigten Datensätzen beim Parsen. PERMISSIVE: Fügt bei beschädigten Datensätzen die nicht wohlgeformte Zeichenfolge in ein durch columnNameOfCorruptRecord konfiguriertes Feld ein und legt nicht wohlgeformte Felder auf null fest. Um beschädigte Datensätze beizubehalten, können Sie in einem benutzerdefinierten Schema ein Feld des Typs string mit dem Namen columnNameOfCorruptRecord festlegen. Wenn ein Schema nicht über das Feld verfügt, werden beschädigte Datensätze beim Parsen gelöscht. Beim Ableiten eines Schemas fügt der Parser in einem Ausgabeschema ein columnNameOfCorruptRecord-Feld implizit hinzu. DROPMALFORMED: Ignoriert beschädigte Datensätze. Dieser Modus wird für integrierte XML-Funktionen nicht unterstützt. FAILFAST: Eine Ausnahme wird ausgelöst, wenn der Parser beschädigte Datensätze erkennt.
inferSchema true Versucht bei true, einen geeigneten Typ für jede resultierende DataFrame-Spalte abzuleiten. Bei false weisen alle resultierenden Spalten den Typ string auf. Diese Option wird von integrierten XML-Funktionen ignoriert.
columnNameOfCorruptRecord spark.sql.columnNameOfCorruptRecord Ermöglicht das Umbenennen des neuen Felds, das eine falsch formatierte Zeichenfolge enthält, die im PERMISSIVE Modus erstellt wurde.
attributePrefix None Das Präfix für Attribute, um Attribute von Elementen zu unterscheiden. Dies wird das Präfix für Feldnamen sein. Der Standardwert ist _. Kann zum Lesen von XML-Code leer sein, jedoch nicht zum Schreiben. Gilt auch für DataFrameWriter-XML-Optionen.
valueTag _VALUE Dies ist das Tag, das für die Zeichendaten in Elementen verwendet wird, die ebenfalls Attribute oder untergeordnete Elemente enthalten. Der Benutzer kann das valueTag-Feld im Schema angeben oder es wird während des Schemaabgleichs automatisch hinzugefügt, wenn Zeichendaten in Elementen mit anderen Elementen oder Attributen vorkommen. Gilt auch für DataFrameWriter-XML-Optionen.
encoding UTF-8 Zum Lesen werden die XML-Dateien durch den angegebenen Codierungstyp decodiert. Gibt zum Schreiben die Codierung (Zeichensatz) gespeicherter XML-Dateien an. Diese Option wird von integrierten XML-Funktionen ignoriert. Gilt auch für DataFrameWriter-XML-Optionen.
ignoreSurroundingSpaces true Gibt an, ob Leerzeichen, die Werte umgeben, übersprungen werden müssen. Zeichendaten, die ausschließlich aus Leerzeichen bestehen, werden ignoriert.
rowValidationXSDPath None Pfad zu einer optionalen XSD-Datei, die verwendet wird, um den XML-Code für jede Zeile einzeln zu überprüfen. Zeilen, die nicht überprüft werden, werden wie Analysefehler behandelt. Die XSD wirkt sich nicht auf das Schema aus, unabhängig davon, ob es bereitgestellt oder abgeleitet wird.
ignoreNamespace false Wenn true aktiv ist, werden die Präfixe von Namespaces für XML-Elemente und -Attribute ignoriert. Die Tags <abc:author> und <def:author> werden beispielsweise so behandelt werden, als wären beide lediglich <author>. Namespaces können für das rowTag-Element nicht ignoriert werden. Das ist lediglich für seine untergeordneten Elemente möglich, die gelesen werden sollen. Das XML-Parsing ist selbst bei false nicht namespacefähig.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Benutzerdefinierte Zeitstempelformatzeichenfolge, die dem Datetime-Musterformat folgt. Dies gilt für Typ timestamp. Gilt auch für DataFrameWriter-XML-Optionen.
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Benutzerdefinierte Zeichenfolge für das Zeitstempelformat ohne Zeitzone, die dem Format des Datetime-Musters folgt. Dies gilt für den TimestampNTZType-Typ. Gilt auch für DataFrameWriter-XML-Optionen.
dateFormat yyyy-MM-dd Benutzerdefinierte Datumsformatzeichenfolge, die dem Datetime-Musterformat folgt. Dies gilt für den Datumstyp. Gilt auch für DataFrameWriter-XML-Optionen.
locale en-US Hiermit wird ein Gebietsschema als Sprachtag im IETF BCP 47-Format festgelegt. Beispiel: locale wird beim Parsen von Daten und Zeitstempeln verwendet.
nullValue Zeichenfolge null Legt die Darstellung der Zeichenfolge eines NULL-Werts fest. Wenn dies der Fall ist null, schreibt der Parser keine Attribute und Elemente für Felder. Gilt auch für DataFrameWriter-XML-Optionen.
readerCaseSensitive true Gibt das Verhalten bei der Berücksichtigung der Groß-/Kleinschreibung an, wenn rescuedDataColumn aktiviert ist. Wenn true, retten Sie die Datenspalten, deren Namen sich vom Schema unterscheiden. Wenn "false" lautet, lesen Sie die Daten ohne Groß-/Kleinschreibung.
rescuedDataColumn None Gibt an, ob alle Daten, die aufgrund eines Datentypkonflikts oder eines Schemakonflikts (einschließlich der Groß-/Kleinschreibung von Spaltennamen) nicht analysiert werden können, in eine separate Spalte erfasst werden sollen. Diese Spalte ist bei Verwendung des Autoloaders standardmäßig enthalten. Weitere Informationen finden Sie in der Spalte "Gerettete Daten". COPY INTO (Legacy) unterstützt die gerettete Datenspalte nicht, da Sie das Schema nicht manuell mit COPY INTOfestlegen können. Databricks empfiehlt die Verwendung des automatischen Ladens für die meisten Aufnahmeszenarien.
singleVariantColumn none Gibt den Namen der einzelnen Variantenspalte an. Wenn diese Option zum Lesen angegeben ist, analysieren Sie den gesamten XML-Eintrag in eine einzelne Variant-Spalte mit dem angegebenen Optionszeichenfolgenwert als Namen der Spalte. Wenn diese Option zum Schreiben bereitgestellt wird, schreiben Sie den Wert der einzelnen Variant-Spalte in XML-Dateien. Gilt auch für DataFrameWriter-XML-Optionen.
useLegacyXMLParser true Gibt an, ob der Legacy-XML-Parser verwendet werden soll. Der Legacyparser verfügt über eine weniger strenge Überprüfung für falsch formatierte Inhalte, ist jedoch weniger speichereffizient. Legen Sie fest, dass false sie sich für den strengeren Standardparser entscheiden soll.
wildcardColName xs_any Der Spaltenname, der zum Erfassen von XML-Elementen verwendet wird, die mit dem Wildcard(xs:any)-Schemaelement übereinstimmen. Kann nicht zusammen mit rescuedDataColumn.

DataStreamReader-Optionen

Verwenden Sie diese Optionen zum DataStreamReader.option() Konfigurieren von Streaming-Lesevorgängen aus Delta Lake-Tabellen und anderen dateibasierten Quellen.

Informationen zu Dateiformatoptionen (JSON, CSV, Parkett und andere) finden Sie unter DataFrameReader-Optionen.

Optionen für das automatische Laden (cloudFiles.*) finden Sie unter "Auto Loader".

Example

Im folgenden Beispiel wird für einen Delta Lake-Tabellendatenstrom festgelegt maxFilesPerTrigger10 :

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

Gemeinsam

Die folgenden Optionen gelten für Delta Lake-Tabellen und andere dateibasierte Streamingquellen.

Schlüssel Vorgabe Description
cleanSource off Behandeln von Quelldateien, nachdem sie vom Datenstrom verarbeitet wurden. Gültige Werte: off (keine Aktion), delete (endgültig löschen sie die Quelldatei), archive (verschieben in sourceArchiveDir). Wenn dieser Wert auf ", archivesourceArchiveDir muss auch festgelegt werden. Gilt nicht für Das Streaming von Delta Lake-Tabellen.
fileNameOnly false Gibt an, ob bereits verarbeitete Dateien nur anhand des Dateinamens und nicht anhand des vollständigen Pfads identifiziert werden sollen. Wenn true, Dateien auf unterschiedlichen Pfaden mit demselben Dateinamen behandelt werden wie die gleiche Datei und werden nicht erneut verarbeitet. Gilt nicht für Das Streaming von Delta Lake-Tabellen.
latestFirst false Gibt an, ob die zuletzt geänderten Dateien zuerst in jedem Mikrobatch verarbeitet werden sollen. Nützlich, wenn Sie die neuesten Daten so schnell wie möglich verarbeiten möchten. Wenn true und maxFilesPerTrigger oder maxBytesPerTrigger festgelegt wird, maxFileAge wird ignoriert. Gilt nicht für Das Streaming von Delta Lake-Tabellen.
maxBytesPerTrigger None Soft maximum for the amount of data processed for each micro-batch. Ein Batch kann mehr als den Grenzwert verarbeiten, wenn die kleinste Eingabeeinheit sie überschreitet. Bei Verwendung zusammen mit maxFilesPerTriggerdem Mikrobatch verarbeitet die Mikrobatch daten, bis beide Grenzwerte zuerst erreicht sind. Gültige Werte: positive ganze Zahlen.
Verwenden Sie für den Autoloader stattdessen cloudFiles.maxBytesPerTrigger. Siehe "Allgemein".
maxCachedFiles 10000 Maximale Anzahl nicht verarbeiteter Dateien, die für nachfolgende Mikrobatches zwischengespeichert werden sollen. Legen Sie fest, 0 dass die Zwischenspeicherung deaktiviert wird. Erhöhen Sie diesen Wert, wenn das Quellverzeichnis viele neue Dateien für jeden Trigger enthält. Gilt nicht für Das Streaming von Delta Lake-Tabellen. Gültige Werte: positive ganze Zahlen oder 0.
maxFileAge 7d Maximales Alter von Dateien, die für die Verarbeitung berücksichtigt werden, relativ zum Zeitstempel der zuletzt geänderten Datei anstelle der aktuellen Systemzeit. Dateien, die älter als dieser Schwellenwert sind, werden ignoriert. Akzeptiert Dauerzeichenfolgen wie 7d oder 4h. Wird ignoriert, wenn latestFirst und maxFilesPerTriggertrue oder maxBytesPerTrigger festgelegt wird. Gilt nicht für Das Streaming von Delta Lake-Tabellen.
maxFilesPerTrigger 1000 für Delta Lake und Auto Loader. Kein Maximum für andere dateibasierte Quellen. Obere Grenze für die Anzahl der neuen Dateien, die in jedem Mikrobatch verarbeitet werden. Bei Verwendung zusammen mit maxBytesPerTriggerdem Mikrobatch verarbeitet die Mikrobatch daten, bis beide Grenzwerte zuerst erreicht sind. Gültige Werte: positive ganze Zahlen.
Verwenden Sie für den Autoloader stattdessen cloudFiles.maxFilesPerTrigger. Siehe "Allgemein".
sourceArchiveDir None Pfad zum Archivverzeichnis, wenn cleanSource auf .archive Quelldateien werden nach der Verarbeitung in diesen Pfad verschoben, wobei ihre relative Verzeichnisstruktur beibehalten wird. Gilt nicht für Das Streaming von Delta Lake-Tabellen.

AutoLadeprogramm

Verwenden Sie diese Optionen mit der cloudFiles Quelle, um das automatische Ladeprogramm für die Streamingaufnahme aus dem Cloudspeicher zu konfigurieren. Optionen, die für die cloudFiles Quelle spezifisch sind, werden präfixiert cloudFiles , um sie in einem separaten Namespace von anderen Optionen für strukturiertes Streaming zu behalten.

Gemeinsam

Schlüssel Vorgabe Description
cloudFiles.allowOverwrites false Gibt an, ob Änderungen der Eingabeverzeichnisdatei zum Überschreiben vorhandener Daten zulässig sind.
Informationen zu Konfigurationseinschränkungen finden Sie unter Verarbeitet das automatische Laden die Datei erneut, wenn die Datei angefügt oder überschrieben wird?.
cloudFiles.backfillInterval None Auto Loader kann asynchrone Rückfüllungen in einem bestimmten Intervall auslösen. Beispiel 1 day : tägliches Ausfüllen oder 1 week wöchentliches Zurückfüllen. Weitere Informationen finden Sie unter Regelmäßige Rückfüllungen mit cloudFiles.backfillInterval auslösen.
Nicht verwenden, wenn cloudFiles.useManagedFileEvents auf true eingestellt ist.
cloudFiles.cleanSource OFF Gibt an, ob verarbeitete Dateien automatisch aus dem Eingabeverzeichnis gelöscht werden sollen. Bei Festlegung auf OFF (Standard) werden keine Dateien gelöscht.
Wenn diese Einstellung auf DELETE"Auto Loader" festgelegt ist, werden Dateien automatisch 30 Tage nach der Verarbeitung gelöscht. Dazu muss das automatische Laden über Schreibberechtigungen für das Quellverzeichnis verfügen.
Wenn dieser Wert auf "Auto Loader" festgelegt ist MOVE, werden Dateien nach der Verarbeitung in cloudFiles.cleanSource.moveDestination 30 Tagen automatisch an den angegebenen Speicherort verschoben. Autoloader muss über Schreibberechtigungen für das Quellverzeichnis sowie den Verschiebungsort verfügen.
Eine Datei wird als verarbeitet betrachtet, wenn sie einen Wert ungleich Null für commit_time das Ergebnis der cloud_files_state Tabellenwertfunktion aufweist. Siehe cloud_files_state Tabellenwertfunktion. Die 30-tägige zusätzliche Wartezeit nach der Verarbeitung kann mithilfe der cloudFiles.cleanSource.retentionDurationKonfiguration konfiguriert werden.
Überprüfen Sie die folgenden Überlegungen, bevor Sie folgendes aktivieren cloudFiles.cleanSource:
  • Azure Databricks empfiehlt die Verwendung dieser Option nicht, wenn mehrere Datenströme daten vom Quellspeicherort verbrauchen, da der schnellste Verbraucher die Dateien löscht und sie nicht in den langsameren Quellen aufgenommen werden.
  • Zum Aktivieren dieses Features ist das automatische Laden erforderlich, um zusätzlichen Zustand im Prüfpunkt beizubehalten, was zu Leistungsaufwand kommt, aber eine verbesserte Observierbarkeit über die cloud_files_state Tabellenwertfunktion ermöglicht. Siehe cloud_files_state Tabellenwertfunktion.
  • cleanSource verwendet die aktuelle Einstellung, um zu entscheiden, ob oder MOVEDELETE eine bestimmte Datei. Angenommen, die Einstellung war MOVE, als die Datei ursprünglich verarbeitet wurde, wurde aber in DELETE geändert, als die Datei 30 Tage später zum Kandidaten für die Bereinigung wurde. In diesem Fall löscht cleanSource die Datei.
  • Dateien werden nicht garantiert bereinigt, sobald die retentionDuration Dateien ablaufen. Um die Kosten niedrig zu halten, löscht auto Loader Dateien gleichzeitig mit der Datenstromverarbeitung und beendet, sobald die Datenstromverarbeitung abgeschlossen oder beendet wird. Dateien, die für die Bereinigung geeignet waren, während der Datenstromverarbeitung jedoch nicht bereinigt werden konnten, werden beim nächsten Ausführen des automatischen Ladeprogramms aufgenommen.

Verfügbar in Databricks Runtime 16.4 und höher.
cloudFiles.cleanSource.retentionDuration 30 days Die Anzahl der Zeit, die gewartet werden muss, bevor verarbeitete Dateien zu Archivierungskandidaten mit cleanSource werden. Für DELETE muss es größer als 7 Tage sein. Keine Mindesteinschränkung für MOVE.
Der Wert ist eine CalendarInterval-Zeichenfolge . Zum Beispiel "14 days", "30 days", "2 weeks" oder "1 month".
Verfügbar in Databricks Runtime 16.4 und höher.
cloudFiles.cleanSource.moveDestination None Pfad zum Archivieren verarbeiteter Dateien, wenn cloudFiles.cleanSource auf MOVE gesetzt wird. Dies kann ein Cloudspeicherpfad oder ein Unity Catalog-Volumepfad sein (z. B /Volumes/my_catalog/my_schema/my_volume/archive/. ).
Der Speicherort muss:
  • Kein untergeordnetes Element des Quellverzeichnisses. Wenn Sie das Verschiebungsziel im Quellverzeichnis platzieren, werden die archivierten Dateien erneut aufgenommen.
  • Befinden Sie sich an demselben externen Speicherort, Volume oder DBFS-Mount wie die Quelle. Cross-Bucket- und Cross-Container-Verschiebungen werden nicht unterstützt und erzeugen einen Fehler.

Auto Loader muss Schreibberechtigungen für dieses Verzeichnis besitzen.
Verfügbar in Databricks Runtime 16.4 und höher.
cloudFiles.format Keine (erforderliche Option) Das Datendateiformat im Quellpfad. Gültige Werte sind:
cloudFiles.includeExistingFiles true Gibt an, ob vorhandene Dateien in den Eingabepfad für die Streamverarbeitung einbezogen werden, oder ob nur neue Dateien verarbeitet werden sollen, die nach der Ersteinrichtung eingehen. Diese Option wird nur ausgewertet, wenn Sie einen Stream zum ersten Mal starten. Das Ändern dieser Option nach dem Neustart des Streams hat keine Auswirkungen.
cloudFiles.inferColumnTypes false Gibt an, ob exakte Spaltentypen abgeleitet werden sollen, wenn der Schemarückschluss verwendet wird. Standardmäßig werden Spalten als Zeichenfolgen abgeleitet, wenn JSON- und CSV-Datasets abgeleitet werden. Weitere Informationen finden Sie unter schemainference .
cloudFiles.maxBytesPerTrigger None Die maximale Anzahl neuer Bytes, die in jedem Trigger verarbeitet werden sollen. Sie können eine Bytezeichenfolge wie z. B. 10g angeben, um jeden Microbatch auf 10 GB Daten zu beschränken. Dies ist ein weicher Maximalwert. Wenn Sie über Dateien mit jeweils 3 GB verfügen, verarbeitet Azure Databricks 12 GB in einem Microbatch. Bei Verwendung in Kombination mit cloudFiles.maxFilesPerTrigger steigt der Verbrauch von Azure Databricks bis zur Untergrenze von cloudFiles.maxFilesPerTrigger oder cloudFiles.maxBytesPerTrigger, je nachdem, welcher Wert zuerst erreicht wird. Diese Option hat keine Auswirkung, wenn sie mit Trigger.Once() verwendet wird (Trigger.Once() ist veraltet).
In Databricks Runtime 18.0 und höher ist diese Option dynamisch konfiguriert und muss nicht manuell festgelegt werden.
cloudFiles.maxFileAge None Gibt an, wie lange ein Dateiereignis zu Deduplizierungszwecken nachverfolgt wird. Databricks empfiehlt, diesen Parameter nur dann anzupassen, wenn Sie Daten in einer Größenordnung von mehreren Millionen Dateien pro Stunde erfassen. Weitere Informationen finden Sie im Abschnitt zur Dateiereignisverfolgung .
Eine zu aggressive Optimierung von cloudFiles.maxFileAge kann zu Problemen mit der Datenqualität führen, z. B. zu doppelter Erfassung oder fehlenden Dateien. Daher empfiehlt Databricks eine konservative Einstellung für cloudFiles.maxFileAge, z. B. 90 Tage. Dies entspricht ungefähr der Empfehlung vergleichbarer Datenerfassungslösungen.
cloudFiles.maxFilesPerTrigger 1000 Die maximale Anzahl neuer Dateien, die in jedem Trigger verarbeitet werden sollen. Bei Verwendung in Kombination mit cloudFiles.maxBytesPerTrigger steigt der Verbrauch von Azure Databricks bis zur Untergrenze von cloudFiles.maxFilesPerTrigger oder cloudFiles.maxBytesPerTrigger, je nachdem, welcher Wert zuerst erreicht wird. Diese Option hat keine Auswirkung, wenn sie mit Trigger.Once() (veraltet) verwendet wird.
In Databricks Runtime 18.0 und höher ist diese Option dynamisch konfiguriert und muss nicht manuell festgelegt werden.
cloudFiles.partitionColumns None Eine durch Trennzeichen getrennte Liste von Partitionsspalten im Hive-Stil, die Sie aus der Verzeichnisstruktur der Dateien abgeleitet möchten. Partitionsspalten im Strukturstil sind Schlüssel-Wert-Paare, die durch ein Gleichheitszeichen kombiniert werden, z <base-path>/a=x/b=1/c=y/file.format. B. . In diesem Beispiel sind die Partitionsspalten a, bund c. Standardmäßig werden diese Spalten automatisch zu Ihrem Schema hinzugefügt, wenn Sie Schemaerkennung verwenden und das <base-path> zum Laden von Daten bereitstellen. Wenn Sie ein Schema bereitstellen, erwartet Autoloader, dass diese Spalten im Schema enthalten sind. Wenn Sie diese Spalten nicht als Teil des Schemas verwenden möchten, können Sie angeben, dass "" diese Spalten ignoriert. Darüber hinaus können Sie diese Option verwenden, wenn Spalten aus dem Dateipfad in komplexen Verzeichnisstrukturen wie im untenstehenden Beispiel abgeleitet werden sollen.
<base-path>/year=2022/week=1/file1.csv
<base-path>/year=2022/month=2/day=3/file2.csv
<base-path>/year=2022/month=2/day=4/file3.csv
Die Spezifizierung von cloudFiles.partitionColumns als year,month,day gibt year=2022 für file1.csv zurück, aber die Spalten month und day sind null.
month und day werden richtig analysiert für file2.csv und file3.csv.
cloudFiles.schemaEvolutionMode addNewColumns wenn kein Schema bereitgestellt wird, none andernfalls Der Modus zum Weiterentwickeln des Schemas, wenn neue Spalten in den Daten ermittelt werden. Standardmäßig werden Spalten als Zeichenfolgen abgeleitet, wenn JSON-Datasets abgeleitet werden. Weitere Informationen finden Sie in der Schemaentwicklung .
cloudFiles.schemaHints None Schemainformationen, die Sie dem Autoloader während der Schema-Inferenz bereitstellen. Weitere Informationen finden Sie unter Schemahinweise .
cloudFiles.schemaLocation Keine (erforderlich, um das Schema abzuleiten) Der Speicherort, an dem das abgeleitete Schema und nachfolgende Änderungen gespeichert werden. Weitere Informationen finden Sie unter schemainference .
cloudFiles.useStrictGlobber false Gibt an, ob ein strenger Globber verwendet werden soll, der dem Standard-Globbingverhalten anderer Dateiquellen in Apache Spark entspricht. Weitere Informationen finden Sie unter "Allgemeine Datenlademuster ". Verfügbar in Databricks Runtime 12.2 LTS und höher.
cloudFiles.validateOptions true Gibt an, ob die Autoloader-Optionen überprüft werden und ob bei unbekannten oder inkonsistenten Optionen ein Fehler ausgegeben werden soll.

Verzeichnisauflistung

Schlüssel Vorgabe Description
cloudFiles.useIncrementalListing (veraltet) auto on Databricks Runtime 17.2 and below, false on Databricks Runtime 17.3 and above Diese Funktion wurde eingestellt. Databricks empfiehlt die Verwendung des Dateibenachrichtigungsmodus mit Dateiereignissen anstelle von cloudFiles.useIncrementalListing.
Gibt an, ob im Verzeichnisauflistungsmodus anstelle der vollständigen Auflistung die inkrementelle Auflistung verwendet werden soll. Standardmäßig versucht der Autoloader, automatisch zu ermitteln, ob ein bestimmtes Verzeichnis für die inkrementelle Auflistung geeignet ist. Sie können explizit die inkrementelle Auflistung oder die vollständige Verzeichnisauflistung verwenden, indem Sie den Wert true bzw. false festlegen.
Eine nicht ordnungsgemäße Aktivierung der inkrementellen Auflistung in einem nicht lexikalisch sortierten Verzeichnis verhindert, dass der Autoloader neue Dateien erkennt.
Arbeitet mit Azure Data Lake Storage (abfss://), S3 (s3://) und GCS (gs://).
Verfügbar in Databricks Runtime 9.1 LTS und höheren Versionen.
Verfügbare Werte: auto, true, false

Dateibenachrichtigung

Informationen zum Konfigurieren des Dateibenachrichtigungsmodus, einschließlich der erforderlichen Cloudberechtigungen, Setupanweisungen und Authentifizierungsmethoden, finden Sie unter Konfigurieren von Datenströmen für das automatische Laden im Dateibenachrichtigungsmodus.

Schlüssel Vorgabe Description
cloudFiles.fetchParallelism 1 Anzahl der Threads, die beim Abrufen von Nachrichten aus dem Warteschlangendienst verwendet werden.
Nicht verwenden, wenn cloudFiles.useManagedFileEvents auf true eingestellt ist.
cloudFiles.pathRewrites None Erforderlich nur, wenn Sie eine queueUrl Dateibenachrichtigung von mehreren S3-Buckets empfangen und Bereitstellungspunkte verwenden möchten, die für den Zugriff auf Daten in diesen Containern konfiguriert sind. Verwenden Sie diese Option, um das Präfix des bucket/key-Pfads mit dem Bereitstellungspunkt umzuschreiben. Nur Präfixe können umgeschrieben werden. Zum Beispiel wird bei der Konfiguration {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"} der Pfad s3://<databricks-mounted-bucket>/path/2017/08/fileA.json in dbfs:/mnt/data-warehouse/2017/08/fileA.json umgeschrieben.
Nicht verwenden, wenn cloudFiles.useManagedFileEvents auf true eingestellt ist.
cloudFiles.resourceTag None Eine Reihe von Schlüssel-Wert-Tagpaaren zum Zuordnen und Identifizieren verwandter Ressourcen. Beispiel:
cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue")
.option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")
Weitere Informationen zu AWS finden Sie unter Amazon SQS Kostenzuordnungstags und Konfigurieren von Tags für ein Amazon SNS-Thema. (1)
Weitere Informationen zu Azure finden Sie unter Benennen von Warteschlangen und Metadaten und die Berichterstattung über properties.labels in Ereignisabonnements. Der Autoloader speichert diese Schlüssel-Wert-Tagpaare in JSON als Bezeichnungen. (1)
Weitere Informationen zu GCP finden Sie unter Nutzung mit Labels melden. (1)
Nicht verwenden, wenn cloudFiles.useManagedFileEvents auf true eingestellt ist. Legen Sie stattdessen Ressourcentags mithilfe der Cloudanbieterkonsole fest.
cloudFiles.useManagedFileEvents false Wenn true festgelegt ist, verwendet Auto Loader den Dateiereignisdienst, um Dateien an Ihrem externen Standort zu entdecken. Sie können diese Option nur verwenden, wenn sich der Ladepfad an einem externen Speicherort mit aktivierten Dateivorgängen befindet. Siehe Verwenden des Dateibenachrichtigungsmodus mit Dateiereignissen.
Dateiereignisse bieten die Leistung auf Benachrichtigungsebene bei der Dateiermittlung, da das automatische Laden neue Dateien nach der letzten Ausführung ermitteln kann. Im Gegensatz zur Verzeichnisauflistung muss dieser Prozess nicht alle Dateien im Verzeichnis auflisten.
Es gibt einige Situationen, in denen der Auto Loader die Verzeichnisauflistung verwendet, obwohl die Option "Dateiereignisse" aktiviert ist.
  • Beim anfänglichen Laden, wenn includeExistingFiles auf true festgelegt ist, wird eine vollständige Verzeichnisauflistung durchgeführt, um alle Dateien zu ermitteln, die im Verzeichnis vorhanden waren, bevor das automatische Laden gestartet wurde.
  • Der Dateiereignisdienst optimiert die Ermittlung von Dateien, indem er die zuletzt erstellten Dateien zwischenspeichert. Wenn das automatische Laden selten ausgeführt wird, kann dieser Cache ablaufen, und das automatische Laden greift auf die Verzeichnisauflistung zurück, um Dateien zu ermitteln und den Cache zu aktualisieren. Um dieses Szenario zu vermeiden, rufen Sie das automatische Laden mindestens einmal alle sieben Tage auf.

Informationen dazu, wann das automatische Laden mit Dateiereignissen verzeichnisauflistung verwendet wird? Eine umfassende Liste der Situationen, in der auto Loader verzeichnisauflistung mit dieser Option verwendet.
Verfügbar in Databricks Runtime 14.3 LTS und höher.
cloudFiles.listOnStart false Wenn dieser Wert auf true"Auto Loader" festgelegt ist, führt das automatische Laden beim Start des Datenstroms eine vollständige Verzeichnisauflistung aus, anstatt mit dem Fortsetzungstoken im Prüfpunkt zu beginnen. Verwenden Sie diese Option, um Fehler wie z CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. B. . Erfahren Sie , wie kann ich einen CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN Fehler wiederherstellen?.
cloudFiles.useNotifications false Gibt an, ob mithilfe des Dateibenachrichtigungsmodus bestimmt werden soll, ob neue Dateien verfügbar sind. Bei einer Festlegung auf false wird der Verzeichnisauflistungsmodus verwendet. Siehe "Vergleichen Sie die Modi zur Dateierkennung beim automatischen Laden".
Nicht verwenden, wenn cloudFiles.useManagedFileEvents auf true eingestellt ist.

(1) Der Autoloader fügt standardmäßig die folgenden Schlüssel-Wert-Tagpaare nach bestem Bemühen hinzu:

  • vendor: Databricks
  • path: Der Speicherort, von dem aus die Daten geladen werden. In GCP aufgrund von Bezeichnungseinschränkungen nicht verfügbar.
  • checkpointLocation: Die Position des Stream-Checkpoints. In GCP aufgrund von Bezeichnungseinschränkungen nicht verfügbar.
  • streamId: Ein global eindeutiger Bezeichner für den Stream.

Databricks behält sich diese Schlüsselnamen vor, und Sie können deren Werte nicht überschreiben.

Cloudspezifisch

Auto Loader bietet Optionen zum Konfigurieren der Cloudinfrastruktur für den Dateibenachrichtigungsmodus. Erforderliche Cloudberechtigungen und Einrichtungsanweisungen finden Sie unter Konfigurieren von Datenströmen für das automatische Laden im Dateibenachrichtigungsmodus.

AWS

Geben Sie die folgenden Optionen nur an, wenn Sie das automatische Laden auswählen cloudFiles.useNotifications = true und möchten, dass die Benachrichtigungsdienste für Sie eingerichtet werden:

Schlüssel Vorgabe Description
cloudFiles.region Die Region der EC2-Instanz Die Region, in der sich der Quell-S3-Bucket befindet und wo Sie die AWS-SNS- und SQS-Dienste erstellen möchten.
Schlüssel Vorgabe Description
cloudFiles.restrictNotificationSetupToSameAWSAccountId false Erlauben Sie nur Ereignisbenachrichtigungen von AWS S3-Buckets im gleichen Konto wie das SNS-Nachrichtenthema. Wenn wahr, akzeptiert Auto Loader nur Ereignisbenachrichtigungen von AWS S3-Buckets im selben Konto wie das SNS-Thema.
Wenn false, schränkt die Zugriffsrichtlinie keine kontoübergreifenden Bucket- und SNS-Topic-Konfigurationen ein. Dies ist nützlich, wenn das SNS-Thema und der Bucketpfad verschiedenen Konten zugeordnet sind.
Verfügbar in Databricks Runtime 17.2 und höher.

Geben Sie die folgende Option nur an, wenn Sie cloudFiles.useNotifications = true auswählen und möchten, dass der Autoloader eine Warteschlange verwendet, die Sie bereits eingerichtet haben:

Schlüssel Vorgabe Description
cloudFiles.queueUrl None Die URL der SQS-Warteschlange. Wenn dies angegeben ist, bezieht das Autoladeprogramm Ereignisse direkt aus dieser Warteschlange, anstatt eigene AWS SNS- und SQS-Dienste einzurichten.

AWS-Authentifizierungsoptionen

Geben Sie die folgende Authentifizierungsoption für die Verwendung von Databricks-Dienstanmeldeinformationen an:

Schlüssel Vorgabe Description
databricks.serviceCredential None Der Name Ihrer Databricks-Dienstanmeldeinformationen. Verfügbar in Databricks Runtime 16.1 und höher.

Wenn Databricks-Dienstanmeldeinformationen oder IAM-Rollen nicht verfügbar sind, können Sie stattdessen die folgenden Authentifizierungsoptionen bereitstellen:

Schlüssel Vorgabe Description
cloudFiles.awsAccessKey None Die ID des AWS-Zugriffsschlüssels für den Benutzer. Muss mit cloudFiles.awsSecretKey bereitgestellt werden.
cloudFiles.awsSecretKey None Der geheime AWS-Zugriffsschlüssel für den Benutzer. Muss mit cloudFiles.awsAccessKey bereitgestellt werden.
cloudFiles.roleArn None ARN einer IAM-Rolle anzunehmen nach Bedarf. Die Rolle kann entweder aus dem Instanzprofil Ihres Clusters übernommen werden oder indem Anmeldeinformationen mit cloudFiles.awsAccessKey und cloudFiles.awsSecretKey bereitgestellt werden.
cloudFiles.roleExternalId None Ein Bezeichner, der beim Annehmen einer Rolle mit cloudFiles.roleArn angegeben werden muss.
cloudFiles.roleSessionName None Ein optionaler Sitzungsname zur Verwendung beim Annehmen einer Rolle mit cloudFiles.roleArn.
cloudFiles.stsEndpoint None Ein optionaler Endpunkt, der für den Zugriff auf AWS STS angegeben wird, wenn mit cloudFiles.roleArn eine Rolle angenommen wird.
Azure

Sie müssen Werte für alle folgenden Optionen angeben, wenn Sie cloudFiles.useNotifications = true festlegen und möchten, dass der Autoloader die Benachrichtigungsdienste für Sie einrichtet:

Schlüssel Vorgabe Description
cloudFiles.resourceGroup None Die Azure Ressourcengruppe, in der das Speicherkonto erstellt wird.
cloudFiles.subscriptionId None Die Azure Abonnement-ID, in der die Ressourcengruppe erstellt wird.
databricks.serviceCredential None Der Name Ihrer Databricks-Dienstanmeldeinformationen. Verfügbar in Databricks Runtime 16.1 und höher.

Wenn keine Databricks-Dienstanmeldeinformationen verfügbar sind, können Sie stattdessen die folgenden Authentifizierungsoptionen bereitstellen:

Schlüssel Vorgabe Description
cloudFiles.clientId None Die Client-ID oder Anwendungs-ID des Dienstprinzipals.
cloudFiles.clientSecret None Das Kundengeheimnis des Dienstherrn.
cloudFiles.connectionString None Die Verbindungszeichenfolge für das Speicherkonto, basierend entweder auf dem Kontozugriffsschlüssel oder der gemeinsamen Zugriffssignatur (SAS).
cloudFiles.tenantId None Die Azure Mandanten-ID, in der der Dienstprinzipal erstellt wird.

Geben Sie die folgende Option nur an, wenn Sie das automatische Laden festlegen cloudFiles.useNotifications = true und möchten, dass eine vorhandene Warteschlange verwendet wird:

Schlüssel Vorgabe Description
cloudFiles.queueName None Der Name der Azure-Warteschlange. Wenn dieser angegeben ist, bezieht die Clouddateiquelle Ereignisse direkt aus dieser Warteschlange, anstatt eigene Azure Event Grid- und Queue Storage-Dienste einzurichten. In diesem Fall benötigen databricks.serviceCredential und cloudFiles.connectionString nur Leseberechtigungen für die Warteschlange.
GCP

Auto Loader kann Benachrichtigungsdienste automatisch für Sie einrichten, indem Sie Databricks-Dienstanmeldeinformationen nutzen. Das mit den Databricks-Dienstanmeldeinformationen erstellte Dienstkonto erfordert die Berechtigungen, die im Konfigurationsmodus für Auto Loader Streams im Dateibenachrichtigungsmodus angegeben sind.

Schlüssel Vorgabe Description
cloudFiles.projectId None Die ID des Projekts, in dem sich der GCS-Bucket befindet. Das Google Cloud Pub/Sub-Abonnement wird auch innerhalb dieses Projekts erstellt.
databricks.serviceCredential None Der Name Ihrer Databricks-Dienstanmeldeinformationen. Verfügbar in Databricks Runtime 16.1 und höher.

Wenn keine Databricks-Dienstanmeldeinformationen verfügbar sind, können Sie Google Service-Konten direkt verwenden. Sie können Entweder Ihren Cluster so konfigurieren, dass ein Dienstkonto angenommen wird, indem Sie die Einrichtung des Google-Diensts ausführen oder die folgenden Authentifizierungsoptionen direkt bereitstellen:

Schlüssel Vorgabe Description
cloudFiles.client None Die Client-ID des Google-Dienstkontos.
cloudFiles.clientEmail None Die E-Mail-Adresse des Google-Dienstkontos.
cloudFiles.privateKey None Der private Schlüssel, der für das Google Service-Konto generiert wird.
cloudFiles.privateKeyId None Die ID des privaten Schlüssels, der für das Google Service-Konto generiert wird.

Geben Sie die folgende Option nur an, wenn Sie cloudFiles.useNotifications = true auswählen und möchten, dass der Autoloader eine Warteschlange verwendet, die Sie bereits eingerichtet haben:

Schlüssel Vorgabe Description
cloudFiles.subscription None Der Name des Google Cloud Pub/Sub-Abonnements. Falls angegeben, nutzt die Clouddateiquelle Ereignisse aus dieser Warteschlange, anstatt eigene GCS-Benachrichtigungs- und Google Cloud Pub/Sub-Dienste einzurichten.

Delta Lake

Die folgenden Optionen gelten beim Lesen aus einer Delta Lake-Tabelle mit spark.readStream.

Schlüssel Vorgabe Description
allowSourceColumnDrop None Legen Sie die Versionsnummer einer Delta-Tabelle fest, oder "always" damit der Datenstrom fortgesetzt werden kann, nachdem Spalten aus dem Quelltabellenschema gelöscht wurden. Wenn sie auf eine Versionsnummer festgelegt ist, werden alle Schemaänderungen bis zu dieser Version bestätigt. Erfordert schemaTrackingLocation. Siehe Umbenennen und Löschen von Spalten mit der Delta Lake-Spaltenzuordnung.
allowSourceColumnRename None Legen Sie die Versionsnummer einer Delta-Tabelle fest, oder "always" damit der Datenstrom fortgesetzt werden kann, nachdem Die Spalten in der Quelltabelle umbenannt wurden. Wenn sie auf eine Versionsnummer festgelegt ist, werden alle Schemaänderungen bis zu dieser Version bestätigt. Erfordert schemaTrackingLocation. Siehe Umbenennen und Löschen von Spalten mit der Delta Lake-Spaltenzuordnung.
allowSourceColumnTypeChange None Legen Sie die Versionsnummer einer Delta-Tabelle fest, oder "always" damit der Datenstrom fortgesetzt werden kann, nachdem Spaltentypen in der Quelltabelle geändert wurden. Wenn sie auf eine Versionsnummer festgelegt ist, werden alle Schemaänderungen bis zu dieser Version bestätigt. Erfordert schemaTrackingLocation. Weitere Informationen finden Sie unter Typerweiterung.
excludeRegex None Ein Muster für reguläre Ausdrücke. Dateien, deren Pfade mit dem Muster übereinstimmen, werden vom Streaminglesevorgang ausgeschlossen. Nützlich zum Filtern von Dateien, die nicht der erwarteten Benennungskonvention entsprechen.
failOnDataLoss true Gibt an, ob die Streamingabfrage fehlschlägt, wenn Quelldaten aufgrund der ProtokollaufbewahrunglogRetentionDuration () gelöscht wurden. Legen Sie fest, dass false fehlende Daten übersprungen und die Verarbeitung fortgesetzt werden soll. Siehe Konfigurieren der Datenaufbewahrung für Zeitreiseabfragen.
ignoreChanges (veraltet) false Verfügbar in Databricks Runtime 11.3 LTS und niedriger. Sendet neu geschriebene Datendateien nach Änderungsvorgängen wie UPDATE, , MERGE INTO, DELETEoder OVERWRITE. Unveränderte Zeilen können zusammen mit neuen Zeilen ausgegeben werden, sodass nachgeschaltete Verbraucher Duplikate verarbeiten müssen. Löschungen werden nicht an nachgelagerte Systeme weitergegeben. Ersetzt durch skipChangeCommits databricks Runtime 12.2 LTS und höher.
ignoreDeletes (veraltet) false Ignoriert Transaktionen, die Daten an Partitionsgrenzen löschen (nur vollständige Partitionen fallen ab). Behandelt keine Nichtpartitionslöschungen, Aktualisierungen oder andere Änderungen. Verwenden Sie stattdessen skipChangeCommits.
readChangeFeed oder readChangeData false Gibt an, ob das Lesen des Änderungsdatenfeeds für die Streamingabfrage aktiviert werden soll. Wenn diese Option aktiviert ist, gibt der Datenstrom Änderungen auf Zeilenebene (Einfügungen, Aktualisierungen und Löschvorgänge) mit zusätzlichen Metadatenspalten aus. Siehe Verwenden des Delta Lake-Änderungs-Datenfeeds in Azure Databricks.
schemaTrackingLocation None Pfad zu einem Verzeichnis, in dem Delta Lake Schemaänderungen für das Streaminglese nachverfolgt. Erforderlich beim Streamen von Tabellen mit aktivierter Spaltenzuordnung und Verwendung von allowSourceColumn* Optionen zum Behandeln der Schemaentwicklung. Muss innerhalb checkpointLocation der Streamingabfrage sein. Siehe Umbenennen und Löschen von Spalten mit der Delta Lake-Spaltenzuordnung.
skipChangeCommits false Ignoriert Transaktionen, die vorhandene Datensätze löschen oder ändern, und verarbeitet nur Anfüge. Databricks empfiehlt diese Option für die meisten Workloads, die keine Änderungsdatenfeeds verwenden. Verfügbar in Databricks Runtime 12.2 LTS und höher. Siehe Skip upstream change commits with skipChangeCommits.
startingTimestamp Neueste verfügbar Zeitstempel, um mit dem Lesen zu beginnen. Der Datenstrom liest alle Tabellenänderungen, die an oder nach dem angegebenen Zeitstempel zugesichert wurden. Wenn der Zeitstempel vor allen verfügbaren Tabellen-Commits steht, beginnt der Datenstrom mit dem frühesten verfügbaren Commit. Kann nicht zusammen mit startingVersion. Wird ignoriert, wenn der Streamingprüfpunkt bereits vorhanden ist.
Gültige Werte: eine Zeitstempelzeichenfolge wie "2019-01-01T00:00:00.000Z" z. B. eine Datumszeichenfolge wie "2019-01-01"z. B. .
startingVersion Neueste verfügbar Delta-Tabellenversion, um mit dem Lesen zu beginnen. Der Datenstrom liest alle Änderungen, die an oder nach der angegebenen Version zugesichert wurden. Geben Sie "latest" an, dass sie nur mit den letzten Änderungen beginnen soll. Kann nicht zusammen mit startingTimestamp. Wird ignoriert, wenn der Streamingprüfpunkt bereits vorhanden ist. Siehe „Den Tabellenverlauf nutzen“.
withEventTimeOrder false Teilt die Momentaufnahme der ersten Tabelle in Ereigniszeit-Buckets auf, um zu verhindern, dass Datensätze als späte Ereignisse falsch markiert und in zustandsbehafteten Abfragen mit Wasserzeichen verworfen werden. Kann nicht geändert werden, nachdem die anfängliche Momentaufnahmeverarbeitung begonnen hat, ohne den Prüfpunkt zu löschen. Verfügbar in Databricks Runtime 11.3 LTS und höher. Siehe Initialaufnahme des Prozesses, ohne Daten zu verlieren.

Kafka

Verwenden Sie diese Optionen entweder oder spark.readStream.format("kafka")spark.read.format("kafka"):

Schlüssel Vorgabe Description
assign None Die zu verwendenden spezifischen Partitionen. Sie müssen genau eine der subscribeOptionen subscribePatternangeben assign . Gültige Werte: eine JSON-Zeichenfolge, z {"topicA":[0,1],"topicB":[2,4]}. B. .
failOnDataLoss true Gibt an, ob die Abfrage fehlschlägt, wenn Daten verloren gegangen sind, z. B. aufgrund gelöschter Themen oder eines Offsetabzugs. Legen Sie fest, false dass fehlende Daten übersprungen werden, und fahren Sie fort. Gültige Werte: true, false.
Databricks schätzt konservative, ob Daten verloren gegangen sind. Dies kann jedoch zu falschen Alarmen führen.
fetchoffset.numretries 3 Die Anzahl der Wiederholungen beim Abrufen von Kafka-Offsets schlägt fehl. Gültige Werte: nicht negative ganze Zahlen.
fetchoffset.retryintervalms 1000 Das Intervall in Millisekunden zwischen Offsetabruf-Wiederholungen. Gültige Werte: nicht negative ganze Zahlen.
groupIdPrefix spark-kafka-source (Streaming), spark-kafka-relation (Batch) Das angepasste Präfix, das für die automatisch generierte Kafka-Consumergruppen-ID verwendet werden soll. Wenn kafka.group.id dieser explizit festgelegt ist, ignoriert der Connector diese Option. Gültige Werte: eine beliebige Zeichenfolge.
includeHeaders false Gibt an, ob Kafka-Nachrichtenkopfzeilen als Spalte in die Ausgabe eingeschlossen werden sollen. Gültige Werte: true, false.
kafkaconsumer.polltimeoutms None Das Timeout in Millisekunden für den Kafka-Verbraucheranruf poll() . Gültige Werte: positive ganze Zahlen.
kafka.bootstrap.servers None Eine durch Trennzeichen getrennte Liste der Host:Port-Adressen für Kafka-Broker. Legt die Eigenschaft des bootstrap.servers Kafka-Clients fest.
Wenn Sie feststellen, dass keine Daten aus Kafka vorhanden sind, überprüfen Sie diese Brokeradressenliste auf falsche Adressen. Wenn die Brokeradressliste falsch ist, treten möglicherweise keine Fehler auf. Kafka-Clients gehen davon aus, dass die Broker irgendwann verfügbar sind, und versuchen Sie es für immer, wenn sie Netzwerkfehler erhalten.
maxRecordsPerPartition None Die maximale Anzahl von Datensätzen für jede Spark-Partition. Bei Festlegung teilt der Connector Kafka-Partitionen auf, sodass jede Spark-Partition höchstens diese vielen Datensätze liest. Gültige Werte: positive ganze Zahlen.
Sie können diese Option auch mit minPartitions. Wenn beide Optionen festgelegt sind, verwendet Spark je nachdem, welche Option zu weiteren Partitionen führt.
minPartitions None Die Mindestanzahl der Spark-Partitionen, die aus Kafka gelesen werden sollen. Bei Festlegung teilt der Verbinder große Kafka-Partitionen auf, um die Parallelität zu erhöhen. Wenn nicht festgelegt, erstellt Spark eine Partition für jede Kafka-Themenpartition. Nützlich für die Behandlung von Datenverknen oder Spitzenlasten. Gültige Werte: positive ganze Zahlen.
Mit dieser Option werden Kafka-Consumer für jeden Trigger neu initialisiert, was sich auf die Leistung mit SSL auswirken kann.
startingOffsets latest (Streaming), earliest (Batch) Der Offset, von dem die Abfrage mit dem Lesen beginnt. Gültige Werte: earliest, , latestoder eine JSON-Zeichenfolge von Offsets für jede Partition, z {"topicA":{"0":23,"1":-2}}. B. . In der JSON-Zeichenfolge -1 ist der neueste Offset angegeben. -2 ist der früheste Offset.
Bei Streamingabfragen gilt diese Option nur, wenn eine neue Abfrage gestartet wird. Fortgesetzte Abfragen verwenden immer den Prüfpunkt. Während einer Abfrage beginnen neue Partitionen mit dem frühesten Offset.
Für Batchabfragen latest ist dies nicht zulässig.
startingOffsetsByTimestamp None Eine Liste der Startoffsets für jede Partition, die als Zeitstempel in Millisekunden angegeben ist. Wenn kein Offset für einen Zeitstempel vorhanden ist, wird das Abfrageverhalten durch startingOffsetsByTimestampStrategybestimmt. Gültige Werte: eine JSON-Zeichenfolge mit Zeitstempeln für jede Partition, z {"topicA":{"0":1000,"1":2000}}. B. .
Bei Streamingabfragen gilt diese Option nur, wenn eine neue Abfrage gestartet wird. Fortgesetzte Abfragen verwenden immer den Prüfpunkt. Während einer Abfrage beginnen neue Partitionen mit dem frühesten Offset.
startingOffsetsByTimestampStrategy error Die Zu verwendende Strategie, wenn kein Offset für einen in startingOffsetsByTimestamp oder startingTimestamp. Gültige Werte: error (löst eine Ausnahme aus), latest (verwendet den neuesten verfügbaren Offset).
startingTimestamp None Der globale Startzeitstempel in Millisekunden, der für alle Partitionen gilt. Wenn kein Offset für den Zeitstempel vorhanden ist, wird das Verhalten von startingOffsetsByTimestampStrategy. Gültige Werte: nicht negative ganze Zahlen.
subscribe None Die Themen, die abonniert werden sollen. Sie müssen genau eine der subscribeOptionen subscribePatternangeben assign . Gültige Werte: eine durch Trennzeichen getrennte Liste von Themennamen.
subscribePattern None Das Muster, das zum Abonnieren von Themen verwendet wird. Sie müssen genau eine der subscribeOptionen subscribePatternangeben assign . Beispiel: topic.* Gültige Werte: eine beliebige Java regex-Zeichenfolge.

Die folgenden Optionen gelten nur für Streaminglesevorgänge mit spark.readStream.format("kafka"):

Schlüssel Vorgabe Description
bytesEstimateWindowLength 300s Das Zeitfenster, das verwendet wird, um verbleibende Bytes für die estimatedTotalBytesBehindLatest Metrik zu schätzen. Gültige Werte: Dauerzeichenfolgen wie 10m oder 600s. Siehe Abrufen von Kafka-Metriken.
maxOffsetsPerTrigger None Die maximale Anzahl von Offsets für den Prozess pro Triggerintervall. Offsets werden proportional auf Themenpartitionen verteilt. Gültige Werte: positive ganze Zahlen.
maxTriggerDelay 15m Die maximale Zeit bis zum minOffsetsPerTrigger Ansammeln vor dem Auslösen. Gültige Werte: Dauerzeichenfolgen wie 10m oder 600s.
minOffsetsPerTrigger None Die minimale Anzahl der Offsets, die gesammelt werden sollen, bevor ein Mikrobatch ausgelöst wird. Wenn maxTriggerDelay erreicht ist, wird der Mikrobatch unabhängig davon ausgeführt. Gültige Werte: positive ganze Zahlen.

Offsetoptionen, die nur für Batchlesevorgänge spark.read.format("kafka")gelten, finden Sie unter DataFrameReader Kafka-Optionen.

Informationen zu Kafka-Client (kafka.*) und Authentifizierungsoptionen finden Sie unter "Optionen".

DataFrameWriter-Optionen

Verwenden Sie diese Optionen mit DataFrameWriter.option() und DataFrameWriterV2.option(), um zu steuern, wie Azure Databricks Daten schreibt.

Example

Im folgenden Beispiel wird festgelegt mergeSchema , dass True eine Delta Lake-Tabelle geschrieben wird:

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

Avro

Schlüssel Vorgabe Description
avroSchema None Das vollständige Avro-Schema als JSON-Zeichenfolge. Verwenden Sie diese Option, um Spark SQL-Typen in bestimmte Avro-Typen zu konvertieren. Gilt für Avro-Datei.
avroSchemaUrl None Eine URL, die auf eine Avro-Schemadatei verweist. Verwenden Sie anstelle der avroSchema externen Speicherung des Schemas. Gegenseitiger Ausschluss mit avroSchema Gilt für Avro-Datei.
compression snappy Beim Schreiben zu verwendenden Komprimierungscodecs. Gültige Werte: uncompressed, , deflate, snappybzip2, , xz. zstandard Gilt für Avro-Datei.
recordName topLevelRecord Der Name des Datensatzes der obersten Ebene im Avro-Ausgabeschema. Gilt für Avro-Datei.
positionalFieldMatching false Gibt an, ob Spalten zwischen dem Spark-Schema und dem Avro-Schema anhand der Feldposition anstelle des Namens übereinstimmen sollen. Gilt für Avro-Datei.
recordNamespace Leere Zeichenfolge Der Namespace für den Datensatz der obersten Ebene im Ausgabe-Avro-Schema. Gilt für Avro-Datei.

Delta Lake und Apache Iceberg

Schlüssel Vorgabe Description
clusterByAuto false Gibt an, ob die automatische Flüssigclusterung aktiviert werden soll, wobei Azure Databricks gruppierte Spalten basierend auf Abfragemustern auswählt. Nur gültig mit mode("overwrite"). Kann nicht im append Modus verwendet werden. Verfügbar in Databricks Runtime 16.4 und höher. Gilt für die Verwendung von Flüssigclustering für Tabellen.
mergeSchema None Gibt an, ob die Schemaentwicklung für den Schreibvorgang aktiviert werden soll. Dem Zieltabellenschema werden neue Spalten im Quelldatenframe hinzugefügt. Gilt für Anfüge- und Batch-Streaming.Applies to batch and streaming appends. Gilt für das Update-Tabellenschema.
overwriteSchema None Gibt an, ob das Tabellenschema und die Partitionierung beim Überschreiben ersetzt werden sollen. Erfordert mode("overwrite") ohne replaceWhere. Kann nicht mit partitionOverwriteMode verwendet werden. Gilt für das Update-Tabellenschema.
partitionOverwriteMode None Der Partitionsüberschreibmodus. Legen Sie diese Einstellung fest, dynamic um nur Partitionen zu überschreiben, die neue Daten enthalten, sodass alle anderen Partitionen unverändert bleiben. Legacymodus, nicht unterstützt auf serverlosen Compute oder Databricks SQL. Gültige Werte: static, dynamic. Gilt für selektives Überschreiben von Daten mit Delta Lake.
replaceOn None Ein boolescher Ausdruck, der Zeilen in der Zieltabelle entspricht, die durch Zeilen aus der Quellabfrage ersetzt werden sollen. Kann sowohl in der Zieltabelle als auch in der Quellabfrage auf Spalten verweisen. Zeilen im Ziel, die einer Quellzeile entsprechen, werden gelöscht und ersetzt. Wenn die Quelle leer ist, treten keine Löschungen auf. Wird verwendet targetAlias , um mehrdeutigen Spaltenverweise zu unterscheiden. Verfügbar in Databricks Runtime 17.1 und höher. Gilt für selektives Überschreiben von Daten mit Delta Lake.
replaceUsing None Eine durch Trennzeichen getrennte Liste von Spaltennamen, die verwendet werden, um Zeilen zwischen der Zieltabelle und der Quellabfrage abzugleichen. Sowohl das Ziel als auch die Quelle müssen alle aufgelisteten Spalten enthalten. Zeilen im Ziel, die einer Quellzeile unter Gleichheitsvergleich entsprechen, werden gelöscht und ersetzt. NULL Werte werden nicht gleich behandelt und stimmen nicht überein. Verfügbar in Databricks Runtime 16.3 und höher. Gilt für selektives Überschreiben von Daten mit Delta Lake.
replaceWhere None Ein Prädikatausdruck. Atomar überschreibt nur die Datensätze, die dem Prädikat entsprechen. Gilt für selektives Überschreiben von Daten mit Delta Lake.
targetAlias None Ein Zeichenfolgenalias für die Zieltabelle. Wird verwendet, um replaceOn Spaltenverweise zu unterscheiden, replaceWhere wenn die Bedingung Spalten aus der Zieltabelle und der Quellabfrage referenziert. Gilt für selektives Überschreiben von Daten mit Delta Lake.
txnAppId None Eine eindeutige Zeichenfolge, die die Anwendung für idempotent-Schreibvorgänge in foreachBatch Vorgänge identifiziert. Verwenden Sie diese Verwendung zusammen, txnVersion um sicherzustellen, dass in mehrere Delta Lake-Tabellen genau einmal geschrieben wird. Gilt für foreachBatch Schreibvorgänge der idempotenten Tabelle.
txnVersion None Eine monoton steigende Zahl, die als Transaktionsversion für idempotente Schreibvorgänge in foreachBatch Vorgängen verwendet wird. Verwenden Sie diese Verwendung zusammen, txnAppId um sicherzustellen, dass in mehrere Delta Lake-Tabellen genau einmal geschrieben wird. Gilt für foreachBatch Schreibvorgänge der idempotenten Tabelle.
optimizeWrite None Gibt an, ob das automatische Optimieren des Schreibens für diesen Schreibvorgang aktiviert werden soll. Setzt die spark.databricks.delta.optimizeWrite.enabled Konfiguration außer Kraft. Gilt für What is Delta Lake in Azure Databricks?.
userMetadata None Eine benutzerdefinierte Zeichenfolge, die an die Commitmetadaten für den Schreibvorgang angefügt wurde. Sichtbar in der Ausgabe von DESCRIBE HISTORY. Gilt für Anreichern von Tabellen mit benutzerdefinierten Metadaten.

CSV

Schlüssel Vorgabe Description
charToEscapeQuoteEscaping \0 (nicht aktiviert) Das Zeichen, das zum Escapezeichen verwendet wird, wenn es sich von dem Anführungszeichen unterscheidet. Gilt für CSV (DataFrameWriter).
compression none Beim Schreiben zu verwendenden Komprimierungscodecs. Gültige Werte: none, , bzip2, gziplz4, snappy, , deflate. zstd Gilt für CSV (DataFrameWriter).
dateFormat yyyy-MM-dd Formatzeichenfolge für Datumsspaltenwerte. Gilt für CSV (DataFrameWriter).
emptyValue Leere Zeichenfolge Die Zeichenfolge, die für leere Werte (nicht null) geschrieben wurde. Gilt für CSV (DataFrameWriter).
encoding UTF-8 Die Zeichencodierung für die Ausgabedateien. Gilt für CSV (DataFrameWriter).
escape \ Das Zeichen, das verwendet wird, um an zitierte Werte zu escapen. Gilt für CSV (DataFrameWriter).
escapeQuotes true Gibt an, ob Anführungszeichen in Anführungszeichen in Anführungszeichen gesetzt werden sollen. Gilt für CSV (DataFrameWriter).
header false Gibt an, ob Spaltennamen als erste Zeile der Ausgabe geschrieben werden sollen. Gilt für CSV (DataFrameWriter).
ignoreLeadingWhiteSpace false Gibt an, ob führende Leerzeichen beim Schreiben von Werten gekürzt werden sollen. Gilt für CSV (DataFrameWriter).
ignoreTrailingWhiteSpace false Gibt an, ob nachgestellte Leerzeichen beim Schreiben von Werten gekürzt werden sollen. Gilt für CSV (DataFrameWriter).
lineSep \n Die zeilentrennzeichenzeichenfolge, die zwischen Datensätzen verwendet wird. Gilt für CSV (DataFrameWriter).
locale en-US Ein java.util.Locale-Bezeichner. Beeinflusst die Formatierung von Datums- und Zeitstempelwerten beim Schreiben.
nullValue Leere Zeichenfolge Zeichenfolge, die für Nullwerte geschrieben wurde. Gilt für CSV (DataFrameWriter).
quote " Das Zeichen, das zum Anführungszeichen von Feldwerten verwendet wird, die das Trennzeichen enthalten. Gilt für CSV (DataFrameWriter).
quoteAll false Gibt an, ob alle Feldwerte unabhängig vom Inhalt in Anführungszeichen eingeschlossen werden sollen. Gilt für CSV (DataFrameWriter).
sep , Das Feldtrennzeichen. Gilt für CSV (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Die Formatzeichenfolge für Zeitstempelspaltenwerte. Gilt für CSV (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatzeichenfolge für Zeitstempel ohne Zeitzonenspaltenwerte.TimestampNTZType

Excel

Schlüssel Vorgabe Description
dataAddress None Der Blattname oder die Startzelle für den Schreibvorgang. Wenn dieser Wert nicht angegeben wird, wird in ein Blatt geschrieben, das bei Zelle A1beginntSheet1. Akzeptiert einen Blattnamen ("SheetName") oder einen einzelnen Zellbezug ("SheetName!A1"). Zellbereiche werden für Schreibvorgänge nicht unterstützt.
dateFormatInWrite yyyy-mm-dd Excel Zellenformatzeichenfolge, die auf Date Spalten angewendet wird. Verwendet Excel Formatsyntax.
headerRows 0 Gibt an, ob Spaltennamen als erste Zeile geschrieben werden sollen. Gültige Werte: 0, 1.
timestampNTZFormat yyyy-mm-dd hh:mm:ss Excel Zellenformatzeichenfolge, die auf TimestampNTZ und Timestamp Spalten angewendet wird. Verwendet Excel Formatsyntax.
version xlsx Die Excel zu schreibenden Dateiformatversion. Gültige Werte: xlsx, xls.

JSON

Schlüssel Vorgabe Description
compression none Beim Schreiben zu verwendenden Komprimierungscodecs. Gültige Werte: none, , bzip2, gziplz4, snappy, , deflate. zstd Gilt für json (DataFrameWriter).
dateFormat yyyy-MM-dd Formatzeichenfolge für Datumsspaltenwerte. Gilt für json (DataFrameWriter).
encoding UTF-8 Die Zeichencodierung für die Ausgabedateien. Gilt für json (DataFrameWriter).
ignoreNullFields Wert von spark.sql.jsonGenerator.ignoreNullFields Gibt an, ob Felder mit NULL-Werten aus der JSON-Ausgabe weggelassen werden sollen. Gilt für json (DataFrameWriter).
lineSep \n Die zeilentrennzeichenzeichenfolge, die zwischen Datensätzen verwendet wird. Gilt für json (DataFrameWriter).
locale en-US Ein java.util.Locale-Bezeichner. Beeinflusst die Formatierung von Datums- und Zeitstempelwerten beim Schreiben.
pretty false Gibt an, ob die JSON-Ausgabe ziemlich (eingezogen, multiline) aktiviert werden soll.
sortKeys false Gibt an, ob die Schlüssel von JSON-Objekten alphabetisch in der Ausgabe sortiert werden sollen. Nützlich für die Herstellung von deterministischen Ausgaben.
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Die Formatzeichenfolge für Zeitstempelspaltenwerte. Gilt für json (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatzeichenfolge für Zeitstempel ohne Zeitzonenspaltenwerte.TimestampNTZType
writeNonAsciiCharacterAsCodePoint false Gibt an, ob Nicht-ASCII-Zeichen als \uXXXX Unicode-Escapesequenzen anstelle von literalen UTF-8-Zeichen in der Ausgabe codiert werden sollen.

ORC

Schlüssel Vorgabe Description
compression zstd Beim Schreiben zu verwendenden Komprimierungscodecs. Gültige Werte: none, , uncompressed, snappy, zliblzo, zstd, , . lz4brotli Gilt für Orc (DataFrameWriter).

Parkett

Schlüssel Vorgabe Description
compression snappy Beim Schreiben zu verwendenden Komprimierungscodecs. Gültige Werte: none, , uncompressed, snappy, lzogzip, brotli, , lz4, . lz4_rawzstd Gilt für Parkett (DataFrameWriter).
spark.sql.parquet.outputTimestampType INT96 Der physische Typ, der zum Codieren von Zeitstempelspalten verwendet wird. Gültige Werte: INT96, TIMESTAMP_MICROS, TIMESTAMP_MILLIS. Wird INT96 zur Kompatibilität mit älteren Parkettlesern verwendet, die die Standardzeitstempeltypen nicht unterstützen.

Text

Schlüssel Vorgabe Description
compression none Beim Schreiben zu verwendenden Komprimierungscodecs. Gültige Werte: none, , bzip2, gziplz4, snappy, , deflate. zstd Gilt für Text (DataFrameWriter).
encoding UTF-8 Die Zeichencodierung für die Ausgabedateien.
lineSep \n Die zeilentrennzeichenzeichenfolge, die zwischen Datensätzen verwendet wird. Gilt für Text (DataFrameWriter).

XML

Schlüssel Vorgabe Description
arrayElementName item Der Elementname für Arrayelemente ohne expliziten Namen. Gilt für XML (DataFrameWriter).
attributePrefix _ Das Präfix, das Feldnamen vorangestellt ist, die XML-Attributen entsprechen. Gilt für XML (DataFrameWriter).
compression none Beim Schreiben zu verwendenden Komprimierungscodecs. Gültige Werte: none, , bzip2, gziplz4, snappy, , deflate. zstd Gilt für XML (DataFrameWriter).
dateFormat yyyy-MM-dd Formatzeichenfolge für Datumsspaltenwerte. Gilt für XML (DataFrameWriter).
declaration version="1.0" encoding="UTF-8" standalone="yes" Die XML-Deklarationszeichenfolge, die oben in jeder Ausgabedatei geschrieben wurde. Legen Sie diesen Wert auf eine leere Zeichenfolge fest, um die Deklaration zu unterdrücken. Gilt für XML (DataFrameWriter).
encoding UTF-8 Die Zeichencodierung für die Ausgabedateien. Gilt für XML (DataFrameWriter).
indent 4 Leerzeichen Die Zeichenfolge, die zum Einrücken untergeordneter Elemente in der Ausgabe verwendet wird. Legen Sie diesen Wert auf eine leere Zeichenfolge fest, um den Einzug zu deaktivieren und jede Zeile in einer einzelnen Zeile zu schreiben.
locale en-US Ein java.util.Locale-Bezeichner. Beeinflusst die Formatierung von Datums- und Zeitstempelwerten beim Schreiben.
nullValue null Die Zeichenfolge, die für Nullwerte geschrieben wurde. Bei Festlegung auf null, Attribute und untergeordnete Elemente für NULL-Felder werden weggelassen. Gilt für XML (DataFrameWriter).
rootTag ROWS Das Stammelementtag, das alle Zeilenelemente in der Ausgabe umschließt. Gilt für XML (DataFrameWriter).
rowTag ROW Das Elementtag, das eine Zeile in der Ausgabe darstellt. Gilt für XML (DataFrameWriter).
singleVariantColumn None Der Name der einzelnen Variant-Spalte, die in XML-Dateien geschrieben werden soll. Gilt für XML (DataFrameWriter).
timestampFormat yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] Die Formatzeichenfolge für Zeitstempelspaltenwerte. Gilt für XML (DataFrameWriter).
timestampNTZFormat yyyy-MM-dd'T'HH:mm:ss[.SSS] Formatzeichenfolge für Zeitstempel ohne Zeitzonenspaltenwerte. Gilt für XML (DataFrameWriter).
validateName true Gibt an, ob eine Ausnahme ausgelöst werden soll, wenn ein Spaltenname kein gültiger XML-Elementbezeichner ist. Gilt für XML (DataFrameWriter).
valueTag _VALUE Der Feldname, der für Zeichendaten in XML-Elementen verwendet wird, die ebenfalls Attribute oder untergeordnete Elemente aufweisen. Gilt für XML (DataFrameWriter).

DataStreamWriter-Optionen

Verwenden Sie diese Optionen zum DataStreamWriter.option() Konfigurieren von Streaming-Schreibvorgängen.

Example

Im folgenden Beispiel wird die Prüfpunktposition für einen Datenstrom festgelegt:

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

Gemeinsam

Schlüssel Vorgabe Description
checkpointLocation Keine (erforderlich) Pfad zum Prüfpunktverzeichnis für die Streamingabfrage. Erforderlich für Fehlertoleranz und genau einmal verarbeitete Garantien. Jede Streamingabfrage muss einen eindeutigen Prüfpunktspeicherort verwenden. Databricks empfiehlt, Prüfpunkte in einem Unity-Katalogvolume oder Cloudspeicherpfad zu speichern. Siehe Prüfpunkte für strukturiertes Streaming.
path None Ausgabepfad für dateibasierte Streaming-Senken wie Parkett. Gilt nur für dateiformatbasierte Formate.

Konsolenspüle

Schlüssel Vorgabe Description
numRows 20 Die Anzahl der Zeilen, die beim Schreiben in die Konsolenspüle für jeden Mikrobatch angezeigt werden sollen.
truncate true Gibt an, ob lange Zeichenfolgen beim Anzeigen von Zeilen abgeschnitten werden sollen. Legen Sie fest, dass false vollständige Zeichenfolgenwerte angezeigt werden.

Delta Lake

Die folgenden Optionen gelten beim Schreiben eines Datenstroms in eine Delta Lake-Tabelle mit format("delta"). Überschreiboptionen wie overwriteSchema, replaceWhereund partitionOverwriteMode werden für Streaming-Schreibvorgänge nicht unterstützt.

Schlüssel Vorgabe Description
mergeSchema false Gibt an, ob das Delta Lake-Tabellenschema weiterentwickelt werden soll, wenn das Streaming DataFrame neue Spalten enthält. Gilt nur für das Anfügen des Ausgabemodus. Gilt für das Update-Tabellenschema.
userMetadata None Eine benutzerdefinierte Zeichenfolge, die an die Commitmetadaten für den Schreibvorgang angefügt wurde. Sichtbar in der Ausgabe von DESCRIBE HISTORY. Gilt für Anreichern von Tabellen mit benutzerdefinierten Metadaten.

Dateispüle

Die folgende Option gilt beim Schreiben eines Datenstroms in dateibasierte Formate (Parkett, JSON, CSV, ORC, Text). Formatspezifische Optionen finden Sie unter DataFrameWriter-Optionen.

Schlüssel Vorgabe Description
retention None Wie lange Senke-Metadatendateien aufbewahrt werden, die für Fehlertoleranz und Komprimierung verwendet werden. Akzeptiert eine Zeitzeichenfolge, z 7 days . B. oder 24 hours. Wenn sie nicht festgelegt ist, werden Metadatendateien unbegrenzt aufbewahrt.

Kafka Spüle

Eine vollständige Liste der Optionen zum Schreiben von Datenströmen in Kafka finden Sie unter "Optionen".

Schlüssel Vorgabe Description
kafka.bootstrap.servers None Required. Eine durch Trennzeichen getrennte Liste der Kafka-Brokeradressen host:port .
topic None Das Zielthema "Kafka" für alle Zeilen. Erforderlich, wenn der DataFrame keine Spalte enthält topic .
kafka.* None Jede Kafka-Produzentenkonfiguration mit kafka.dem Präfix . Beispiel: kafka.compression.type

Speichersenke

Schlüssel Vorgabe Description
queryName Keine (erforderlich) Der Name der In-Memory-Tabelle, in die die Abfrage schreibt. Erforderlich für die Speichersenke. Auch konfigurierbar über .queryName().
mode exactlyonce Liefergarantie für die Speichersenke. exactlyonce verwendet den Mikrobatchmodus mit genau einmaler Semantik. atleastonce verwendet den fortlaufenden Modus mit mindestens einmal semantischer Semantik. Gültige Werte: exactlyonce, atleastonce.

Spark-Funktionsoptionen

Einige integrierte Spark SQL-Funktionen akzeptieren eine options Zuordnung, die das Analyse- oder Serialisierungsverhalten steuert. Übergeben Sie Optionen als Python dict oder scala Map[String, String].

Example

Im folgenden Beispiel wird eine JSON-Spalte analysiert, während falsch formatierte Datensätze abgelegt werden:

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-Funktionen akzeptieren dieselben Optionen wie die entsprechenden DataFrame-Optionen:

Example

Im folgenden Beispiel wird eine Avro-Spalte mit aktivierter Schemaentwicklung decodiert:

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

Darüber hinaus akzeptieren die Schemaregistrierungsvarianten die from_avroto_avro folgenden Optionen:

Schlüssel Vorgabe Description
schemaId None Schema-ID aus der Confluent-Schemaregistrierung, die beim Decodieren von Avro-Daten verwendet werden soll, die mit einem Schema inkompatibel jsonFormatSchemasind. Gilt nur für from_avro .
confluent.schema.registry.* None Confluent Schema Registry-Clientkonfigurationseigenschaften. Übergeben Sie eine beliebige Confluent SR-Clienteigenschaft mit diesem Präfix, z confluent.schema.registry.basic.auth.user.info . B. für Standardauthentifizierungsanmeldeinformationen. Erforderlich für die Schemaregistrierungsvarianten von from_avro und to_avro.

CSV

CSV-Funktionen akzeptieren dieselben Optionen wie die entsprechenden DataFrame-Optionen:

Example

Im folgenden Beispiel wird CSV mit einem benutzerdefinierten Trennzeichen und NULL -Wert gelesen:

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-Funktionen akzeptieren dieselben Optionen wie die entsprechenden DataFrame-Optionen:

Example

Das folgende Beispiel schreibt JSON mit NULL ignorierten Feldern und aktivierter ziemlicher Formatierung:

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 und to_protobuf verwenden Sie keine dateibasierte Datenquelle. Protobuf-Daten werden mit diesen Funktionen immer als binäre Spalten gelesen und geschrieben. Optionen werden als Groß Map[String, String] - und Kleinschreibung übergeben.

Example

Im folgenden Beispiel wird eine Protobuf-Spalte im PERMISSIVE-Modus decodiert:

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-Funktionen verwenden die folgenden Optionen:

Schlüssel Vorgabe Description
mode FAILFAST So behandeln Sie beschädigte Datensätze. FAILFAST löst eine Ausnahme aus. PERMISSIVE legt falsch formatierte Felder auf NULL fest. Gültige Werte: FAILFAST, PERMISSIVE. Gilt für from_protobuf.
recursive.fields.max.depth -1 (deaktiviert) Maximale Rekursionstiefe für rekursive Protobuf-Felder. Legen Sie fest, 0 dass die rekursive Feldunterstützung deaktiviert werden soll. Gültige Werte: 0 bis 10. Gilt für from_protobuf.
convert.any.fields.to.json false Gibt an, ob Protobuf-Felder Any anstelle einer JSON-Zeichenfolge in eine STRUCTJSON-Zeichenfolge konvertiert werden sollen. Gilt für from_protobuf.
emit.default.values false Gibt an, ob Felder mit Null- oder Standardwerten (Proto3-Semantik) ausgegeben werden sollen. Wenn false, Felder mit Standardwerten werden aus der Ausgabe weggelassen. Gilt für from_protobuf.
enums.as.ints false Gibt an, ob Enumerationsfelder anstelle von Zeichenfolgen als ganzzahlige Werte gerendert werden sollen. Gilt für from_protobuf.
upcast.unsigned.ints false Gibt an, uint32 ob Der Ganzzahlüberlauf auf Long und uint64 verhindert werden soll Decimal(20,0) . Gilt für from_protobuf.
unwrap.primitive.wrapper.types false Gibt an, Int32Value ob Wrappertypen (z. B. und StringValue) auf die entsprechenden primitiven Spark-Typen entpackt google.protobuf werden sollen. Gilt für from_protobuf.
retain.empty.message.types false Gibt an, ob leere Protobuf-Nachrichtentypen im Ausgabeschema beibehalten werden sollen, indem Sie eine Dummyspalte einfügen. Gilt für from_protobuf.
schema.registry.subject None Name des Schemaregistrierungsbetreffs. Erforderlich bei Verwendung der Schemaregistrierungsvarianten von from_protobuf und to_protobuf.
schema.registry.address None Schemaregistrierungsadresse (Host und Port). Erforderlich bei Verwendung der Schemaregistrierungsvarianten von from_protobuf und to_protobuf.
schema.registry.protobuf.name None Gibt an, welche Protobuf-Nachricht verwendet werden soll, wenn der Betreff der Schemaregistrierung mehrere Nachrichten enthält. Dies ist optional.

XML

XML-Funktionen akzeptieren dieselben Optionen wie die entsprechenden DataFrame-Optionen:

Example

Im folgenden Beispiel wird XML mit benutzerdefinierten Stamm- und Zeilentags geschrieben:

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