Apache spark Pyspark-最大/最小参数
我有一个问题。在Pyspark中,当我们需要根据(键、值)获取总计(和)时,我们的查询如下:Apache spark Pyspark-最大/最小参数,apache-spark,pyspark,Apache Spark,Pyspark,我有一个问题。在Pyspark中,当我们需要根据(键、值)获取总计(和)时,我们的查询如下: RDD1 = RDD.reduceByKey(lambda x , y: x + y) 当我们需要为(Key,value)查找最大/最小值时,我们的查询如下 RDD1 = RDD.reduceByKey(lambda x , y: x if x[1] >= y[1] else y) 为什么我们不使用x[1],Y[1]对数据求和,其中as用于MAX/MIN?。请澄清这个疑问 Rgd的你错了,你把
RDD1 = RDD.reduceByKey(lambda x , y: x + y)
当我们需要为(Key,value)查找最大/最小值时,我们的查询如下
RDD1 = RDD.reduceByKey(lambda x , y: x if x[1] >= y[1] else y)
为什么我们不使用x[1]
,Y[1]
对数据求和,其中as用于MAX/MIN?。请澄清这个疑问
Rgd的你错了,你把这段代码断章取义了。在这两种情况下,
x
和y
均指数值
lambda x , y: x if x[1] >= y[1] else y
相当于:
lambda x, y: max(x, y, key=lambda x: x[1])
它通过第二个元素比较值,表示每个值:
- 是可索引的(实现
)\uuuu getitem\uuuu
- 至少有两个元素
sc.parallelize([(1, ("a", -3)), (1, ("b", 3))]) \
.reduceByKey(lambda x , y: x if x[1] >= y[1] else y).first()
将是(1,('b',3))
,因为3大于-3