IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目

方式一:使用Eclipse创建Java项目

1、 新建一个项目:

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第1张图片

2、 选择maven项目:

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第2张图片

3、选择quickstart

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第3张图片

4、填写相关信息

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第4张图片

5、添加maven依赖

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第5张图片

6、写一个经典的WordCount测试一下(Java代码)

Java代码:

public class WordCount {

    public static void main(String[] args) {
        if (args.length != 2) {
            System.out.println("error");
            System.exit(1);
        }

        SparkConf conf = new SparkConf();
        conf.setAppName("java word count");

        // 本地运行
        // conf.setMaster("local") ;

        // 集群模式运行
        conf.setMaster("spark://master:7077");

        JavaSparkContext sc = new JavaSparkContext(conf);

        sc.addJar("D:\\project\\spark\\target\\spark-0.0.1-SNAPSHOT.jar");

        JavaRDD file = sc.textFile(args[0]);

        JavaRDD word = file.flatMap(
                new FlatMapFunction() {

            public Iterator call(String t) throws Exception {
                String[] split = t.split(" ");

                return Arrays.asList(split).iterator();
            }
        });

        JavaPairRDD mapd = word.mapToPair(
                new PairFunction() {

            public Tuple2 call(String t) throws Exception {
                return new Tuple2(t, 1);
            }
        });

        JavaPairRDD result = mapd.reduceByKey(
                new Function2() {

            public Integer call(Integer x, Integer y) throws Exception {

                return x + y;
            }
        });

        result.repartition(1).saveAsTextFile(args[1]);

        sc.close();
        sc.stop();

    }

}

方式二:Intellij IDEA 创建Scala maven项目(Eclipse和此类似)

1、新建一个项目

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第6张图片

2、 Maven项目

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第7张图片

3、填入Maven参数

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第8张图片

4、选择上一步新建的Maven

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第9张图片

5、填写相关参数,然后下一步,直到项目完成

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第10张图片

6、然后开始漫长的等待。。。。。。。。

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第11张图片

7、下载完成后,如果有依赖报错,,,可以到Maven库找到对应的版本,修改版本号即可解决。。。,,,然后添加spark依赖

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0modelVersion>
  <groupId>scala.testgroupId>
  <artifactId>scalaMVNartifactId>
  <version>1.0-SNAPSHOTversion>
  <name>${project.artifactId}name>
  <description>My wonderfull scala appdescription>
  <inceptionYear>2010inceptionYear>
  <licenses>
    <license>
      <name>My Licensename>
      <url>http://....url>
      <distribution>repodistribution>
    license>
  licenses>

  <properties>
    <maven.compiler.source>1.6maven.compiler.source>
    <maven.compiler.target>1.6maven.compiler.target>
    <encoding>UTF-8encoding>
    <scala.tools.version>2.11scala.tools.version>
    <scala.version>2.11.8scala.version>
  properties>

  <dependencies>
    <dependency>
      <groupId>org.scala-langgroupId>
      <artifactId>scala-libraryartifactId>
      <version>${scala.version}version>
    dependency>


    
    <dependency>
      <groupId>org.apache.sparkgroupId>
      <artifactId>spark-core_2.11artifactId>
      <version>2.0.1version>
    dependency>




  dependencies>

  <build>
    <sourceDirectory>src/main/scalasourceDirectory>
    <testSourceDirectory>src/test/scalatestSourceDirectory>
    <plugins>
      <plugin>
        
        <groupId>net.alchim31.mavengroupId>
        <artifactId>scala-maven-pluginartifactId>
        <version>3.2.0version>
        <executions>
          <execution>
            <goals>
              <goal>compilegoal>
              <goal>testCompilegoal>
            goals>
            <configuration>
              <args>
                
                <arg>-dependencyfilearg>
                <arg>${project.build.directory}/.scala_dependenciesarg>
              args>
            configuration>
          execution>
        executions>
      plugin>
      <plugin>
        <groupId>org.apache.maven.pluginsgroupId>
        <artifactId>maven-surefire-pluginartifactId>
        <version>2.13version>
        <configuration>
          <useFile>falseuseFile>
          <disableXmlReport>truedisableXmlReport>
          
          
          <includes>
            <include>**/*Test.*include>
            <include>**/*Suite.*include>
          includes>
        configuration>
      plugin>
    plugins>
  build>
project>

9、然后就可以写一个经典的WordCount了。。。。,如果在运行的时候报错(好像是 -make。。。。什么的),可以到pom.xml文件中找到

             -make:transitive  将其注释或者删除即可

Scala代码:

object WordCount {
  def main(args: Array[String]) {


    if(args.length<1){
      println("参数不正确")
      System.exit(1)
    }

      val conf = new SparkConf().setAppName("word count").setMaster("spark://master:7077")

     val conf = new SparkConf().setAppName("word count").setMaster("local")

      val sc = new SparkContext(conf)
      sc.addJar("D:\\project\\scalaMVN\\out\\artifacts\\scalaMVN_jar\\scalaMVN.jar")


      val file = sc.textFile(args(0))
      val result = file.flatMap(x=>x.split(" ")).map(x=>(x,1)).reduceByKey((x,y)=>x+y)
     result.saveAsTextFile(args(1))
    sc.stop()
  }
}

方式三:利用sbt创建项目

1 、新建项目,,与前面一样,不在赘述。。。。

2、 新建sbt项目

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第12张图片

3、IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第13张图片

IntelliJ IDEA Maven,Eclispe Maven,sbt 创建spark Scala和Java项目_第14张图片

4、老规矩,经典的WordCount,,,,和前面的代码一样,,,,,

PS:个人感觉,用Intellij IDEA + Scala 开发spark项目最为方便。。。。

你可能感兴趣的:(大数据)