Teilen über


to_csv

Konvertiert eine Spalte mit einer StructType in eine CSV-Zeichenfolge. Löst eine Ausnahme im Fall eines nicht unterstützten Typs aus.

Syntax

from pyspark.sql import functions as sf

sf.to_csv(col, options=None)

Die Parameter

Parameter Typ Description
col pyspark.sql.Column oder str Name der Spalte, die eine Struktur enthält.
options Diktat, optional Optionen zum Steuern der Konvertierung. Akzeptiert die gleichen Optionen wie die CSV-Datenquelle.

Rückkehr

pyspark.sql.Column: Eine CSV-Zeichenfolge, die aus der angegebenen StructTypeZeichenfolge konvertiert wurde.

Examples

Beispiel 1: Konvertieren eines einfachen Strukturtyps in eine CSV-Zeichenfolge

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()
+-------------+
|to_csv(value)|
+-------------+
|      2,Alice|
+-------------+

Beispiel 2: Konvertieren eines komplexen Strukturtyps in eine CSV-Zeichenfolge

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)
+-------------------------+
|to_csv(value)            |
+-------------------------+
|2,Alice,"[100, 200, 300]"|
+-------------------------+

Beispiel 3: Konvertieren eines StructType-Typs mit NULL-Werten in eine CSV-Zeichenfolge

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()
+-------------+
|to_csv(value)|
+-------------+
|       ,Alice|
+-------------+

Beispiel 4: Konvertieren eines StructType-Typs mit unterschiedlichen Datentypen in eine CSV-Zeichenfolge

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()
+-------------+
|to_csv(value)|
+-------------+
| 2,Alice,true|
+-------------+