Python 在下面的示例中,如何使用pyspark折叠操作查找max?
我是pyspark和python的新手。因此,请帮助我解决这个问题,我需要使用fold和Python 在下面的示例中,如何使用pyspark折叠操作查找max?,python,scala,apache-spark,pyspark,Python,Scala,Apache Spark,Pyspark,我是pyspark和python的新手。因此,请帮助我解决这个问题,我需要使用fold和operator.gt或编写我们自己的lambda函数来找到最大值 下面由我编写的代码抛出了一个错误,即rdd不能被索引。我理解它,但如何传递和比较每个值1,2,0,3与0的值,并找到最大值。 这里0是我的累加器值,1,2,0,3是每次的当前值。 我正在尝试将一个用scala编写的解释折叠的程序转换为python。 需要回答:('d',3) 适用于特定操作并与数据类型匹配(函数应为或符合Python约定)的
operator.gt
或编写我们自己的lambda
函数来找到最大值
下面由我编写的代码抛出了一个错误,即rdd不能被索引。我理解它,但如何传递和比较每个值1,2,0,3与0的值,并找到最大值。
这里0是我的累加器值,1,2,0,3是每次的当前值。
我正在尝试将一个用scala编写的解释折叠的程序转换为python。
需要回答:('d',3)
- 适用于特定操作并与数据类型匹配(函数应为或符合Python约定)的用法(可以在不更改最终结果的情况下进行任意次数的合并)。通过使用
by value,可以使用max
和伪键:float(“-Inf”)
zero = (None, float("-Inf"))
- 要减少使用
键的
:max
from functools import partial from operator import itemgetter op = partial(max, key=itemgetter(1))
data.fold(zero, op)
('d',3)
当然,在实践中,您可以使用RDD.max
data.max(key=itemgetter(1))
('d',3)
您了解什么是lambda以及折叠的工作原理吗?另一个提示:您需要的实际上不是一个简单的最大值(尽管它将涉及计算最大值),因为您不仅需要最大值,还需要包含该值的整行。
data.max(key=itemgetter(1))