2016-04-18 2 views
-3

Я новичок в Scala, и у меня есть ошибка, которую я не могу понять. Вот мое array из int: (число от 1 до 100)Scala - error: type not found

val rdd = sc.parallelize(1 to 100) 

Далее я написал функцию, которая возвращает значение MAX моего массива:

rdd.reduce((x, y) => x > y ? x : y) 

Но я всегда получаю эту ошибку :

<console>:30: error: not found: type y 
       rdd.reduce((x, y) => x > y ? x : y) 
              ^

Я действительно не знаю, что означает ошибка, поэтому я не могу найти решение. Но если я пользуюсь своей функцией, то это работает:

rdd.reduce((x, y) => if(x > y) x else y) 

Благодарим за ответы!

+0

Что такое 'sc.parallelize'? Это от Искры? – Suma

ответ

4

Там нет ? : оператора в Scala, используйте if вместо:

rdd.reduce((x, y) => if (x > y) x else y) 

Или использовать max вместо построения его по своему усмотрению:

rdd.reduce((x, y) => x max y) 

Или с _ Синтаксис анонимной функции:

rdd.reduce(_ max _) 

Или избегайте сборщиков максимум:

rdd.max