本文共 6317 字,大约阅读时间需要 21 分钟。
最近需要个干净的spark项目,之前项目上的项目太过复杂,就索性搭建一个全新的spark-java maven项目,做个记录,免得下次又得找,步骤如下:
目录
1. File-> New -> project -> macen -> 勾选Create From archetype
2. 设置GroupID和ArtifactID (这个你看这写),点击next
3.配置maven,如果不配最后进到项目也可以配置,建议提前配好;file->settings->搜索“maven”->设置User settings file(后期配置)
4.填写该填的内容,确定,最开始没其他东西,很简单,需要自己添加一些内容
=========================此时项目已经差不多块ok了,进行第二阶段(创建目录)
1. 设置项目文档结构
这些名字都手动创建一下(右键new),刚开始没有颜色,都只是个文件夹,不打紧,继续操作
2.file->Project structure -> modules,设置文件夹属性
跟着我的设置,比如:将test文件夹下的Scala变成绿色的Tests,target文件夹变成橘黄色的Excluded
多设置一个东西,添加上scala的依赖,要不然可能会出现new 不了scala文件:
3.设置项目libraries
大致工程已经搭建ok,接下来进行测试,来个单词统计
1.编代码前需要配置maven,这块我把我的maven拿过来,大家参考,都是比较基础的依赖,按需取
4.0.0 sparkword sparkword 1.0-SNAPSHOT jar sparkword piflow-web UTF-8 9.0.0.M0 2.4.0 2.11.8 1.8 com.luhuiguo chinese-utils 1.0 org.scala-lang scala-library ${scala.version} org.scala-lang scala-reflect ${scala.version} org.scala-lang scala-compiler ${scala.version} junit junit 4.11 test org.apache.spark spark-core_2.11 ${spark.version} org.apache.spark spark-sql_2.11 ${spark.version} org.apache.spark spark-hive_2.11 ${spark.version} org.apache.spark spark-yarn_2.11 ${spark.version} org.apache.spark spark-streaming_2.11 ${spark.version} org.apache.spark spark-streaming-kafka-0-10_2.11 ${spark.version} org.apache.spark spark-streaming-flume_2.11 2.3.4 org.mongodb.spark mongo-spark-connector_2.11 2.3.4 org.apache.spark spark-mllib_2.11 ${spark.version} org.apache.kafka kafka-clients 2.4.0 org.apache.kafka kafka_2.11 2.4.0 com.h2database h2 1.4.197 org.apache.httpcomponents httpcore 4.4 io.netty netty-all 4.1.17.Final org.datanucleus datanucleus-core 5.0.1 runtime org.datanucleus datanucleus-api-jdo 5.0.1 compile org.datanucleus datanucleus-rdbms 5.0.1 runtime org.apache.maven.plugins maven-surefire-plugin true net.alchim31.maven scala-maven-plugin 2.11.8 4.2.0 scala-compile-first process-resources add-source compile scala-test-compile process-test-resources testCompile
(这个好长啊,能折叠就好了)
2.新建代码文件,开发代码
右键新建,new->scala class,选择object,name设置一下wordcount,点击OK
将下面一段代码拷贝到生成的文件中wordcount.Scala中
import org.apache.spark.{SparkConf, SparkContext}object wordcount { def main(args: Array[String]): Unit = { //设置本机Spark配置 val conf = new SparkConf(). setAppName("wordCount"). setMaster("local") //创建Spark上下 val sc = new SparkContext(conf) //从文件中获取数据 val input = sc.textFile("C:\\Users\\admin\\Desktop\\test.txt") //分析并排序输出统计结果 input.flatMap(line => line.split(" ")) .map(word => (word, 1)) .reduceByKey((x, y) => x + y) .sortBy(_._2,false) .foreach(println _) }}
这样,项目整体的情况就是这样了,如果有疑问或者不解,请及时留言,如果看到我会第一时间解决。
转载地址:http://mpulf.baihongyu.com/