显然对HDFS来说是新的,甚至不确定要搜索什么来获得帮助。
我的大部分表都位于HDFS中user / hive / warehouse下的数据库中。我想将SELECT结果存储到我具有写访问权限的目录中,因此我将其存储到user / Jon / folder_name中,这样就可以了。
现在如何访问此文件中的数据?工作目录是user / hive / warehouse,我没有在/ Jon / folder_name文件夹中创建一个表(它只是一个文件)。我试图从folder_name运行一个基本的SELECT计数(*),但我不知道从哪里开始工作。
答案 0 :(得分:3)
完成insertion
后,您将在目标目录中获得类似000000_0
的文件。我知道它是有线的,但文件名是000000_0。如果您的查询有多个减少器,那么您将获得多个文件,如000000_0,000001_0,000002_0等。
假设您发出了以下查询,其中包含1个reducer:
hive> INSERT OVERWRITE DIRECTORY '/Jon/folder_name' SELECT * FROM table_name;
现在使用external table
作为其位置创建/Jon/folder_name/000000_0
,然后执行选择。像这样:
hive> CREATE EXTERNAL TABLE table_name2(id INT, name STRING) LOCATION '/Jon/folder_name/000000_0';
然后,
hive> select count(*) from table_name2;
HTH