read_files fonction table

S’applique à :coche marquée oui Databricks SQL oui coché Databricks Runtime 13.3 LTS et versions ultérieures

Lit les fichiers sous un emplacement fourni et retourne les données sous forme tabulaire.

Prend en charge la lecture des formats de fichiers JSON, CSV, XML, TEXT, BINARYFILE, PARQUET, AVRO et ORC. Peut détecter automatiquement le format de fichier et déduire un schéma unifié dans l’ensemble des fichiers.

Syntaxe

read_files(path [, option_key => option_value ] [...])

Arguments

Cette fonction nécessite un appel de paramètre nommé pour les clés d’option.

  • path : un STRING avec l’URI de l’emplacement des données. Prend en charge la lecture à partir d’Azure Data Lake Storage Gen2 ('abfss://'), S3 (s3://) et Google Cloud Storage ('gs://'). Peut contenir des globs. Consultez Découverte de fichiers pour plus de détails.
  • option_key : le nom de l’option à configurer. Vous devez utiliser des accents graves (`) pour les options qui contiennent des points (.).
  • option_value : une expression constante sur laquelle définir l’option. Accepte les fonctions littérales et scalaires.

Retours

Table composée des données des fichiers lus sous le path donné.

Découverte de fichiers

read_files peut lire un fichier individuel ou lire des fichiers dans un répertoire fourni. read_files détecte tous les fichiers sous le répertoire fourni de manière récursive, sauf si un glob est fourni, ce qui indique à read_files d’effectuer une récurrence dans un modèle de répertoire spécifique.

Filtrage des répertoires ou des fichiers à l’aide de modèles glob

Les modèles Glob peuvent être utilisés pour filtrer les répertoires et les fichiers lorsqu’ils sont fournis dans le chemin d’accès.

Modèle Description
? Correspond à n’importe quel caractère unique
* Correspond à zéro, un ou plusieurs caractères
[abc] Correspond à un seul caractère du jeu de caractères {a,b,c}.
[a-z] Correspond à un seul caractère de la plage de caractères {a…z}.
[^a] Correspond à un seul caractère qui ne fait pas partie du jeu ou de la plage de caractères {a}. Notez que le caractère ^ doit se trouver immédiatement à droite du crochet ouvrant.
{ab,cd} Correspond à une chaîne du jeu de chaînes {ab, cd}.
{ab,c{de, fh}} Correspond à une chaîne du jeu de chaînes {ab, cde, cfh}.

read_files utilise le globber strict d’Auto Loader lors de la découverte de fichiers avec des globs. La configuration se fait avec l’option useStrictGlobber. Lorsque le globber strict est désactivé, les barres obliques de fin (/) sont supprimées et un modèle d’étoile tel que /*/ peut s’étendre à la découverte de plusieurs répertoires. Consultez les exemples ci-dessous pour voir la différence de comportement.

Modèle Chemins d'accès au fichier Globber strict désactivé Globber strict activé
/a/b /a/b/c/file.txt Oui Oui
/a/b /a/b_dir/c/file.txt Non Aucun
/a/b /a/b.txt Aucun Aucun
/a/b/ /a/b.txt Aucun Aucun
/a/*/c/ /a/b/c/file.txt Oui Oui
/a/*/c/ /a/b/c/d/file.txt Oui Oui
/a/*/d/ /a/b/c/d/file.txt Oui Non
/a/*/c/ /a/b/x/y/c/file.txt Oui Non
/a/*/c /a/b/c_file.txt Oui Non
/a/*/c/ /a/b/c_file.txt Oui Non
/a/*/c /a/b/cookie/file.txt Oui Non
/a/b* /a/b.txt Oui Oui
/a/b* /a/b/file.txt Oui Oui
/a/{0.txt,1.txt} /a/0.txt Oui Oui
/a/*/{0.txt,1.txt} /a/0.txt Non Aucun
/a/b/[cde-h]/i/ /a/b/c/i/file.txt Oui Oui

Inférence de schéma

Le schéma des fichiers peut être fourni explicitement à read_files avec l’option schema. Lorsque le schéma n’est pas fourni, read_files tente de déduire un schéma unifié sur l’ensemble des fichiers découverts, ce qui nécessite la lecture de tous les fichiers, sauf si une instruction LIMIT est utilisée. Même lors de l’utilisation d’une requête LIMIT, un ensemble de fichiers plus grand que nécessaire peut être lu pour retourner un schéma plus représentatif des données. Databricks ajoute automatiquement une instruction LIMIT aux requêtes SELECT dans les notebooks et l’éditeur SQL si un utilisateur n’en a pas fourni.

L’option schemaHints peut être utilisée pour corriger des sous-ensembles du schéma déduit. Pour plus d’informations, consultez Remplacer l’inférence de schéma avec les indicateurs de schéma.

Un rescuedDataColumn est fourni par défaut pour récupérer toutes les données qui ne correspondent pas au schéma. Pour plus d’informations, consultez Qu’est-ce que la colonne de données récupérées ?. Vous pouvez supprimer le rescuedDataColumn en définissant l’option schemaEvolutionMode => 'none'.

Inférence de schéma de partition

read_files peut également déduire des colonnes de partitionnement si les fichiers sont stockés sous des répertoires partitionnés de style Hive, c’est-à-dire /column_name=column_value/. Si un schema est fourni, les colonnes de partition découvertes utilisent les types fournis dans le schema. Si les colonnes de partition ne font pas partie du schema fourni, les colonnes de partition déduites sont ignorées.

Si une colonne existe à la fois dans le schéma de partition et dans les colonnes de données, la valeur lue à partir de la valeur de partition est utilisée à la place de la valeur de données. Si vous souhaitez ignorer les valeurs provenant du répertoire et utiliser la colonne de données, vous pouvez fournir la liste des colonnes de partition dans une liste séparée par des virgules avec l’option partitionColumns.

L’option partitionColumns peut également être utilisée pour indiquer à read_files les colonnes découvertes à inclure dans le schéma déduit final. Fournir une chaîne vide ignore toutes les colonnes de partition.

L’option schemaHints peut également être fournie pour remplacer le schéma déduit pour une colonne de partition.

Les formats TEXT et BINARYFILE ont un schéma fixe, mais read_files tente également de déduire le partitionnement pour ces formats lorsque cela est possible.

Utilisation dans les tables de diffusion en continu

read_files peut être utilisé dans des tables de diffusion en continu pour ingérer des fichiers dans Delta Lake. read_files tire parti d’Auto Loader lorsqu’il est utilisé dans une requête de table de diffusion en continu. Vous devez utiliser le mot clé STREAM avec read_files. Pour plus d’informations, consultez Qu’est-ce qu’Auto Loader ?.

Lorsqu’il est utilisé dans une requête de diffusion en continu, read_files utilise un échantillon de données pour déduire le schéma et peut faire évoluer le schéma à mesure qu’il traite davantage de données. Pour plus d’informations, consultez Configurer l’inférence et l’évolution de schéma dans Auto Loader.

Options

Options de base

Option
format

Entrez : String

Le format du fichier de données dans le chemin d’accès source. Déduit automatiquement s’il n’est pas fourni. Les valeurs autorisées sont les suivantes :

* avro : Fichier Avro
* binaryFile : Fichier binaire
* csv : lire et écrire dans des fichiers CSV
* json : Fichier JSON
* orc : fichier ORC
* parquet: Lire des fichiers Parquet à l’aide d’Azure Databricks
* text : fichiers texte
* xml : Lire et écrire des fichiers XML

Valeur par défaut : aucune
inferColumnTypes

Entrez : Boolean

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 lors de l’inférence de jeux de données JSON et CSV. Pour plus d’informations, consultez Inférence de schéma. Notez qu’il s’agit de l’opposé du comportement par défaut d’Auto Loader.

Valeur par défaut : true
partitionColumns

Entrez : String

Liste de colonnes de partition de type Hive, séparées par des virgules, que vous souhaitez déduire de la structure de répertoire des fichiers. Les colonnes de partition de type Hive sont des paires clé-valeur associées à un signe d’égalité, par exemple
<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.csv

En spécifiant cloudFiles.partitionColumns sous la forme year,month,day, vous obtiendrez
year=2022 pour file1.csv, mais les colonnes month et day seront null.
month et day seront analysées correctement pour file2.csv et file3.csv.

Valeur par défaut : aucune
schemaHints

Entrez : String

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.

Valeur par défaut : aucune
useStrictGlobber

Entrez : Boolean

Indique s’il faut utiliser un globber strict qui correspond au comportement d’utilisation des caractères génériques (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. Notez qu’il s’agit de l’opposé du comportement par défaut d’Auto Loader.

Valeur par défaut : true

Options génériques

Les options suivantes s’appliquent à tous les formats de fichier.

Option
ignoreCorruptFiles

Entrez : Boolean

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é. Observable sous la forme numSkippedCorruptFiles dans la
colonne operationMetrics de l’historique Delta Lake. Disponible dans Databricks Runtime 11.3 LTS et versions ultérieures.

Valeur par défaut : false
ignoreMissingFiles

Entrez : Boolean

Indique s’il faut ignorer les fichiers manquants. Si la valeur est true, les travaux Spark continueront à s’exécuter lorsqu’ils rencontrent des fichiers corrompus et le contenu qui a été lu sera toujours renvoyé. Disponible dans Databricks Runtime 11.3 LTS et versions ultérieures.

Valeur par défaut : false (true pour COPY INTO)
modifiedAfter

Type : Timestamp String, par exemple, 2021-01-01 00:00:00.000000 UTC+0

Timestamp facultatif pour recevoir les fichiers qui comportent un timestamp de modification après le timestamp fourni.

Valeur par défaut : aucune
modifiedBefore

Type : Timestamp String, par exemple, 2021-01-01 00:00:00.000000 UTC+0

Timestamp facultatif pour recevoir les fichiers qui comportent un timestamp de modification avant le timestamp fourni.

Valeur par défaut : aucune
pathGlobFilter ou fileNamePattern

Entrez : String

Modèle Glob potentiel à fournir pour choisir des fichiers. Équivalent à
PATTERN dans COPY INTO. fileNamePattern peut être utilisé dans read_files.

Valeur par défaut : aucune
recursiveFileLookup

Entrez : Boolean

S’il faut ignorer l’inférence de partition pendant l’inférence de schéma. Cette opération n’affecte les fichiers qui sont chargés.

Valeur par défaut : false

JSON options

Option
allowBackslashEscapingAnyCharacter

Entrez : Boolean

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 répertoriés par la spécification JSON peuvent être placés dans une séquence d’échappement.

Valeur par défaut : false
allowComments

Entrez : Boolean

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é.

Valeur par défaut : false
allowNonNumericNumbers

Entrez : Boolean

Indique s’il faut autoriser l'ensemble des jetons non numériques (NaN) comme valeurs légales de nombres flottants.

Valeur par défaut : true
allowNumericLeadingZeros

Entrez : Boolean

Indique s’il faut autoriser les nombres entiers à commencer par des zéros supplémentaires (pouvant être ignorés) (par exemple, 000001).

Valeur par défaut : false
allowSingleQuotes

Entrez : Boolean

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

Valeur par défaut : true
allowUnquotedControlChars

Entrez : Boolean

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 tabulation et saut de ligne).

Valeur par défaut : false
allowUnquotedFieldNames

Entrez : Boolean

Indique s’il faut autoriser l’utilisation de noms de champs sans guillemets (autorisés par JavaScript, mais pas par la spécification JSON).

Valeur par défaut : false
badRecordsPath

Entrez : String

Chemin d’accès pour stocker les fichiers contenant des informations sur les enregistrements JSON incorrects.

Valeur par défaut : aucune
columnNameOfCorruptRecord

Entrez : String

Colonne pour le stockage des enregistrements incorrects 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.

Valeur par défaut : _corrupt_record
dateFormat

Entrez : String

Format d’analyse des chaînes de date.

Valeur par défaut : yyyy-MM-dd
dropFieldIfAllNull

Entrez : Boolean

Indique s’il faut ignorer les colonnes de toutes les valeurs Null ou des tableaux/structs vides pendant l’inférence de schéma.

Valeur par défaut : false
encoding ou charset

Entrez : String

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.

Valeur par défaut : UTF-8
inferTimestamp

Entrez : Boolean

Indique s’il faut essayer de déduire les chaînes timestamp en tant que TimestampType. Lorsque définie sur
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).

Valeur par défaut : false
lineSep

Entrez : String

Chaîne entre deux enregistrements JSON consécutifs.

Valeur par défaut : Aucune, qui couvre \r, \r\n et \n
locale

Entrez : String

Identificateur java.util.Locale. Définit la date, le timestamp et l’analyse décimale par défaut de l’élément JSON.

Valeur par défaut : US
mode

Entrez : String

Mode de l’analyseur pour la gestion des enregistrements mal formés. Valeurs possibles 'PERMISSIVE'
'DROPMALFORMED', ou 'FAILFAST'.

Valeur par défaut : PERMISSIVE
multiLine

Entrez : Boolean

Indique si les enregistrements JSON s’étendent sur plusieurs lignes.

Valeur par défaut : false
prefersDecimal

Entrez : Boolean

Tente de déduire des chaînes en tant que DecimalType au lieu du type float ou double lorsque cela est possible. Vous devez également utiliser une inférence de schéma, en activant
inferSchema ou en utilisant cloudFiles.inferColumnTypes avec Chargeur automatique.

Valeur par défaut : false
primitivesAsString

Entrez : Boolean

Indique s’il faut déduire les types primitifs comme les nombres et les valeurs booléennes comme StringType.

Valeur par défaut : false
readerCaseSensitive

Entrez : Boolean

Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauver les colonnes de données du schéma dont les noms diffèrent au niveau de la casse. Sinon, lire les données sans respect de la casse. Disponible dans Databricks Runtime
13.3 et versions ultérieures.

Valeur par défaut : true
rescuedDataColumn

Entrez : String

Si vous souhaitez collecter toutes les données qui ne peuvent pas être analysées en raison d'une erreur de type de données ou de schéma (y compris la casse des colonnes) dans 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 ?.

Valeur par défaut : aucune
timestampFormat

Entrez : String

Format d’analyse des chaînes de timestamp.

Valeur par défaut : yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone

Entrez : String

L’élément java.time.ZoneId à utiliser lors de l'analyse des timestamps et des dates.

Valeur par défaut : aucune

CSV options

Option
badRecordsPath

Entrez : String

Chemin d’accès pour stocker les fichiers contenant des informations sur les enregistrements CSV incorrects.

Valeur par défaut : aucune
charToEscapeQuoteEscaping

Entrez : Char

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 ] :

* Si le caractère d'échappement de '\' n'est pas défini, l'enregistrement ne sera pas analysé. L’analyseur lira les caractères : [a],[\],["],[,],[ ],[b] et générera une erreur car il ne trouve pas de guillemet fermant.
* Si le caractère d'échappement de '\' est défini comme '\', l'enregistrement sera lu avec 2 valeurs : [a\] et [b].

Valeur par défaut : '\0'
columnNameOfCorruptRecord

> [!NOTE] >> Pris en charge pour le chargeur automatique. Non pris en charge pour COPY INTO.

Entrez : String

Colonne pour le stockage des enregistrements incorrects 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.

Valeur par défaut : _corrupt_record
comment

Entrez : Char

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 les commentaires.

Valeur par défaut : '\u0000'
dateFormat

Entrez : String

Format d’analyse des chaînes de date.

Valeur par défaut : yyyy-MM-dd
emptyValue

Entrez : String

Représentation sous forme de chaîne d’une valeur vide.

Valeur par défaut : ""
encoding ou charset

Entrez : String

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.

Valeur par défaut : UTF-8
enforceSchema

Entrez : Boolean

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.

Valeur par défaut : true
escape

Entrez : Char

Caractère d’échappement à utiliser lors de l’analyse des données.

Valeur par défaut : '\'
header

Entrez : Boolean

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.

Valeur par défaut : false
ignoreLeadingWhiteSpace

Entrez : Boolean

Indique s’il faut ignorer les espaces blancs de début pour chaque valeur analysée.

Valeur par défaut : false
ignoreTrailingWhiteSpace

Entrez : Boolean

Indique s’il faut ignorer les espaces blancs de fin pour chaque valeur analysée.

Valeur par défaut : false
inferSchema

Entrez : Boolean

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.

Valeur par défaut : false
lineSep

Entrez : String

Chaîne entre deux enregistrements CSV consécutifs.

Valeur par défaut : Aucune, qui couvre \r, \r\n et \n
locale

Entrez : String

Identificateur java.util.Locale. Définit la date, le timestamp et l’analyse décimale par défaut de l’élément CSV.

Valeur par défaut : US
maxCharsPerColumn

Entrez : Int

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é.

Valeur par défaut : -1
maxColumns

Entrez : Int

Limite inconditionnelle du nombre de colonnes qu’un enregistrement peut avoir.

Valeur par défaut : 20480
mergeSchema

Entrez : Boolean

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.

Valeur par défaut : false
mode

Entrez : String

Mode de l’analyseur pour la gestion des enregistrements mal formés. Valeurs possibles 'PERMISSIVE'
'DROPMALFORMED' et 'FAILFAST'.

Valeur par défaut : PERMISSIVE
multiLine

Entrez : Boolean

Indique si les enregistrements CSV s’étendent sur plusieurs lignes.

Valeur par défaut : false
nanValue

Entrez : String

Représentation sous forme de chaîne d'une valeur non numérique lors de l'analyse des colonnes FloatType et DoubleType.

Valeur par défaut : "NaN"
negativeInf

Entrez : String

Représentation sous forme de chaîne de l'infini négatif lors de l'analyse des colonnes FloatType ou DoubleType.

Valeur par défaut : "-Inf"
nullValue

Entrez : String

Représentation sous forme de chaîne d’une valeur Null.

Valeur par défaut : ""
parserCaseSensitive (déconseillé)

Entrez : Boolean

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 selon la casse seront récupérées dans le rescuedDataColumn s'il est activé. Cette option a été abandonnée au profit de readerCaseSensitive.

Valeur par défaut : false
positiveInf

Entrez : String

Représentation sous forme de chaîne de l'infini positif lors de l'analyse des colonnes FloatType ou DoubleType.

Valeur par défaut : "Inf"
preferDate

Entrez : Boolean

Tente de déduire des chaînes en tant que dates au lieu de timestamp lorsque cela est possible. Vous devez également utiliser l’inférence de schéma, en activant inferSchema ou en utilisant
cloudFiles.inferColumnTypes avec Chargeur automatique.

Valeur par défaut : true
quote

Entrez : Char

Caractère utilisé pour les valeurs d’échappement où le délimiteur de champ fait partie de la valeur.

Valeur par défaut : "
readerCaseSensitive

Entrez : Boolean

Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauver les colonnes de données du schéma dont les noms diffèrent au niveau de la casse. Sinon, lire les données sans respect de la casse.

Valeur par défaut : true
rescuedDataColumn

Entrez : String

Si vous souhaitez collecter toutes les données qui ne peuvent pas être analysées en raison : d'une erreur de type de données et de schéma (y compris la casse des colonnes) dans 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 ?.

Valeur par défaut : aucune
sep ou delimiter

Entrez : String

Chaîne de séparateur entre les colonnes.

Valeur par défaut : ","
skipRows

Entrez : Int

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 true, l’en-tête sera la première ligne non ignorée et non commentée.

Valeur par défaut : 0
timestampFormat

Entrez : String

Format d’analyse des chaînes de timestamp.

Valeur par défaut : yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]
timeZone

Entrez : String

L’élément java.time.ZoneId à utiliser lors de l'analyse des timestamps et des dates.

Valeur par défaut : aucune
unescapedQuoteHandling

Entrez : String

Stratégie de gestion des guillemets sans séquence d’échappement. Options autorisées :

* STOP_AT_CLOSING_QUOTE : Si l’entrée contient des guillemets sans séquence d’échappement, accumuler le caractère de guillemet et poursuivre l’analyse de la valeur comme une valeur entre guillemets, jusqu’à ce qu’un guillemet fermant soit trouvé.
* BACK_TO_DELIMITER : Si l’entrée contient des guillemets sans séquence d’échappement, la valeur est considérée comme une valeur sans guillemets. L'analyseur accumulera tous les caractères de la valeur analysée actuelle jusqu'à trouver le délimiteur défini par sep. Si la valeur ne contient aucun délimiteur, l’analyseur continue à accumuler les caractères de l’entrée jusqu’à trouver un délimiteur ou une fin de ligne.
* STOP_AT_DELIMITER : Si l’entrée contient des guillemets sans séquence d’échappement, la valeur est considérée comme une valeur sans guillemets. L'analyseur accumulera tous les caractères jusqu'à trouver le délimiteur défini par sep ou une ligne de fin.
* SKIP_VALUE : Si l’entrée contient des guillemets sans séquence d’échappement, le contenu analysé pour la valeur donnée est ignoré (jusqu’au prochain délimiteur) et la valeur définie dans nullValue est produite à la place.
* RAISE_ERROR : Si l’entrée contient des guillemets sans séquence d’échappement, une
TextParsingException sera levée.

Valeur par défaut : STOP_AT_DELIMITER

XML options

Option Description Étendue
rowTag 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. lire
samplingRatio Définit une fraction de lignes utilisées pour l’inférence de schéma. Les fonctions intégrées XML ignorent cette option. Par défaut : 1.0. lire
excludeAttribute Indique s’il faut exclure des attributs dans les éléments. Par défaut : false. lire
mode 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.
lire
inferSchema 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. Valeur par défaut :
true. Les fonctions intégrées XML ignorent cette option.
lire
columnNameOfCorruptRecord Permet de renommer le nouveau champ qui contient une chaîne malformée créée par
le mode PERMISSIVE. Par défaut : spark.sql.columnNameOfCorruptRecord.
lire
attributePrefix 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. lecture, écriture
valueTag La balise utilisée pour les données caractères dans les éléments qui ont également des éléments d’attributs ou d’éléments enfants. 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. Valeur par défaut : _VALUE lecture, écriture
encoding 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. Par défaut : UTF-8. lecture, écriture
ignoreSurroundingSpaces Définit si les espaces blancs entourant les valeurs lues doivent être ignorés. Par défaut : true. Les données caractères en espace blanc uniquement sont ignorées. lire
rowValidationXSDPath Chemin d’accès à un fichier XSD facultatif utilisé pour valider le code XML de chaque ligne individuellement. Les lignes qui ne peuvent pas être validées sont traitées comme des erreurs d’analyse comme indiqué ci-dessus. Le XSD n’affecte pas le schéma fourni ou inféré. lire
ignoreNamespace Si true, les préfixes d’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. Par défaut : false. lire
timestampFormat Chaîne de format d’horodotage personnalisée qui suit le format de modèle datetime. Cela s’applique au type timestamp. Par défaut : yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]. lecture, écriture
timestampNTZFormat 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. Valeur par défaut :
yyyy-MM-dd'T'HH:mm:ss[.SSS]
lecture, écriture
dateFormat Chaîne de format de date personnalisée qui suit le format de modèle datetime. S’applique au type date. Par défaut : yyyy-MM-dd. lecture, écriture
locale 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. Par défaut : en-US. lire
rootTag Balise racine des fichiers XML. Par exemple, dans <books> <book><book>...</books>, la valeur appropriée est books. Vous pouvez inclure des attributs de base en spécifiant une valeur comme books foo="bar". Par défaut : ROWS. écrire
declaration Contenu de la déclaration XML à écrire au début de chaque fichier XML de sortie, avant le rootTag. Par exemple, une valeur de foo entraîne l’écriture de <?xml foo?>. Définissez la fonction sur une chaîne vide pour la supprimer. Valeur par défaut : version="1.0"
encoding="UTF-8" standalone="yes".
écrire
arrayElementName Nom de l’élément XML qui entoure chaque élément d’une colonne matricielle lors de l’écriture. Par défaut : item. écrire
nullValue Définit la représentation sous forme de chaîne de caractères d’une valeur nulle. Valeur par défaut : chaîne null. Quand il s’agit de null, l’analyseur n’écrit pas d’attributs et d’éléments pour les champs. lecture, écriture
compression Code de compression à utiliser lors de l’enregistrement dans un fichier. Il peut s’agir de l’un des noms raccourcis sans respect de la casse connus (none, bzip2, gzip, lz4, snappy', and<br>deflate`). Les fonctions intégrées XML ignorent cette option. Par défaut : none. écrire
validateName Si la valeur est true, lève une erreur lors de l’échec de validation du nom d’élément XML. Par exemple, les noms de champs SQL peuvent avoir des espaces, mais les noms d’éléments XML ne peuvent pas. Valeur par défaut :
true.
écrire
readerCaseSensitive Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauver les colonnes de données du schéma dont les noms diffèrent au niveau de la casse. Sinon, lire les données sans respect de la casse. Par défaut : true. lire
rescuedDataColumn Si vous souhaitez collecter toutes les données qui ne peuvent pas être analysées en raison d’une erreur de type de données et de schéma (y compris la casse des colonnes) dans 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 ? Valeur par défaut : None. lire

PARQUET options

Option
datetimeRebaseMode

Entrez : String

Contrôle la relocalisation des valeurs DATE et TIMESTAMP entre les calendriers julien et grégorien proleptique. Valeurs autorisées : EXCEPTION, LEGACY et
CORRECTED.

Valeur par défaut : LEGACY
int96RebaseMode

Entrez : String

Contrôle la relocalisation des valeurs de timestamp INT96 entre les calendriers julien et grégorien proleptique. Valeurs autorisées : EXCEPTION, LEGACY et
CORRECTED.

Valeur par défaut : LEGACY
mergeSchema

Entrez : Boolean

Indique s’il faut déduire le schéma entre plusieurs fichiers et fusionner le schéma de chaque fichier.

Valeur par défaut : false
readerCaseSensitive

Entrez : Boolean

Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauver les colonnes de données du schéma dont les noms diffèrent au niveau de la casse. Sinon, lire les données sans respect de la casse.

Valeur par défaut : true
rescuedDataColumn

Entrez : String

Si vous souhaitez collecter toutes les données qui ne peuvent pas être analysées en raison : d'une erreur de type de données et de schéma (y compris la casse des colonnes) dans 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 ?.

Valeur par défaut : aucune

AVRO options

Option
avroSchema

Entrez : String

Schéma facultatif fourni par un utilisateur au format Avro. Lors de la lecture Avro, cette option peut être définie sur un schéma évolué, qui est compatible mais différent du schéma Avro réel. Le schéma de désérialisation sera 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 la lecture contiendra également la nouvelle colonne.

Valeur par défaut : aucune
datetimeRebaseMode

Entrez : String

Contrôle la relocalisation des valeurs DATE et TIMESTAMP entre les calendriers julien et grégorien proleptique. Valeurs autorisées : EXCEPTION, LEGACY et
CORRECTED.

Valeur par défaut : LEGACY
mergeSchema

Entrez : Boolean

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.

Valeur par défaut : false
readerCaseSensitive

Entrez : Boolean

Spécifie le comportement de respect de la casse lorsque rescuedDataColumn est activé. Si la valeur est true, sauver les colonnes de données du schéma dont les noms diffèrent au niveau de la casse. Sinon, lire les données sans respect de la casse.

Valeur par défaut : true
rescuedDataColumn

Entrez : String

Si vous souhaitez collecter toutes les données qui ne peuvent pas être analysées en raison : d'une erreur de type de données et de schéma (y compris la casse des colonnes) dans 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 ?.

Valeur par défaut : aucune

BINARYFILE options

Les fichiers binaires n’ont pas d’autres options de configuration.

TEXT options

Option
encoding

Entrez : String

Nom de l’encodage des fichiers TEXT. Consultez java.nio.charset.Charset pour obtenir la liste des options.

Valeur par défaut : UTF-8
lineSep

Entrez : String

Chaîne entre deux enregistrements TEXT consécutifs.

Valeur par défaut : Aucune, qui couvre \r, \r\n et \n
wholeText

Entrez : Boolean

Indique si un fichier doit être lu en tant qu’enregistrement unique.

Valeur par défaut : false

ORC options

Option
mergeSchema

Entrez : Boolean

Indique s’il faut déduire le schéma entre plusieurs fichiers et fusionner le schéma de chaque fichier.

Valeur par défaut : false

Options de diffusion en continu

Ces options s’appliquent lors de l’utilisation de read_files à l’intérieur d’une table de diffusion en continu ou d’une requête de diffusion en continu.

Option
allowOverwrites

Entrez : Boolean

S’il faut re-traiter les fichiers qui ont été modifiés après la découverte. La dernière version disponible du fichier est traitée lors d’une actualisation si elle a été modifiée depuis l’heure de début de la dernière requête d’actualisation réussie.

Valeur par défaut : false
includeExistingFiles

Entrez : Boolean

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.

Valeur par défaut : true
maxBytesPerTrigger

Entrez : Byte String

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 maxFilesPerTrigger, Azure Databricks consomme jusqu’à la limite inférieure de maxFilesPerTrigger ou maxBytesPerTrigger, selon celle qui est atteinte en premier.

Remarque : Pour les tables de streaming créées sur des entrepôts SQL sans serveur, cette option et maxFilesPerTrigger ne doivent pas être définis afin de tirer parti du contrôle d'admission dynamique, qui ajuste la taille de la charge de travail et les ressources informatiques sans serveur pour vous offrir la meilleure latence et performance.

Valeur par défaut : Aucun
maxFilesPerTrigger

Entrez : Integer

Nombre maximal de nouveaux fichiers à traiter dans chaque déclencheur. En cas d’utilisation avec maxBytesPerTrigger, Azure Databricks consomme jusqu’à la limite inférieure de maxFilesPerTrigger ou maxBytesPerTrigger, selon celle qui est atteinte en premier.

Note : Pour les tables de streaming créées sur des entrepôts SQL sans serveur, cette option et maxBytesPerTrigger ne doivent pas être définis afin de tirer parti du contrôle d'admission dynamique, qui ajuste la taille de la charge de travail et les ressources informatiques sans serveur pour vous offrir la meilleure latence et performance.

Valeur par défaut : 1000
schemaEvolutionMode

Entrez : String

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. Cette option ne s’applique pas aux fichiers text et binaryFile.

Valeur par défaut : "addNewColumns" si aucun schéma n’est fourni.
Sinon "none".
schemaLocation

Entrez : String

Emplacement dans lequel stocker le schéma inféré et les modifications ultérieures. Pour plus d’informations, consultez Inférence de schéma. L’emplacement du schéma n’est pas requis lorsqu’il est utilisé dans une requête de table de diffusion en continu.

Valeur par défaut : Aucun

Exemples

-- Reads the files available in the given path. Auto-detects the format and schema of the data.
> SELECT * FROM read_files('abfss://container@storageAccount.dfs.core.windows.net/base/path');

-- Reads the headerless CSV files in the given path with the provided schema.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv',
    schema => 'id int, ts timestamp, event string');

-- Infers the schema of CSV files with headers. Because the schema is not provided,
-- the CSV files are assumed to have headers.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'csv')

-- Reads files that have a csv suffix.
> SELECT * FROM read_files('s3://bucket/path/*.csv')

-- Reads a single JSON file
> SELECT * FROM read_files(
    'abfss://container@storageAccount.dfs.core.windows.net/path/single.json')

-- Reads JSON files and overrides the data type of the column `id` to integer.
> SELECT * FROM read_files(
    's3://bucket/path',
    format => 'json',
    schemaHints => 'id int')

-- Reads files that have been uploaded or modified yesterday.
> SELECT * FROM read_files(
    'gs://my-bucket/avroData',
    modifiedAfter => date_sub(current_date(), 1),
    modifiedBefore => current_date())

-- Creates a Delta table and stores the source file path as part of the data
> CREATE TABLE my_avro_data
  AS SELECT *, _metadata.file_path
  FROM read_files('gs://my-bucket/avroData')

-- Creates a streaming table that processes files that appear only after the table's creation.
-- The table will most likely be empty (if there's no clock skew) after being first created,
-- and future refreshes will bring new data in.
> CREATE OR REFRESH STREAMING TABLE avro_data
  AS SELECT * FROM STREAM read_files('gs://my-bucket/avroData', includeExistingFiles => false);