to_csv(col[, options])
Описание
Функция to_csv()
конвертирует столбец, содержащий структуру, в CSV строку. Можно указать дополнительные опции для настройки форматирования.
Параметры
col
: Column - столбец со структурой для конвертацииoptions
: dict (опционально) - дополнительные опции для форматирования CSV
Возвращаемое значение
String - CSV строка
Пример использования
from pyspark.sql.functions import to_csv, struct, lit
from pyspark.sql.types import StructType, StructField, StringType, IntegerType, DoubleType
# Определяем схему
schema = StructType([
StructField("name", StringType()),
StructField("age", IntegerType()),
StructField("salary", DoubleType())
])
# Создаем DataFrame со структурами
df = spark.createDataFrame([
(("John", 30, 50000.5),),
(("Alice", 25, 60000.0),),
(("Bob", 35, 75000.75),)
], ["struct_data"])
# Конвертируем в CSV
df.select(
"struct_data",
to_csv("struct_data").alias("csv_default"),
to_csv("struct_data", {"sep": "|", "header": "false"}).alias("csv_custom")
).show(truncate=False)
# Результат:
# +------------------+----------------+----------------+
# |struct_data |csv_default |csv_custom |
# +------------------+----------------+----------------+
# |{John, 30, 50000.5}|John,30,50000.5|John|30|50000.5|
# |{Alice, 25, 60000.0}|Alice,25,60000.0|Alice|25|60000.0|
# |{Bob, 35, 75000.75}|Bob,35,75000.75|Bob|35|75000.75|
# +------------------+----------------+----------------+
# Пример с разными типами данных
df = spark.createDataFrame([
(("2023-01-01", 100.5, "expense"),),
(("2023-01-02", 200.0, "income"),)
], ["data"])
df.select(
"data",
to_csv("data").alias("csv")
).show(truncate=False)
Примечания
- Если структура NULL, возвращается NULL
- Для разбора CSV используйте
from_csv()
- Для определения схемы используйте
schema_of_csv()
- Для работы с JSON используйте
to_json()
- Для работы с XML используйте соответствующие функции