Законный код не компилируется в Scalding

Я пишу работу в MapReduce в Scalding и испытываю трудности с компиляцией кода, который мне кажется вполне законным.

val persistenceBins = List[Int](1000 * 60 * 60, 2 * 1000 * 60 * 60, 4 * 1000 * 60 * 60)
val persistenceValues = persistenceBins.map(bin: Int => (bin, getPersistenceValues(connections, bin)) )

Соединения RichPipe. getPersistenceValues ​​определяется в том же классе, что и код выше, как:

def getPersistenceValues(connections: RichPipe, binSize: Int): RichPipe = { ... }

Я продолжаю получать ошибки:

Error:(45, 87) ')' expected but '(' found.
val persistenceValues = persistenceBins.map(bin: Int => (bin, getPersistenceValues(connections, bin)) )
                                                                                  ^
Error:(45, 107) ';' expected but ')' found.
val persistenceValues = persistenceBins.map(bin: Int => (bin, getPersistenceValues(connections, bin)) )
                                                                                                      ^

Я не могу понять, что происходит. Ошибки кажутся мне бессмысленными. Что я делаю неправильно?

1 ответ

Решение

В вашем случае вы не можете пропустить скобки. Этот код должен помочь вам понять, что не так.

scala> val persistenceBins = List[Int](1000 * 60 * 60, 2 * 1000 * 60 * 60, 4 * 1000 * 60 * 60)
persistenceBins: List[Int] = List(3600000, 7200000, 14400000)

scala> val persistenceValues = persistenceBins.map((bin: Int) => (bin, 0))
persistenceValues: List[(Int, Int)] = List((3600000,0), (7200000,0), (14400000,0))
Другие вопросы по тегам