2013-03-04 62 views
0

为什么我们不能将数据导入到hive CLI中,如下所示:hive_test表具有user,comments列。HIve CLI不支持将MySql样式数据导入表

insert into table hive_test (user, comments) 
value ("hello", "this is a test query"); 

蜂巢抛出以下异常在蜂巢CLI

失败:ParseException的线1:28无法识别输入附近SELECT子句中 '(' '用户' ''

我不想通过csv文件导入数据,就像下面的测试静音一样。

load data local inpath '/home/hduser/test_data.csv' into table hive_test; 

回答

4

值得一提的是蜂巢通告“类似SQL的”语法,而不是实际的SQL语法。没有什么特别的理由认为纯粹的SQL查询实际上会在Hive上运行。 HiveQL的DML记录为​​,不支持列规范语法或VALUES子句。但是,它不支持此语法:

INSERT INTO TABLE tablename1 SELECT ... FROM ... 

these test queries推断,你也许能够得到类似如下的工作:

INSERT INTO TABLE hive_test SELECT 'hello', 'this is a test query' FROM src LIMIT 1 

但是,它似乎是蜂巢是不是真的优化用于这种小规模的数据处理。我没有Hive实例来测试这些。

+0

你是什么意思通过'src'?任何其他表名? – 2013-03-04 10:49:27

+0

@KugathasanAbimaran:我认为是这样,从测试用例出发,但任何表都应该工作 – ig0774 2013-03-04 12:36:22

+2

对于仍然好奇的人:INSERT ... VALUES可以从Hive 0.14开始。 – 2014-10-13 16:05:18

0

我想,这是因为user是一个内置的(保留)关键字。

试试这个:

insert into table hive_test ("user", comments) 
value ('hello', 'this is a test query'); 
+0

哎呀,我试过了,没办法。 – 2013-03-04 10:25:29

+0

'[]'在(标准)SQL中无效。你需要使用双引号“''引用保留字 – 2013-03-04 10:30:02

+0

@a_horse_with_no_name感谢您的建议.. – 2013-03-04 10:32:41