On this page
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 命令。