apache-hive / 3.1.1 / reference / MultiDelimitSerDe.html

Introduction

HIVE-5871中引入的 MultiDelimitSerDe 允许用户在创建表时将多字符字符串指定为字段定界符。

Version

Hive 0.14.0 及更高版本。

Hive QL 语法

您可以在创建表语句中使用 MultiDelimitSerDe,如下所示:

CREATE TABLE test (
 id string,
 hivearray array<binary>,
 hivemap map<string,int>) 
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.MultiDelimitSerDe'                  
WITH SERDEPROPERTIES ("field.delim"="[,]","collection.delim"=":","mapkey.delim"="@");

其中 field.delim 是字段定界符,collection.delim 和 mapkey.delim 分别是集合项和键值对的定界符。

HIVE-20619在 4.0.0 版中将 MultiDelimitSerDe 移至 hive.serde2,因此用户无需将 hive-contrib JAR 安装到 HiveServer2 辅助目录中。

Limitations

  • 在定界符中,field.delim 是必需的,可以是多个字符,而 collection.delim 和 mapkey.delim 是可选的,仅支持单个字符。

  • 不支持嵌套的复杂类型,例如 Array<Array>。

  • 要在 Hive 版本 4.0.0 之前使用 MultiDelimitSerDe,您必须将 hive-contrib jar 添加到 Classpath 中,例如使用 add jar 命令。