2013-04-21 55 views
1

我是AWS和Hive的新手,我试图使用Hive来分析Google Ngrams数据。我试图在S3存储桶中将制表保存为制表符分隔的CSV,但现在我不知道如何查看它或下载它以查看我的作业是否正确执行。无法下载或阅读Amazon S3存储桶中的Hive输出

我用来创建该表的查询是

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字节。

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

回答

0

发生了什么事情是,很少的行可能会限制where子句中的谓词。所以很少(或没有)行被选择并输出到输出中(因此也是零大小的文件)。 EMR不提供简单的方法来下载查询结果。

0

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

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

相关问题