1

我是 AWS 和 Hive 的新手,我正在尝试使用 Hive 分析 Google Ngrams 数据。我试图在 S3 存储桶中将表格另存为制表符分隔的 CSV,但现在我不知道如何查看或下载它以查看我的工作是否正确执行。

我用来创建表的查询是

CREATE EXTERNAL TABLE test_table2 (
 gram string,
 year int,
 occurrences bigint,
 pages bigint,
 books bigint
 )
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE
LOCATION 's3://mybucket/sub-bucket/test-table2.txt';

然后我用数据填充表格:

INSERT OVERWRITE TABLE test_table2
SELECT
 gram,
 year,
 occurrences,
 pages,
 books
FROM
 eng1m_5grams_normed
WHERE
 gram = 'early bird gets the worm';

查询运行良好,我认为一切正常。但是,当我在线导航到 S3 管理控制台中的存储桶时,文本文件显示为包含一堆文件的文件夹。这些文件有很长的十六进制字符名称,大小为 0 字节。

这只是表示为目录的文本文件吗?有没有办法可以查看或下载文件以查看我的查询是否有效?我试图将目录公开以便我可以下载它,但“操作”下拉菜单中的下载按钮仍然是灰色的。

4

2 回答 2

0

在 Hive/S3 中,将 S3 目录视为表。这些目录中包含的文件是那些表(即行)的内容。目录中有多个文件的原因是多个减速器正在编写“表”。

S3 Browser是一个非常好的使用 S3 的工具。

于 2013-05-25T00:11:05.540 回答
0

发生的情况是,很少有行可能符合 where 子句中的谓词。所以很少(或没有)行被选择并发送到输出中(因此是零大小的文件)。EMR 没有提供下载查询结果的简单方法。

于 2013-04-24T20:01:57.023 回答