Ошибка: значение min не является членом (Int, Int) - PullRequest
2 голосов
/ 30 ноября 2019

Я пытаюсь создать СДР, который содержит массив кортежей с именами стран в качестве первого элемента и минимальным целым числом кортежа в качестве второго элемента.

У меня есть этот код здесь.

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

Я хочу сохранить переменную для значения, которое выглядит следующим образом:

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

Я пытался использовать этот код, но он выдал 'Значение min не является членом(Int, Int) 'ошибка.

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

Как получить минимум Tuple2[Int, Int]?

1 Ответ

5 голосов
/ 01 декабря 2019

Чтобы вычислить минимум числовых элементов в кортеже (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) }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...