Hadoop 带有二进制类型hbase的配置单元阵列,带有RegexSerDe

Hadoop 带有二进制类型hbase的配置单元阵列,带有RegexSerDe,hadoop,hive,hbase,delimiter,Hadoop,Hive,Hbase,Delimiter,我尝试使用RegexSerDe创建表,因为我的数据是字节,并且字节与默认分隔符冲突 CREATE External TABLE f10(key string, arr array<string> ) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES("field.delimited"="[,]") STORED BY 'org.apache.hadoop

我尝试使用RegexSerDe创建表,因为我的数据是字节,并且字节与默认分隔符冲突

CREATE  External TABLE f10(key string, arr array<string> )
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'  WITH SERDEPROPERTIES("field.delimited"="[,]")
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,info:arr2" ) 
TBLPROPERTIES ("hbase.table.name"="f");
但也有一些错误:

FAILED: Error in metadata: java.lang.RuntimeException: MetaException(message:org.apache.hadoop.hive.serde2.SerDeException org.apache.hadoop.hive.contrib.serde2.RegexSerDe only accepts string columns, but column[1] named arr has type array<string>)
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask  
有什么想法吗? 有好的分隔符吗

或者任何好的服务


hive版本11

存储处理程序有自己的serde和输入/输出格式。我不确定指定自己的serde和存储处理程序是否有效


我正试图找到一个类似问题的答案。hbase表键或值中的多字节分隔符很难用配置单元管理。

错误描述很清楚:RegexSerde需要字符串,但表f10的第1列类型是数组。此外,如果您的数据是二进制文件,则RegexSerde不合适,因为它应该用于处理具有已定义正则表达式的文本数据。也许你可以看看LazyBinarySerDe?