1
cqlsh:test> alter table example  add  t int;
then , 
bash$dse hive 
hive> use test; desc example;
OK
k       int     from deserializer
v       string  from deserializer

t在 hive 中看不到新列。dse 版本是 3.1.3。

我需要做什么?

4

2 回答 2

7

您不需要删除任何键空间或重新启动 DSE 或 Hive,只需删除 Hive 表并让 DSE 通过发出 use 命令重新创建它。

hive> desc ex;
OK
k   int from deserializer
v   string  from deserializer
Time taken: 0.054 seconds
hive> drop table ex;
OK
Time taken: 0.051 seconds
hive> desc ex;      
OK
Table ex does not exist      
Time taken: 0.051 seconds
hive> use foo;
OK
Time taken: 0.035 seconds
hive> desc ex;
OK
k   int from deserializer
t   int from deserializer
v   string  from deserializer
Time taken: 0.042 seconds

编辑:同样可以通过 DROP TABLE 后跟 SHOW TABLES(即 SHOW TABLES 而不是 USE)来实现。根据 DataStax 文档:http ://www.datastax.com/docs/datastax_enterprise3.1/solutions/about_hive#handling-schema-changes

于 2013-09-25T13:38:48.083 回答
1

删除 HiveMetaStore 键空间和 MetaStore 列族。然后重启DSE,重启HIVE,你应该有一个全新的开始

于 2013-09-21T21:55:51.713 回答