Compartilhar via


to_csv

Converte uma coluna que contém uma StructType em uma cadeia de caracteres CSV. Gera uma exceção, no caso de um tipo sem suporte.

Sintaxe

from pyspark.sql import functions as sf

sf.to_csv(col, options=None)

Parâmetros

Parâmetro Tipo Description
col pyspark.sql.Column ou str Nome da coluna que contém um struct.
options ditado, opcional Opções para controlar a conversão. Aceita as mesmas opções que a fonte de dados CSV.

Devoluções

pyspark.sql.Column: uma cadeia de caracteres CSV convertida do determinado StructType.

Exemplos

Exemplo 1: convertendo um StructType simples em uma cadeia de caracteres CSV

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|
+-------------+

Exemplo 2: convertendo um StructType complexo em uma cadeia de caracteres CSV

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]"|
+-------------------------+

Exemplo 3: Convertendo um StructType com valores nulos em uma cadeia de caracteres CSV

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|
+-------------+

Exemplo 4: Convertendo um StructType com tipos de dados diferentes em uma cadeia de caracteres CSV

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|
+-------------+