schema_of_csv(csv[, options])
Описание
Функция schema_of_csv()
разбирает CSV строку и выводит ее схему в формате DDL. Можно указать дополнительные опции для настройки парсинга.
Параметры
csv
: str - CSV строка для анализаoptions
: dict (опционально) - дополнительные опции для парсинга CSV
Возвращаемое значение
String - схема в формате DDL
Пример использования
from pyspark.sql.functions import schema_of_csv, lit
# Создаем DataFrame с CSV строками
df = spark.createDataFrame([
("name,age,salary\nJohn,30,50000.5",),
("id,name,value\n1,Alice,100",),
("date,amount,category\n2023-01-01,100.5,expense",)
], ["csv_data"])
# Получаем схему
df.select(
"csv_data",
schema_of_csv("csv_data").alias("schema")
).show(truncate=False)
# Результат:
# +--------------------------------+------------------------------------------+
# |csv_data |schema |
# +--------------------------------+------------------------------------------+
# |name,age,salary\nJohn,30,50000.5|STRUCT<name: STRING, age: INT, salary: DOUBLE>|
# |id,name,value\n1,Alice,100 |STRUCT<id: INT, name: STRING, value: INT> |
# |date,amount,category\n2023-01-01,100.5,expense|STRUCT<date: DATE, amount: DOUBLE, category: STRING>|
# +--------------------------------+------------------------------------------+
# Пример с опциями
df.select(
"csv_data",
schema_of_csv(
"csv_data",
{"sep": "|", "header": "true"}
).alias("schema_with_options")
).show(truncate=False)
Примечания
- Если строка не является валидным CSV, возвращается NULL
- Для разбора CSV используйте
from_csv()
- Для конвертации структуры в CSV используйте
to_csv()
- Для работы с JSON используйте
schema_of_json()
- Для работы с XML используйте соответствующие функции