我正在尝试使用语法将数据帧转换为数据集
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类,它就像魅力一样。 另外一个解决方案(不使用case类)是将数据帧类型转换为数据集,如下所示
import org.apache.spark.sql._
val ds: Dataset[Row] = df
上述解决方案取自here