我使用插入覆盖目录现在我如何访问该文件?

piah890a  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(298)

显然对hdfs来说是新的,甚至不知道该搜索什么来获得帮助。
我的大多数表都在hdfs中user/hive/warehouse下的数据库中。我想把一个select结果存储到一个我有写访问权的目录中,所以我把它存储到user/jon/folder\u name中,这样就行了。
现在如何访问此文件中的数据?工作目录是user/hive/warehouse,我没有在/jon/folder\u name文件夹中创建表(它只是一个文件)。我正在尝试从文件夹名称运行一个基本的select count(*),我不知道从哪里开始工作。

6qfn3psc

6qfn3psc1#

乔恩,我不知道这是不是最好的办法,但肯定能达到目的。
一旦你做完手术 insertion ,您将得到如下文件 000000_0 在目标目录中。我知道是有线的,但文件名是0000000。如果您的查询有多个reducer,那么您将得到多个文件,如000000\u0、000001\u0、000002\u0等等。
假设您发出了以下查询,其中包含1个减速机:

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公司

相关问题