0
Я использую следующий код Python в MapReduce:
from mrjob.job import MRJob
from mrjob.step import MRStep
class productRevenue(MRJob):
#each input lines consists of product, productCategory, price, and paymentMode
def mapper_get_product(self, _, line):
# create a key-value pair with key: product and value: price
line_cols = line.split(',')
yield line_cols[1], float(line_cols[2])
def combiner_count_product(self, product, counts):
# consolidates all key-value pairs of mapper function (performed at mapper nodes)
yield product, sum(counts)
def reducer_count_product(self, product, counts):
# final consolidation of key-value pairs at reducer nodes
yield None, '${:,.2f}'.format(sum(counts), product)
def reducer_find_max(self, _, product_count_pairs):
yield max(product_count_pairs)
def steps(self):
return [
MRStep(mapper=self.mapper_get_product,
combiner=self.combiner_count_product,
reducer=self.reducer_count_product),
MRStep(reducer=self.reducer_find_max)
]
if __name__ == '__main__':
productRevenue.run()
Я получаю ошибку: ValueError: слишком много значений для распаковки (ожидается 2), но я не могу 'не понимаю, почему.Какие-либо предложения?Код строки cmd, который я запускаю: python test.py data.csv. CSV можно скачать здесь https://users.cs.fiu.edu/~prabakar/database/4722sp19/abarr054-3495916/