to_csv
StructTypeを含む列を CSV 文字列に変換します。サポートされていない型の場合は例外をスローします。
構文
Python
from pyspark.sql import functions as sf
sf.to_csv(col, options=None)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 構造体を含む列の名前。 |
| 辞書(オプション) | 変換を制御するためのオプション。CSV データソースと同じオプションを受け入れます。 |
戻り値
pyspark.sql.Column: 指定されたStructTypeから変換された CSV 文字列。
例
例 1 : 単純な StructType から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|
+-------------+
例2 : 複雑なStructTypeを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]"|
+-------------------------+
例3 : null値を持つStructTypeを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|
+-------------+
例4 : 異なるデータ型のStructTypeを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|
+-------------+