我正在使用 MrJob 编写 hadoop 应用程序。我需要使用分布式缓存来访问一些文件。我知道 hadoop 流中有一个选项 -files 但不知道如何在程序中访问它。
谢谢你的帮助。
我认为你必须使用
mrjob.compat.supports_new_distributed_cache_options(版本)
然后使用 -files 和 -archives 而不是 -cacheFile 和 -cacheArchive
也许你会在这里得到更多
您应该在程序中读取文件,就好像这些文件本身在其中一样可用,即该文件与正在运行的代码位于同一目录中的本地文件。
我不擅长 python,因此这里是 ruby 中的示例,mapper.rb
:
begin
file = File.open("my-distributed-cache-file.txt")
while (line = file.gets)
# do something with your file
end
file.close
end
# Rest of mapper code