将键值加载到配置单元中的映射中

时间:2015-08-26 16:30:43

标签: hadoop hive hiveql

我有一个Table1表,其中包含5个coloumns,表2有3列

DESCRIBE Table1;

col1 int
col2 int
col3 int
col4 int
col5 int

DESCRIBE Table2;

col1 int
col2 int
mapcol map<string, int>

我现在想要将数据从Table1复制到Table2,其中col3,col4,col5将作为键值对存储在mapcol中。像mapcol&lt; col3:value_of_col3,col4:value_of_col4,col5:value_of_col5&gt;

我尝试使用INSERT INTO直接从表1复制到表2,但它不起作用。

我使用的查询是这样的

INSERT INTO TABLE Table2 SELECT
t1.col1 AS col1,
t1.col2 AS col2,
t1.col3 AS mapcol ["col3"]
FROM Table1 t1

Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j.properties
FAILED: NullPointerException null

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

找到一个快速而肮脏的方法! 我们可以通过在hive中使用string_to_map函数来完成此操作。但是,我们必须将地图更改为map才能使用string_to_map。