如何在idea中写spark程序。

在 IntelliJ IDEA 中开发 Spark 程序需配置环境、创建项目并添加依赖,以下是详细步骤:

一、准备环境

  1. 安装 Java/Scala
  • 确保已安装 JDK 1.8+(Spark 3.x 推荐 JDK 11+)和 Scala SDK(版本与 Spark 兼容,如 Spark 3.3.2 对应 Scala 2.12)。

  • 在 IDEA 中配置:

  • 打开 File > Project Structure > SDKs ,添加 JDK 和 Scala SDK。

  1. 下载 Spark 依赖
  • 访问 Maven Repository 搜索 spark-core_2.12 和 spark-sql_2.12 (根据 Scala 版本选择),记录最新版本号(如 3.3.2 )。

二、创建 Maven 项目

  1. 新建项目
  • 打开 IDEA,选择 Create New Project > Maven > Empty Project ,设置项目路径和名称(如 spark-demo )。
  1. 添加 Maven 依赖

修改 pom.xml ,添加 Spark 依赖(注意排除 Hadoop 依赖,避免版本冲突):

xml

<dependencies>

<!-- Spark Core -->

<dependency>

<groupId>org.apache.spark</groupId>

<artifactId>spark-core_2.12</artifactId>

<version>3.3.2</version>

<!-- 本地开发时添加,打包部署需移除 -->

<scope>provided</scope>

</dependency>

<!-- Spark SQL(可选) -->

<dependency>

<groupId>org.apache.spark</groupId>

<artifactId>spark-sql_2.12</artifactId>

<version>3.3.2</version>

<scope>provided</scope>

</dependency>

</dependencies>

  • scope=provided 表示本地开发时使用已安装的 Spark 环境,打包时不包含依赖(部署时需依赖集群的 Spark 运行时)。

三、配置 Spark 运行环境

  1. 下载 Spark 二进制包
  • 从 Spark 官网 下载对应版本的预编译包(如 spark-3.3.2-bin-hadoop3 ),解压到本地(如 C:\spark )。
  1. 设置环境变量
  • 在系统环境变量中添加 SPARK_HOME=C:\spark ,并将 %SPARK_HOME%\bin 添加到 PATH 中。
  1. IDEA 中配置 Spark 路径
  • 打开 File > Settings > Build, Execution, Deployment > Application Servers ,添加 Spark 路径(指向解压后的 spark-3.3.2-bin-hadoop3 目录)。

四、编写 Spark 程序

  1. 创建 Scala 类
  • 在 src/main/scala 目录下创建包(如 com.example ),新建 Scala 类(如 WordCount.scala )。
  1. 编写代码示例(WordCount)

scala

import org.apache.spark

{SparkConf, SparkContext}

object WordCount {

def main(args: ArrayString): Unit = {

// 配置 Spark

val conf = new SparkConf()

.setAppName("WordCount")

.setMaster("local\*") // 本地调试用,部署时改为 "yarn" 或 "spark://master:7077"

val sc = new SparkContext(conf)

// 读取文本文件

val lines = sc.textFile("input.txt")

val words = lines.flatMap(_.split(" "))

val wordCounts = words.map(word => (word, 1)).reduceByKey(_ + _)

// 保存结果

wordCounts.saveAsTextFile("output")

sc.stop()

}

}

  • 关键说明:

  • setMaster("local\*") 用于本地调试,代表使用本地所有线程。

  • 实际部署时需移除 setMaster ,或改为集群地址(如 yarn 或 spark://master:7077 )。

五、本地调试运行

  1. 配置运行参数
  • 点击 IDEA 右上角 Edit Configurations > + > Application ,设置:

  • Main Class:填入主类全路径(如 com.example.WordCount )。

  • VM Options(可选):添加 -Dspark.driver.host=localhost 避免网络问题。

  1. 运行程序
  • 将测试文件(如 input.txt )放在项目根目录或指定路径,点击运行按钮,结果会输出到指定目录(如 output )。

六、打包与部署

  1. 打包成 JAR
  • 在 pom.xml 中添加打包插件:

xml

<build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-assembly-plugin</artifactId>

<version>3.1.0</version>

<configuration>

<descriptorRefs>

<descriptorRef>jar-with-dependencies</descriptorRef>

</descriptorRefs>

</configuration>

<executions>

<execution>

<id>make-assembly</id>

<phase>package</phase>

<goals>

<goal>single</goal>

</goals>

</execution>

</executions>

</plugin>

</plugins>

</build>

  • 执行 mvn clean package 生成 spark-demo-1.0-SNAPSHOT-jar-with-dependencies.jar 。
  1. 提交到集群

bash

spark-submit \

--master yarn \

--deploy-mode cluster \

--class com.example.WordCount \

/path/to/your/jar/spark-demo-1.0-SNAPSHOT-jar-with-dependencies.jar

常见问题

  • 依赖冲突:若出现 ClassNotFoundException ,检查 Maven 依赖版本是否与集群 Spark 一致。

  • 本地调试失败:确保 setMaster("local\*") 正确,且文件路径为本地绝对路径。

  • Scala 版本不兼容:在 pom.xml 中确认 artifactId 与 Scala 版本匹配(如 spark-core_2.12 对应 Scala 2.12)。

相关推荐
IT研究室1 天前
最新大数据毕业设计选题推荐-基于大数据的信用等级数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
计算机源码社2 天前
基于大数据技术的台北市住宅价格影响因素挖掘与可视化分析-基于Python与Hadoop的台北市住宅价格数据仓库构建与可视化
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
IT研究室2 天前
最新大数据毕业设计选题推荐-基于大数据的物流快递数据分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
IT研究室2 天前
最新大数据毕业设计选题推荐-基于大数据的鲜羊肉价格分析与可视化-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
计算机源码社2 天前
基于Hadoop+Spark的乳腺癌病理数据可视化分析系统 基于K-Means聚类与PCA降维的乳腺癌形态特征分析系统
大数据·hadoop·python·数据分析·spark·毕业设计·数据可视化
躺柒3 天前
读数据架构知识体系指南01关系数据仓库(上)
数据仓库·架构·数据分析·spark·数据湖·关系数据库·企业数据仓库
IT研究室3 天前
最新大数据毕业设计选题推荐-基于大数据的天气预报预警数据可视化与分析-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
IT研究室3 天前
最新大数据毕业设计选题推荐-基于大数据的图书借阅数据可视化分析系统-大数据-Spark-Hadoop-Bigdata
大数据·信息可视化·数据分析·spark·课程设计
姜穆澜4 天前
Spark SQL 完全学习指南
大数据·spark
计算机源码社5 天前
基于K-Means聚类的新生儿败血症临床分型与可视化分析系统 基于数据挖掘的新生儿败血症生命体征时序走势与关联性可视化研究
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计