Не найдены последствия для доказательства параметров - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть строка кода в приложении scala, которая берет фрейм данных с одним столбцом и двумя строками и присваивает их переменным start и end:

val Array(start, end) = datesInt.map(_.getInt(0)).collect()

Этот код работает нормально при запуске в REPL, но когда я пытаюсь поместить ту же строку в объект scala в Intellij, он вставляет серый (?: Encoder[Int]) перед оператором .collect() и показывает встроенную ошибку No implicits found for parameter evidence$6: Encoder[Int]

Я довольно новичок в scala и не знаю, как решить эту проблему.

1 Ответ

1 голос
/ 08 апреля 2020

Spark необходимо знать, как сериализовать типы JVM для отправки их от рабочих к мастеру. В некоторых случаях они могут генерироваться автоматически, а для некоторых типов существуют явные реализации, написанные разработчиками Spark. В этом случае вы можете неявно передать их. Если ваш SparkSession назван spark, то вы пропустите следующую строку:

import spark.implicits._

Поскольку вы новичок в Scala: подразумеваются параметры, которые вам не нужно явно передавать. В вашем примере функция map требует Encoder[Int]. Добавив этот импорт, он будет включен в область и, таким образом, автоматически передан функции map.

Проверьте Scala документацию , чтобы узнать больше.

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