Python 对两列求和,在MapReduce中计算最大值、最小值和平均值
我有一个mapper的示例代码,如下所示,键是UCO,值是TaxiTotal,它应该是两列的总和,taxin和TaxiOut,如何对这两列求和 我目前的解决方案taxin+TaxiOut的结果是一个粘贴数,比如333+444=333444,我需要它是777,如何编写代码Python 对两列求和,在MapReduce中计算最大值、最小值和平均值,python,hadoop,mapreduce,sum,Python,Hadoop,Mapreduce,Sum,我有一个mapper的示例代码,如下所示,键是UCO,值是TaxiTotal,它应该是两列的总和,taxin和TaxiOut,如何对这两列求和 我目前的解决方案taxin+TaxiOut的结果是一个粘贴数,比如333+444=333444,我需要它是777,如何编写代码 #! /usr/bin/env python import sys # -- Airline Data # Year, Month, DayofMonth, DayOfWeek, DepTime, CRSDepTime, A
#! /usr/bin/env python
import sys
# -- Airline Data
# Year, Month, DayofMonth, DayOfWeek, DepTime, CRSDepTime, ArrTime, CRSArrTime, UniqueCarrier, FlightNum,
# TailNum, ActualElapsedTime, CRSElapsedTime, AirTime, ArrDelay, DepDelay, Origin, Dest, Distance, TaxiIn,
# TaxiOut, Cancelled, CancellationCode, Diverted, CarrierDelay, WeatherDelay, NASDelay, SecurityDelay, LateAircraftDelay
for line in sys.stdin:
line = line.strip()
unpacked = line.split(",")
Year, Month, DayofMonth, DayOfWeek, DepTime, CRSDepTime, ArrTime, CRSArrTime, UniqueCarrier, FlightNum, TailNum, ActualElapsedTime, CRSElapsedTime, AirTime, ArrDelay, DepDelay, Origin, Dest, Distance, TaxiIn,TaxiOut, Cancelled, CancellationCode, Diverted, CarrierDelay, WeatherDelay, NASDelay, SecurityDelay, LateAircraftDelay = line.split(",")
UCO = "-".join([UniqueCarrier, Origin])
results = [UCO, TaxiIn+TaxiOut]
print("\t".join(results))
将滑行输入+滑行输出转换为:
int(TaxiIn) + int(TaxiOut)
请参见以下示例:
In [1612]: TaxiIn = '333'
In [1613]: TaxiOut = '444'
In [1614]: TaxiIn + TaxiOut
Out[1614]: '333444'
In [1615]: int(TaxiIn) + int(TaxiOut)
Out[1615]: 777
您不能有字符串的数字和,以便将str
转换为int
或float
您的代码应该是:
(为什么不能使用input内置函数?)
line=int(line.strip())
谢谢你的回复,我试过了,但是一旦我使用这个命令,所有变量都会转换成整数,包括变量都应该是字符串。在循环中修改迭代器没有任何作用,但是修改iterable会起作用。如果可能的话,你能帮我解决这个问题吗?我确实缺乏编程方面的知识。非常感谢。
results = [UCO, str(int(TaxiIn) + int(TaxiOut))]
print("\t".join(results))