Hadoop 配置单元视图查询结果?

Hadoop 配置单元视图查询结果?,hadoop,hive,Hadoop,Hive,每当我使用Hive CLI并执行一些查询时,我都会得到一个“OK”或错误,而不是查看表。我理解这可能是因为许多表都非常大,但如果我只想在数据的子集上测试代码/逻辑,如何查看整个表的结果以确保正确性 hive> select * from input; OK Time taken: 0.085 seconds 我最好的猜测是你的表后面没有数据。您是否创建了一个表,却忘记将文件放在正确的hdfs目录中。做一个: hive> describe formatted my_table;

每当我使用Hive CLI并执行一些查询时,我都会得到一个“OK”或错误,而不是查看表。我理解这可能是因为许多表都非常大,但如果我只想在数据的子集上测试代码/逻辑,如何查看整个表的结果以确保正确性

hive> select * from input;
OK
Time taken: 0.085 seconds

我最好的猜测是你的表后面没有数据。您是否创建了一个表,却忘记将文件放在正确的hdfs目录中。做一个:

hive>    describe formatted my_table;
然后查看上面给出的HDFS文件位置:

hive>    !hadoop fs -ls /location/obtained/from/describe/command
你应该看看你的文件。如果没有,请确保将文件放在该目录中,然后重试查询。如果没有,请执行-put或-cp将文件移动到该位置

测试代码

如果要测试某个简单表达式,可以执行以下操作: 要在包含一列和一行的配置单元中创建类似双表,可以执行以下操作:

create table dual (x int);
insert into table dual select count(*)+1 as x from dual;
像在SQL中一样在此表上测试表达式:

select split('3,2,1','\\,') as my_new_array from dual;
除此之外,在您提到的数据子集上测试您的结果是一个好主意。然后,您可以将数据打印到文本文件中,或轻松地打印到excel文件中,或在完成所需的任何其他转换并查看结果后,打印到您可能喜欢的其他格式中:

--grab a subset of the table
CREATE TABLE my_table_subset like my_table;
Insert overwrite table my_table_subset
select * from my_table 
tablesample (1 PERCENT) t;
如果您不喜欢随机子集,则必须构建一个查询来针对您喜欢的子集。然后将其打印为您喜欢的文件格式,如上所述:

hive -e "select * from my_table_subset limit 1000" > /localfileystem/path/myexcel.xls;

Excel作为文件查看器可能有一些局限性,因此其他内容可能更可取。。。当数据变得非常大时,就会出现问题。您可能需要像ultraedit之类的软件。祝你好运希望这能有所帮助。

据我所知,您的表没有任何数据,这就是为什么它不会出现的原因。通常,“选择*”将显示数据,无论大小如何select*'命令基本上等同于“cat”命令,与表的大小无关


如果您想处理数据的一个子集,最好是创建一个分区。如果您的数据是以不可能进行分区的方式存储的,那么我建议创建一个包含大约1000-2000行的临时表,并尝试您的查询

嗨,我有一个类似的问题,并试图解决它。如果您所说的是真的,并且select语句确实没有返回任何行,那么“select COUNT(*)将返回0。但事实并非如此。我只是好起来了。老实说,我没有问题,但在我的语句中包含“set.hive.dynamic.partition=false”之后,我开始发现这些问题。重新设置蜂巢也没有帮助。。。