首页 文章

无法在Amazon S3存储桶中下载或读取Hive输出

提问于
浏览
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 Management Console中导航到我的存储桶时,文本文件显示为包含大量文件的文件夹 . 这些文件具有长十六进制字符名称,大0字节 .

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

2 回答

  • 0

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

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

  • 0

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

相关问题