将包含 A StructType 的列转换为 CSV 字符串。 在不支持的类型的情况下引发异常。
Syntax
from pyspark.sql import functions as sf
sf.to_csv(col, options=None)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或 str |
包含结构的列的名称。 |
options |
dict,可选 | 用于控制转换的选项。 接受与 CSV 数据源相同的选项。 |
退货
pyspark.sql.Column:从给定 StructType的 CSV 字符串转换。
例子
示例 1:将简单的结构类型转换为 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|
+-------------+
示例 2:将复杂结构类型转换为 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]"|
+-------------------------+
示例 3:将具有 null 值的 StructType 转换为 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|
+-------------+
示例 4:将具有不同数据类型的结构类型转换为 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|
+-------------+