Функция уменьшения искры вызывает "несоответствие типов ошибок" - PullRequest
0 голосов
/ 27 сентября 2018

Я новичок в scala - spark и загрузил мой набор данных в RDD.Вот мой пример набора данных

scala> flightdata.collect
res39: Array[(String, Int)] = Array((DFW,11956), (DTW,588), (SEA,607), (JFK,1595), (SJC,327), (ORD,4664), (PHX,4993), (STL,661),

из вышеуказанного набора данных, мне нужно найти общую сумму.Поэтому я написал так:

scala> flightdata.values.sum
res40: Double = 445827.0

scala> flightdata.map(_._2).reduce( (a,b) => a + b)
res41: Int = 445827

Как value.sum, так и map, используя lower, дают правильный ответ.Но я пытаюсь переписать тот же код кортежа с помощью Reduce.

scala> flightdata.reduce( (s1,s2) => s1._2 + s2._2)
<console>:26: error: type mismatch;
 found   : Int
 required: (String, Int)
       flightdata.reduce( (s1,s2) => s1._2 + s2._2)

это вызывает ошибку.несоответствие типов.почему это вызывает ошибку несоответствия типов

1 Ответ

0 голосов
/ 27 сентября 2018

Это происходит потому, что вы пытаетесь объединить два кортежа, но в результате получите целое число.

Вы должны вернуть кортеж ("", s1._2 + s2._2) вместо s1._2 + s2._2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...