hive 查看查询结果?

hive view query results?

每当我使用 Hive CLI 并执行一些查询时,我都无法查看 table,而只是收到 "OK" 或错误。我知道这可能是因为许多 table 非常大,但如果我只想在数据子集上测试我的 code/logic,我如何查看整个 table 结果以确保正确性?

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

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

hive>    describe formatted my_table;

然后查看上面给出的HDFS文件位置:

hive>    !hadoop fs -ls /location/obtained/from/describe/command

您应该会看到您的文件。如果不是,请确保将文件放在该目录中并再次尝试查询。如果没有,请执行 -put 或 -cp 将文件移动到该位置。

测试代码

如果您想测试一些简单的表达式,可以执行以下操作: 要在一列一行的配置单元中创建类似 table 的对偶,您可以执行以下操作:

create table dual (x int);
insert into table dual select count(*)+1 as x from dual;

像在 SQL:

中那样在 table 上测试表达式
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 之类的软件或其他软件。祝你好运!希望这有帮助。

据我了解,您的 table 没有任何数据,这就是它没有来的原因。通常,无论大小如何,'select *' 都会显示数据。 'select *' 命令基本上等同于 'cat' 命令并且与你的 [= 的大小无关22=]s.

如果您想处理数据的一个子集,最好的办法是创建一个分区。如果您的数据以无法分区的方式存储,那么我建议创建一个包含 1000-2000 行的临时 table 并尝试对其进行查询。