0

显然是 HDFS 的新手,甚至不确定要搜索什么来获得帮助。

我的大部分表都在 HDFS 的用户/配置单元/仓库下的数据库中。我想将 SELECT 结果存储到我有写入权限的目录中,所以我将它存储到 user/Jon/folder_name 中,这样就可以了。

现在如何访问此文件中的数据?工作目录是 user/hive/warehouse,我没有在 /Jon/folder_name 文件夹中创建表(它只是一个文件)。我正在尝试从 folder_name 运行基本的 SELECT count(*),但我不知道从哪里开始让它工作。

4

1 回答 1

3

乔恩,我不知道这是否是最好的方法,但它肯定会达到目的。

完成后insertion,您将000000_0在目标目录中获得一个类似的文件。我知道它是有线的,但文件名是 000000_0。如果您的查询有超过 1 个减速器,那么您将获得多个文件,例如 000000_0、000001_0、000002_0 等。

假设您发出了以下具有 1 个 reducer 的查询:

hive> INSERT OVERWRITE DIRECTORY '/Jon/folder_name' SELECT * FROM table_name;

现在创建一个external tableusing/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;

高温高压

于 2013-06-12T20:04:16.877 回答