我是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字节。
这只是表示为目录的文本文件吗?有没有办法查看或下载文件以查看我的查询是否有效?我试图将目录公开,以便我可以下载它,但“操作”下拉菜单中的下载按钮仍然是灰色的。
答案 0 :(得分:0)
发生的事情是,很少有行可能符合where子句中的谓词。所以很少(或没有)行被选中并被发送到输出中(因此零大小的文件)。 EMR没有提供一种简单的方法来下载查询结果。
答案 1 :(得分:0)
在Hive / S3中,将S3目录视为表。这些目录中包含的文件是那些表(即行)的内容。你在目录中有多个文件的原因是因为多个reducer正在写“table”。
S3 Browser是一个使用S3的非常好的工具。