强制AWS EMR在S3中解压缩文件

时间:2013-07-05 21:30:00

标签: amazon-web-services mapreduce metadata

我在AWS的S3服务中有一个包含gzip压缩CSV文件的存储桶,但是当存储它们时,它们都保存了元数据Content-Type of text / csv。

现在我正在使用AWS EMR,它不会将它们识别为压缩文件并解压缩它们。我已经查看了EMR的配置选项,但没有看到任何可行的内容......我有近百万个文件,因此重命名它们的元数据值需要一个循环遍历所有文件并重命名元数据值的Boto脚本。

我错过了一些简单的事吗?谢谢!

1 个答案:

答案 0 :(得分:1)

Content-Type不是问题...如果文件是csv,那是正确的,但是如果你将它们存储为gzip,那么你需要设置{{1}在标头元数据中。这样做“应该”触发那些在下载时抓取他们动态枪杀它们的用户......所以你做到了,它应该“只是工作了”。

(我使用Content-Encoding: gzipContent-Type: text/plain以这种方式存储gzip压缩日志文件,当您使用网络浏览器下载时,您获取的文件不再被gzip压缩,因为浏览器会解压缩压缩文件由于Content-Encoding标头而飞。)

但是,既然你已经上传了文件,我确实在谷歌机器上找到了这个,这可能有所帮助:

  

GZipped输入。我的很多输入数据都已被gzip压缩,但幸运的是,如果你在额外的参数部分传递Content-Encoding: gzip,Hadoop会在传递数据之前动态解压缩它们到你的映射器。

http://petewarden.typepad.com/searchbrowser/2010/01/elastic-mapreduce-tips.html