相关疑难解决方法(0)

如何在Hadoop程序中的映射器中获取输入文件名?

如何在映射器中获取输入文件的名称?我有多个输入文件存储在输入目录中,每个映射器可能会读取不同的文件,我需要知道映射器已读取的文件.

hadoop mapreduce

41
推荐指数
4
解决办法
4万
查看次数

在流式hadoop程序中获取输入文件名

在Java中编写程序时,我能够使用FileSplit在mapper类中找到输入文件的名称.

当我用Python编写程序时(使用流式传输?),有相应的方法吗?

我在apache上的hadoop流文档中找到了以下内容:

请参阅配置参数.在执行流作业期间,转换"映射"参数的名称.点(.)变为下划线(_).例如,mapred.job.id变为mapred_job_id,mapred.jar变为mapred_jar.在您的代码中,使用带下划线的参数名称.

但我仍然无法理解如何在我的mapper中使用它.

任何帮助都非常感谢.

谢谢

python streaming hadoop filesplitting input

7
推荐指数
2
解决办法
8442
查看次数

如何在EC2上运行mapreduce作业时获取文件名?

我正在学习弹性mapreduce,并开始使用Amazon Tutorial Section中提供的Word Splitter示例(代码如下所示).该示例为所提供的所有输入文档中的所有单词生成字数.

但是我希望通过文件名获得Word Counts的输出,即仅在一个特定文档中的单词计数.由于字数的python代码从stdin获取输入,我如何判断哪个输入行来自哪个文档?

谢谢.

#!/usr/bin/python

import sys
import re

def main(argv):
  line = sys.stdin.readline()
  pattern = re.compile("[a-zA-Z][a-zA-Z0-9]*")
  try:
    while line:
      for word in  pattern.findall(line):
        print  "LongValueSum:" + word.lower() + "\t" + "1"
      line =  sys.stdin.readline()
  except "end of file":
    return None
if __name__ == "__main__":
  main(sys.argv)
Run Code Online (Sandbox Code Playgroud)

python mapreduce amazon-ec2 amazon-emr

1
推荐指数
1
解决办法
2572
查看次数