Spark学习[一] Spark IntelliJ IDEA 开发环境搭建(Scala项目)- Hello World

简介: Spark IntelliJ IDEA 开发环境搭建

1.工具版本说明

Intellij IDE 官网下载安装,此处省略...
JDK Version: 1.8.0_151 (提前安装好)
Intellij IDE Version:
image

以下3个无需单独下载安装,在intellij中以插件形式安装:
Scala Version: 2.11.0
Spark Version: 2.1.1
SBT Version: 0.13.17

2. Scala插件安装

IntelliJ IDEA-> Perferences -> Plugins -> 搜索 Scala
安装后如图:
image

3. 创建Scala项目(SBT)

image
注意:SBT版本号选择0.13.x版本,不用选择1.0+版本(会报一个idle_shell找不到的异常)
image

4.SBT资源库配置为国内

默认SBT访问国外资源网站下载资源是超级慢的,将其改为国内镜像
在目录(mac电脑) :/Users/lewis.lht/.sbt目录下新建文件repositories,添加内容为(以下内容[]部分不用修改):

  local
  alibaba:http://maven.aliyun.com/nexus/content/groups/public/
  alibaba-ivy:http://maven.aliyun.com/nexus/content/groups/public/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  repo2:http://repo2.maven.org/maven2/
  ivy-typesafe:http://dl.bintray.com/typesafe/ivy-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  ivy-sbt-plugin:http://dl.bintray.com/sbt/sbt-plugin-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
  typesafe-releases: http://repo.typesafe.com/typesafe/releases
  typesafe-ivy-releasez: http://repo.typesafe.com/typesafe/ivy-releases, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]

5.修改src和test目录分别为sources root

不知何原因,我新建的scala项目的src/main/scala和src/test/scala默认非sources root,将其修改为sources root。否则无法新建scala class文件和packages
a) 选中/src/main/scala目录后,右键Make Directory as->Sources Root
b) 选中/src/test/scala目录后,右键Make Directory as->Test Sources Root

6.在sbt配置文件build.sbt中,添加Spark依赖

build.sbt

name := "sparkexcercise"
version := "0.1"
scalaVersion := "2.11.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.1.1"

如图示:
image

7.sbt执行编译

打开SBT Projects面板,选择刷新按钮(Refresh all SBT Projects)或者打开SBT SHELL窗口,执行compile命令,完成依赖包下载和项目编译
image
编译成功后如下图:
image

8.新建Spark Hello Word Object,并复制下面代码:

package org.lewis

import org.apache.spark.sql.SparkSession

object HelloWorld {
  def main(args: Array[String]): Unit = {
    if (args.size == 0) {
      println("input file path !")
      System.exit(1)
    }

    val fpath = args(0)
    val spark = SparkSession
      .builder
      .appName("HdfsHelloWorld")
      .getOrCreate()
    val file = spark.read.textFile(fpath).rdd

    //flatMap将一个输入元素rdd,转为多个元素rdd
    val m = file.flatMap(line => line.split(" "))

    //为每个word,赋值其个数为1,转为pair rdd
    val g = m.map((_, 1))
    //val g = m.map(word=>(word,1))
    // 等价于这种写法,_代表当前元素

    //按照word为key进行reduce,并对其value累加,(x,y)分别为上一个元素value和当前元素的value
    val r = g.reduceByKey(_ + _)
    //val r = g.reduceByKey((x,y)=>x+y)
    // 等价于这种写法,_代表当前元素

    r.collect().foreach(println)

    //上面也可以全部简写为:
    //file.flatMap(line=>line.split(" ")).map((_,1)).reduceByKey(_+_).collect().foreach(println)
  }
}

9.配置Run Config

//采用local本地模式执行,确保你的SparkOverview.txt文件存在
VM options: -Dspark.master=local
Program arguments: /Users/lewis.lht/Downloads/SparkOverview.txt

image

9.执行

image

仅演示了local模式运行,故不需要spark集群环境

目录
相关文章
|
Java
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
本文介绍了如何使用IDEA(IntelliJ IDEA)创建一个新的Java项目,并运行一个简单的Java程序输出"Hello Word"。文章详细展示了创建项目的步骤,包括选择JDK版本、设置项目名称和路径、创建包和类,以及编写和运行代码。最后,还展示了如何通过IDEA的运行功能来执行程序并查看输出结果。
2013 4
使用IDEA创建项目运行我的第一个JAVA文件输出Helloword
|
运维 网络安全 持续交付
IDEA+Docker 远程一键部署项目:技术干货分享
【10月更文挑战第4天】在现代软件开发中,快速、可靠、自动化的部署流程是提升开发效率和运维质量的关键。IDEA(IntelliJ IDEA)作为Java开发者首选的IDE,结合Docker这一轻量级容器化技术,能够实现远程一键部署项目,极大地简化了开发到生产的流程。今天,我将和大家分享这一组合在工作学习中的实际应用和技术干货。
1552 3
|
Java 应用服务中间件 API
Servlet开发流程 (里面有Idea项目添加Tomcat依赖详细教程)
本文详细介绍了Servlet的开发流程,包括在IntelliJ IDEA中添加Tomcat依赖的详细教程。通过上述步骤,开发者可以快速搭建并运行一个基本的Servlet应用,理解并掌握Servlet的开发流程对于Java Web开发至关重要。希望本文能够帮助开发者顺利进行Servlet开发,提高工作效率。
1856 78
|
监控 测试技术 开发者
IDEA项目调试你都会用了么,快看看是否有你不知道的调试技巧
在IntelliJ IDEA中,熟练运用调试工具可显著提升开发效率。通过设置断点、单步执行、变量监控等功能,快速定位问题并优化代码性能。此外,掌握多线程调试、异常处理及远程调试技巧也至关重要。为提高效率,建议合理使用条件断点、快捷键与日志监控,同时不断学习总结经验。若觉得有用,别忘了点赞收藏!
IDEA项目调试你都会用了么,快看看是否有你不知道的调试技巧
|
Java Maven
解决idea每次新建maven项目都需要重新配置maven的问题
解决idea每次新建maven项目都需要重新配置maven的问题
985 2
|
IDE Java 开发工具
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
IntelliJ IDEA创建Java项目的图文详细步骤,手把手带你创建Java项目
2328 10
【Java基础-环境搭建-创建项目】IntelliJ IDEA创建Java项目的详细步骤
|
数据安全/隐私保护
IntelliJ IDEA使用技巧:在一个项目中如何正确引用其他子模块。
我希望这个解答可以帮助你,有了这些知识,你可以更好地使用IntelliJ IDEA并轻松处理项目中的子模块。
1205 19
|
Java Maven
Idea配置项目的热启动
Idea配置项目的热启动
4307 5
Idea配置项目的热启动
|
Java Maven Kotlin
idea maven创建kotlin项目
本文介绍了在IntelliJ IDEA中使用Maven创建Kotlin项目的步骤,包括在`pom.xml`文件中添加Maven中央仓库、配置`kotlin-maven-plugin`插件、指定源目录、添加测试插件和执行插件,以及添加Kotlin测试依赖和标准库依赖。文中还提到了如何通过更换镜像或使用代理来解决依赖下载速度慢的问题,并展示了运行示例代码的截图。
1092 4
idea maven创建kotlin项目
|
Java Maven Spring
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)
这篇文章介绍了在IntelliJ IDEA社区版中创建Spring Boot项目的三种方法,特别强调了第三种方法的详细步骤。
17400 0
springboot学习一:idea社区版本创建springboot项目的三种方式(第三种为主)