2014-12-02 23 views
0

我在Amazon EMR上運行我自己的地圖縮減任務。我發現地圖任務失敗,我無法找出失敗地圖任務的原因。地圖功能在EMR中的mapreduce運行失敗

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文件,使用兩列中的數據創建鍵值對。減少任務是聚合它們並打印它們。

以下是當不在腳本頂部添加#!/ usr/bin/env python時爲maptask獲取的stderr。如果是ADDE,d標準錯誤是空白,但在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=',') 

'

我可以從地圖上的任務是失敗的控制檯中看到。有人可以幫我找到我的代碼的錯誤?

回答

0

我錯過了一件很平凡的事情,我也看到這個錯誤是其他許多人犯下的錯誤。 以下應該是python腳本的第一行。

#!/usr/bin/env python 
相關問題