from_csv
Analyse une colonne contenant une chaîne CSV en une ligne avec le schéma spécifié. Retourne null si la chaîne ne peut pas être analysée.
Syntaxe
from pyspark.sql import functions as sf
sf.from_csv(col, schema, options=None)
parameter
parameter | Type | Description |
|---|---|---|
|
| Une colonne ou un nom de colonne au format CSV. |
|
| Une colonne, ou un littéral de chaîne Python avec un schéma au format DDL, à utiliser lors de l'analyse de la colonne CSV. |
| dictionnaire, facultatif | Options pour contrôler l'analyse. Accepte les mêmes options que la source de données CSV. |
Renvoie
pyspark.sql.Column: Colonne de valeurs CSV analysées.
Exemples
Exemple 1 : Analyse d'une chaîne CSV simple
from pyspark.sql import functions as sf
data = [("1,2,3",)]
df = spark.createDataFrame(data, ("value",))
df.select(sf.from_csv(df.value, "a INT, b INT, c INT")).show()
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+
Exemple 2 : Utilisation de schema_of_csv pour inférer le schéma
from pyspark.sql import functions as sf
data = [("1,2,3",)]
value = data[0][0]
df.select(sf.from_csv(df.value, sf.schema_of_csv(value))).show()
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+
Exemple 3 : Ignorer les espaces blancs de début dans la chaîne CSV
from pyspark.sql import functions as sf
data = [(" abc",)]
df = spark.createDataFrame(data, ("value",))
options = {'ignoreLeadingWhiteSpace': True}
df.select(sf.from_csv(df.value, "s string", options)).show()
+---------------+
|from_csv(value)|
+---------------+
| {abc}|
+---------------+
Exemple 4 : Analyse d'une chaîne CSV avec une valeur manquante
from pyspark.sql import functions as sf
data = [("1,2,",)]
df = spark.createDataFrame(data, ("value",))
df.select(sf.from_csv(df.value, "a INT, b INT, c INT")).show()
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, NULL}|
+---------------+
Exemple 5 : Analyse d'une chaîne CSV avec un délimiteur différent
from pyspark.sql import functions as sf
data = [("1;2;3",)]
df = spark.createDataFrame(data, ("value",))
options = {'delimiter': ';'}
df.select(sf.from_csv(df.value, "a INT, b INT, c INT", options)).show()
+---------------+
|from_csv(value)|
+---------------+
| {1, 2, 3}|
+---------------+