from_csv(col, schema[, options])
Описание
Функция from_csv()
разбирает столбец, содержащий CSV строку, в строку с указанной схемой. Можно указать дополнительные опции для настройки парсинга.
Параметры
col
: Column - столбец с CSV строкойschema
: str - схема в формате DDL или StructTypeoptions
: 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 используйте соответствующие функции