使用IDEA编辑器搭建spark框架的时候,可能会遇上“找不到或无法加载主类”的问题。搜索出现此类情况的错误,不难发现网上很多信息指出这是因为混合了java 和scala,造成了不编译。但是,如果有使用他们的解决方法,还是失效的小伙伴们,那么可以试试我的办法。
注:Scala版本为2.11.12;Java版本为1.8;Spark版本为2.1.0;系统是MAC OS。
首先检查Scala的配置“File -> Project Structure…”
1)检查了"Platform Settings "项目下的,SDKs、Global Libraies两项都没有问题
2)检查“Project Modules”项目发现缺少相关信息,遂补充,补充后问题得到解决。如图
3)将下图中sacla的版本换成对应jar包的版本2.10
然后apply,点ok,重新编译,即可.
下面是利用scala编写的求topN值得的代码:
import org.apache.spark.{SparkConf,SparkContext}
/**
* @author navy
* @date 2020-09-01 20:24
* @version 1.0
*/
object TopValue {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("TopValue").setMaster("local")
val sc = new SparkContext(conf)
sc.setLogLevel("ERROR")
val lines = sc.textFile("/Users/navyliu/Downloads/Spark/topValue.txt",2)
var num = 0;
val result = lines.filter(line =>(line.trim().length > 0) && (line.split(",").length == 4))
.map(_.split(",")(2))
.map(x =>(x.toInt,""))
.sortByKey(false)
.map(x => x._1).take(3)
.foreach(x=>{
num = num+1
println(num + "\t" +x)
})
}
}
运行后的结果如下图所示:
如有问题,请扫描关注下方二维码: