摘要:我可以指定在每个输出文件用hadoop流写入后要对其执行的操作吗?
基本上,这是hadoopmapreduce问题的最简单有效的压缩输出方法的后续。我想要每把钥匙 X
将其值写入 X.txt
文件,压缩为 X.zip
档案文件。但是当我们编写zip输出流时,很难分辨出一个键或结果文件的名称,所以我们最终得到了 X.zip
存档包含 default-name.txt
.
重命名存档内容是一个非常简单的操作,但是我可以把它放在哪里呢?我不想做的是从s3下载所有的拉链,然后上传回来。
1条答案
按热度按时间jq6vz3qz1#
考虑使用自定义的多路输出格式:
基本用例:
此类用于至少具有一个缩减器的map reduce作业。reducer希望根据实际的键将数据写入不同的文件。假设键(或值)对实际键(值)和实际键(值)的所需位置进行编码。
此类用于仅Map作业。作业希望使用一个输出文件名,该输出文件名要么是输入数据的输入文件名的一部分,要么是输入数据的某个派生项。
此类用于仅Map作业。作业希望使用一个同时依赖于键和输入文件名的输出文件名
您还可以控制哪个键指向哪个reducer(partitioner)