Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette page répertorie les options d’entrée et de sortie disponibles pour les API Spark qui lisent et écrivent des données.
Options DataFrameReader
Utilisez ces options avec DataFrameReader.option(), DataFrameReader.options(), read_files, COPY INTO et Auto Loader pour contrôler la façon dont Azure Databricks lit les fichiers de données.
Example
L’exemple suivant définit multiLine la valeur pour True lire des fichiers JSON :
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)
Commun
Les options suivantes s’appliquent à tous les formats de fichier.
| Clé | Par défaut | Description |
|---|---|---|
ignoreCorruptFiles |
false |
Indique s’il faut ignorer les fichiers endommagés. Si la valeur est true, les travaux Spark continueront à s’exécuter lorsqu’ils rencontrent des fichiers manquants et le contenu qui a été lu sera toujours renvoyé. Pour COPY INTO, vous pouvez observer les fichiers endommagés ignorés comme numSkippedCorruptFiles dans la operationMetrics colonne de l’historique Delta Lake. Disponible dans Databricks Runtime 11.3 LTS et versions ultérieures. |
ignoreMissingFiles |
false pour le chargeur automatique, true pour COPY INTO (hérité) |
Indique s’il faut ignorer les fichiers manquants. Si la valeur est true, les travaux Spark continuent à s’exécuter lors de la rencontre de fichiers manquants et le contenu est toujours retourné. Disponible dans Databricks Runtime 11.3 LTS et versions ultérieures. |
modifiedAfter |
None | Un horodatage facultatif comme filtre pour n'importer que les fichiers dont l'horodatage de modification est postérieur à l'horodatage fourni. |
modifiedBefore |
None | Un horodatage facultatif servant de filtre pour ne traiter que les fichiers ayant un horodatage de modification antérieur à l’horodatage fourni. |
pathGlobFilter ou fileNamePattern |
None | Modèle Glob potentiel à fournir pour choisir des fichiers. Équivalent à PATTERN in COPY INTO (hérité).
fileNamePattern peut être utilisé dans read_files. |
recursiveFileLookup |
false |
Quand true, cette option effectue une recherche dans des répertoires imbriqués même si leurs noms ne suivent pas un schéma de nommage de partition comme date=2019-07-01. |
Avro
| Clé | Par défaut | Description |
|---|---|---|
avroSchema |
None | Schéma facultatif fourni par un utilisateur au format Avro. Lors de la lecture d’Avro, cette option peut être définie sur un schéma évolué compatible mais différent du schéma Avro réel. Le schéma de désérialisation est cohérent avec le schéma évolué. Par exemple, si vous définissez un schéma évolué contenant une colonne supplémentaire avec une valeur par défaut, le résultat de lecture contient également la nouvelle colonne. |
avroSchemaEvolutionMode |
none |
Comment gérer l’évolution du schéma lors de l’utilisation d’un registre de schémas. Valeurs valides : none (ignorer les modifications de schéma et poursuivre le travail), restart (lorsque des modifications de schéma sont détectées, déclenche un UnknownFieldException redémarrage du travail et nécessite un redémarrage du travail). |
datetimeRebaseMode |
LEGACY |
Contrôle le rebasage des valeurs DATE et TIMESTAMP entre les calendriers julien et grégorien proleptique. Valeurs valides : EXCEPTION, LEGACY et CORRECTED. |
enableStableIdentifiersForUnionType |
false |
Indique s’il faut utiliser des noms de champs stables pour les types Avro Union. Lorsqu’ils sont activés, les noms de champs de type union sont dérivés de leurs noms de types en minuscules (par exemple, , member_intmember_string). Lève une exception si deux noms de type sont identiques après la casse. |
mergeSchema |
false |
Indique s’il faut déduire le schéma entre plusieurs fichiers et fusionner le schéma de chaque fichier.
mergeSchema pour Avro n’assouplit pas les types de données. |
mode |
FAILFAST |
Mode d’analyse pour la gestion des enregistrements endommagés. Valeurs valides : FAILFAST (lève une exception), PERMISSIVE (définit les champs mal formés sur Null), DROPMALFORMED (supprime silencieusement les enregistrements incorrects). |
readerCaseSensitive |
true |
Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauvez les colonnes de données dont les noms diffèrent par cas du schéma. Lorsque la valeur est false, lisez les données de manière non sensible à la casse. |
recursiveFieldMaxDepth |
None | Profondeur maximale de récursivité pour les champs Avro récursifs. Défini pour 1 tronquer tous les champs récursifs, 2 pour autoriser un niveau de récursivité, et ainsi de suite jusqu’à 15. Lorsque des champs non défini ou 0récursifs ne sont pas autorisés. Valeurs valides : 0 à 15. |
rescuedDataColumn |
None | Indique s’il faut collecter, dans une colonne distincte, toutes les données qui ne peuvent pas être analysées en raison d’une incompatibilité de type de données et d’une incompatibilité de schéma (y compris la casse de colonne). Cette colonne est incluse par défaut lors de l’utilisation d’Auto Loader.COPY INTO (hérité) ne prend pas en charge la colonne de données sauvée, car vous ne pouvez pas définir manuellement le schéma à l’aide de COPY INTO. Databricks recommande d’utiliser le chargeur automatique pour la plupart des scénarios d’ingestion.Pour plus de détails, reportez-vous à Qu’est-ce que la colonne des données récupérées ?. |
stableIdentifierPrefixForUnionType |
member_ |
Préfixe à utiliser pour les noms de champs de type union stable quand enableStableIdentifiersForUnionType=true. |
CSV
| Clé | Par défaut | Description |
|---|---|---|
badRecordsPath |
None | Chemin d’accès pour stocker les fichiers contenant des informations sur les enregistrements CSV incorrects. |
charToEscapeQuoteEscaping |
\0 |
Caractère utilisé pour placer dans une séquence d’échappement le caractère utilisé pour les guillemets d’échappement. Par exemple, pour l'enregistrement suivant : [ " a\\", b ] :
|
columnNameOfCorruptRecord |
_corrupt_record |
Pris en charge pour Auto Loader. Pas pris en charge pour COPY INTO (ancien système).Colonne destinée au stockage des enregistrements malformés et qui ne peuvent pas être analysés. Si l’élément mode de l'analyse est défini comme DROPMALFORMED, cette colonne sera vide. |
comment |
\0 |
Définit le caractère qui représente un commentaire de ligne lorsqu’il se trouve au début d’une ligne de texte. Utilisez '\0' pour désactiver le saut des commentaires. |
dateFormat |
yyyy-MM-dd |
Format d’analyse des chaînes de date. |
emptyValue |
Chaîne vide | Représentation sous forme de chaîne d’une valeur vide. |
enableDateTimeParsingFallback |
false |
Indique s’il faut revenir au comportement d’analyse de date et d’horodatage hérité lorsqu’une valeur ne peut pas être analysée avec le format spécifié. Lorsque false, l’analyse des échecs déclenche une erreur ou produit une valeur Null en fonction modede . |
encoding ou charset |
UTF-8 |
Nom de l’encodage des fichiers CSV. Pour obtenir la liste des options, consultez java.nio.charset.Charset.
UTF-16 et UTF-32 ne peuvent pas être utilisées lorsque multiline est true. |
enforceSchema |
true |
Indique s’il faut appliquer de force le schéma spécifié ou déduit aux fichiers CSV. Si l’option est activée, les en-têtes des fichiers CSV sont ignorés. Cette option est ignorée par défaut lors de l’utilisation d’Auto Loader pour récupérer des données et permettre l’évolution du schéma. |
escape |
\ |
Caractère d’échappement à utiliser lors de l’analyse des données. |
extension |
csv |
Extension de nom de fichier attendue. Les fichiers sans cette extension sont filtrés pendant les lectures. |
failOnUnknownFields |
false |
Indique s’il faut échouer lorsque l’enregistrement CSV contient des colonnes non présentes dans le schéma. Quand false, les colonnes non reconnues sont supprimées ou sauvées en mode silencieux en fonction rescuedDataColumnde . |
failOnWidenedFields |
false |
Indique s’il faut échouer lorsqu’une valeur de champ ne peut pas être analysée en tant que type de schéma déclaré sans élargir. Lorsque false, les valeurs à l’échelle du type sont sauvées en mode silencieux en fonction rescuedDataColumnde . Le paramètre failOnUnknownFields=true peut masquer les effets de cette option. |
header |
false |
Indique si les fichiers CSV contiennent un en-tête. Auto Loader suppose que les fichiers comportent des en-têtes lors de l’inférence du schéma. |
ignoreLeadingWhiteSpace |
false |
Indique s’il faut ignorer les espaces blancs de début pour chaque valeur analysée. |
ignoreTrailingWhiteSpace |
false |
Indique s’il faut ignorer les espaces blancs de fin pour chaque valeur analysée. |
inferSchema |
false |
Indique s’il faut déduire les types de données des enregistrements CSV analysés ou supposer que toutes les colonnes sont de type StringType. Nécessite un passage supplémentaire sur les données si la valeur est true. Pour Chargeur automatique, utilisez cloudFiles.inferColumnTypes à la place. |
inputBufferSize |
1048576 (1 Mo) |
Taille de la mémoire tampon en octets pour l’analyseur CSV. Utile pour optimiser l’utilisation de la mémoire lors de l’analyse de fichiers CSV volumineux. Valeurs valides : entiers positifs. |
lineSep |
Aucun, qui couvre \r, \r\net \n |
Une chaîne entre deux enregistrements CSV consécutifs. |
locale |
US |
Identificateur java.util.Locale. Influence la date, l'horodatage et l'analyse décimale par défaut dans le fichier CSV. |
maxCharsPerColumn |
-1 |
Nombre maximal de caractères attendus d’une valeur à analyser. Peut être utilisé pour éviter les erreurs de mémoire. La valeur par défaut est -1, ce qui signifie illimité. Valeurs valides : entiers positifs ou -1 illimités. |
maxColumns |
20480 |
Limite inconditionnelle du nombre de colonnes qu’un enregistrement peut avoir. Valeurs valides : entiers positifs. |
mergeSchema |
false |
Indique s’il faut déduire le schéma entre plusieurs fichiers et fusionner le schéma de chaque fichier. Option activée par défaut pour Auto Loader lors de l’inférence du schéma. |
mode |
PERMISSIVE |
Mode de l’analyseur pour la gestion des enregistrements mal formés. Valeurs valides : PERMISSIVE, DROPMALFORMED, FAILFAST. |
multiLine |
false |
Indique si les enregistrements CSV s’étendent sur plusieurs lignes. |
nanValue |
NaN |
Représentation sous forme de chaîne d'une valeur non numérique lors de l'analyse des colonnes FloatType et DoubleType. |
negativeInf |
-Inf |
Représentation sous forme de chaîne de l'infini négatif lors de l'analyse des colonnes FloatType ou DoubleType. |
nullValue |
Chaîne vide | Représentation sous forme de chaîne d’une valeur Null. |
parserCaseSensitive (déconseillé) |
false |
Lors de la lecture de fichiers, indique s’il faut aligner les colonnes déclarées dans l’en-tête avec le cas de schéma en respectant la casse. Il s’agit de true par défaut pour Auto Loader. Les colonnes qui diffèrent au niveau de la casse sont récupérées dans rescuedDataColumn si cette option est activée. Cette option a été abandonnée au profit de readerCaseSensitive. |
positiveInf |
Inf |
Représentation sous forme de chaîne de l'infini positif lors de l'analyse des colonnes FloatType ou DoubleType. |
preferDate |
true |
Tente d'interpréter des chaînes sous forme de dates plutôt que des horodatages lorsque cela est possible. Vous devez également utiliser l’inférence de schéma, soit en activant inferSchema ou en utilisant cloudFiles.inferColumnTypes le chargeur automatique. |
quote |
" |
Caractère utilisé pour échapper des valeurs où le délimiteur de champ fait partie de la valeur. |
readerCaseSensitive |
true |
Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauvez les colonnes de données dont les noms diffèrent par cas du schéma. Lorsque la valeur est false, lisez les données de manière non sensible à la casse. |
rescuedDataColumn |
None | Indique s’il faut collecter, dans une colonne distincte, toutes les données qui ne peuvent pas être analysées en raison d’une incompatibilité de type de données et d’une incompatibilité de schéma (y compris la casse de colonne). Cette colonne est incluse par défaut lors de l’utilisation d’Auto Loader. Pour plus de détails, reportez-vous à Qu’est-ce que la colonne des données récupérées ?.COPY INTO (hérité) ne prend pas en charge la colonne de données sauvée, car vous ne pouvez pas définir manuellement le schéma à l’aide de COPY INTO. Databricks recommande d’utiliser le chargeur automatique pour la plupart des scénarios d’ingestion. |
sep ou delimiter |
, |
Chaîne de séparateur entre les colonnes. |
singleVariantColumn |
None | Lorsqu’il est défini sur un nom de colonne, lit l’enregistrement CSV entier dans une seule VariantType colonne avec ce nom au lieu d’analyser chaque champ dans sa propre colonne. Exige header=true. |
skipRows |
0 |
Nombre de lignes à ignorer à partir du début du fichier CSV (y compris les lignes commentées et les lignes vides). Si header a la valeur vraie, l’en-tête sera la première ligne non ignorée et non commentée. Valeurs valides : entiers positifs ou 0. |
timeFormat |
HH:mm:ss |
Format d’analyse des valeurs de TimeType colonne. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Format d’analyse des chaînes de timestamp. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Format d’analyse de l’horodatage sans chaînes de fuseau horaire (TimestampNTZType). |
timeZone |
None | L’élément java.time.ZoneId à utiliser lors de l'analyse des timestamps et des dates. |
unescapedQuoteHandling |
STOP_AT_DELIMITER |
Stratégie de gestion des guillemets sans séquence d’échappement. Options autorisées :
|
Excel
| Clé | Par défaut | Description |
|---|---|---|
dataAddress |
None | Plage de cellules à lire dans Excel syntaxe. En cas d’omission, lit toutes les cellules valides de la première feuille. Permet "SheetName!C5:H10" de lire une plage à partir d’une feuille nommée, "C5:H10" de lire une plage de la première feuille ou "SheetName" de lire toutes les données d’une feuille spécifique. |
headerRows |
0 |
Nombre de lignes initiales à utiliser comme en-têtes de nom de colonne. Quand dataAddress elle est spécifiée, cela s’applique dans la plage de cellules. Lorsque 0, les noms de colonnes sont générés automatiquement en tant que _c1, _c2, _c3, etc. Valeurs valides : 0, 1. |
ignoreMissingSheet |
false |
Indique s’il faut ignorer en mode silencieux les fichiers qui ne contiennent pas la feuille spécifiée par dataAddress. Lorsque false, une erreur est levée si un fichier est manquant dans la feuille demandée. S’applique uniquement lorsqu’un nom de feuille est spécifié dans dataAddress. Valeurs valides : true, false. |
includePhoneticRuns |
false |
Indique s’il faut inclure des annotations phonétiques (telles que pinyin ou furigana) concaténées en valeurs de chaîne de cellule lors de la lecture des fichiers XLSX. Valeurs valides : true, false. |
operation |
readSheet |
Opération à effectuer sur le classeur Excel. Valeurs valides : readSheet (lit les données d’une feuille), listSheets (retourne un struct avec des champs sheetIndex: long et sheetName: String pour chaque feuille). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Chaîne de format personnalisée pour les valeurs timestamp-without-timezone stockées sous forme de chaînes dans Excel. Les formats de date personnalisés suivent les formats des modèles Datetime. |
dateFormat |
yyyy-MM-dd |
Chaîne de format personnalisée pour les valeurs de chaîne lues en tant que Date. Les formats de date personnalisés suivent les formats des modèles Datetime. |
JSON
| Clé | Par défaut | Description |
|---|---|---|
allowBackslashEscapingAnyCharacter |
false |
Indique s’il faut autoriser les barres obliques inverses pour placer dans une séquence d'échappement tout caractère qui suit. Si cette option n’est pas activée, seuls les caractères explicitement listés par la spécification JSON peuvent être placés dans une séquence d’échappement. |
allowComments |
false |
Indique s’il faut autoriser ou non l’utilisation de commentaires de style Java, C et C++ (variétés '/', '*' et '//') dans le contenu analysé. |
allowNonNumericNumbers |
true |
Indique s’il faut autoriser l'ensemble des jetons non numériques (NaN) comme valeurs légales de nombres flottants. |
allowNumericLeadingZeros |
false |
Indique s’il faut autoriser les nombres entiers à commencer par des zéros supplémentaires (pouvant être ignorés) (par exemple, 000001). |
allowSingleQuotes |
true |
Indique s’il faut autoriser l'utilisation de guillemets simples (apostrophe, caractère '\') pour citer des chaînes de caractères (noms et valeurs de chaînes). |
allowUnquotedControlChars |
false |
Indique s’il faut autoriser les chaînes JSON à contenir des caractères de contrôle sans séquence d’échappement (caractères ASCII dont la valeur est inférieure à 32, y compris les tabulations et sauts de ligne). |
allowUnquotedFieldNames |
false |
Indique s’il faut autoriser l’utilisation de noms de champs non cités, qui sont autorisés par JavaScript, mais pas par la spécification JSON. |
alternateVariantEncoding |
None | Encodage utilisé pour les valeurs Variant dans le JSON source. Définissez la valeur sur laquelle Z85 décoder les valeurs Variant qui ont été encodées en Base85 au lieu de stockées en tant que JSON inline. |
badRecordsPath |
None | Chemin d’accès pour stocker les fichiers contenant des informations sur les enregistrements JSON incorrects. L’utilisation de l’option badRecordsPath dans une source de données basée sur des fichiers présente les limitations suivantes :
|
columnNameOfCorruptRecord |
_corrupt_record |
Colonne destinée au stockage des enregistrements malformés et qui ne peuvent pas être analysés. Si l’élément mode de l'analyse est défini comme DROPMALFORMED, cette colonne sera vide. |
dateFormat |
yyyy-MM-dd |
Format d’analyse des chaînes de date. |
dropFieldIfAllNull |
false |
Indique s’il faut ignorer les colonnes de toutes les valeurs Null ou des tableaux/structs vides pendant l’inférence de schéma. |
encoding ou charset |
UTF-8 |
Nom de l’encodage des fichiers JSON. Consultez java.nio.charset.Charset pour obtenir la liste des options. Vous ne pouvez pas utiliser UTF-16 et UTF-32 lorsque multiline est true. |
inferTimestamp |
false |
Indique s’il faut essayer de déduire les chaînes timestamp en tant que TimestampType. Lorsque la valeur est définie true, l’inférence de schéma peut prendre beaucoup plus de temps. Vous devez activer cloudFiles.inferColumnTypes pour une utilisation avec Auto Loader (Chargeur automatique). |
lineSep |
Aucun, qui couvre \r, \r\net \n |
Chaîne entre deux enregistrements JSON consécutifs. |
locale |
US |
Identificateur java.util.Locale. Influe sur la date par défaut, le timestamp et l'analyse des décimales au sein du JSON. |
maxNestingDepth |
500 |
Profondeur maximale d’imbrication autorisée pour les objets et tableaux JSON. Augmentez cette valeur pour les documents profondément imbriqués. Valeurs valides : entiers positifs. |
maxNumLen |
1000 |
Longueur maximale des jetons de nombre dans l’entrée JSON. Augmentez cette valeur pour JSON avec des littéraux numériques volumineux. Valeurs valides : entiers positifs. |
maxStringLen |
illimité | Longueur maximale des valeurs de chaîne dans l’entrée JSON. Définissez pour limiter l’utilisation de la mémoire lors de l’analyse de JSON avec des chaînes volumineuses. Valeurs valides : entiers positifs. |
mode |
PERMISSIVE |
Mode de l’analyseur pour la gestion des enregistrements mal formés. Valeurs valides : PERMISSIVE, DROPMALFORMED, FAILFAST. |
multiLine |
false |
Indique si les enregistrements JSON s’étendent sur plusieurs lignes. |
prefersDecimal |
false |
Tente d'interpréter les chaînes comme DecimalType plutôt que comme type float ou double lorsque cela est possible. Vous devez également utiliser l’inférence de schéma, soit en activant inferSchema ou en utilisant cloudFiles.inferColumnTypes le chargeur automatique. |
primitivesAsString |
false |
Indique s’il faut déduire les types primitifs comme les nombres et les valeurs booléennes comme StringType. |
readerCaseSensitive |
true |
Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauvez les colonnes de données dont les noms diffèrent par cas du schéma. Lorsque la valeur est false, lisez les données de manière non sensible à la casse. Disponible dans Databricks Runtime 13.3 et versions ultérieures. |
rescuedDataColumn |
None | Indique s’il faut collecter toutes les données qui ne peuvent pas être analysées en raison d’une incompatibilité de type de données ou d’une incompatibilité de schéma (y compris la casse de colonne) à une colonne distincte. Cette colonne est incluse par défaut lors de l’utilisation d’Auto Loader. Pour plus de détails, reportez-vous à Qu’est-ce que la colonne des données récupérées ?.COPY INTO (hérité) ne prend pas en charge la colonne de données sauvée, car vous ne pouvez pas définir manuellement le schéma à l’aide de COPY INTO. Databricks recommande d’utiliser le chargeur automatique pour la plupart des scénarios d’ingestion. |
singleVariantColumn |
None | Indique s’il faut ingérer l’intégralité du document JSON, analysé dans une seule colonne Variant avec la chaîne spécifiée comme nom de la colonne. Si ce n’est pas le cas, les champs JSON sont ingérés dans leurs propres colonnes. Valeurs valides : n’importe quelle chaîne. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Format d’analyse des chaînes de timestamp. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Format d’analyse de l’horodatage sans chaînes de fuseau horaire (TimestampNTZType). |
timeZone |
None | L’élément java.time.ZoneId à utiliser lors de l'analyse des timestamps et des dates. |
upgradeExceptionAsBadRecord |
false |
Indique s’il faut traiter les exceptions de mise à niveau de type (par exemple, lorsqu’une valeur ne peut pas être étendue au type de colonne déclaré) comme des enregistrements incorrects plutôt que de lever une exception. |
Kafka
Pour obtenir la liste complète des options de lecteur Kafka, consultez les options Kafka DataStreamReader. Les options suivantes s’appliquent uniquement aux lectures par lots à l’aide spark.read.format("kafka")de .
| Clé | Par défaut | Description |
|---|---|---|
endingOffsets |
latest |
Où arrêter la lecture. Valeurs valides : latestou chaîne JSON de décalages pour chaque partition telle que {"topicA":{"0":50,"1":-1}}.Dans la chaîne JSON, -1 est le dernier décalage.
-2, qui est le décalage le plus ancien, n’est pas autorisé comme offset de fin. |
endingOffsetsByTimestamp |
None | Décalages de fin par partition spécifiés en millisecondes. Valeurs valides : chaîne JSON d’horodatages pour chaque partition, par {"topicA":{"0":2000,"1":3000}}exemple . |
endingTimestamp |
None | Horodatage de fin global en millisecondes appliqués à toutes les partitions. Valeurs valides : entiers non négatifs. |
ORC
| Clé | Par défaut | Description |
|---|---|---|
mergeSchema |
false |
Indique s’il faut déduire le schéma entre plusieurs fichiers et fusionner le schéma de chaque fichier. |
Parquet
| Clé | Par défaut | Description |
|---|---|---|
datetimeRebaseMode |
LEGACY |
Contrôle le rebasage des valeurs DATE et TIMESTAMP entre les calendriers julien et grégorien proleptique. Valeurs valides : EXCEPTION, LEGACY et CORRECTED. |
int96RebaseMode |
LEGACY |
Contrôle la relocalisation des valeurs de timestamp INT96 entre les calendriers julien et grégorien proleptique. Valeurs valides : EXCEPTION, LEGACY et CORRECTED. |
mergeSchema |
false |
Indique s’il faut déduire le schéma entre plusieurs fichiers et fusionner le schéma de chaque fichier. |
readerCaseSensitive |
true |
Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauvez les colonnes de données dont les noms diffèrent par cas du schéma. Lorsque la valeur est false, lisez les données de manière non sensible à la casse. |
rescuedDataColumn |
None | Indique s’il faut collecter, dans une colonne distincte, toutes les données qui ne peuvent pas être analysées en raison d’une incompatibilité de type de données et d’une incompatibilité de schéma (y compris la casse de colonne). Cette colonne est incluse par défaut lors de l’utilisation d’Auto Loader. Pour plus de détails, reportez-vous à Qu’est-ce que la colonne des données récupérées ?.COPY INTO (hérité) ne prend pas en charge la colonne de données sauvée, car vous ne pouvez pas définir manuellement le schéma à l’aide de COPY INTO. Databricks recommande d’utiliser le chargeur automatique pour la plupart des scénarios d’ingestion. |
Magasin d’état
Utilisez ces options avec spark.read.format("statestore") ou la read_statestore fonction table pour lire les données d’état structured Streaming. Consultez Lire les informations d’état de Structured Streaming.
| Clé | Par défaut | Description |
|---|---|---|
batchId |
ID de lot le plus récent | Lot cible à partir duquel lire. Permet d’interroger un état antérieur de la requête. Le lot doit être validé, mais pas encore nettoyé. Valeurs valides : entiers non négatifs. |
operatorId |
0 |
Opérateur cible à partir duquel lire. Utilisez quand la requête a plusieurs opérateurs avec état. Valeurs valides : entiers non négatifs. |
storeName |
DEFAULT |
Nom du magasin d’états cible à partir duquel lire. Utilisez quand l’opérateur avec état a plusieurs instances de magasin d’état. Vous devez spécifier soit storeName pour joinSide une jointure de flux de flux, mais pas pour les deux. Valeurs valides : n’importe quelle chaîne. |
joinSide |
None | Côté cible à lire pour une jointure de flux de flux. Vous devez spécifier soit storeName pour joinSide une jointure de flux de flux, mais pas pour les deux. Valeurs valides : left, right. |
snapshotStartBatchId |
None | ID de lot de l’instantané à utiliser comme point de départ lors de la lecture de l’état. Le lecteur reconstruit l’état en relectant les modifications de cet instantané jusqu’à batchId. Utile lorsqu’un instantané est endommagé. Doit être spécifié avec snapshotPartitionId. Impossible d’utiliser avec readChangeFeed. Prend en charge le magasin d’état soutenu par HDFS et le magasin d’état RocksDB avec le point de contrôle de journal des modifications activé. Disponible dans Databricks Runtime 15.4 LTS et versions ultérieures. Valeurs valides : entiers non négatifs. |
snapshotPartitionId |
None | Si elle est spécifiée, la requête lit uniquement cette partition. Doit être spécifié avec snapshotStartBatchId. Impossible d’utiliser avec readChangeFeed. Disponible dans Databricks Runtime 15.4 LTS et versions ultérieures. Valeurs valides : entiers non négatifs. |
readChangeFeed |
false |
Quand true, retourne les modifications d’état sur une plage spécifiée de lots entre changeStartBatchId et changeEndBatchId. Exige changeStartBatchId. Impossible d’utiliser avec joinSide, , batchIdsnapshotStartBatchIdou snapshotPartitionId. Disponible dans Databricks Runtime 16.4 LTS et versions ultérieures. Valeurs valides : true, false.Pour plus d’informations, consultez Lire les modifications de l’état de diffusion en continu structurée. |
changeStartBatchId |
None | ID de lot de départ de la plage de flux de modification. Obligatoire quand readChangeFeed est true. S’applique uniquement quand readChangeFeed est défini sur true. Disponible dans Databricks Runtime 16.4 LTS et versions ultérieures. Valeurs valides : entiers non négatifs. |
changeEndBatchId |
ID de lot le plus récent | ID de lot de fin de la plage de flux de modification. Doit être supérieur ou égal à changeStartBatchId. S’applique uniquement quand readChangeFeed est défini sur true. Disponible dans Databricks Runtime 16.4 LTS et versions ultérieures. Valeurs valides : entiers non négatifs. |
stateVarName |
None | Nom de la variable d’état à lire. Le nom de la variable d’état est le nom unique de chaque variable dans la init fonction d’un StatefulProcessor utilisé par l’opérateur transformWithState . Obligatoire lorsque vous utilisez l’opérateur transformWithState . Disponible dans Databricks Runtime 16.4 LTS et versions ultérieures. Valeurs valides : n’importe quelle chaîne. |
readRegisteredTimers |
false |
Lorsque true, lit les minuteurs inscrits utilisés par l’opérateur transformWithState . S’applique uniquement à l’opérateur transformWithState . Disponible dans Databricks Runtime 16.4 LTS et versions ultérieures. Valeurs valides : true, false. |
flattenCollectionTypes |
true |
Lorsque true, aplatit les enregistrements retournés pour les variables d’état de carte et de liste. Quand false, retourne des enregistrements sous forme de sql Array Spark ou Map. S’applique uniquement à l’opérateur transformWithState . Disponible dans Databricks Runtime 16.4 LTS et versions ultérieures. Valeurs valides : true, false. |
Texte
| Clé | Par défaut | Description |
|---|---|---|
encoding |
UTF-8 |
Nom de l’encodage du séparateur de ligne de fichier TEXT. Pour obtenir la liste des options, consultez java.nio.charset.Charset. Le contenu du fichier n’est pas affecté par cette option et est lu as-is. |
lineSep |
Aucun, qui couvre \r, \r\n et \n |
Chaîne située entre deux enregistrements «TEXT» consécutifs. |
wholeText |
false |
Indique si un fichier doit être lu en tant qu’enregistrement unique. |
XML
| Clé | Par défaut | Description |
|---|---|---|
rowTag |
None | La balise de ligne des fichiers XML à traiter comme une ligne. Dans l’exemple XML <books> <book><book>...<books>, la valeur appropriée est book. C'est une option obligatoire. |
samplingRatio |
1.0 |
Définit une fraction de lignes utilisées pour l’inférence de schéma. Les fonctions intégrées XML ignorent cette option. Valeurs valides : 0.0 à 1.0. |
excludeAttribute |
false |
Indique s’il faut exclure des attributs dans les éléments. |
mode |
None | Mode de traitement des enregistrements endommagés pendant l’analyse.
PERMISSIVE : pour les enregistrements endommagés, place la chaîne malformée dans un champ configuré par columnNameOfCorruptRecord et définit les champs malformés sur null. Pour conserver les enregistrements corrompus, vous pouvez définir un champ de type string nommé columnNameOfCorruptRecord dans un schéma défini par l’utilisateur. Si un schéma n’a pas le champ, les enregistrements endommagés sont supprimés pendant l’analyse. Lors de l’inférence d’un schéma, l’analyseur ajoute implicitement un champ columnNameOfCorruptRecord dans un schéma de sortie.
DROPMALFORMED : ignore les enregistrements endommagés. Ce mode n’est pas pris en charge pour les fonctions intégrées XML.
FAILFAST : lève une exception lorsque l’analyseur rencontre des enregistrements endommagés. |
inferSchema |
true |
Si true, tente de déduire un type approprié pour chaque colonne DataFrame résultante. Si false, toutes les colonnes résultantes sont de type string. Les fonctions intégrées XML ignorent cette option. |
columnNameOfCorruptRecord |
spark.sql.columnNameOfCorruptRecord |
Permet de renommer le nouveau champ qui contient une chaîne mal formée créée par PERMISSIVE le mode. |
attributePrefix |
None | Le préfixe des attributs permettant de les différencier des éléments. Il s’agira du préfixe pour les noms de champs. La valeur par défaut est _. Peut être vide pour lire du code XML, mais pas pour l’écriture. S’applique également aux options XML DataFrameWriter. |
valueTag |
_VALUE |
Balise utilisée pour les données caractères dans les éléments qui ont également des éléments d’attribut(s) ou d’élément(s) enfant(s). L’utilisateur peut spécifier le champ valueTag dans le schéma ou il sera ajouté automatiquement pendant l’inférence du schéma lorsque les données caractères sont présentes dans des éléments avec d’autres éléments ou attributs. S’applique également aux options XML DataFrameWriter. |
encoding |
UTF-8 |
Pour la lecture, décode les fichiers XML par le type d’encodage donné. Pour l’écriture, spécifie l’encodage (charset) des fichiers XML enregistrés. Les fonctions intégrées XML ignorent cette option. S’applique également aux options XML DataFrameWriter. |
ignoreSurroundingSpaces |
true |
Indique si les espaces blancs entourant les valeurs doivent être ignorés. Les caractères constitués uniquement d'espaces blancs sont ignorés. |
rowValidationXSDPath |
None | Chemin d’accès à un fichier XSD facultatif utilisé pour valider le code XML de chaque ligne individuellement. Les lignes qui ne parviennent pas à valider sont traitées comme des erreurs d’analyse. Le XSD n’affecte pas le schéma, qu’il soit fourni ou déduit. |
ignoreNamespace |
false |
Si true, les préfixes des espaces de noms sur les éléments et attributs XML sont ignorés. Les balises <abc:author> et <def:author>, par exemple, sont traitées comme si elles étaient simplement <author>. Les espaces de noms ne peuvent pas être ignorés sur l’élément rowTag, uniquement ses enfants en lecture. L’analyse XML ne prend pas en compte l’espace de noms même si false. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Chaîne de format de timestamp personnalisée qui suit le format du modèle datetime. Cela s’applique au type timestamp. S’applique également aux options XML DataFrameWriter. |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Chaîne de format personnalisée pour l’horodatage sans fuseau horaire qui suit le format de modèle datetime. Cela s’applique au type TimestampNTZType. S’applique également aux options XML DataFrameWriter. |
dateFormat |
yyyy-MM-dd |
Chaîne de format de date personnalisée qui suit le format de modèle date-heure. Cela s’applique au type de date. S’applique également aux options XML DataFrameWriter. |
locale |
en-US |
Définit des paramètres régionaux comme étiquette de langue au format IETF BCP 47. Par exemple, locale est utilisé pour l’analyse des dates et des horodatages. |
nullValue |
chaîne null |
Définit la représentation sous forme de chaîne de caractères d’une valeur nulle. Quand il s’agit de null, l’analyseur n’écrit pas d’attributs et d’éléments pour les champs. S’applique également aux options XML DataFrameWriter. |
readerCaseSensitive |
true |
Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauvez les colonnes de données dont les noms diffèrent par cas du schéma. Lorsque la valeur est false, lisez les données de manière non sensible à la casse. |
rescuedDataColumn |
None | Indique s’il faut collecter toutes les données qui ne peuvent pas être analysées en raison d’une incompatibilité de type de données et d’une incompatibilité de schéma (y compris la casse de colonne) à une colonne distincte. Cette colonne est incluse par défaut lors de l’utilisation d’Auto Loader. Pour plus d’informations, consultez Qu’est-ce que la colonne de données récupérées ?
COPY INTO (hérité) ne prend pas en charge la colonne de données sauvée, car vous ne pouvez pas définir manuellement le schéma à l’aide de COPY INTO. Databricks recommande d’utiliser le chargeur automatique pour la plupart des scénarios d’ingestion. |
singleVariantColumn |
none |
Spécifie le nom de la colonne de variante unique. Si cette option est spécifiée pour la lecture, analysez l’intégralité de l’enregistrement XML dans une seule colonne Variant avec la valeur de chaîne d’option donnée comme nom de la colonne. Si cette option est fournie pour l’écriture, écrivez la valeur de la colonne Variant unique dans des fichiers XML. S’applique également aux options XML DataFrameWriter. |
useLegacyXMLParser |
true |
Indique s’il faut utiliser l’analyseur XML hérité. L’analyseur hérité a une validation moins stricte pour le contenu mal formé, mais il est moins efficace en mémoire. Définissez cette option pour false choisir l’analyseur par défaut le plus strict. |
wildcardColName |
xs_any |
Nom de colonne utilisé pour capturer des éléments XML qui correspondent à l’élément de schéma générique (xs:any). Impossible d’utiliser avec rescuedDataColumn. |
Options DataStreamReader
Utilisez ces options pour DataStreamReader.option() configurer les lectures de diffusion en continu à partir de tables Delta Lake et d’autres sources basées sur des fichiers.
Pour connaître les options de format de fichier (JSON, CSV, Parquet et autres), consultez les options DataFrameReader.
Pour connaître les options du chargeur automatique (cloudFiles.*), consultez Le chargeur automatique.
Example
L’exemple suivant définit maxFilesPerTrigger la valeur pour 10 un flux de table Delta Lake :
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")
Commun
Les options suivantes s’appliquent aux tables Delta Lake et à d’autres sources de diffusion en continu basées sur des fichiers.
| Clé | Par défaut | Description |
|---|---|---|
cleanSource |
off |
Comment gérer les fichiers sources après leur traitement par le flux. Valeurs valides : off (aucune action), delete (supprimez définitivement le fichier source), archive (passez à sourceArchiveDir). Quand la valeur est définie archive, sourceArchiveDir doit également être définie. Ne s’applique pas à la diffusion en continu de table Delta Lake. |
fileNameOnly |
false |
Indique s’il faut identifier les fichiers déjà traités par nom de fichier uniquement plutôt que par chemin d’accès complet. Lorsque true, les fichiers à différents chemins d’accès avec le même nom de fichier sont traités comme le même fichier et ne sont pas retratés. Ne s’applique pas à la diffusion en continu de table Delta Lake. |
latestFirst |
false |
Indique s’il faut traiter les fichiers les plus récemment modifiés au sein de chaque micro-lot. Utile lorsque vous souhaitez traiter les données les plus récentes le plus rapidement possible. Quand true et maxFilesPerTrigger ou maxBytesPerTrigger est défini, maxFileAge est ignoré. Ne s’applique pas à la diffusion en continu de table Delta Lake. |
maxBytesPerTrigger |
None | Maximum souple pour la quantité de données traitées pour chaque micro-lot. Un lot peut traiter plus que la limite si la plus petite unité d’entrée la dépasse. Lorsqu’il est utilisé avec maxFilesPerTrigger, le micro-lot traite les données jusqu’à ce que l’une des limites soit atteinte en premier. Valeurs valides : entiers positifs.Pour Chargeur automatique, utilisez cloudFiles.maxBytesPerTrigger à la place. Voir Common. |
maxCachedFiles |
10000 |
Nombre maximal de fichiers non traités à mettre en cache pour les micro-lots suivants. Définissez cette option pour 0 désactiver la mise en cache. Augmentez cette valeur lorsque le répertoire source contient de nombreux nouveaux fichiers pour chaque déclencheur. Ne s’applique pas à la diffusion en continu de table Delta Lake. Valeurs valides : entiers positifs ou 0. |
maxFileAge |
7d |
Âge maximal des fichiers pris en compte pour le traitement, par rapport à l’horodatage du fichier le plus récemment modifié plutôt qu’à l’heure système actuelle. Les fichiers antérieurs à ce seuil sont ignorés. Accepte des chaînes de durée telles que 7d ou 4h. Ignoré quand latestFirsttrue et maxFilesPerTrigger ou maxBytesPerTrigger est défini. Ne s’applique pas à la diffusion en continu de table Delta Lake. |
maxFilesPerTrigger |
1000 pour Delta Lake et le chargeur automatique. Aucun maximum pour d’autres sources basées sur des fichiers. |
Limite supérieure pour le nombre de nouveaux fichiers traités dans chaque micro-lot. Lorsqu’il est utilisé avec maxBytesPerTrigger, le micro-lot traite les données jusqu’à ce que l’une des limites soit atteinte en premier. Valeurs valides : entiers positifs.Pour Chargeur automatique, utilisez cloudFiles.maxFilesPerTrigger à la place. Voir Common. |
sourceArchiveDir |
None | Chemin d’accès au répertoire d’archivage quand cleanSource il est défini sur archive. Les fichiers sources sont déplacés vers ce chemin après le traitement, en conservant leur structure de répertoires relative. Ne s’applique pas à la diffusion en continu de table Delta Lake. |
Chargeur automatique
Utilisez ces options avec la cloudFiles source pour configurer le chargeur automatique pour l’ingestion de streaming à partir du stockage cloud. Les options spécifiques à la cloudFiles source sont préfixées cloudFiles pour les conserver dans un espace de noms distinct des autres options de source Structured Streaming .
Commun
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.allowOverwrites |
false |
Indique s’il faut autoriser les modifications des fichiers du répertoire d’entrée à remplacer les données existantes. Pour connaître les mises en garde de configuration, consultez Le chargeur automatique traite-t-il à nouveau le fichier lorsque le fichier est ajouté ou remplacé ?. |
cloudFiles.backfillInterval |
None | Le chargeur automatique peut déclencher des remplissages asynchrones à un intervalle donné. Par exemple 1 day , pour effectuer le remplissage quotidien ou 1 week le remplissage hebdomadaire. Pour plus d’informations, consultez Déclencher des remplissages réguliers à l’aide de cloudFiles.backfillInterval.N’utilisez pas quand cloudFiles.useManagedFileEvents est défini sur true. |
cloudFiles.cleanSource |
OFF |
Indique s’il faut supprimer automatiquement les fichiers traités du répertoire d’entrée. Lorsqu’il OFF est défini sur (valeur par défaut), aucun fichier n’est supprimé.Lorsqu’il est défini DELETEsur , le chargeur automatique supprime automatiquement les fichiers 30 jours après leur traitement. Pour ce faire, le chargeur automatique doit disposer d’autorisations d’écriture dans le répertoire source.Lorsqu’il est défini sur MOVE, le Chargeur automatique déplace automatiquement les fichiers vers l’emplacement spécifié dans cloudFiles.cleanSource.moveDestination 30 jours après leur traitement. Pour ce faire, le chargeur automatique doit disposer d’autorisations d’écriture dans le répertoire source et de l’emplacement de déplacement.Un fichier est considéré comme traité lorsqu’il a une valeur non Null dans commit_time le résultat de la cloud_files_state fonction table. Consultez cloud_files_stateTVF. L’attente supplémentaire de 30 jours après le traitement peut être configurée à l’aide cloudFiles.cleanSource.retentionDurationde .Passez en revue les considérations suivantes avant d’activer cloudFiles.cleanSource:
Disponible dans Databricks Runtime 16.4 et versions ultérieures. |
cloudFiles.cleanSource.retentionDuration |
30 days |
Durée d’attente avant que les fichiers traités ne deviennent candidats à l’archivage avec cleanSource. Doit être supérieur à 7 jours pour DELETE. Aucune restriction minimale pour MOVE.La valeur est une chaîne CalendarInterval . Par exemple, "14 days", "30 days", "2 weeks" ou "1 month".Disponible dans Databricks Runtime 16.4 et versions ultérieures. |
cloudFiles.cleanSource.moveDestination |
None | Chemin d’accès pour archiver des fichiers traités lorsque cloudFiles.cleanSource est défini sur MOVE. Il peut s’agir d’un chemin de stockage cloud ou d’un chemin de volume du catalogue Unity (par exemple). /Volumes/my_catalog/my_schema/my_volume/archive/L’emplacement de déplacement doit :
Le chargeur automatique doit disposer d’autorisations d’écriture dans ce répertoire. Disponible dans Databricks Runtime 16.4 et versions ultérieures. |
cloudFiles.format |
Aucun (option requise) | Le format du fichier de données dans le chemin source. Les valeurs valides sont les suivantes :
|
cloudFiles.includeExistingFiles |
true |
Indique si les fichiers existants doivent être inclus dans le chemin d’entrée du traitement du flux ou si seuls les nouveaux fichiers arrivant après la configuration initiale doivent être traités. Cette option est évaluée uniquement lorsque vous démarrez un flux pour la première fois. La modification de cette option après le redémarrage du flux n’a aucun effet. |
cloudFiles.inferColumnTypes |
false |
Indique s’il faut déduire les types de colonnes exacts lors de l’utilisation de l’inférence de schéma. Par défaut, les colonnes sont déduites sous forme de chaînes lors de l’inférence de jeux de données JSON et CSV. Pour plus d’informations, consultez Inférence de schéma. |
cloudFiles.maxBytesPerTrigger |
None | Nombre maximal de nouveaux octets à traiter dans chaque déclencheur. Vous pouvez spécifier une chaîne d’octets comme 10g pour limiter chaque microlot à 10 Go de données. Il s’agit d’une valeur maximale non stricte. Si vous avez des fichiers de 3 Go chacun, Azure Databricks traite 12 Go dans un microlot. En cas d’utilisation avec cloudFiles.maxFilesPerTrigger, Azure Databricks consomme jusqu’à la limite inférieure de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, selon celle qui est atteinte en premier. Cette option n’a pas d’effet quand elle est utilisée avec Trigger.Once() (Trigger.Once() est déprécié).Dans Databricks Runtime 18.0 et versions ultérieures, cette option est configurée dynamiquement et n’a pas besoin d’être définie manuellement. |
cloudFiles.maxFileAge |
None | Durée de suivi d’un événement de fichier à des fins de déduplication. Databricks ne recommande pas de régler ce paramètre, sauf si vous ingérez des données de l’ordre de millions de fichiers par heure. Pour plus d’informations, consultez la section sur le suivi des événements file . Un réglage cloudFiles.maxFileAge trop agressif peut entraîner des problèmes de qualité des données, notamment l'ingestion des données en double ou des fichiers manquants. Par conséquent, Databricks recommande un paramètre conservateur pour cloudFiles.maxFileAge, 90 jours, par exemple. Cette durée est similaire à ce que les solutions d'ingestion de données comparables recommandent. |
cloudFiles.maxFilesPerTrigger |
1000 |
Nombre maximal de nouveaux fichiers à traiter dans chaque déclencheur. En cas d’utilisation avec cloudFiles.maxBytesPerTrigger, Azure Databricks consomme jusqu’à la limite inférieure de cloudFiles.maxFilesPerTrigger ou cloudFiles.maxBytesPerTrigger, selon celle qui est atteinte en premier. Cette option n’a aucun effet lorsqu’elle est utilisée avec Trigger.Once() (déprécié).Dans Databricks Runtime 18.0 et versions ultérieures, cette option est configurée dynamiquement et n’a pas besoin d’être définie manuellement. |
cloudFiles.partitionColumns |
None | Liste séparée par des virgules de colonnes de partition de style Hive que vous souhaitez déduire de la structure de répertoires des fichiers. Les colonnes de partition de style Hive sont des paires clé-valeur combinées par un signe d’égalité tel que <base-path>/a=x/b=1/c=y/file.format. Dans cet exemple, les colonnes de partition sont a, b et c. Par défaut, ces colonnes sont automatiquement ajoutées à votre schéma si vous utilisez l’inférence de schéma et fournissez le <base-path> à partir duquel charger les données. Si vous fournissez un schéma, Auto Loader s’attend à ce que ces colonnes soient incluses dans le schéma. Si vous ne voulez pas que ces colonnes fassent partie de votre schéma, vous pouvez spécifier "" pour ignorer ces colonnes. En outre, vous pouvez utiliser cette option lorsque vous souhaitez que les colonnes soient déduites du chemin d’accès au fichier dans les structures de répertoire complexes, comme dans l’exemple ci-dessous :<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.csvSpécifier cloudFiles.partitionColumns comme year,month,day retourne year=2022 pour file1.csv, mais les colonnes month et day sont null.month et day sont analysés correctement pour file2.csv et file3.csv. |
cloudFiles.schemaEvolutionMode |
addNewColumnslorsqu’un schéma n’est pas fourni ; none |
Mode d’évolution du schéma à mesure que de nouvelles colonnes sont découvertes dans les données. Par défaut, les colonnes sont déduites sous forme de chaînes lors de l’inférence de jeux de données JSON. Pour plus d’informations, consultez Évolution de schéma. |
cloudFiles.schemaHints |
None | Informations relatives au schéma que vous fournissez à Auto Loader pendant l’inférence de schéma. Pour plus d’informations, consultez les conseils de schéma. |
cloudFiles.schemaLocation |
Aucun (requis pour déduire le schéma) | Emplacement dans lequel stocker le schéma inféré et les modifications ultérieures. Pour plus d’informations, consultez Inférence de schéma. |
cloudFiles.useStrictGlobber |
false |
Indique s’il faut utiliser un globber strict correspondant au comportement de globbing par défaut d’autres sources de fichiers dans Apache Spark. Pour plus d’informations, consultez Modèles de chargement de données courants. Disponible dans Databricks Runtime 12.2 LTS et versions ultérieures. |
cloudFiles.validateOptions |
true |
Indique s’il faut valider les options d’Auto Loader et renvoyer une erreur pour les options inconnues ou incohérentes. |
Liste d’annuaires
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.useIncrementalListing (déconseillé) |
auto sur Databricks Runtime 17.2 et versions ultérieures, false sur Databricks Runtime 17.3 et versions ultérieures |
Cette fonctionnalité est déconseillée. Databricks recommande d’utiliser le mode de notification de fichier avec des événements de fichier au lieu de cloudFiles.useIncrementalListing.Indique s’il faut utiliser la liste incrémentielle plutôt que la liste complète en mode Liste de répertoires. Par défaut, Auto Loader fait de son mieux pour détecter automatiquement si un répertoire donné s’applique à la liste incrémentielle. Vous pouvez utiliser explicitement la liste incrémentielle ou la liste de répertoires complète en la définissant respectivement sur true ou false.L’activation incorrecte de la liste incrémentielle sur un répertoire non lexical empêche le chargeur automatique de découvrir de nouveaux fichiers. Fonctionne avec Azure Data Lake Storage ( abfss://), S3 (s3://) et GCS (gs://).Disponible dans Databricks Runtime 9.1 LTS et ultérieur. Valeurs disponibles : auto, true, false |
Notification de fichier
Pour plus d’informations sur la configuration du mode de notification de fichier, notamment les autorisations cloud requises, les instructions d’installation et les méthodes d’authentification, consultez Configurer des flux de chargeur automatique en mode de notification de fichier.
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.fetchParallelism |
1 |
Nombre de threads à utiliser pour récupérer les messages du service de file d'attente. N’utilisez pas quand cloudFiles.useManagedFileEvents est défini sur true. |
cloudFiles.pathRewrites |
None | Obligatoire uniquement si vous spécifiez un queueUrl fichier qui reçoit des notifications de fichiers à partir de plusieurs compartiments S3 et que vous souhaitez utiliser des points de montage configurés pour accéder aux données dans ces conteneurs. Utilisez cette option pour réécrire le préfixe du chemin d’accès bucket/key avec le point de montage. Seuls les préfixes peuvent être réécrits. Par exemple, pour la configuration {"<databricks-mounted-bucket>/path": "dbfs:/mnt/data-warehouse"}, le chemin d’accès s3://<databricks-mounted-bucket>/path/2017/08/fileA.json est réécrit en dbfs:/mnt/data-warehouse/2017/08/fileA.json.N’utilisez pas quand cloudFiles.useManagedFileEvents est défini sur true. |
cloudFiles.resourceTag |
None | Série de paires de balises clé-valeur pour aider à associer et à identifier les ressources liées, par exemple :cloudFiles.option("cloudFiles.resourceTag.myFirstKey", "myFirstValue") .option("cloudFiles.resourceTag.mySecondKey", "mySecondValue")Pour plus d’informations sur AWS, consultez Balises de répartition des coûts Amazon SQS et Configuration des balises pour une rubrique Amazon SNS. (1) Pour plus d’informations sur Azure, consultez Affectation de noms pour les files d’attente et les métadonnées et la couverture de properties.labels dans Abonnements aux événements. Auto Loader stocke ces paires de balises clé-valeur au format JSON en tant qu’étiquettes.
(1)Pour plus d’informations sur GCP, consultez Signaler l’utilisation avec des libellés. (1) N’utilisez pas quand cloudFiles.useManagedFileEvents est défini sur true. Définissez plutôt des balises de ressource à l’aide de la console du fournisseur de cloud. |
cloudFiles.useManagedFileEvents |
false |
Lorsque la valeur est définie true, le chargeur automatique utilise le service d’événements de fichiers pour découvrir les fichiers dans votre emplacement externe. Vous ne pouvez utiliser cette option que si le chemin de chargement se trouve dans un emplacement externe avec les événements de fichier activés. Consultez Utiliser le mode de notification de fichier avec les événements de fichier.Les événements de fichier fournissent des performances au niveau des notifications dans la découverte de fichiers, car le chargeur automatique peut découvrir de nouveaux fichiers après la dernière exécution. Contrairement à la liste des répertoires, ce processus n’a pas besoin de répertorier tous les fichiers du répertoire. Dans certains cas, le chargeur automatique utilise la liste de répertoires même si l’option événements de fichier est activée :
Voir Quand le chargeur automatique avec des événements de fichier utilise-t-il la liste des répertoires ? pour obtenir une liste complète des situations où le chargeur automatique utilise la liste de répertoires avec cette option. Disponible dans Databricks Runtime 14.3 LTS et versions ultérieures. |
cloudFiles.listOnStart |
false |
Lorsqu’il est défini truesur , le chargeur automatique effectue une liste complète de répertoires au démarrage du flux, au lieu de commencer par le jeton de continuation dans le point de contrôle. Utilisez cette option pour récupérer des erreurs, telles que CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN. Voir Comment récupérer à partir d’une CF_MANAGED_FILE_EVENTS_INVALID_CONTINUATION_TOKEN erreur ?. |
cloudFiles.useNotifications |
false |
Indique s’il faut utiliser le mode Notification de fichiers pour déterminer l’existence de nouveaux fichiers. Si false, utilisez le mode Liste de répertoires. Consultez Comparer les modes de détection de fichiers Auto Loader.N’utilisez pas quand cloudFiles.useManagedFileEvents est défini sur true. |
(1) Auto Loader ajoute les paires de balises clé-valeur suivantes par défaut dans la mesure du possible :
-
vendor:Databricks -
path: emplacement à partir duquel les données sont chargées. Non disponible dans GCP en raison de limitations des libellés. -
checkpointLocation: emplacement du point de contrôle du flux. Non disponible dans GCP en raison de limitations des libellés. -
streamId: Identificateur unique au niveau mondial pour le flux.
Databricks réserve ces noms de clés et vous ne pouvez pas remplacer leurs valeurs.
Spécifique au cloud
Le chargeur automatique fournit des options pour configurer l’infrastructure cloud pour le mode de notification de fichier. Pour obtenir les autorisations cloud requises et les instructions de configuration, consultez Configurer des flux de chargeur automatique en mode de notification de fichier.
AWS
Fournissez les options suivantes uniquement si vous choisissez cloudFiles.useNotifications = true et que vous souhaitez que le chargeur automatique configure les services de notification pour vous :
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.region |
Région de l’instance EC2 | Région où réside le compartiment S3 source et où vous souhaitez créer les services AWS SNS et SQS. |
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.restrictNotificationSetupToSameAWSAccountId |
false |
Autorisez uniquement les notifications d’événements à partir de compartiments AWS S3 dans le même compte que la rubrique SNS. Lorsque la valeur est true, le chargeur automatique accepte uniquement les notifications d’événements à partir de compartiments AWS S3 dans le même compte que la rubrique SNS. Quand false, la stratégie d’accès ne limite pas les configurations de rubriques inter-comptes et SNS. Cela est utile lorsque le sujet SNS et le chemin du bucket sont associés à différents comptes.Disponible dans Databricks Runtime 17.2 et versions ultérieures. |
Fournissez l’option suivante uniquement si vous choisissez cloudFiles.useNotifications = true et voulez qu’Auto Loader utilise une file d’attente que vous avez déjà configurée :
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.queueUrl |
None | URL de la file d’attente SQS. Si elle est fournie, Auto Loader consomme directement les événements de cette file d’attente au lieu de configurer ses propres services AWS SNS et SQS. |
Options d’authentification AWS
Fournissez l’option d’authentification suivante pour utiliser les informations d’identification d’un service Databricks :
| Clé | Par défaut | Description |
|---|---|---|
databricks.serviceCredential |
None | Nom de votre identifiant de service Databricks. Disponible dans Databricks Runtime 16.1 et versions ultérieures. |
Lorsque les informations d’identification du service Databricks ou les rôles IAM ne sont pas disponibles, vous pouvez fournir les options d’authentification suivantes à la place :
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.awsAccessKey |
None | ID de la clé d’accès AWS pour l’utilisateur. Doit être fourni avec cloudFiles.awsSecretKey. |
cloudFiles.awsSecretKey |
None | Clé d'accès secrète AWS pour l'utilisateur. Doit être fourni avec cloudFiles.awsAccessKey. |
cloudFiles.roleArn |
None | ARN d’un rôle IAM à adopter, si nécessaire. Le rôle peut être pris en compte à partir du profil d’instance de votre cluster ou en fournissant des informations d’identification avec cloudFiles.awsAccessKey et cloudFiles.awsSecretKey. |
cloudFiles.roleExternalId |
None | Identificateur à fournir lors de l’adoption d’un rôle en utilisant cloudFiles.roleArn. |
cloudFiles.roleSessionName |
None | Nom de session facultatif à utiliser lors de l’utilisation d’un rôle cloudFiles.roleArn. |
cloudFiles.stsEndpoint |
None | Point de terminaison facultatif à fournir pour accéder à AWS STS lors de l’adoption d’un rôle en utilisant cloudFiles.roleArn. |
Azure
Vous devez fournir des valeurs pour toutes les options suivantes si vous spécifiez cloudFiles.useNotifications = true et souhaitez qu’Auto Loader configure les services de notification pour vous :
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.resourceGroup |
None | Groupe de ressources Azure dans lequel le compte de stockage est créé. |
cloudFiles.subscriptionId |
None | ID d’abonnement Azure dans lequel le groupe de ressources est créé. |
databricks.serviceCredential |
None | Nom de votre identifiant de service Databricks. Disponible dans Databricks Runtime 16.1 et versions ultérieures. |
Si les informations d’identification d’un service Databricks ne sont pas disponibles, vous pouvez fournir les options d’authentification suivantes à la place :
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.clientId |
None | ID client ou ID d’application du principal de service. |
cloudFiles.clientSecret |
None | Secret client du principal de service. |
cloudFiles.connectionString |
None | Chaîne de connexion pour le compte de stockage, basée sur la clé d’accès du compte ou la signature d’accès partagé (SAS). |
cloudFiles.tenantId |
None | ID de locataire Azure dans lequel le principal de service est créé. |
Indiquez l’option suivante uniquement si vous définissez cloudFiles.useNotifications = true et que vous souhaitez que le chargeur automatique utilise une file d’attente existante :
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.queueName |
None | Nom de la file d’attente Azure. S’il est fourni, la source de fichiers cloud consomme directement les événements de cette file d’attente au lieu de configurer ses propres services Azure Event Grid et Stockage File d’attente. Dans ce cas, votre databricks.serviceCredential ou cloudFiles.connectionString nécessite uniquement des autorisations de lecture sur la file d’attente. |
GCP
L'Auto Loader peut configurer automatiquement les services de notification pour vous en utilisant les identifiants de service Databricks . Le compte de service créé avec les informations d’identification du service Databricks nécessite les autorisations spécifiées dans Configurer les flux du chargeur automatique en mode de notification de fichier.
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.projectId |
None | ID du projet dans lequel se trouve le compartiment GCS. L’abonnement Google Cloud Pub/Sub est également créé dans ce projet. |
databricks.serviceCredential |
None | Nom de votre identifiant de service Databricks. Disponible dans Databricks Runtime 16.1 et versions ultérieures. |
Si les informations d’identification d’un service Databricks ne sont pas disponibles, vous pouvez utiliser directement des comptes de service Google. Vous pouvez configurer votre cluster pour qu’il assume un compte de service en suivant configuration du service Google ou en fournissant directement les options d’authentification suivantes :
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.client |
None | ID client du compte de service Google. |
cloudFiles.clientEmail |
None | Adresse e-mail du compte de service Google. |
cloudFiles.privateKey |
None | Clé privée générée pour le compte de service Google. |
cloudFiles.privateKeyId |
None | ID de la clé privée générée pour le compte de service Google. |
Fournissez l’option suivante uniquement si vous choisissez cloudFiles.useNotifications = true et voulez qu’Auto Loader utilise une file d’attente que vous avez déjà configurée :
| Clé | Par défaut | Description |
|---|---|---|
cloudFiles.subscription |
None | Nom de l’abonnement à Google Cloud Pub/Sub. Si elle est fournie, la source de fichiers cloud consomme les événements de cette file d’attente au lieu de configurer ses propres services de notification GCS et Google Cloud Pub/Sub. |
Delta Lake
Les options suivantes s’appliquent lors de la lecture à partir d’une table Delta Lake à l’aide spark.readStreamde .
| Clé | Par défaut | Description |
|---|---|---|
allowSourceColumnDrop |
None | Définissez sur un numéro de version de table Delta ou "always" pour autoriser le flux à continuer une fois que les colonnes sont supprimées du schéma de la table source. Lorsqu’il est défini sur un numéro de version, reconnaît toutes les modifications de schéma jusqu’à cette version. Exige schemaTrackingLocation. Voir Renommer et supprimer des colonnes avec le mappage de colonnes Delta Lake. |
allowSourceColumnRename |
None | Définissez sur un numéro de version de table Delta ou "always" pour autoriser le flux à continuer une fois que les colonnes sont renommées dans la table source. Lorsqu’il est défini sur un numéro de version, reconnaît toutes les modifications de schéma jusqu’à cette version. Exige schemaTrackingLocation. Voir Renommer et supprimer des colonnes avec le mappage de colonnes Delta Lake. |
allowSourceColumnTypeChange |
None | Définissez sur un numéro de version de table Delta ou "always" pour autoriser le flux à continuer une fois que les types de colonnes sont modifiés dans la table source. Lorsqu’il est défini sur un numéro de version, reconnaît toutes les modifications de schéma jusqu’à cette version. Exige schemaTrackingLocation. Voir Élargissement du type. |
excludeRegex |
None | Modèle d’expression régulière. Les fichiers dont les chemins correspondent au modèle sont exclus de la lecture en continu. Utile pour filtrer les fichiers qui ne sont pas conformes à la convention d’affectation de noms attendue. |
failOnDataLoss |
true |
Indique s’il faut échouer à la requête de diffusion en continu si les données sources ont été supprimées en raison de la rétention du journal (logRetentionDuration). Définissez cette option pour false ignorer les données manquantes et poursuivre le traitement. Voir Configurer la conservation des données pour des requêtes de voyage dans le temps. |
ignoreChanges (déconseillé) |
false |
Disponible dans Databricks Runtime 11.3 LTS et versions antérieures. Émet à nouveau des fichiers de données réécrits après des opérations de modification telles que UPDATE, , MERGE INTO, DELETEou OVERWRITE. Les lignes inchangées peuvent être émises avec de nouvelles lignes, de sorte que les consommateurs en aval doivent gérer les doublons. Les suppressions ne sont pas propagées en aval. Remplacé par skipChangeCommits Databricks Runtime 12.2 LTS et versions ultérieures. |
ignoreDeletes (déconseillé) |
false |
Ignore les transactions qui suppriment des données aux limites de partition (la partition complète supprime uniquement). Ne gère pas les suppressions non partitionnelles, les mises à jour ou d’autres modifications. Utilisez skipChangeCommits à la place. |
readChangeFeed ou readChangeData |
false |
Indique s’il faut activer la lecture du flux de données modifiées pour la requête de diffusion en continu. Lorsqu’il est activé, le flux émet des modifications au niveau des lignes (insertions, mises à jour et suppressions) avec des colonnes de métadonnées supplémentaires. Voir Utiliser le flux de changement de données Delta Lake sur Azure Databricks. |
schemaTrackingLocation |
None | Chemin d’accès à un répertoire dans lequel Delta Lake effectue le suivi des modifications de schéma pour la lecture en continu. Obligatoire lors de la diffusion en continu à partir de tables avec le mappage de colonnes activé et en utilisant allowSourceColumn* des options pour gérer l’évolution du schéma. Doit se trouver dans la checkpointLocation requête de diffusion en continu. Voir Renommer et supprimer des colonnes avec le mappage de colonnes Delta Lake. |
skipChangeCommits |
false |
Ignore les transactions qui suppriment ou modifient les enregistrements existants et traitent uniquement les ajouts. Databricks recommande cette option pour la plupart des charges de travail qui n’utilisent pas de flux de données modifiées. Disponible dans Databricks Runtime 12.2 LTS et versions ultérieures. Consultez Ignorer les validations de modification en amont avec skipChangeCommits. |
startingTimestamp |
Dernière version disponible | Horodatage à partir duquel commencer la lecture. Le flux lit toutes les modifications de table validées au ou après l’horodatage spécifié. Si l’horodatage précède toutes les validations de table disponibles, le flux commence à partir de la validation la plus ancienne disponible. Impossible d’utiliser avec startingVersion. Ignoré si le point de contrôle de streaming existe déjà.Valeurs valides : chaîne d’horodatage telle qu’une "2019-01-01T00:00:00.000Z" chaîne de date telle que "2019-01-01". |
startingVersion |
Dernière version disponible | Version de la table Delta à partir de laquelle commencer la lecture. Le flux lit toutes les modifications validées à ou après la version spécifiée. Spécifiez "latest" de commencer uniquement à partir des modifications les plus récentes. Impossible d’utiliser avec startingTimestamp. Ignoré si le point de contrôle de streaming existe déjà. Voir Utiliser l’historique des tables. |
withEventTimeOrder |
false |
Divise l’instantané de la table initiale en compartiments de temps d’événement pour empêcher les enregistrements d’être marqués de manière incorrecte comme des événements tardifs et supprimés dans des requêtes avec des filigranes avec état. Impossible de modifier une fois que le traitement initial des instantanés a commencé sans supprimer le point de contrôle. Disponible dans Databricks Runtime 11.3 LTS et versions ultérieures. Consultez l’instantané initial du processus sans supprimer de données. |
Kafka
Utilisez ces options avec l’une ou l’autre spark.readStream.format("kafka") des options spark.read.format("kafka")suivantes :
| Clé | Par défaut | Description |
|---|---|---|
assign |
None | Partitions spécifiques à consommer. Vous devez spécifier exactement l’une des options ou subscribePatternassign l’une subscribedes options. Valeurs valides : chaîne JSON, telle que {"topicA":[0,1],"topicB":[2,4]}. |
failOnDataLoss |
true |
Indique si la requête échoue si des données peuvent avoir été perdues, par exemple en raison de rubriques supprimées ou de troncation de décalage. Définissez cette option pour false ignorer les données manquantes et continuer. Valeurs valides : true, false.Databricks estime de façon prudente si les données ont pu être perdues. Toutefois, cela peut entraîner de fausses alarmes. |
fetchoffset.numretries |
3 |
Nombre de nouvelles tentatives lors de l’extraction des décalages Kafka échoue. Valeurs valides : entiers non négatifs. |
fetchoffset.retryintervalms |
1000 |
Intervalle en millisecondes entre les nouvelles tentatives de récupération de décalage. Valeurs valides : entiers non négatifs. |
groupIdPrefix |
spark-kafka-source (streaming), spark-kafka-relation (lot) |
Préfixe personnalisé à utiliser pour l’ID de groupe de consommateurs Kafka généré automatiquement. Si kafka.group.id elle est définie explicitement, le connecteur ignore cette option. Valeurs valides : n’importe quelle chaîne. |
includeHeaders |
false |
Indique s’il faut inclure des en-têtes de message Kafka en tant que colonne dans la sortie. Valeurs valides : true, false. |
kafkaconsumer.polltimeoutms |
None | Délai d’expiration en millisecondes pour l’appel consommateur poll() Kafka. Valeurs valides : entiers positifs. |
kafka.bootstrap.servers |
None | Liste séparée par des virgules des adresses host :port pour les répartiteurs Kafka. Définit la propriété du bootstrap.servers client Kafka.Si vous constatez qu’il n’existe aucune donnée de Kafka, vérifiez que cette liste d’adresses broker contient des adresses incorrectes. Si la liste d’adresses du répartiteur est incorrecte, il se peut qu’il n’y ait aucune erreur. Les clients Kafka supposent que les répartiteurs seront disponibles et réessayent à jamais lorsqu’ils reçoivent des erreurs réseau. |
maxRecordsPerPartition |
None | Nombre maximal d’enregistrements pour chaque partition Spark. Quand il est défini, le connecteur fractionne les partitions Kafka afin que chaque partition Spark lise au maximum ces nombreux enregistrements. Valeurs valides : entiers positifs. Vous pouvez également utiliser cette option avec minPartitions. Lorsque les deux options sont définies, Spark utilise l’option qui entraîne davantage de partitions. |
minPartitions |
None | Nombre minimal de partitions Spark à lire à partir de Kafka. Quand il est défini, le connecteur fractionne les partitions Kafka volumineuses pour augmenter le parallélisme. Lorsqu’il n’est pas défini, Spark crée une partition pour chaque partition de rubriques Kafka. Utile pour la gestion de l’asymétrie des données ou des pics de charge. Valeurs valides : entiers positifs. Cette option réinitialise les consommateurs Kafka pour chaque déclencheur, ce qui peut affecter les performances avec SSL. |
startingOffsets |
latest (streaming), earliest (lot) |
Décalage à partir duquel la requête commence la lecture. Valeurs valides : earliest, latestou chaîne JSON de décalages pour chaque partition telle que {"topicA":{"0":23,"1":-2}}. Dans la chaîne JSON, -1 est le dernier décalage.
-2 est le décalage le plus ancien.Pour les requêtes de diffusion en continu, cette option s’applique uniquement lorsqu’une nouvelle requête démarre. Les requêtes reprise utilisent toujours le point de contrôle. Pendant une requête, de nouvelles partitions commencent à lire au plus tôt le décalage. Pour les requêtes par lots, latest n’est pas autorisé. |
startingOffsetsByTimestamp |
None | Liste des décalages de démarrage pour chaque partition, spécifiée sous forme d’horodatages en millisecondes. Lorsqu’aucun décalage n’existe pour un horodatage, le comportement de la requête est déterminé par startingOffsetsByTimestampStrategy. Valeurs valides : chaîne JSON d’horodatages pour chaque partition, par {"topicA":{"0":1000,"1":2000}}exemple .Pour les requêtes de diffusion en continu, cette option s’applique uniquement lorsqu’une nouvelle requête démarre. Les requêtes reprise utilisent toujours le point de contrôle. Pendant une requête, de nouvelles partitions commencent à lire au plus tôt le décalage. |
startingOffsetsByTimestampStrategy |
error |
Stratégie à utiliser lorsqu’aucun décalage n’est trouvé pour un horodatage spécifié dans startingOffsetsByTimestamp ou startingTimestamp. Valeurs valides : error (déclenche une exception), latest (utilise le décalage disponible le plus récent). |
startingTimestamp |
None | Horodatage de départ global en millisecondes qui s’applique à toutes les partitions. Lorsqu’aucun décalage n’existe pour l’horodatage, le comportement est contrôlé par startingOffsetsByTimestampStrategy. Valeurs valides : entiers non négatifs. |
subscribe |
None | Rubriques auxquelles s’abonner. Vous devez spécifier exactement l’une des options ou subscribePatternassign l’une subscribedes options. Valeurs valides : liste séparée par des virgules des noms de rubriques. |
subscribePattern |
None | Modèle utilisé pour s’abonner aux rubriques. Vous devez spécifier exactement l’une des options ou subscribePatternassign l’une subscribedes options. Par exemple : topic.*. Valeurs valides : n’importe quelle chaîne d’expression régulière Java. |
Les options suivantes s’appliquent uniquement aux lectures de diffusion en continu avec spark.readStream.format("kafka"):
| Clé | Par défaut | Description |
|---|---|---|
bytesEstimateWindowLength |
300s |
Fenêtre de temps utilisée pour estimer les octets restants pour la estimatedTotalBytesBehindLatest métrique. Valeurs valides : chaînes de durée telles que 10m ou 600s. Consultez Récupérer les métriques Kafka. |
maxOffsetsPerTrigger |
None | Nombre maximal de décalages à traiter par intervalle de déclencheur. Les décalages sont distribués proportionnellement entre les partitions de rubrique. Valeurs valides : entiers positifs. |
maxTriggerDelay |
15m |
Délai maximal d’attente minOffsetsPerTrigger avant le déclenchement. Valeurs valides : chaînes de durée telles que 10m ou 600s. |
minOffsetsPerTrigger |
None | Nombre minimal de décalages à accumuler avant de déclencher un micro-lot. Quand maxTriggerDelay elle est atteinte, le micro-lot s’exécute indépendamment. Valeurs valides : entiers positifs. |
Pour les options de décalage qui s’appliquent uniquement aux lectures par lots avec spark.read.format("kafka"), consultez les options Kafka DataFrameReader.
Pour connaître les options de client (kafka.*) et d’authentification Kafka, consultez Options.
Options DataFrameWriter
Utilisez ces options avec DataFrameWriter.option() et DataFrameWriterV2.option() pour contrôler la façon dont Azure Databricks écrit des données.
Example
L’exemple suivant définit mergeSchema la valeur pour True écrire une table Delta Lake :
Python
df.write.format("delta").option("mergeSchema", True).saveAsTable("my_table")
Scala
df.write.format("delta").option("mergeSchema", "true").saveAsTable("my_table")
Avro
| Clé | Par défaut | Description |
|---|---|---|
avroSchema |
None | Schéma Avro complet sous forme de chaîne JSON. Utilisez cette option pour convertir des types SPARK SQL en types Avro spécifiques. S’applique au fichier Avro. |
avroSchemaUrl |
None | URL pointant vers un fichier de schéma Avro. Utilisez plutôt avroSchema que lorsque le schéma est stocké en externe. Mutuellement exclusif avec avroSchema. S’applique au fichier Avro. |
compression |
snappy |
Codec de compression à utiliser lors de l’écriture. Valeurs valides : uncompressed, , deflate, snappybzip2xz, zstandard. S’applique au fichier Avro. |
recordName |
topLevelRecord |
Nom d’enregistrement de niveau supérieur dans le schéma Avro de sortie. S’applique au fichier Avro. |
positionalFieldMatching |
false |
Indique s’il faut faire correspondre les colonnes entre le schéma Spark et le schéma Avro par position de champ au lieu d’un nom. S’applique au fichier Avro. |
recordNamespace |
Chaîne vide | Espace de noms pour l’enregistrement de niveau supérieur dans le schéma Avro de sortie. S’applique au fichier Avro. |
Delta Lake et Apache Iceberg
| Clé | Par défaut | Description |
|---|---|---|
clusterByAuto |
false |
Indique s’il faut activer le clustering liquide automatique, où Azure Databricks sélectionne des colonnes de clustering en fonction des modèles de requête. Valide uniquement avec mode("overwrite"). Impossible d’utiliser le append mode. Disponible dans Databricks Runtime 16.4 et versions ultérieures. S’applique à Utiliser le clustering liquide pour les tables. |
mergeSchema |
None | Indique s’il faut activer l’évolution du schéma pour l’opération d’écriture. Les nouvelles colonnes du DataFrame source sont ajoutées au schéma de table cible. S’applique aux ajouts de traitement par lots et de diffusion en continu. S’applique au schéma de la table Update. |
overwriteSchema |
None | Indique s’il faut remplacer le schéma de table et le partitionnement lors du remplacement. Nécessite mode("overwrite") sans replaceWhere. Impossible d’utiliser avec partitionOverwriteMode. S’applique au schéma de la table Update. |
partitionOverwriteMode |
None | Mode de remplacement de partition. Définissez cette option pour dynamic remplacer uniquement les partitions contenant de nouvelles données, ce qui laisse toutes les autres partitions inchangées. Mode hérité, non pris en charge sur le calcul serverless ou Databricks SQL. Valeurs valides : static, dynamic. S’applique à remplacer de manière sélective les données avec Delta Lake. |
replaceOn |
None | Expression booléenne qui correspond aux lignes de la table cible à remplacer par des lignes de la requête source. Peut référencer des colonnes à partir de la table cible et de la requête source. Les lignes de la cible qui correspondent à une ligne source sont supprimées et remplacées. Si la source est vide, aucune suppression ne se produit. Permet targetAlias de lever l’ambiguïté des références de colonne. Disponible dans Databricks Runtime 17.1 et versions ultérieures. S’applique à remplacer de manière sélective les données avec Delta Lake. |
replaceUsing |
None | Liste séparée par des virgules des noms de colonnes utilisée pour faire correspondre les lignes entre la table cible et la requête source. La cible et la source doivent contenir toutes les colonnes répertoriées. Les lignes de la cible qui correspondent à une ligne source sous comparaison d’égalité sont supprimées et remplacées.
NULL les valeurs sont traitées comme non égales et ne correspondent pas. Disponible dans Databricks Runtime 16.3 et versions ultérieures. S’applique à remplacer de manière sélective les données avec Delta Lake. |
replaceWhere |
None | Expression de prédicat. Remplace atomiquement uniquement les enregistrements qui correspondent au prédicat. S’applique à remplacer de manière sélective les données avec Delta Lake. |
targetAlias |
None | Alias de chaîne pour la table cible.
replaceOn Utilisez ou replaceWhere désambiguez les références de colonne lorsque la condition référence les colonnes de la table cible et de la requête source. S’applique à remplacer de manière sélective les données avec Delta Lake. |
txnAppId |
None | Chaîne unique identifiant l’application pour les écritures idempotentes dans les foreachBatch opérations. Utilisez-les avec txnVersion pour garantir des écritures exactement une fois dans plusieurs tables Delta Lake. S’applique à Utiliser foreachBatch pour les écritures de tables idempotentes. |
txnVersion |
None | Nombre monotoniquement croissant utilisé comme version de transaction pour les écritures idempotentes dans foreachBatch les opérations. Utilisez-les avec txnAppId pour garantir des écritures exactement une fois dans plusieurs tables Delta Lake. S’applique à Utiliser foreachBatch pour les écritures de tables idempotentes. |
optimizeWrite |
None | Indique s’il faut activer l’optimisation automatique de l’écriture pour cette opération d’écriture. Remplace la spark.databricks.delta.optimizeWrite.enabled configuration. S’applique à Qu’est-ce que Delta Lake dans Azure Databricks ?. |
userMetadata |
None | Chaîne définie par l’utilisateur ajoutée aux métadonnées de validation pour l’opération d’écriture. Visible dans la sortie de DESCRIBE HISTORY. S’applique à Enrichir des tables avec des métadonnées personnalisées. |
CSV
| Clé | Par défaut | Description |
|---|---|---|
charToEscapeQuoteEscaping |
\0 (non activé) |
Caractère utilisé pour échapper au caractère d’échappement lorsqu’il diffère du caractère de guillemet. S’applique à csv (DataFrameWriter). |
compression |
none |
Codec de compression à utiliser lors de l’écriture. Valeurs valides : none, , bzip2, gziplz4snappydeflate, , . zstd S’applique à csv (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Chaîne de format pour les valeurs de colonne de date. S’applique à csv (DataFrameWriter). |
emptyValue |
Chaîne vide | Chaîne écrite pour les valeurs vides (non null). S’applique à csv (DataFrameWriter). |
encoding |
UTF-8 |
Encodage de caractères pour les fichiers de sortie. S’applique à csv (DataFrameWriter). |
escape |
\ |
Caractère utilisé pour échapper les valeurs entre guillemets. S’applique à csv (DataFrameWriter). |
escapeQuotes |
true |
Indique s’il faut placer les guillemets entre guillemets dans les valeurs de champ entre guillemets. S’applique à csv (DataFrameWriter). |
header |
false |
Indique s’il faut écrire des noms de colonnes comme première ligne de la sortie. S’applique à csv (DataFrameWriter). |
ignoreLeadingWhiteSpace |
false |
Indique s’il faut découper les espaces blancs de début des valeurs lors de l’écriture. S’applique à csv (DataFrameWriter). |
ignoreTrailingWhiteSpace |
false |
Indique s’il faut découper l’espace de fin des valeurs lors de l’écriture. S’applique à csv (DataFrameWriter). |
lineSep |
\n |
Chaîne de séparation de ligne utilisée entre les enregistrements. S’applique à csv (DataFrameWriter). |
locale |
en-US |
Identificateur java.util.Locale. Influence la mise en forme des valeurs de date et d’horodatage lors de l’écriture. |
nullValue |
Chaîne vide | Chaîne écrite pour les valeurs Null. S’applique à csv (DataFrameWriter). |
quote |
" |
Caractère utilisé pour citer les valeurs de champ qui contiennent le séparateur. S’applique à csv (DataFrameWriter). |
quoteAll |
false |
Indique s’il faut placer toutes les valeurs de champ entre guillemets, quel que soit le contenu. S’applique à csv (DataFrameWriter). |
sep |
, |
Caractère délimiteur de champ. S’applique à csv (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Chaîne de format pour les valeurs de colonne timestamp. S’applique à csv (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Mettre en forme la chaîne pour l’horodatage sans valeurs de colonne de fuseau horaire (TimestampNTZType). |
Excel
| Clé | Par défaut | Description |
|---|---|---|
dataAddress |
None | Nom de la feuille ou cellule de départ de l’écriture. En cas d’omission, écrit dans une feuille nommée Sheet1 à partir de la cellule A1. Accepte un nom de feuille ("SheetName") ou une référence de cellule unique ("SheetName!A1"). Les plages de cellules ne sont pas prises en charge pour les écritures. |
dateFormatInWrite |
yyyy-mm-dd |
Excel chaîne de format de cellule appliquée aux colonnes Date. Utilise Excel syntaxe de format. |
headerRows |
0 |
Indique s’il faut écrire des noms de colonnes en tant que première ligne. Valeurs valides : 0, 1. |
timestampNTZFormat |
yyyy-mm-dd hh:mm:ss |
Excel chaîne de format de cellule appliquée aux colonnes TimestampNTZ et Timestamp. Utilise Excel syntaxe de format. |
version |
xlsx |
Version du format de fichier Excel à écrire. Valeurs valides : xlsx, xls. |
JSON
| Clé | Par défaut | Description |
|---|---|---|
compression |
none |
Codec de compression à utiliser lors de l’écriture. Valeurs valides : none, , bzip2, gziplz4snappydeflate, , . zstd S’applique à json (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Chaîne de format pour les valeurs de colonne de date. S’applique à json (DataFrameWriter). |
encoding |
UTF-8 |
Encodage de caractères pour les fichiers de sortie. S’applique à json (DataFrameWriter). |
ignoreNullFields |
valeur de spark.sql.jsonGenerator.ignoreNullFields |
Indique s’il faut omettre des champs avec des valeurs Null à partir de la sortie JSON. S’applique à json (DataFrameWriter). |
lineSep |
\n |
Chaîne de séparation de ligne utilisée entre les enregistrements. S’applique à json (DataFrameWriter). |
locale |
en-US |
Identificateur java.util.Locale. Influence la mise en forme des valeurs de date et d’horodatage lors de l’écriture. |
pretty |
false |
Indique s’il faut activer une sortie JSON assez (mise en retrait, multiligne). |
sortKeys |
false |
Indique s’il faut trier les clés d’objets JSON par ordre alphabétique dans la sortie. Utile pour produire une sortie déterministe. |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Chaîne de format pour les valeurs de colonne timestamp. S’applique à json (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Mettre en forme la chaîne pour l’horodatage sans valeurs de colonne de fuseau horaire (TimestampNTZType). |
writeNonAsciiCharacterAsCodePoint |
false |
Indique s’il faut encoder des caractères non ASCII en tant que \uXXXX séquences d’échappement Unicode au lieu de caractères UTF-8 littérals dans la sortie. |
ORC
| Clé | Par défaut | Description |
|---|---|---|
compression |
zstd |
Codec de compression à utiliser lors de l’écriture. Valeurs valides : none, , uncompressedsnappy, zliblzozstdlz4brotli. S’applique à orc (DataFrameWriter). |
Parquet
| Clé | Par défaut | Description |
|---|---|---|
compression |
snappy |
Codec de compression à utiliser lors de l’écriture. Valeurs valides : none, , , lzouncompressedlz4snappyzstdgzipbrotlilz4_raw. S’applique au parquet (DataFrameWriter). |
spark.sql.parquet.outputTimestampType |
INT96 |
Type physique utilisé pour encoder des colonnes d’horodatage. Valeurs valides : INT96, TIMESTAMP_MICROS, TIMESTAMP_MILLIS. Utiliser INT96 pour la compatibilité avec les lecteurs Parquet hérités qui ne prennent pas en charge les types d’horodatage standard. |
Texte
| Clé | Par défaut | Description |
|---|---|---|
compression |
none |
Codec de compression à utiliser lors de l’écriture. Valeurs valides : none, , bzip2, gziplz4snappydeflate, , . zstd S’applique au texte (DataFrameWriter). |
encoding |
UTF-8 |
Encodage de caractères pour les fichiers de sortie. |
lineSep |
\n |
Chaîne de séparation de ligne utilisée entre les enregistrements. S’applique au texte (DataFrameWriter). |
XML
| Clé | Par défaut | Description |
|---|---|---|
arrayElementName |
item |
Nom de l’élément pour les éléments de tableau qui n’ont pas de nom explicite. S’applique au xml (DataFrameWriter). |
attributePrefix |
_ |
Préfixe ajouté aux noms de champs correspondant aux attributs XML. S’applique au xml (DataFrameWriter). |
compression |
none |
Codec de compression à utiliser lors de l’écriture. Valeurs valides : none, , bzip2, gziplz4snappydeflate, , . zstd S’applique au xml (DataFrameWriter). |
dateFormat |
yyyy-MM-dd |
Chaîne de format pour les valeurs de colonne de date. S’applique au xml (DataFrameWriter). |
declaration |
version="1.0" encoding="UTF-8" standalone="yes" |
Chaîne de déclaration XML écrite en haut de chaque fichier de sortie. Définissez sur une chaîne vide pour supprimer la déclaration. S’applique au xml (DataFrameWriter). |
encoding |
UTF-8 |
Encodage de caractères pour les fichiers de sortie. S’applique au xml (DataFrameWriter). |
indent |
4 espaces | Chaîne utilisée pour mettre en retrait les éléments enfants dans la sortie. Définissez sur une chaîne vide pour désactiver la mise en retrait et écrire chaque ligne sur une seule ligne. |
locale |
en-US |
Identificateur java.util.Locale. Influence la mise en forme des valeurs de date et d’horodatage lors de l’écriture. |
nullValue |
null |
Chaîne écrite pour les valeurs Null. Lorsque la valeur est définie null, les attributs et les éléments enfants pour les champs Null sont omis. S’applique au xml (DataFrameWriter). |
rootTag |
ROWS |
Balise d’élément racine qui encapsule tous les éléments de ligne dans la sortie. S’applique au xml (DataFrameWriter). |
rowTag |
ROW |
Balise d’élément qui représente une ligne dans la sortie. S’applique au xml (DataFrameWriter). |
singleVariantColumn |
None | Nom de la colonne Variant unique à écrire dans des fichiers XML. S’applique au xml (DataFrameWriter). |
timestampFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] |
Chaîne de format pour les valeurs de colonne timestamp. S’applique au xml (DataFrameWriter). |
timestampNTZFormat |
yyyy-MM-dd'T'HH:mm:ss[.SSS] |
Mettre en forme la chaîne pour l’horodatage sans valeurs de colonne de fuseau horaire. S’applique au xml (DataFrameWriter). |
validateName |
true |
Indique s’il faut lever une exception si un nom de colonne n’est pas un identificateur d’élément XML valide. S’applique au xml (DataFrameWriter). |
valueTag |
_VALUE |
Nom de champ utilisé pour les données de caractères dans les éléments XML qui ont également des attributs ou des éléments enfants. S’applique au xml (DataFrameWriter). |
Options DataStreamWriter
Utilisez ces options DataStreamWriter.option() pour configurer les écritures de diffusion en continu.
Example
L’exemple suivant définit l’emplacement de point de contrôle d’un flux :
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")
Commun
| Clé | Par défaut | Description |
|---|---|---|
checkpointLocation |
Aucun (obligatoire) | Chemin d’accès au répertoire de point de contrôle de la requête de streaming. Obligatoire pour la tolérance de panne et les garanties de traitement exactement une fois. Chaque requête de streaming doit utiliser un emplacement de point de contrôle unique. Databricks recommande de stocker des points de contrôle dans un volume de catalogue Unity ou un chemin de stockage cloud. Consultez les Points de contrôle Structured Streaming. |
path |
None | Chemin de sortie pour les récepteurs de diffusion en continu basés sur des fichiers, tels que Parquet. S’applique uniquement aux formats basés sur des fichiers. |
Récepteur de console
| Clé | Par défaut | Description |
|---|---|---|
numRows |
20 |
Nombre de lignes à afficher pour chaque micro-lot lors de l’écriture dans le récepteur de console. |
truncate |
true |
Indique s’il faut tronquer des chaînes longues lors de l’affichage de lignes. Définissez la valeur pour false afficher les valeurs de chaîne complètes. |
Delta Lake
Les options suivantes s’appliquent lors de l’écriture d’un flux dans une table Delta Lake à l’aide format("delta")de . Les options de remplacement uniquement telles que overwriteSchema, replaceWhereet partitionOverwriteMode ne sont pas prises en charge pour les écritures de streaming.
| Clé | Par défaut | Description |
|---|---|---|
mergeSchema |
false |
Indique s’il faut faire évoluer le schéma de table Delta Lake lorsque le DataFrame de streaming contient de nouvelles colonnes. S’applique uniquement au mode de sortie d’ajout. S’applique au schéma de la table Update. |
userMetadata |
None | Chaîne définie par l’utilisateur ajoutée aux métadonnées de validation pour l’opération d’écriture. Visible dans la sortie de DESCRIBE HISTORY. S’applique à Enrichir des tables avec des métadonnées personnalisées. |
Récepteur de fichiers
L’option suivante s’applique lors de l’écriture d’un flux dans des formats basés sur des fichiers (Parquet, JSON, CSV, ORC, texte). Pour obtenir des options spécifiques au format, consultez les options DataFrameWriter.
| Clé | Par défaut | Description |
|---|---|---|
retention |
None | Durée de conservation des fichiers de métadonnées récepteur utilisés pour la tolérance de panne et le compactage. Accepte une chaîne de temps telle que 7 days ou 24 hours. Lorsqu’ils ne sont pas définis, les fichiers de métadonnées sont conservés indéfiniment. |
Récepteur Kafka
Pour obtenir la liste complète des options d’écriture de flux dans Kafka, consultez Options.
| Clé | Par défaut | Description |
|---|---|---|
kafka.bootstrap.servers |
None | Obligatoire. Liste séparée par des virgules d’adresses de répartiteur host:port Kafka. |
topic |
None | Rubrique Kafka cible pour toutes les lignes. Obligatoire si le DataFrame n’inclut pas de topic colonne. |
kafka.* |
None | Toute configuration de producteur Kafka précédée kafka.de . Par exemple : kafka.compression.type. |
Récepteur de mémoire
| Clé | Par défaut | Description |
|---|---|---|
queryName |
Aucun (obligatoire) | Nom de la table en mémoire dans laquelle la requête écrit. Requis pour le récepteur de mémoire. Également configurable via .queryName(). |
mode |
exactlyonce |
Garantie de livraison pour le récepteur de mémoire.
exactlyonce utilise le mode micro-batch avec une sémantique exactement une fois.
atleastonce utilise le mode continu avec une sémantique au moins une fois. Valeurs valides : exactlyonce, atleastonce. |
Options de fonction Spark
Certaines fonctions intégrées Spark SQL acceptent une carte qui contrôle le comportement d’analyse options ou de sérialisation. Passez des options en tant que Python dict ou scala Map[String, String].
Example
L’exemple suivant analyse une colonne JSON lors de la suppression d’enregistrements mal formés :
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
Les fonctions Avro acceptent les mêmes options que les options de DataFrame correspondantes :
-
from_avroetschema_of_avroutilisez les options DataFrameReader Avro. -
to_avroutilise les options DataFrameWriter Avro.
Example
L’exemple suivant décode une colonne Avro avec l’évolution du schéma activée :
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")))
En outre, les variantes du Registre de schémas des from_avroto_avro options suivantes sont les suivantes :
| Clé | Par défaut | Description |
|---|---|---|
schemaId |
None | ID de schéma du Registre de schémas Confluent à utiliser lors du décodage des données Avro codées avec un schéma incompatible avec jsonFormatSchema. S’applique uniquement.from_avro |
confluent.schema.registry.* |
None | Propriétés de configuration du client Confluent Schema Registry. Transmettez une propriété cliente Confluent SR à l’aide de ce préfixe, par exemple confluent.schema.registry.basic.auth.user.info pour les informations d’identification d’authentification de base. Obligatoire pour les variantes du Registre de schémas de from_avro et to_avro. |
CSV
Les fonctions CSV acceptent les mêmes options que les options dataFrame correspondantes :
-
from_csvetschema_of_csvutiliser les options CSV DataFrameReader. -
to_csvutilise les options CSV DataFrameWriter.
Example
L’exemple suivant lit csv avec un séparateur et NULL une valeur personnalisés :
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
Les fonctions JSON acceptent les mêmes options que les options de DataFrame correspondantes :
-
from_jsonetschema_of_jsonutilisez les options JSON DataFrameReader. -
to_jsonutilise les options JSON DataFrameWriter.
Example
L’exemple suivant écrit JSON avec NULL des champs ignorés et une mise en forme assez activée :
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 et to_protobuf n’utilisez pas de Source de données basée sur des fichiers. Les données Protobuf sont toujours lues et écrites sous forme de colonnes binaires à l’aide de ces fonctions. Les options sont passées en tant que Map[String, String] respectant la casse.
Example
L’exemple suivant décode une colonne Protobuf à l’aide du mode PERMISSIVE :
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")))
Les fonctions Protobuf utilisent les options suivantes :
| Clé | Par défaut | Description |
|---|---|---|
mode |
FAILFAST |
Comment gérer les enregistrements endommagés.
FAILFAST lève une exception.
PERMISSIVE définit les champs mal formés sur Null. Valeurs valides : FAILFAST, PERMISSIVE. S’applique à from_protobuf. |
recursive.fields.max.depth |
-1 (désactivé) |
Profondeur maximale de récursivité pour les champs Protobuf récursifs. Définissez cette option pour 0 désactiver la prise en charge des champs récursifs. Valeurs valides : 0 à 10. S’applique à from_protobuf. |
convert.any.fields.to.json |
false |
Indique s’il faut convertir des champs Protobuf Any en chaîne JSON au lieu d’un STRUCT. S’applique à from_protobuf. |
emit.default.values |
false |
Indique s’il faut émettre des champs avec des valeurs zéro ou par défaut (sémantique proto3). Lorsque false, les champs avec des valeurs par défaut sont omis à partir de la sortie. S’applique à from_protobuf. |
enums.as.ints |
false |
Indique si les champs d’énumération doivent être affichés sous forme de valeurs entières au lieu de chaînes. S’applique à from_protobuf. |
upcast.unsigned.ints |
false |
Indique s’il faut effectuer une mise en mode upcast uint32 vers Long et uint64 empêcher Decimal(20,0) le dépassement d’entier. S’applique à from_protobuf. |
unwrap.primitive.wrapper.types |
false |
Indique s’il faut annuler google.protobuf les types wrapper (par exemple, Int32Value et StringValue) à leurs types Spark primitifs correspondants. S’applique à from_protobuf. |
retain.empty.message.types |
false |
Indique s’il faut conserver les types de messages Protobuf vides dans le schéma de sortie en insérant une colonne factice. S’applique à from_protobuf. |
schema.registry.subject |
None | Nom de l’objet du Registre de schémas. Obligatoire lors de l’utilisation des variantes de Registre de schémas de from_protobuf et to_protobuf. |
schema.registry.address |
None | Adresse du Registre de schémas (hôte et port). Obligatoire lors de l’utilisation des variantes de Registre de schémas de from_protobuf et to_protobuf. |
schema.registry.protobuf.name |
None | Spécifie le message Protobuf à utiliser lorsque l’objet du registre de schémas contient plusieurs messages. Optional. |
XML
Les fonctions XML acceptent les mêmes options que les options de DataFrame correspondantes :
-
from_xmletschema_of_xmlutilisez les options XML DataFrameReader. -
to_xmlutilise les options XML DataFrameWriter.
Example
L’exemple suivant écrit du code XML avec des balises racines et de lignes personnalisées :
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")))