【问题标题】:Error: Value min is not a member of (Int, Int)错误:值 min 不是 (Int, Int) 的成员
【发布时间】:2020-03-25 22:53:05
【问题描述】:

我正在尝试生成包含元组数组的 RDD,该数组将国家名称作为第一个元素,将元组的最小整数作为第二个元素。

我这里有这段代码。

val test = sc.parallelize(Array(("US", (4,2)), ("France", (1,2)), ("Italy", (2,3))))

我想将一个变量存储为如下所示的值:

Array( ("US", 2), ("France", 1), ("Italy", 2) )

我尝试使用此代码,但它产生了“Value min is not a member of (Int, Int)”错误。

val test1 = test.map(x => (x._1, x._2.min))

如何获得Tuple2[Int, Int]的最小值?

【问题讨论】:

    标签: scala tuples rdd minimum


    【解决方案1】:

    要计算元组(x, y) 中数字元素的最小值,您可以使用x min y

    val test = sc.parallelize(Array(("US", (4,2)), ("France", (1,2)), ("Italy", (2,3))))
    
    test.map(t => (t._1, t._2._1 min t._2._2)).collect
    // res1: Array[(String, Int)] = Array((US,2), (France,1), (Italy,2))
    

    为了可读性,另一种方法是使用case部分函数,​​如下:

    test.map{ case (country, (t1, t2)) => (country, t1 min t2) }
    

    【讨论】:

      猜你喜欢
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多