首页 > 解决方案 > 为什么 Eclipse 认为 df.as[CaseClass] 是 Scala Spark 程序中的错误?

问题描述

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

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]为错误。屏幕截图与下面相同。 如何解决这个问题?我知道这不是 Scala 问题,因为它可以在命令行上运行。环境(如在 Eclipse 中):
错误屏幕截图



标签: eclipsescalaapache-sparkscala-ide

解决方案


正如Raphael Roth所建议的(在评论中),我在 main 方法之外定义了案例类,它就像魅力一样工作。

其他解决方案(不使用案例类)也是将数据帧类型转换为数据集,如下所示

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

上述解决方案取自这里


推荐阅读