在终端中本地运行mapper.py后出错

时间:2014-12-04 05:15:25

标签: python ubuntu hadoop

我刚开始学习Hadoop。我尝试在它上面运行一个简单的mapreduce作业,但在此之前我尝试在本地检查它。但它的返回错误。请建议任何解决方案。我正在使用Ubuntu 12.04 LTS。

所以代码是用gedit编写的,后面是广告。

import sys

   for line in sys.stdin:

   line = line.strip()

   words = line.split()

   for word in words:

       print '%s\t%s' %(word,1)

然后我在终端写下面的命令来检查mapper是否正常工作

maitreyee@bharti-desktop:~$ echo "foo faa" | /home/maitreyee/Documents/mapper.py

并且终端返回以下错误:

/home/maitreyee/Documents/mapper.py: line 1: import: command not found
/home/maitreyee/Documents/mapper.py: line 5: syntax error near unexpected token `line'
/home/maitreyee/Documents/mapper.py: line 5: `line = line.strip()'

2 个答案:

答案 0 :(得分:3)

您错过了脚本顶部的shebang行。添加这样的东西(无论哪个python对你的机器有意义):

#!/usr/bin/python

这里我在/usr/bin/python

下使用系统python

答案 1 :(得分:0)

需要shebang系列,因为您安装了多个版本的Python,/ usr / bin / env将确保使用的解释器是您环境中的第一个$ PATH。

如果您想了解更多关于在python中编写map reduce代码的知识,可以按照这个步骤进行操作  tutorial