Почему eclipse считает df.as [CaseClass] ошибкой в ​​программе Scala Spark? - PullRequest
0 голосов
/ 26 февраля 2019

Я пытаюсь преобразовать фрейм данных в набор данных, используя синтаксис

case class Schema(...)
val ds = df.as[Schema]

Поэтому мой код выглядит как

case class Rule(rule_on: String, rule_operator: String, rule_value: Int, rule_name: String)
val rules_ds = rules_df
   .select("rule_on", "rule_operator", "rule_value", "rule_name")
   .as[Rule]

Но затмение выделяет .as[Rule] как ошибку.Снимки экрана аналогичны приведенным ниже.
Error Screen-Shot
Как решить эту проблему?Я знаю, что это не проблема Scala, поскольку она работает в командной строке.

Среда (как в Eclipse):

  • Scala - 2.11.11
  • Spark - 2,4,0
  • JRE - 1,8

1 Ответ

0 голосов
/ 28 февраля 2019

В соответствии с предложением Рафаэля Рота (в комментариях) я определил класс case вне основного метода, и он работает как charm.

Также другое решение ( без использования класса case ) должен привести тип данных к набору данных, как показано ниже

import org.apache.spark.sql._
val ds: Dataset[Row] = df

Приведенное выше решение было взято из здесь

...