2

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

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

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

4

1 回答 1

1

Content-Type不是问题......如果文件是 csv,那是正确的,但如果您将它们存储为 gzip,那么您需要在标头元数据中进行设置Content-Encoding: gzip。这样做“应该”触发正在获取它们的用户代理,以便在下载它们时即时对其进行压缩......所以如果你这样做了,它应该“刚刚工作”。

(我以这种方式存储 gzip 压缩的日志文件,Content-Type: text/plain并且Content-Encoding: gzip当您使用 Web 浏览器下载它们时,您获得的文件不再被 gzip 压缩,因为由于 Content-Encoding 标头,浏览器会即时解压缩压缩。)

但是,由于您已经上传了文件,我确实在谷歌机器中找到了这个,这可能会有所帮助:

G压缩输入。我的很多输入数据已经被 gzip 压缩,但幸运的是,如果你传入-jobconf stream.recordreader.compression=gzip额外的参数部分,Hadoop 会在将数据传递给映射器之前即时解压缩它们。

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

于 2013-07-08T02:32:07.417 回答