使用python的hadoop流:跟踪行号

6ljaweal  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(403)

我正在尝试做一个简单的任务:我需要使用hadoop流和python将文本文件转换为大写。
我想使用textinputformat将文件位置键和文本值传递给Map器。问题是hadoop流自动丢弃文件位置键,这是保持文档顺序所必需的。
如何保留输入到Map器的文件位置信息?或者有没有更好的方法使用hadoop流将文档转换为大写?
谢谢您。

gxwragnw

gxwragnw1#

如果您的工作只是将单个文件大写,那么hadoop不会真正为您提供将文件流式传输到单个计算机、执行大写然后将内容写回hdfs的任何东西。即使有一个巨大的文件(比如1tb),您仍然需要将所有内容都放到一个reducer中,这样当它被写回hdfs时,它就存储在一个连续的文件中。
在这种情况下,我会将流作业配置为具有单个Map器文件(将分割最小值和最大值设置为大于文件本身的巨大值),并运行仅Map作业。

相关问题