在 IntelliJ IDEA 中运行 Spark 程序,需要先搭建 Spark 的开发环境。下面是基本的步骤:
1. **安装 Scala 插件**:如果你还没有安装 Scala 插件,可以通过 `File -> Settings -> Plugins` 进入插件界面,搜索 Scala 插件并安装。
2. **下载 Spark**:去 Spark 官网下载对应版本的 Spark,解压到本地目录。
3. **创建 Scala 项目**:在 IntelliJ IDEA 中创建一个 Scala 项目。
4. **添加 Spark 依赖**:在项目的 `build.sbt` 文件中添加 Spark 依赖,例如:
```scala libraryDependencies += "org.apache.spark" %% "spark-core" % "3.2.0" ```
如果需要使用其他 Spark 组件,可以根据需要添加相应的依赖。
5. **编写 Spark 程序**:在 Scala 项目中编写 Spark 程序,例如:
```scala import org.apache.spark.sql.SparkSession object SimpleApp { def main(args: Array[String]) { val logFile = "YOUR_SPARK_HOME/README.md" // 应替换为实际文件路径 val spark = SparkSession.builder.appName("Simple Application").getOrCreate() val logData = spark.read.textFile(logFile).cache() val numAs = logData.filter(line => line.contains("a")).count() val numBs = logData.filter(line => line.contains("b")).count() println(s"Lines with a: $numAs, Lines with b: $numBs") spark.stop() } } ```
这是一个简单的 Spark 应用程序,用于统计一个文件中包含字母 "a" 和 "b" 的行数。
6. **运行程序**:在 IntelliJ IDEA 中,右键点击程序入口文件(例如 `SimpleApp` 的 `main` 方法)选择 `Run SimpleApp.main()` 运行程序。
在 IntelliJ IDEA 中运行 Spark 程序需要进行一些配置。首先,确保你已经安装了 Scala 插件和 Spark 插件。然后,按照以下步骤配置 Spark 环境:
1. **下载 Spark:**从 [Apache Spark 官网](https://spark.apache.org/downloads.html)下载适用于你系统的 Spark 版本,并解压到本地目录。
2. **配置环境变量:**在系统环境变量中添加以下变量(假设 Spark 解压后的目录为 `SPARK_HOME`):
- `SPARK_HOME`:Spark 的安装路径
- `HADOOP_HOME`:如果你的 Spark 版本需要依赖 Hadoop,请设置 Hadoop 的安装路径
- 在 `PATH` 变量中添加 `%SPARK_HOME%\bin`
3. **配置 IntelliJ IDEA:**打开 IntelliJ IDEA,创建一个新的 Scala 项目,并添加 Spark 依赖。在 `build.sbt` 文件中添加以下依赖:
```scala name := "SparkExample" version := "0.1" scalaVersion := "2.12.13" libraryDependencies += "org.apache.spark" %% "spark-core" % "3.2.0" ```
4. **创建 Spark 应用程序:**在 IntelliJ IDEA 中创建一个 Scala 文件,并编写你的 Spark 应用程序代码。例如,一个简单的 WordCount 程序:
```scala import org.apache.spark.sql.SparkSession object WordCount { def main(args: Array[String]): Unit = { val spark = SparkSession.builder .appName("WordCount") .master("local[*]") .getOrCreate() val lines = spark.read.textFile("path_to_your_text_file") val words = lines.flatMap(_.split(" ")) val wordCounts = words.groupBy("value").count() wordCounts.show() spark.stop() } } <properties> <!-- 声明scala的版本 --> <scala.version>2.12.15</scala.version> <!-- 声明linux集群搭建的spark版本,如果没有搭建则不用写 --> <spark.version>3.2.1</spark.version> <!-- 声明linux集群搭建的Hadoop版本 ,如果没有搭建则不用写--> <hadoop.version>3.1.4</hadoop.version> </properties> <dependencies> <!--scala--> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>${scala.version}</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.2.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.12</artifactId> <version>3.2.1</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.12</artifactId> <version>3.2.1</version> <scope>provided</scope> </dependency> </dependencies> ```
5. **运行 Spark 应用程序:**在 IntelliJ IDEA 中,右键单击你的 Scala 文件,选择“Run”。
这样,就可以在 IntelliJ IDEA 中运行 Spark 应用程序了。
如果运行spark程序,控制台有输出 “Could not locate executable null\bin\winutils.exe in the Hadoop binaries”错误提示,解决方案请参考以下文章:
https://blog.csdn.net/hyj_king/article/details/104299371
winuntils.exe下载地址:
GitHub - cdarlint/winutils: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows