Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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 在下面的示例中,如何使用pyspark折叠操作查找max?_Python_Scala_Apache Spark_Pyspark - Fatal编程技术网

Python 在下面的示例中,如何使用pyspark折叠操作查找max?

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约定)的

我是pyspark和python的新手。因此,请帮助我解决这个问题,我需要使用fold和
operator.gt
或编写我们自己的
lambda
函数来找到最大值

下面由我编写的代码抛出了一个错误,即rdd不能被索引。我理解它,但如何传递和比较每个值1,2,0,3与0的值,并找到最大值。 这里0是我的累加器值,1,2,0,3是每次的当前值。 我正在尝试将一个用scala编写的解释折叠的程序转换为python。 需要回答:
('d',3)

  • 适用于特定操作并与数据类型匹配(函数应为或符合Python约定)的用法(可以在不更改最终结果的情况下进行任意次数的合并)。通过使用
    max
    by value,可以使用
    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))