Aller au contenu principal

schema_of_csv

Analyse une chaîne CSV et en déduit son schéma au format DDL.

Syntaxe

Python
from pyspark.sql import functions as sf

sf.schema_of_csv(csv, options=None)

parameter

parameter

Type

Description

csv

pyspark.sql.Column ou str

Une chaîne CSV ou une colonne de chaîne de caractères pliable contenant une chaîne CSV.

options

dictionnaire, facultatif

Options pour contrôler l'analyse. Accepte les mêmes options que la source de données CSV.

parameter

Type

Description

csv

pyspark.sql.Column ou str

Une chaîne CSV ou une colonne de chaîne de caractères pliable contenant une chaîne CSV.

options

dictionnaire, facultatif

Options pour contrôler l'analyse. Accepte les mêmes options que la source de données CSV.

Renvoie

pyspark.sql.Column: Une représentation sous forme de chaîne d'un StructType analysé à partir du CSV donné.

Exemples

Exemple 1 : Inférence du schéma d'une chaîne CSV avec différents types de données

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1|a|true'), {'sep':'|'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1|a|true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Exemple 2 : Inférence du schéma d'une chaîne CSV avec des valeurs manquantes

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1||true'), {'sep':'|'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1||true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Exemple 3 : Inférer le schéma d'une chaîne CSV avec un délimiteur différent

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('1;a;true'), {'sep':';'})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv(1;a;true) |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+

Exemple 4 : Inférer le schéma d'une chaîne CSV avec des champs entre guillemets

Python
from pyspark.sql import functions as sf
df = spark.range(1)
df.select(sf.schema_of_csv(sf.lit('"1","a","true"'), {'sep':','})).show(truncate=False)
Output
+-------------------------------------------+
|schema_of_csv("1","a","true") |
+-------------------------------------------+
|STRUCT<_c0: INT, _c1: STRING, _c2: BOOLEAN>|
+-------------------------------------------+