Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 对两列求和,在MapReduce中计算最大值、最小值和平均值_Python_Hadoop_Mapreduce_Sum - Fatal编程技术网

Python 对两列求和,在MapReduce中计算最大值、最小值和平均值

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

我有一个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, 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))