datastax cqlsh alter table添加列,但是在hive中看不到列,怎么样?

时间:2013-09-20 15:45:54

标签: hadoop cassandra hive datastax-enterprise

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

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

我需要做什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

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