在去年写完
大数据学习笔记(七)-运行spark脚本【原创】之后,由于工作比较忙,且大数据在负责的项目中一时用不上,所以没有继续学习。
这一篇是新的开始,主要学习使用spark的进行开发。
spark的源码是scala写的,scala是与Java很像的一种语言,也是基于jvm运行的。spark提供了scala和java的开发包,因此可以使用java和scala来开发spark应用。
以下介绍开发环境搭建与demo的编写:
一)开发环境搭建
1)安装jdk1.8
2)到ScalaIDE官网下载集成好的eclipse
http://scala-ide.org/download/sdk.html
3) 解压下载好的包即可使用
至此,我们可以使用下载的eclipse集成环境开发java和scala版本的spark程序
二)java demo
1) 使用maven创建java工程,并添加依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.gov.zjport.demo</groupId>
<artifactId>demo-spark</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-launcher_2.11</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
</project>
2)java代码
package cn.gov.zjport.demo.spark;
import java.util.Arrays;
import java.util.List;
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.function.Function2;
public class SparkLocalCollection {
public static void main(String[] args) {
//初始化
SparkConf conf=new SparkConf().setAppName("SparkLocalCollection").setMaster("local");
JavaSparkContext sparkContext=new JavaSparkContext(conf);
try{
List<Integer> list=Arrays.asList(1,2,3,4,5,6,7,8,9,10);
//创建RDD
JavaRDD<Integer> rdd=sparkContext.parallelize(list);
//执行reduce action操作
int sum=rdd.reduce(new Function2<Integer, Integer, Integer>(){
private static final long serialVersionUID = 1L;
public Integer call(Integer arg0, Integer arg1) throws Exception {
return arg0+arg1;
}
});
System.out.println("add result:"+sum);
}finally{
sparkContext.close();
}
}
}
3)运行 run as -> Java Application
三)scala demo
1)新建一个maven工程,并添加依赖
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<encoding>UTF-8</encoding>
<scala.version>2.11.11</scala.version>
<scala.compat.version>2.11</scala.compat.version>
<spec2.version>4.2.0</spec2.version>
</properties>
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-launcher_2.11</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.3.0</version>
</dependency>
</dependencies>
2)将工程改为scala工程
3)编写scala程序
package cn.gov.zjport.demo.spark
import org.apache.spark.SparkConf
import org.apache.spark.SparkContext
object SparkLocalCollection {
def main(args:Array[String]){
//初始化
var array=Array(1,2,3,4,5,6,7,8,9,10);
var conf=new SparkConf().setAppName("SparkLocalCollection").setMaster("local");
var sc=new SparkContext(conf);
try{
//先并行化处理成RDD,然后执行reduce操作
var count=sc.parallelize(array, 1).reduce(_+_);
println("count is:"+count);
}finally{
sc.stop();
}
}
}
4)运行 Run As -> Scala Application
5)初学者常见问题:
a)为什么我没有run as->scala application
可能是没有定义为object,而是定义成class, class是无法运行的。 同时必须有main方法
b)运行时提示找不到主类 SparkLocalCollection
需要按F5 或者使用maven编译一下
- 大小: 16.9 KB
- 大小: 16.8 KB
- 大小: 34.5 KB
分享到:
相关推荐
Spark安装包:spark-3.1.3-bin-without-hadoop.tgz
在Ubuntu里安装spark,spark-2.1.0-bin-without-hadoop该版本直接下载到本地后解压即可使用。 Apache Spark 是一种用于大数据工作负载的分布式开源处理系统。它使用内存中缓存和优化的查询执行方式,可针对任何规模...
windows10下spark2.3.0本地开发环境搭建 win10上部署Hadoop非Cygwin、非虚拟机方式。安装目录为D:\setupedsoft。涉及相关组件版本: win10 家庭装,64位,x86处理器 JDK1.8.0_171 hadoop-2.7.6 Spark-2.3.0 Scala-...
Apache Spark版本3.1.3。Linux安装包。spark-3.1.3-bin-hadoop3.2.tgz
Spark学习笔记 Spark学习笔记 Spark学习笔记
spark-3.0.0-bin-hadoop3.2下载安装包
内容概要:由于cdh6.3.2的spark版本为2.4.0,并且spark-sql被阉割,现基于cdh6.3.2,scala2.12.0,java1.8,maven3.6.3,,对spark-3.2.2源码进行编译 应用:该资源可用于cdh6.3.2集群配置spark客户端,用于spark-sql
本资源是spark-2.0.0-bin-hadoop2.6.tgz百度网盘资源下载,本资源是spark-2.0.0-bin-hadoop2.6.tgz百度网盘资源下载
spark-2.1.0-bin-hadoop2.7.tgz linux 安装文件 。
pyspark本地的环境配置包,spark-2.3.4-bin-hadoop2.7.tgz:spark-2.3.4-bin-hadoop2.7.tgz
spark-3.2.4-bin-hadoop3.2-scala2.13 安装包
文件名: spark-3.4.1-bin-hadoop3.tgz 这是 Apache Spark 3.4.1 版本的二进制文件,专为与 Hadoop 3 配合使用而设计。Spark 是一种快速、通用的集群计算系统,用于大规模数据处理。这个文件包含了所有必要的组件,...
spark-3.2.0-bin-hadoop3.2.tgz
linux的spark新版本,匹配hadoop2.7版本,spark-3.2.1-bin-hadoop2.7.tgz
spark-3.1.2.tgz版本 & spark-3.1.2-bin-hadoop2.7.tgz版本
spark-streaming-kafka-0-8_2.11-2.4.0.jar
Spark专刊第一期-Spark最佳学习路径-黄忠 Spark专刊第一期-Spark最佳学习路径-黄忠
spark学习笔记,包含spark SQL 在spark-shell的操作笔记
spark-assembly-1.5.2-hadoop2.6.0 在spark编程中使用的一个jar
spark-3.0.0-bin-hadoop2.7.tgz 官网下载不了的,需要资源的,可以到这里下载哦