【发布时间】:2014-12-02 02:35:46
【问题描述】:
我正在 Amazon EMR 上运行我自己的 map reduce 任务。我看到地图任务失败,我无法找出地图任务失败的原因。
import fileinput
import csv
myDict = {}
csvreader = csv.reader(fileinput.input(mode='rb'), delimiter=',')
for newline in csvreader:
#newline = line.split(',')
if newline[6] not in myDict.keys():
#print 'Zipcode: ' + row[6] + ' Hospital code: ' + row[1]
myDict[newline[6]] = 1
elif newline[6] in myDict.keys():
#print 'value in row '+ str(myDict[row[6]])
myDict[newline[6]] += 1
for key in myDict.keys():
print '%s\t%s' % (str(key), str(myDict[key]))
map 任务是读取作为输入给出的 csv 文件,使用两列中的数据创建键值对。 reduce 任务是聚合它们并打印它们。
以下是在脚本顶部未添加#!/usr/bin/env python 时为maptask 获得的stderr。如果是adde,d stderr 为空,但maptask 失败。:
/mnt/var/lib/hadoop/tmp/nm-local-dir/usercache/hadoop/appcache/application_1417478068297_0008/container_1417478068297_0008_01_000005/./map_zip_hospi.py: line 1: import: command not found
/mnt/var/lib/hadoop/tmp/nm-local-dir/usercache/hadoop/appcache/application_1417478068297_0008/container_1417478068297_0008_01_000005/./map_zip_hospi.py: line 2: import: command not found
/mnt/var/lib/hadoop/tmp/nm-local-dir/usercache/hadoop/appcache/application_1417478068297_0008/container_1417478068297_0008_01_000005/./map_zip_hospi.py: line 3: myDict: command not found
/mnt/var/lib/hadoop/tmp/nm-local-dir/usercache/hadoop/appcache/application_1417478068297_0008/container_1417478068297_0008_01_000005/./map_zip_hospi.py: line 4: syntax error near unexpected token `('
/mnt/var/lib/hadoop/tmp/nm-local-dir/usercache/hadoop/appcache/application_1417478068297_0008/container_1417478068297_0008_01_000005/./map_zip_hospi.py: line 4: `csvreader = csv.reader(fileinput.input(), delimiter=',')
'
我可以从控制台看到地图任务失败。有人可以帮我找到我的代码的错误吗?
【问题讨论】:
标签: hadoop map mapreduce elastic-map-reduce