【问题标题】:Insert into table with a MAP data type in Hive在 Hive 中插入具有 MAP 数据类型的表
【发布时间】:2013-04-24 23:39:10
【问题描述】:

我正在尝试使用 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 中执行此操作?

【问题讨论】:

  • 有关您的错误的任何更新?

标签: map streaming hive


【解决方案1】:

没有你的数据样本和全表架构,我无法为你解释错误的原因。

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

....\tkey1|value2,key2|value2\t...other columns\n

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多