错误:值min不是(Int,Int)的成员

时间:2019-11-30 20:39:40

标签: scala tuples rdd minimum

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

我在这里有此代码。

SaveChanges

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

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

我尝试使用此代码,但产生了“值最小值不是(Int,Int)的成员”错误。

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

如何获得最低val test1 = test.map(x => (x._1, x._2.min))

1 个答案:

答案 0 :(得分:5)

要计算元组(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) }