如何根据插入语句更改Hive表?

时间:2015-09-15 15:45:56

标签: hadoop apache-spark hive

我已将表格声明为:

"CREATE TABLE IF NOT EXISTS Employee 
(primaryKey String, Firstname String, lastName String)" + " ROW FORMAT DELIMITED"
      + " FIELDS TERMINATED BY '\\t'"<br/>
      + " LINES TERMINATED BY '\\n'"<br/>
      + " STORED AS TEXTFILE"

表Employee有3列。如果插入第四个值,即地址,我想更改表。我正在根据另一个表插入值。以下是我的查询。

"INSERT INTO TABLE Employee select primaryKey,Firstname,lastName from oldEmpTable"

此查询正常运行。如果我运行以下查询,则hive不会抱怨,也不会对表进行任何更改。顺便说一句,我正在使用Spark。

"INSERT INTO TABLE Employee select primaryKey,Firstname,lastName,address from oldEmpTable"

我可以根据插入方式更改表吗?

1 个答案:

答案 0 :(得分:0)

使用CREATE TABLE命令设置表模式。将INSERT INTO与附加字段一起使用不会更改架构。您应该重新创建表,或者在使用额外字段执行ALTER TABLE之前使用INSERT来更改架构。