凌绝鼎 2023-05-26 14:18 采纳率: 33.3%
浏览 9

IDEA运行spark 报错,如何解决?

Exception in thread "main" java.lang.NoSuchMethodError: scala.util.matching.Regex.<init>(Ljava/lang/String;Lscala/collection/Seq;)V
    at scala.collection.immutable.StringLike.r(StringLike.scala:284)
    at scala.collection.immutable.StringLike.r$(StringLike.scala:284)
    at scala.collection.immutable.StringOps.r(StringOps.scala:33)
    at scala.collection.immutable.StringLike.r(StringLike.scala:273)
    at scala.collection.immutable.StringLike.r$(StringLike.scala:273)
    at scala.collection.immutable.StringOps.r(StringOps.scala:33)
    at org.apache.spark.util.Utils$.<init>(Utils.scala:109)
    at org.apache.spark.util.Utils$.<clinit>(Utils.scala)
    at org.apache.spark.SparkConf.loadFromSystemProperties(SparkConf.scala:75)
    at org.apache.spark.SparkConf.<init>(SparkConf.scala:70)
    at org.apache.spark.SparkConf.<init>(SparkConf.scala:59)
    at cn.edu.nbpt.wordcount$.main(wordcount.scala:8)
    at cn.edu.nbpt.wordcount.main(wordcount.scala)

Process finished with exit code 1


  • 写回答

2条回答 默认 最新

  • AllenGd 大数据领域优质创作者 2023-05-26 14:36
    关注

    从报错信息来看,Spark和Scala版本不兼容引起的。建议检查下Spark和Scala版本是否匹配。

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-26 16:05
    关注
    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7716084
    • 你也可以参考下这篇文章:IDEA创建Spark程序,并本地运行
    • 除此之外, 这篇博客: IDEA编写Spark程序中的 本地运行 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • package cn.itcast.sparkhello
      
        
      
        import org.apache.spark.rdd.RDD
      
        import org.apache.spark.{SparkConf, SparkContext}
      
        
      
        
      
        object WordCount {
      
        def main(args: Array[String]): Unit = {
      
          //1.创建SparkContext
      
          val config = new SparkConf().setAppName("wc").setMaster("local[*]")
      
          val sc = new SparkContext(config)
      sc.setLogLevel("WARN")
      
          //2.读取文件
      
          //A Resilient Distributed Dataset (RDD)弹性分布式数据集
      
          //可以简单理解为分布式的集合,但是spark对它做了很多的封装,
      
          //让程序员使用起来就像操作本地集合一样简单,这样大家就很happy了
      
          val fileRDD: RDD[String] = sc.textFile("D:\\授课\\190429\\资料\\data\\words.txt")
      
          //3.处理数据
      
          //3.1对每一行按空切分并压平形成一个新的集合中装的一个个的单词
      
          //flatMap是对集合中的每一个元素进行操作,再进行压平
      
          val wordRDD: RDD[String] = fileRDD.flatMap(_.split(" "))
      
          //3.2每个单词记为1
      
          val wordAndOneRDD: RDD[(String, Int)] = wordRDD.map((_,1))
      
          //3.3根据key进行聚合,统计每个单词的数量
      
          //wordAndOneRDD.reduceByKey((a,b)=>a+b)
      
          //第一个_:之前累加的结果
      
          //第二个_:当前进来的数据
      
          val wordAndCount: RDD[(String, Int)] = wordAndOneRDD.reduceByKey(_+_)
      
          //4.收集结果
      
          val result: Array[(String, Int)] = wordAndCount.collect()
      
          result.foreach(println)
      
        }
      
      }
    • 您还可以看一下 徐培成老师的IDEA版大型Spark2.4架构师系列教程第四季课程中的 01.回顾spark核心组件和逻辑关系图小节, 巩固相关知识点
    评论

报告相同问题?

问题事件

  • 创建了问题 5月26日

悬赏问题

  • ¥20 arcgis制做交通拥堵时变图
  • ¥15 AD20 PCB板步线 这个要怎么步啊
  • ¥50 关于《奇迹世界》1.5版本,数据修改
  • ¥15 请问这个问题如何解决(关键词-File)
  • ¥50 visual studio 2022和EasyX图形化界面
  • ¥15 找一下报错原因,纠正一下
  • ¥50 Cox回归模型Nomogram图制作报错
  • ¥20 SQL如何查询多级用户的数据
  • ¥15 给车牌识别代码加一个识别轮廓长宽比的代码
  • ¥30 商品价格预测的transformer模型优化