我试图做的MapReduce在Python和我的CSV文件看起来像下面,蟒蛇的MapReduce - 跳过该.csv的第一行中的映射
trip_id taxi_id pickup_time dropoff_time ... total
0 20117 2455.0 2013-05-05 09:45:00 50.44
1 44691 1779.0 2013-06-24 11:30:00 66.78
和我的代码,
import pandas as pd
import numpy as np
from mrjob.job import MRJob
class MRCount(MRJob):
def mapper(self, _, line):
datarow = line.replace(' ','').replace('N/A','').split(',')
trip_id = datarow[0]
total = datarow[14]
total = np.float(total)
yield ((trip_id), (total))
由于我的代码通过所有行映射器,所以它与串线(指数)开始,但我想要做的游戏,总该是浮动,所以当我运行该文件,它得到一个错误
TypeError: float() argument must be a string or a number, not 'generator'
处理映射函数时如何跳过csv文件中的第一行?
通常,将唯一的yield作为没有循环的函数的最后一行是没有意义的。你用'mapper'做什么? –
@StephenRauch如果它是函数内循环体的最后一行怎么办:) – schwobaseggl
@StephenRauch我想在csv文件的每一行中匹配trip_id和total,我有另一个命令行从csv文件逐行传递, python3 test.py --jobconf mapreduce.job.reduces = 1 CSTaxiTrips.csv。我必须在mapper函数中打开csv文件并使用next()函数跳过第一行吗? – TTaa