Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 ]:
|
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:
|
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:
|
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:
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:
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.csvDie 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.
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:
-
from_avroundschema_of_avroverwenden Sie DataFrameReader Avro-Optionen. -
to_avroverwendet DataFrameWriter Avro-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:
-
from_csvundschema_of_csvverwenden Sie DataFrameReader-CSV-Optionen. -
to_csvverwendet CSV-Optionen für DataFrameWriter.
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:
-
from_jsonundschema_of_jsonverwenden Sie DIE JSON-Optionen von DataFrameReader. -
to_jsonverwendet JSON-Optionen für DataFrameWriter.
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:
-
from_xmlundschema_of_xmlverwenden Sie DataFrameReader-XML-Optionen. -
to_xmlverwendet DataFrameWriter-XML-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")))