如何在IDEA中编写Spark程序

环境搭建

  1. 创建Maven项目
  • 添加Spark依赖(在 pom.xml 中):

<dependency>

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

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

<version>3.5.0</version>

</dependency>

  1. 配置Scala SDK
  • 在IDEA中安装Scala插件,设置项目SDK为Scala版本(如2.12)

编写第一个Spark程序

  1. 创建Scala类

import org.apache.spark.{SparkConf, SparkContext}

object SparkWordCount {

def main(args: Array[String]): Unit = {

val conf = new SparkConf().setAppName("WordCount").setMaster("local[*]")

val sc = new SparkContext(conf)

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

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

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

counts.saveAsTextFile("output")

sc.stop()

}

}

运行与调试

  • 本地调试:设置 setMaster("local[*]") ,直接在IDEA中运行主类。

  • 提交到集群:

  1. 打包项目为JAR(Maven的 package 命令)。

  2. 执行命令:

spark-submit --master yarn --class SparkWordCount /path/to/your.jar hdfs://input.txt

常见问题

  • 依赖冲突:确保Spark和Hadoop版本兼容,使用 provided scope排除冲突依赖。

  • 日志配置:在 src/main/resources 添加 log4j.properties ,简化日志输出。

相关推荐
山峰哥6 天前
吃透 SQL 优化:告别慢查询,解锁数据库高性能
服务器·数据库·sql·oracle·性能优化·编辑器
holeer6 天前
【V1.0】Typora 中的 HTML 支持|软件文档自翻译
前端·编辑器·html·typora·web·markdown·文档
硬汉嵌入式6 天前
Vim 9.2版本正式发布
编辑器·vim
吹牛不交税6 天前
关于vscode左侧资源管理器目录层级疑似异常的问题
ide·vscode·编辑器
No8g攻城狮6 天前
【Linux】Linux nano 编辑器全攻略:从入门到精通
linux·运维·编辑器·nano
你怎么知道我是队长6 天前
VsCode插件推荐---Todo Tree
ide·vscode·编辑器
becatjd6 天前
VScode的claude code插件报错command ‘claude-vscode.editor.openLast‘ not found
ide·vscode·编辑器·claude·anthropic·claude code
BIBI20497 天前
下载指定历史版本 VSCode 或 VSCode Insider
ide·vscode·编辑器
johnny2337 天前
编辑器和笔记软件汇总:Typst、Reminds、Memos、Editor、MDX Notes、Jotty
笔记·编辑器
宫瑾7 天前
vscode未定义标识符报错的解决方法
ide·vscode·编辑器