【发布时间】:2016-05-01 06:28:59
【问题描述】:
我的数据保存在 Spark RDD 中,其结构如下:
survivors.take(3)
Out[45]:
[{'Age': '38',
'Cabin': 'C85',
'Embarked': 'C',
'Fare': '71.2833',
'Name': 'Cumings, Mrs. John Bradley (Florence Briggs Thayer)',
'Parch': '0',
'PassengerId': '2',
'Pclass': '1',
'Sex': 'female',
'SibSp': '1',
'Survived': '1',
'Ticket': 'PC 17599'},
{'Age': '26',
'Cabin': '',
'Embarked': 'S',
'Fare': '7.925',
'Name': 'Heikkinen, Miss. Laina',
'Parch': '0',
'PassengerId': '3',
'Pclass': '3',
'Sex': 'female',
'SibSp': '0',
'Survived': '1',
'Ticket': 'STON/O2. 3101282'},
{'Age': '35',
'Cabin': 'C123',
'Embarked': 'S',
'Fare': '53.1',
'Name': 'Futrelle, Mrs. Jacques Heath (Lily May Peel)',
'Parch': '0',
'PassengerId': '4',
'Pclass': '1',
'Sex': 'female',
'SibSp': '1',
'Survived': '1',
'Ticket': '113803'}]
我想使用 reduce 计算上述字典的“年龄”列的总和。我正在尝试这样做:
survivors.reduce(lambda row, acc: acc + float(row['Age']))
但是,我没有任何运气。我不是python专家,所以也许这是一个python问题。
【问题讨论】:
-
你只有一个论据。 Reduce 方法需要两个至少两个参数。您将此方法称为reduce(函数,列表)。阅读此docs.python.org/2/library/functions.html#reduce
标签: python apache-spark pyspark reduce rdd