Преобразование карты на спарде

Я применил преобразование карты к нижеприведенной RDD:

sc.parallelize(List((1,10),(2,20),(3,30),(4,40))); 

с двумя разными подписями.

Случай 1:

res0.map({case (x,y)=>(x,y+1)}).collect;

который дает следующий результат:

Array[(Int, Int)] = Array((1,11), (2,21), (3,31), (4,41))

случай 2:

res0.map(case (x,y)=>(x,y+1)).collect;

Что дает ниже ошибку:

ошибка: неправильное начало простого выражения

Могу ли я узнать причину неудачи в случае 2, просто цветочная скобка - это разница между двумя случаями.

Заранее спасибо.

1 ответ

Дело требует {}. В общем случае { case arg => logic } - это то, что в Scala называется частичной функцией.

Вы также можете сделать это, кстати:

val y = RDD.map(a=> (a._1, a._2 + 1)).collect
Другие вопросы по тегам