SCALA中使用Map时报错recursive value xxx needs type
首先我定义了一个map来存放一些连接配置,并且创建sparkConf对象
val config = Map(
"spark.cores" -> "local[*]",
"mongo.uri" -> "mongodb://hdp1:27017/movie_recommender",
"mongo.db" -> "movie_recommender",
"es.httpHosts" -> "hdp1:9200",
"es.transportHosts" -> "hdp1:9300",
"es.index" -> "movie_recommender",
"es.cluster.name" -> "hdp1"
)
//创建sparkConfig
val sparkConf = new SparkConf().setMaster(config("spark.cores")).setAppName("DataLoader")
结果这里报错

找了半天发现是我的代码后面声明了一个隐式变量,而这个隐式变量是main方法外的一个参数类型

结果加载顺序发生了冲突
解决
把隐式变量的类型声明删掉即可

在Scala中配置Spark时遇到一个错误,问题出在使用Map存储配置并尝试创建SparkConf对象时,由于存在一个与Map变量同名的隐式变量导致加载顺序冲突。通过删除隐式变量的类型声明,成功解决了该问题,使得SparkConf能够正确初始化。
1万+

被折叠的 条评论
为什么被折叠?



