更新时间: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中功能更完善。

相关文档