更新时间:2026-07-03 GMT+08:00
CSV函数
功能描述
CSV函数用于处理CSV格式的数据。支持原生CSV解析和生成函数,可以在SQL中直接读取和生成CSV格式的字符串。
函数列表
| 函数 | 描述 |
|---|---|
| from_csv(csv_str, schema [, options]) | 将CSV字符串解析为结构体。使用指定的schema解析CSV字符串。 |
| schema_of_csv(csv [, options]) | 推断CSV字符串的DDL格式schema。 |
| to_csv(expr [, options]) | 将结构体转换为CSV字符串。 |
示例
from_csv — 解析CSV字符串
SELECT from_csv('1,Alice,30', 'id INT, name STRING, age INT');
-- {1, Alice, 30}
SELECT from_csv('1|Alice|30', 'id INT, name STRING, age INT', map('delimiter', '|'));
-- {1, Alice, 30} schema_of_csv — 推断CSV的schema
SELECT schema_of_csv('1,Alice,30');
-- STRUCT<col0:INT, col1:STRING, col2:INT>
SELECT schema_of_csv('1,Alice', map('header', 'true'));
-- STRUCT<id:INT, name:STRING> to_csv — 将结构体转为CSV
SELECT to_csv(named_struct('a', 1, 'b', 2, 'c', 3));
-- 1,2,3
SELECT to_csv(named_struct('a', 1, 'b', 2), map('delimiter', '|'));
-- 1|2 注意事项
- from_csv 和 to_csv 是互逆操作。
- options 参数是一个MAP类型,支持CSV格式的各种选项,如 delimiter(分隔符)、header(是否有表头)、quote(引号字符)等。
- schema_of_csv 推断的列名为 col0、col1 等,除非指定 header 选项为 true。
- 这些函数在Spark 3.0+引入,Spark 4.0中功能更完善。
父主题: 内置函数