NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V

发布于 2022-09-12 02:01:01 字数 953 浏览 21 评论 0

最近在学习大数据,然后使用Scala创建Datasets时,运行代码爆出了如下异常:

Exception in thread "main" java.lang.NoSuchMethodError: scala.Product.$init$(Lscala/Product;)V
    at com.shuai7boy.myscalacode.Person.<init>(Test.scala:17)
    at com.shuai7boy.myscalacode.Test$.main(Test.scala:10)
    at com.shuai7boy.myscalacode.Test.main(Test.scala)

我的程序代码如下:

object Test {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder().appName("spark SQL Demo").master("local").getOrCreate()
    import spark.implicits._
    val caseClassDS = Seq(Person("张三", 23)).toDS()
    caseClassDS.show()
  }
}

case class Person(name: String, age: Int)

按照预期应该打印出如下结果

// +----+---+
// |name|age|
// +----+---+
// |张三| 23|
// +----+---+

但是却报错了,然后网上搜了下解决方案都是scala版本问题,但是我看了下我的版本都对着呢。
无效的方法问题.png
请问我这个怎么解决?谁可以帮帮我~叩谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

灵芸 2022-09-19 02:01:01

问题解决了,我仔细对比了下项目,发现了引用了两处,一处使用Maven引用的Spark,一处手动引用的本地包,然后就报错了。去掉了本地宝,都改为了Maven引用就好了。
总结:要看清,不要本地包和Maven包同时使用,这是一个坑。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文