idea关联scala与spark开发(全)

前面Windows下已经安装好本地2.11.11版本的scala、spark-2.4.3-bin-hadoop2.7版本的spark、hadoop2.7.7本地版本了,没安装的先去安装一下先 scala的Windows本地安装 ; spark的Windows本地安装;hadoop的Windows本地安装

1.idea上安装scala插件

按照箭头指示操作
在这里插入图片描述
装好之后重启idea

2. 添加scala框架

创建项目:文件->新建->项目->名称和位置,java,maven->创建
在这里插入图片描述
在这里插入图片描述
添加scala框架支持:右键->添加框架支持->下拉找到scala,点击并确定
在这里插入图片描述
在这里插入图片描述

3. 创建scala案例运行测试

在main和test文件夹下建立scala文件夹
在这里插入图片描述
将main目录下的scala目录标记为源代码根目录
在这里插入图片描述
新建scala类,编写案例进行测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 添加spark依赖包,运行spark案例

添加依赖包:文件->项目结构->
在这里插入图片描述
在这里插入图片描述
找到你安装本地spark目录下的jars包文件,点击确定,添加进去
在这里插入图片描述
之后你会看见这里多了jars目录,这是运行需要的库
在这里插入图片描述
创建test2运行spark程序案例并运行:
在这里插入图片描述
代码:

import org.apache.spark.{SparkConf, SparkContext}  
  
object test2 {  
  def main(args: Array[String]): Unit = {  
    val conf = new SparkConf().setAppName("WordCount").setMaster("local[2]")  
    val sc: SparkContext = new SparkContext(conf)  
    val line = sc.textFile("F:\\test.txt")  
  
    val word = line.flatMap(_.split(" "))  
  
    val tup  = word.map((_,1))  
    val reduced = tup.reduceByKey(_+_)  
    val res = reduced.sortBy(_._2,false)  
    println(res.collect.toBuffer)  
    res.saveAsTextFile("./TestWord")  
    sc.stop()  
  
  }  
}

txt文件:
hello hello world scala java Python
java hello c++ c kafka flume hadoop sqoop
supervisor redis hive hive hbase hbase zookeeper hive hdfs hdfs hdfs
大数据 大数据 大数据 程序员

运行结果:
在这里插入图片描述
至此,已做好环境准备。

另外,如果关于需要配置pom.xml,提供以下参考文件,对应版本修改一下就好了:

<?xml version="1.0" encoding="UTF-8"?>  
<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/xsd/maven-4.0.0.xsd">  
    <modelVersion>4.0.0</modelVersion>  
  
    <!--设置自己的groupID-->  
    <groupId>org.example</groupId>  
    <artifactId>sparkDemo</artifactId>  
    <version>1.0-SNAPSHOT</version>  
  
    <!--设置依赖版本号-->  
    <properties>  
        <scala.version>2.11.12</scala.version>  
        <hadoop.version>2.7.3</hadoop.version>  
        <spark.version>2.4.0</spark.version>  
    </properties>  
    <dependencies>        <!--Scala-->  
        <dependency>  
            <groupId>org.scala-lang</groupId>  
            <artifactId>scala-library</artifactId>  
            <version>${scala.version}</version>  
        </dependency>        <!--Spark-->  
        <dependency>  
            <groupId>org.apache.spark</groupId>  
            <artifactId>spark-core_2.11</artifactId>  
            <version>${spark.version}</version>  
        </dependency>        <dependency>            <groupId>org.apache.spark</groupId>  
            <artifactId>spark-sql_2.11</artifactId>  
            <version>${spark.version}</version>  
        </dependency>        <dependency>            <groupId>mysql</groupId>  
            <artifactId>mysql-connector-java</artifactId>  
            <version>5.1.47</version>  
        </dependency>        <!--Hadoop-->  
        <dependency>  
            <groupId>org.apache.hadoop</groupId>  
            <artifactId>hadoop-client</artifactId>  
            <version>${hadoop.version}</version>  
        </dependency>  
        <!--  https://mvnrepository.com/artifact/com.google.code.gson/gson  
         <dependency>             <groupId>com.google.code.gson</groupId>             <artifactId>gson</artifactId>             <version>2.8.0</version>         </dependency>  
         &lt;!&ndash; https://mvnrepository.com/artifact/org.apache.kafka/kafka &ndash;&gt;         <dependency>             <groupId>org.apache.kafka</groupId>             <artifactId>kafka_2.11</artifactId>             <version>1.0.0</version>         </dependency>-->  
        <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-mllib -->        <dependency>  
            <groupId>org.apache.spark</groupId>  
            <artifactId>spark-mllib_2.11</artifactId>  
            <version>${spark.version}</version>  
        </dependency>    </dependencies>  
    <build>        <sourceDirectory>src/main/scala</sourceDirectory>  
        <testSourceDirectory>src/test/scala</testSourceDirectory>  
  
        <plugins>            <plugin>                <groupId>net.alchim31.maven</groupId>  
                <artifactId>scala-maven-plugin</artifactId>  
                <version>3.2.2</version>  
                <executions>                    <execution>                        <goals>                            <goal>compile</goal>  
                            <goal>testCompile</goal>  
                        </goals>                        <configuration>                            <args>                                <arg>-dependencyfile</arg>  
                                <arg>${project.build.directory}/.scala_dependencies</arg>  
                            </args>                        </configuration>                    </execution>                </executions>            </plugin>  
            <plugin>                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-shade-plugin</artifactId>  
                <version>2.4.3</version>  
                <executions>                    <execution>                        <phase>package</phase>  
                        <goals>                            <goal>shade</goal>  
                        </goals>                        <configuration>                            <filters>                                <filter>                                    <artifact>*:*</artifact>  
                                    <excludes>                                        <exclude>META-INF/*.SF</exclude>  
                                        <exclude>META-INF/*.DSA</exclude>  
                                        <exclude>META-INF/*.RSA</exclude>  
                                    </excludes>                                </filter>                            </filters>                            <transformers>                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
                                </transformer>                            </transformers>                        </configuration>                    </execution>                </executions>            </plugin>        </plugins>    </build></project>
  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 使用Scala编写Spark可以提高代码的可读性和可维护性,同时也可以利用Scala的函数式编程特性来编写更加简洁和高效的代码。在编写Spark应用程序时,需要使用Spark的API来操作RDD(弹性分布式数据集),并使用Scala的语法来定义函数和变量。同时,还需要使用Spark的集群管理工具来管理集群资源,以确保应用程序能够在分布式环境下高效地运行。总之,使用Scala编写Spark是一种非常有效的方式,可以帮助开发人员快速构建高性能的大数据应用程序。 ### 回答2: Spark是一个强大的分布式计算框架,是大数据处理和分析的必备工具。Spark使用Java和Scala语言编写,其中Scala被认为是Spark的“官方语言”。因此,使用Scala编写Spark可以带来一些明显的优势: 1. 高效的并发性和容错性 Scala是一种函数式编程语言,其并发处理和容错能力非常强。因此,使用Scala编写Spark可以提高应用程序的容错性和并发性能,并允许Spark应用程序在分布式环境中更加高效地运行。 2. 易于编写和调试 Scala语言具有简洁、灵活、易于阅读和编写的特点。它有一套强大的编译器和IDE支持,可以帮助开发人员加快Spark应用程序的开发和调试效率。 3. 高度可扩展的代码库 Scala兼容Java虚拟机,因此,Scala编写的代码可以与Java代码无缝协作。此外,Scala还有大量的高质量库可以支持Spark开发,如Spark本身所包含的ScalaSpark SQL。 总之,ScalaSpark的“官方语言”,使用Scala编写Spark可以提高性能、提高可扩展性、提高开发效率和提高代码重用性。因此,Scala被广泛应用于Spark生态系统,并被许多大型企业和研究机构所青睐。 ### 回答3: Scala 是一种多范式编程语言,旨在结合面向对象编程和函数式编程的最佳特性。Scala 语言的设计非常适合构建高效、并发和可扩展的大规模数据处理应用程序,因此广泛被用于 Apache Spark开发。 Apache Spark 是一个快速、分布式的计算框架,为大规模数据处理提供了高效的解决方案。Spark 具有高效的数据抽象层和强大的 API,允许开发人员使用不同的语言编写分布式计算应用程序。ScalaSpark 的默认编程语言,因此成为了 Spark 的生态系统中最重要的编程语言之一。 使用 Scala 可以让开发人员在保持高效性、并且让代码更易阅读,易于理解。而这些特性是在 Scala 的面向对象编程和函数式编程的技术支持下实现的。Scala 语言的函数式编程特性,使得 Spark 应用程序和算法可以使用带有高度抽象级别的处理类型和方法。 除此之外,在 Scala 中使用 Spark 还允许开发人员使用 REPL(交互式解释器)进行实时计算。REPL 方式可以对框架功能进行快速验证,相当于提供了丰富的分析工具对大数据进行实时处理。 Scala 的另一个优势是其强大的类型推导系统。Scala 可以通过类型推导系统自行推断变量类型和方法返回类型,这减少了开发人员的编码量,同时也帮助开发人员避免了类型错误。 因此,使用 Scala 编写 Spark 应用程序不仅保证了应用程序的高效性、可读性和可扩展性,还提供了丰富的分析工具,便于大规模数据处理的实时计算,并且通过 Scala 的强大类型推导系统减少了出错率。所以,在大规模数据处理的应用中,Scala 是用来编写 Spark 应用程序的最好选择。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值