为什么 Eclipse 将 df.as[CaseClass] 视为 Scala Spark 程序中的错误?

Why eclipse thinks df.as[CaseClass] as an error in Scala Spark program?

我正在尝试使用语法将数据框转换为数据集

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]

但是 eclipse 将 .as[Rule] 突出显示为错误。截图同下。

如何解决这个问题?我知道这不是 Scala 问题,因为它在命令行上运行。

环境(如在 Eclipse 中):

根据 Raphael Roth 的建议(在评论中)我在 main 方法之外定义了 case class 并且它像 charm 一样工作。

还有其他解决方案(without using case class) 是将数据框类型转换为数据集,如下所示

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

以上解决方案摘自here