为什么eclipse认为df.as [CaseClass]是Scala Spark程序中的一个错误?

问题描述 投票:0回答:1

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

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]是错误的。屏幕截图如下。 Error Screen-Shot 如何解决这个问题?我知道它不是Scala问题,因为它适用于命令行。 环境(如在Eclipse中):

  • 比例 - 2.11.11
  • Spark - 2.4.0
  • JRE - 1.8
eclipse scala apache-spark scala-ide
1个回答
0
投票

正如Raphael Roth(在评论中)所建议的那样,我在main方法之外定义了case类,它就像魅力一样。 另外一个解决方案(不使用case类)是将数据帧类型转换为数据集,如下所示

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

上述解决方案取自here

© www.soinside.com 2019 - 2024. All rights reserved.