您现在的位置是:首页 > 博文答疑 > IntelliJ IDEA下第一个SPARK程序博文答疑
IntelliJ IDEA下第一个SPARK程序
Leo2017-05-15【8】
简介Windows 平台 IntelliJ IDEA下第一个SPARK程序,直接读本地文件
准备工作
1,安装JDK 1.8并配置(配置环境变量)
2,下载和安装IntelliJ IDEA(无需配置环境变量)
3,下载scala插件 点击 file->setting

选择Install JetBrains plugins,并搜索scala如下图,找到Scala后直接点击install进行安装

以上就是准备工作了,很简单。
接下来就是项目的创建和第一个Spark程序:
1,创建一个SBT项目,如果愿意用maven的也是可以的。
路径:File->New->Project后选择刚刚安装的scala下的SBT

接下来就是指定名字和选择scala,java的版本。
在新建project下:main->scala 右键 创建scala类

给新建文件取名字,修改类型为Object

好了,接下来修改下配置文件build.sbt文件,让项目可以引入依赖。我引用了很多,这里用不到,但是后面陆续会被用到
name := "SBTTest"
version := "1.0"
scalaVersion := "2.11.10"
val overrideScalaVersion = "2.11.8"
val sparkVersion = "2.0.0"
val sparkXMLVersion = "0.3.3"
val sparkCsvVersion = "1.4.0"
val sparkElasticVersion = "2.3.4"
val sscKafkaVersion = "2.0.1"
val sparkMongoVersion = "1.0.0"
val sparkCassandraVersion = "1.6.0"
ivyScala := ivyScala.value map {
_.copy(overrideScalaVersion = true)
}
resolvers ++= Seq(
"All Spark Repository -> bintray-spark-packages" at "https://dl.bintray.com/spark-packages/maven/"
)
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % sparkVersion exclude("jline", "2.12"),
"org.apache.spark" %% "spark-sql" % sparkVersion excludeAll(ExclusionRule(organization = "jline"), ExclusionRule("name", "2.12")),
"org.apache.spark" %% "spark-hive" % sparkVersion,
"org.apache.spark" %% "spark-yarn" % sparkVersion,
"com.databricks" %% "spark-xml" % sparkXMLVersion,
"com.databricks" %% "spark-csv" % sparkCsvVersion,
"org.apache.spark" %% "spark-graphx" % sparkVersion,
"org.apache.spark" %% "spark-catalyst" % sparkVersion,
"org.apache.spark" %% "spark-streaming" % sparkVersion
)配置完后,保存并refresh。几十分钟后refresh结束后可以看到项目下面被下载了很多依赖的包。包多,请保持良好的网络环境。
最后可以写我们第一个SPARK程序里.MyPark.scala
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object MySpark {
def main(args: Array[String]): Unit ={
//参数检查
if(args.length < 1){
System.err.println("Usage MySpark input")
System.exit(1)
}
//获取参数
val input=args(0)
//创建scala版本的SparkContext
val conf=new SparkConf().setAppName("MySpark").setMaster("local")
val sc=new SparkContext(conf)
//获取数据
val lines=sc.textFile(input)
//进行相关计算
lines.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect().foreach(println)
}
}为了确保有足够的内存,防止内存溢出,请修改running时的内容空间,我这里设置1024M,由于我们程序中要求有至少一个输入数据,我输入是本地文件"D:/111.txt".设置路径:run->edit configaration,如下图

保存后直接跑程序就可以了,右键->run "MySpark" “MySpark”是我这里的程序名字.
(hid6,1) (time,,1) (pass,1) (frightened4.,1) (woods.,1) (ran5,1) (and,4) (safe,1) (near,2) Process finished with exit code 0
输出结果太长,只截了最后一部分. 这样是不是很简单?