2

Possible Duplicate:
ubuntu /usr/bin/env: python: No such file or directory

I'm a new learner of hadoop streaming. And I met a problem learning mapreduce. Here is my code for mapper.py:

#!/usr/bin/env python 

import sys

# input comes from STDIN (standard input)
for line in sys.stdin:
    # remove leading and trailing whitespace
    line = line.strip()
    # split the line into words
    words = line.split()
    # increase counters
    for word in words:
        # write the results to STDOUT (standard output);
        # what we output here will be the input for the
        # Reduce step, i.e. the input for reducer.py
        #
        # tab-delimited; the trivial word count is 1
        print '%s\t%s' % (word, 1)

When I execute the following :

hadoop@Chris-ubuntu:/home/test$ echo "I love China I love ieee I love python" | /home/test/mapper.py 

I got the result:

: No such file or directory

However, I'm sure that the file really exists in that path, which can be seen by ls. So I just wonder how can I solve the problem.

Community
  • 1
  • 1
Chris Lune
  • 21
  • 2
  • 6
    Does [this answer](http://stackoverflow.com/questions/3655306/ubuntu-usr-bin-env-python-no-such-file-or-directory) solve your problem? – Paolo Moretti Nov 15 '12 at 13:13

1 Answers1

0

Python files aren't executable by default, so you will have to tell the python interpreter to run your file:

echo "I love China I love ieee I love python" | python2 /home/test/mapper.py

or, you can make your file executable by typing: chmod +x mapper.py and then run

echo "I love China I love ieee I love python" | /home/test/mapper.py

veiset
  • 1,973
  • 16
  • 16