Intellij IDEA Maven Spark简单工程创建和SparkPi程序运行
目的:利用Intellij IDEA完成简单的Spark Maven工程导入及本地调试运行。不导入Spark工程源代码。原料:Java 8Intellij IDEA步骤:打开Intellij IDEA,创建新工程创建Maven工程填入自己的groupid和artifactid(不确定就随便填就好,用来标示是自己的程序不和别人冲突)下一步,完成工程创建打开左边的...
·
目的:利用Intellij IDEA完成简单的Spark Maven工程导入及本地调试运行。不导入Spark工程源代码。
原料:
- Java 8
- Intellij IDEA
步骤:
- 打开Intellij IDEA,创建新工程
- 创建Maven工程
- 填入自己的groupid和artifactid(不确定就随便填就好,用来标示是自己的程序不和别人冲突)
- 下一步,完成工程创建
- 打开左边的project视图,双击pom.xml文件,加入spark依赖
加入代码段=。=
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.10</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
Maven 依赖可以从maven的中央仓库去搜索, 部分库可能需要科学才能用,https://search.maven.org/
- 保存文件,左边project视图右键点击pom.xml,选择maven - reimport (或者generate source and update folder,忘了哪个,或者右下角弹窗点击reimport,反正这里的目的是让maven自动把依赖的jar下载到本地),等待一段时间,下面的进度条跑完,就下载好依赖了,代码上的红色字也消失了,就resolve好了
- 创建Java源代码文件:Project - src - main - java目录下右键创建SparkPiExample.java文件,拷贝进去代码,注意包名称
package com.hotdrynoodle.spark;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import java.util.ArrayList;
import java.util.List;
/**
* Computes an approximation to pi
* Usage: JavaSparkPi [partitions]
*/
public class SparkPiExample {
public static void main(String[] args) throws Exception {
SparkSession spark = SparkSession
.builder()
.master("local")
.appName("JavaSparkPi")
.getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2;
int n = 100000 * slices;
List<Integer> l = new ArrayList<>(n);
for (int i = 0; i < n; i++) {
l.add(i);
}
JavaRDD<Integer> dataSet = jsc.parallelize(l, slices);
int count = dataSet.map(integer -> {
double x = Math.random() * 2 - 1;
double y = Math.random() * 2 - 1;
return (x * x + y * y <= 1) ? 1 : 0;
}).reduce((integer, integer2) -> integer + integer2);
System.out.println("Pi is roughly " + 4.0 * count / n);
jsc.close();
spark.stop();
}
}
- 点击build - build project,编译工程,正常装的java啥的应该不会有啥错误,我的报了好几个错误,但是都google到了,给几个链接,用得上可以参考一下,这一步出问题建议还是Google去
- https://stackoverflow.com/questions/42966889/intellij-idea-tells-me-errorjava-compilation-failed-internal-java-compiler-e
- https://stackoverflow.com/questions/46569829/intellij-errorjava-target-level-1-5-is-incompatible-with-source-level-1-8
- https://stackoverflow.com/questions/12900373/idea-javac-source-release-1-7-requires-target-release-1-7
- 运行
others:
还是有很多不必要的步骤的,比方说maven包依赖,似乎这个程序并没有引用到sql包,习惯性的引入sql了,可以考虑替换~~
更多推荐
已为社区贡献1条内容
所有评论(0)