to_csv
Convertit une colonne contenant un StructType en chaîne CSV. Lève une exception, dans le cas d'un type non pris en charge.
Syntaxe
Python
from pyspark.sql import functions as sf
sf.to_csv(col, options=None)
parameter
parameter | Type | Description |
|---|---|---|
|
| Nom de la colonne contenant une structure. |
| dictionnaire, facultatif | Options pour contrôler la conversion. Accepte les mêmes options que la source de données CSV. |
Renvoie
pyspark.sql.Column: Une chaîne CSV convertie à partir du StructType donné.
Exemples
Exemple 1 : Conversion d'un StructType simple en chaîne CSV
Python
from pyspark.sql import Row, functions as sf
data = [(1, Row(age=2, name='Alice'))]
df = spark.createDataFrame(data, ("key", "value"))
df.select(sf.to_csv(df.value)).show()
Output
+-------------+
|to_csv(value)|
+-------------+
| 2,Alice|
+-------------+
Exemple 2 : conversion d’un StructType complexe en chaîne CSV
Python
from pyspark.sql import Row, functions as sf
data = [(1, Row(age=2, name='Alice', scores=[100, 200, 300]))]
df = spark.createDataFrame(data, ("key", "value"))
df.select(sf.to_csv(df.value)).show(truncate=False)
Output
+-------------------------+
|to_csv(value) |
+-------------------------+
|2,Alice,"[100, 200, 300]"|
+-------------------------+
Exemple 3 : conversion d'un StructType avec des valeurs nulles en une chaîne CSV
Python
from pyspark.sql import Row, functions as sf
from pyspark.sql.types import StructType, StructField, IntegerType, StringType
data = [(1, Row(age=None, name='Alice'))]
schema = StructType([
StructField("key", IntegerType(), True),
StructField("value", StructType([
StructField("age", IntegerType(), True),
StructField("name", StringType(), True)
]), True)
])
df = spark.createDataFrame(data, schema)
df.select(sf.to_csv(df.value)).show()
Output
+-------------+
|to_csv(value)|
+-------------+
| ,Alice|
+-------------+
Exemple 4 : Conversion d'un StructType avec différents types de données en chaîne CSV
Python
from pyspark.sql import Row, functions as sf
data = [(1, Row(age=2, name='Alice', isStudent=True))]
df = spark.createDataFrame(data, ("key", "value"))
df.select(sf.to_csv(df.value)).show()
Output
+-------------+
|to_csv(value)|
+-------------+
| 2,Alice,true|
+-------------+