我正在尝试运行这个mapper和reducer代码(*免责声明-培训课程解决方案的一部分)
Map器.py
import sys
for line in sys.stdin:
data = line.strip().split("\t")
if len(data) == 6:
date, time, store, item, cost, payment = data
print "{0}\t{1}".format(1, cost)
异径管.py
import sys
sTotal = 0
trans = 0
for line in sys.stdin:
data_mapped = line.strip().split("\t")
if len(data_mapped) != 2:
continue
sTotal += float(data_mapped[1])
trans += 1
print transactions, "\t", salesTotal
不断抛出此错误:
UNDEF/bin/hadoop job -Dmapred.job.tracker=0.0.0.0:8021 -kill job_201404041914_0012
14/04/04 23:13:53 INFO streaming.StreamJob: Tracking URL: http://0.0.0.0:50030/jobdetails.jsp?jobid=job_201404041914_0012
14/04/04 23:13:53 ERROR streaming.StreamJob: Job not successful. Error: NA
14/04/04 23:13:53 INFO streaming.StreamJob: killJob...
Streaming Command Failed!
我尝试过显式调用python函数,也尝试过指定python解释器(i、 e./usr/bin/env(python)
知道哪里出了问题吗?
1条答案
按热度按时间uplii1fm1#
工作失败了,因为你的
reducer.py
,有语法错误。这条线有问题:
没有名为的变量
transactions
以及salesTotal
.如果我在本地执行,我会得到以下错误:
正确的行应该是: