Skip to content

from_csv(col, schema[, options])

Описание

Функция from_csv() разбирает столбец, содержащий CSV строку, в строку с указанной схемой. Можно указать дополнительные опции для настройки парсинга.

Параметры

  • col: Column - столбец с CSV строкой
  • schema: str - схема в формате DDL или StructType
  • options: dict (опционально) - дополнительные опции для парсинга CSV

Возвращаемое значение

Struct - структура с разобранными данными

Пример использования

from pyspark.sql.functions import from_csv, lit
from pyspark.sql.types import StructType, StructField, StringType, IntegerType, DoubleType

# Определяем схему
schema = StructType([
    StructField("name", StringType()),
    StructField("age", IntegerType()),
    StructField("salary", DoubleType())
])

# Создаем DataFrame с CSV строками
df = spark.createDataFrame([
    ("John,30,50000.5",),
    ("Alice,25,60000.0",),
    ("Bob,35,75000.75",)
], ["csv_data"])

# Разбираем CSV строки
df.select(
    "csv_data",
    from_csv("csv_data", schema).alias("parsed")
).show(truncate=False)

# Результат:
# +----------------+------------------+
# |csv_data        |parsed            |
# +----------------+------------------+
# |John,30,50000.5 |{John, 30, 50000.5}|
# |Alice,25,60000.0|{Alice, 25, 60000.0}|
# |Bob,35,75000.75 |{Bob, 35, 75000.75}|
# +----------------+------------------+

# Пример с опциями
df.select(
    "csv_data",
    from_csv(
        "csv_data",
        schema,
        {"sep": "|", "header": "false"}
    ).alias("parsed_with_options")
).show(truncate=False)

Примечания

  • Если строка не соответствует схеме, возвращается NULL
  • Для определения схемы используйте schema_of_csv()
  • Для конвертации структуры в CSV используйте to_csv()
  • Для работы с JSON используйте from_json()
  • Для работы с XML используйте соответствующие функции