【问题标题】:Pyspark - Max / Min ParameterPyspark - 最大/最小参数
【发布时间】:2017-01-02 15:10:33
【问题描述】:

我有一个问题。在 Pyspark 中,当我们需要根据 (Key,Value) 获取总计 (SUM) 时,我们的查询如下所示:

RDD1 = RDD.reduceByKey(lambda x , y: x + y)

当我们需要找到 (Key,Value) 的 MAX / MIN 值时,我们的查询看起来像

RDD1 = RDD.reduceByKey(lambda x , y: x if x[1] >= y[1] else y)

为什么当我们对不使用x[1]Y[1] 的数据求和时,MAX / MIN 也是如此?请澄清疑问。

Rgd 的

【问题讨论】:

    标签: apache-spark pyspark


    【解决方案1】:

    你错了,你把这段代码断章取义了。在这两种情况下,xy 都指的是值。

    lambda x , y: x if x[1] >= y[1] else y
    

    相当于:

    lambda x, y: max(x, y, key=lambda x: x[1])
    

    它通过第二个元素比较值,意味着每个

    • 可索引(实现__getitem__)。
    • 至少有两个元素。

    例子

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 2020-07-06
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      相关资源
      最近更新 更多