spark运行简单的demo程序
使用spark可以直接在命令行中启动spark-shell,然后在spark-shell中使用scala进行数据的处理。现在要介绍的是使用ide进行处理程序的编写。
前提:
1、已经安装好spark能够运行起来。
2、了解基本的scala语法
好,下面上货。
1、首先用maven创建一个简单的quickstart程序
2、在app目录下创建创建一个包,在包中创建scala文件(需要注意的是ide需要安装scala插件)。
效果如图:
可能在创建的时候发现没有scala这个选项,这个时候可以直接新建一个文件,后缀名给成scala即可。
3、编写一个简单的scala程序
代码语言:javascript复制package com.xueyoucto.xueyou
import org.apache.spark.{SparkConf, SparkContext}
/**
* Created by Administrator on 2017-01-04.
*/
object First {
def main(args: Array[String]): Unit = {
println(123)
val conf = new SparkConf().setMaster("spark://192.168.1.221:7077").setAppName("firstapp")
val sc = new SparkContext(conf)
val a = sc.parallelize(List(1, 2, 3, 4))
a.persist();
println(a.count())
println("============================")
a.collect().foreach(println)
}
}
注意,需要引入jar包(这里有很多坑:1、最好不要用maven给的jar包,因为maven自动处理了依赖,即使你的spark版本对了,你的scala的版本可能对不上。2、可能出现链接不上spark://192.168.1.221:7077这个出非是你的spark启动有问题,不然还是因为你的spark的jar包和scala的jar包与真实环境不一样。3、可能会出现main方法中没有 new SparkContext(conf),这个也是因为你的jar包版本。这里要感谢http://stackoverflow.com/questions/34518669/unable-to-connect-to-spark-master,在这里面有很好的回答,我给截个图)
4、为了解决上面的问题,直接从spark中拷出jar包即可。然后在ide中引入,我用的是idea,引入在这里:
5、现在可以愉快的运行了,这是运行结果。
中间的日志略了