在Hive中以MAP数据类型插入表



我试图使用hive流作业将数据插入到包含具有MAP数据类型的列的表中。

我已经尝试在表定义中设置所有分隔符,然后以正确的格式从流作业输出数据。

ROW FORMAT DELIMITED FIELDS TERMINATED BY 't'
COLLECTION ITEMS TERMINATED BY ','
MAP KEYS TERMINATED BY '|'
LINES TERMINATED BY 'n'

我还尝试以Hive存储映射({key:value})的确切格式输出数据。

这是我一直看到的错误:

FAILED: Error in semantic analysis: Line 7:23 Cannot insert into target table because column number/types are different 'table_name': Cannot convert column 2 from string to map<string,string>.

有可能在Hive中做到这一点吗?

没有您的数据样本和完整的表模式,我无法为您解释错误的原因。

显然根据您的ROW FORMAT定义;数据中的映射结构应该是(假设大小为2 map):

....tkey1|value2,key2|value2t...other columnsn

最新更新