我正在尝试做一个简单的任务:我需要使用hadoop流和python将文本文件转换为大写。我想使用textinputformat将文件位置键和文本值传递给Map器。问题是hadoop流自动丢弃文件位置键,这是保持文档顺序所必需的。如何保留输入到Map器的文件位置信息?或者有没有更好的方法使用hadoop流将文档转换为大写?谢谢您。
gxwragnw1#
如果您的工作只是将单个文件大写,那么hadoop不会真正为您提供将文件流式传输到单个计算机、执行大写然后将内容写回hdfs的任何东西。即使有一个巨大的文件(比如1tb),您仍然需要将所有内容都放到一个reducer中,这样当它被写回hdfs时,它就存储在一个连续的文件中。在这种情况下,我会将流作业配置为具有单个Map器文件(将分割最小值和最大值设置为大于文件本身的巨大值),并运行仅Map作业。
1条答案
按热度按时间gxwragnw1#
如果您的工作只是将单个文件大写,那么hadoop不会真正为您提供将文件流式传输到单个计算机、执行大写然后将内容写回hdfs的任何东西。即使有一个巨大的文件(比如1tb),您仍然需要将所有内容都放到一个reducer中,这样当它被写回hdfs时,它就存储在一个连续的文件中。
在这种情况下,我会将流作业配置为具有单个Map器文件(将分割最小值和最大值设置为大于文件本身的巨大值),并运行仅Map作业。