0
これは似たような質問です。私はいくつかの答えを行ってきたが、誰も働かなかった。だからここに私が引き起こしているのか分からないように私は、エラーをデバッグすることができません、私は私のMapReduceプログラムのマッパーと減速を事を書いていて、私はエラーを取得するには、私のレデューサークラスに2つ以上の値が必要です
Traceback (most recent call last): File "/usr/local/hadoop/./reducer.py", line 10, in desc, count = line.split('\t', 1) ValueError: need more than 1 value to unpack
以下、次のエラーを取得しています問題。以下のMapperとReducerクラスのコードを見つけてください。
マッパーコード:
#!/usr/bin/env python
import sys
for line in sys.stdin:
line = line.strip('')
bYear = line.split(',')
for birthYear in bYear:
print '%s\t%s' % (bYear[6],1)
リデューサーコード:
#!/usr/bin/env python
import sys
current_desc = None
current_count = 0
desc = None
for line in sys.stdin:
line = line.strip()
**desc, count = line.split('\t', 1)** . ---> This is where I'm getting an error.
try:
count = int(count)
except ValueError:
continue
if current_desc == desc:
current_count += count
else:
if current_desc:
# write result to STDOUT
print '%s\t%s' % (current_desc, current_count)
current_count = count
current_desc = desc
if current_desc == desc:
print '%s\t%s' % (current_desc, current_count)
助けてください。
おかげでたくさんに割り当てることはできません!私はちょうど私がCSVファイルを使用していて、それを\ t(タブ)で分割していることに気づいた。私がコンマに変更したとき、それはうまくいった! –