Skip to content

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 используйте соответствующие функции