apache-hive / 3.1.1 / reference / CSV_Serde.html

CSV Serde

Availability

Earliest version CSVSerde is available

CSVSerde 适用于Hive 0.14及更高版本。

Background

CSV SerDe 基于https://github.com/ogrodnek/csv-serde,并已添加到HIVE-7777的 Hive 发行版中。

Limitation

此 SerDe 将所有列都视为 String 类型。即使使用此 SerDe 创建具有非字符串列类型的表,DESCRIBE TABLE 输出也将显示字符串列类型。从 SerDe 中检索类型信息。要将列转换为表中的所需类型,可以在将 CAST 转换为所需类型的表上创建视图。

Usage

此 SerDe 适用于大多数 CSV 数据,但不处理嵌入式换行符。要使用 SerDe,请指定完全限定的类名称 org.apache.hadoop.hive.serde2.OpenCSVSerde。

文档基于原始文档https://github.com/ogrodnek/csv-serde

创建表格,指定 CSV 属性

CREATE TABLE my_table(a string, b string, ...)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = "\t",
   "quoteChar"     = "'",
   "escapeChar"    = "\\"
)   
STORED AS TEXTFILE;

如果未指定,则使用默认的分隔符,引号和转义符

DEFAULT_ESCAPE_CHARACTER \
DEFAULT_QUOTE_CHARACTER  "
DEFAULT_SEPARATOR        ,

有关 SerDes 的一般信息,请参阅《开发人员指南》中的Hive SerDe。另请参阅SerDe,以获取有关 Importing 和输出处理的详细信息。

Versions

CSVSerde 已针对 Hive 0.14 及更高版本进行了构建和测试,并使用与 Hive 发行版 Binding 在一起的Open-CSV 2.3.

Hive Versions Open-CSV Version
Hive 0.14 及更高版本 2.3