from_csvfunction (Databricks SQL)

Retourne une valeur de struct avec csvStr et schema .

Syntaxe

from_csv(csvStr, schema [, options])

Arguments

  • csvStr: Expression de chaîne spécifiant une ligne de données CSV.
  • schema: Un littéral de chaîne ou un appel de schema.
  • options: < Chaîne de mappage facultative, littéral de chaîne > spécifiant des directives.

Retours

STRUCT avec des noms de champs et des types correspondant à la définition de schéma.

csvStr doit être bien formée en ce qui concerne schema et options . schéma doit être défini en tant que paires nom de colonne et type de données séparées par des virgules, comme utilisé dans, par exemple CREATE TABLE .

options, s’il est fourni, peut être l’un des éléments suivants :

  • sep (par défaut , ) : définit un séparateur pour chaque champ et valeur. Ce séparateur peut être un ou plusieurs caractères.
  • encoding (UTF-8 par défaut) : décode les fichiers CSV selon le type d’encodage spécifié.
  • quote (valeur par défaut " ) : définit un caractère unique utilisé pour l’échappement des valeurs entre guillemets où le séparateur peut faire partie de la valeur. Si vous souhaitez désactiver les citations, vous devez définir not null, mais une chaîne vide. Ce comportement est différent de celui de com.databricks.spark.csv .
  • escape (valeur par défaut \ ) : définit un caractère unique utilisé pour l’échappement des guillemets à l’intérieur d’une valeur déjà placée entre guillemets.
  • charToEscapeQuoteEscaping (valeur par défaut escape ou \0 ) : définit un caractère unique utilisé pour échapper l’échappement pour le caractère de guillemet. La valeur par défaut est un caractère d’échappement lorsque les escapequote caractères et sont différents ; \0 sinon,.
  • comment (chaîne vide par défaut) : définit un caractère unique utilisé pour ignorer les lignes commençant par ce caractère. Elle est désactivée par défaut.
  • Header (valeur par défaut false ) : utilise la première ligne comme noms de colonnes.
  • enforceSchema (valeur par défaut true ) : si la valeur est true, le schéma spécifié ou inféré est appliqué de force aux fichiers de source de donnée, et les en-têtes des fichiers CSV sont ignorés. Si l’option a la valeur false, le schéma est validé par rapport à tous les en-têtes des fichiers CSV dans le cas où l’option d’en-tête a la valeur true. Les noms de champs dans les noms de schéma et de colonne des en-têtes CSV sont vérifiés par leurs positions en tenant compte spark.sql.caseSensitive . Bien que la valeur par défaut soit true, il est recommandé de désactiver l’option enforceSchema pour éviter des résultats incorrects.
  • inferSchema (par défaut false ) : déduit le schéma d’entrée automatiquement à partir des données. Elle nécessite une passe supplémentaire sur les données.
  • samplingRatio (par défaut 1,0) : définit la fraction de lignes utilisée pour l’inférence de schéma.
  • ignoreLeadingWhiteSpace (par défaut false ) : indicateur qui spécifie si les espaces blancs de début des valeurs lues doivent être ignorés.
  • ignoreTrailingWhiteSpace (valeur par défaut false ) : indicateur qui spécifie si les espaces de fin des valeurs lues doivent être ignorés.
  • nullValue (chaîne vide par défaut) : définit la représentation sous forme de chaîne d’une valeur null.
  • emptyValue (chaîne vide par défaut) : définit la représentation sous forme de chaîne d’une valeur vide.
  • nanValue (valeur par défaut NaN ) : définit la représentation sous forme de chaîne d’une valeur qui n’est pas un nombre.
  • positiveInf (valeur par défaut Inf ) : définit la représentation sous forme de chaîne d’une valeur d’infini positive.
  • negativeInf (valeur par défaut -Inf) : définit la représentation sous forme de chaîne d’une valeur infinie négative.
  • dateFormat (valeur par défaut yyyy-MM-dd ) : définit la chaîne qui indique un format de date. les formats de date personnalisés obéissent aux formats Databricks SQL datetime patterns. Cela s’applique au type date.
  • timestampFormat (valeur par défaut yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX] ) : définit la chaîne qui indique un format d’horodatage. les formats de date personnalisés obéissent aux formats Databricks SQL datetime patterns. Cela s’applique au type d’horodatage.
  • maxColumns (valeur par défaut 20480 ) : définit une limite inconditionnelle du nombre de colonnes qu’un enregistrement peut avoir.
  • maxCharsPerColumn (valeur par défaut-1) : définit le nombre maximal de caractères autorisés pour toute valeur spécifiée en cours de lecture. Par défaut, il s’agit de-1, ce qui signifie une longueur illimitée
  • unescapedQuoteHandling (par défaut STOP_AT_DELIMITER ) : définit la manière dont l’analyseur CSV gère les valeurs avec des guillemets sans séquence d’échappement.
    • STOP_AT_CLOSING_QUOTE: Si des guillemets sans séquence d’échappement se trouvent dans l’entrée, accumulez le guillemet et poursuivez l’analyse de la valeur en tant que valeur entre guillemets, jusqu’à ce qu’un guillemet fermant soit trouvé.
    • BACK_TO_DELIMITER: Si les guillemets sans séquence d’échappement se trouvent dans l’entrée, considérez la valeur comme une valeur sans guillemets. Cela fait en sorte que l’analyseur accumule tous les caractères de la valeur analysée actuelle jusqu’à ce que le délimiteur soit trouvé. Si aucun délimiteur n’est trouvé dans la valeur, l’analyseur continue à accumuler les caractères de l’entrée jusqu’à ce qu’un délimiteur ou une fin de ligne soit trouvé.
    • STOP_AT_DELIMITER: Si les guillemets sans séquence d’échappement se trouvent dans l’entrée, considérez la valeur comme une valeur sans guillemets. Ainsi, l’analyseur accumule tous les caractères jusqu’à ce que le délimiteur ou une fin de ligne se trouve dans l’entrée.
    • STOP_AT_DELIMITER: Si des guillemets sans séquence d’échappement se trouvent dans l’entrée, le contenu analysé pour la valeur spécifiée est ignoré et la valeur définie dans nullValue est générée à la place.
    • RAISE_ERROR: Si des guillemets sans séquence d’échappement se trouvent dans l’entrée, une TextParsingException exception est levée.
  • mode (par défaut PERMISSIVE ) : autorise un mode à traiter les enregistrements endommagés pendant l’analyse. Il prend en charge les modes suivants qui ne respectent pas la casse. Spark tente d’analyser uniquement les colonnes requises dans le fichier CSV en cas de nettoyage de colonne. Par conséquent, les enregistrements endommagés peuvent être différents en fonction de l’ensemble de champs requis. Ce comportement peut être contrôlé par spark.sql.csv.parser.columnPruning.enabled (activé par défaut).
    • PERMISSIVE: lorsqu’il rencontre un enregistrement endommagé, place la chaîne incorrecte dans un champ configuré par columnNameOfCorruptRecord et définit des champs incorrects sur null. Pour conserver les enregistrements corrompus, un utilisateur peut définir un champ de type chaîne nommé columnNameOfCorruptRecord dans un schéma défini par l’utilisateur. Si un schéma n’a pas de champ, il supprime les enregistrements endommagés au cours de l’analyse. Un enregistrement avec moins ou plus de jetons que le schéma n’est pas un enregistrement endommagé au format CSV. Lorsqu’il rencontre un enregistrement avec moins de jetons que la longueur du schéma, définit null sur des champs supplémentaires. Lorsque l’enregistrement contient plus de jetons que la longueur du schéma, il supprime les jetons supplémentaires.
    • FAILFAST: lève une exception lorsqu’il est conforme aux enregistrements endommagés.
  • columnNameOfCorruptRecord (la valeur par défaut est la valeur spécifiée dans spark.sql.columnNameOfCorruptRecord ) : permet de renommer le nouveau champ avec une chaîne incorrecte créée par le PERMISSIVE mode. Ce remplace spark.sql.columnNameOfCorruptRecord .
  • multiLine (par défaut false ) : analyser un enregistrement, qui peut s’étendre sur plusieurs lignes.
  • locale (par défaut en-US ) : définit les paramètres régionaux en tant que balise de langue au format IETF BCP 47. Par exemple, il est utilisé lors de l’analyse des dates et des horodateurs.
  • lineSep (la valeur par défaut couvre tout \r , \r\n , et \n ) : définit le séparateur de ligne qui doit être utilisé pour l’analyse. La longueur maximale est de 1 caractère.
  • pathGlobFilter: modèle glob facultatif pour inclure uniquement les fichiers avec des chemins d’accès correspondant au modèle. La syntaxe est la suivante org.apache.hadoop.fs.GlobFilter . Elle ne modifie pas le comportement de la découverte de partition.

Exemples

> SELECT from_csv('1, 0.8', 'a INT, b DOUBLE');
 {1,0.8}
> SELECT from_csv('26/08/2015', 'time Timestamp', map('timestampFormat', 'dd/MM/yyyy'));
 {"time":2015-08-26 00:00:00}