spark Transformations算子
在java中,RDD分为javaRDDs和javaPairRDDs。下面分两大类来进行。
都必须要进行的一步。
SparkConf conf = new SparkConf().setMaster("local").setAppName("test");
JavaSparkContext sc = new JavaSparkContext(conf);
一。javaRDDs
String[] ayys = {"a","b","c"};
List<String> strings = Arrays.asList(ayys);
JavaRDD<String> rdd1 = sc.parallelize(strings);
strings.add("d");
JavaRDD<String> rdd2 = sc.parallelize(strings);
JavaRDD<Tuple2<String, Integer>> parallelize = sc.parallelize(Arrays.asList(
new Tuple2<String, Integer>("asd", 11),
new Tuple2<String, Integer>("asd", 11),
new Tuple2<String, Integer>("asd", 11)
));
rdd1.map(new Function<String, String>() {
public String call(String s) throws Exception {
return s.replace("a","qqq");
}
}).foreach(new VoidFunction<String>() {
public void call(String s) throws Exception {
System.out.println(s);
}
});
List<String> a = rdd1.filter(new Function<String, Boolean>() {
public Boolean call(String s) throws Exception {
return s.contains("a");
}
}).collect();
System.out.println(a);
JavaRDD<String> rdd22 = rdd1.flatMap(new FlatMapFunction<String, String>() {
public Iterable<String> call(String s) throws Exception {
return Arrays.asList(s.split(" "));
}
});
JavaPairRDD<String, Integer> rdd4 = rdd2.mapToPair(new PairFunction<String, String, Integer>() {
public Tuple2<String, Integer> call(String s) throws Exception {
return new Tuple2<String, Integer>(s, 1);
}
});
JavaRDD<String> rdd11 = rdd2.mapPartitions(new FlatMapFunction<Iterator<String>, String>() {
public Iterable<String> call(Iterator<String> stringIterator) throws Exception {
ArrayList<String> strings = new ArrayList<String>();
while (stringIterator.hasNext()){
strings.add(stringIterator.next());
}
return strings;
}
});
JavaRDD<String> stringJavaRDD = rdd1.mapPartitionsWithIndex(new Function2<Integer, Iterator<String>, Iterator<String>>() {
public Iterator<String> call(Integer integer, Iterator<String> stringIterator) throws Exception {
ArrayList<String> strings = new ArrayList<String>();
while (stringIterator.hasNext()){
strings.add(stringIterator.next());
}
return strings.iterator();
}
},false);
JavaRDD<String> sample = rdd1.sample(false, 0.3);
JavaRDD<String> union = rdd1.union(rdd2);
JavaRDD<String> intersection = rdd1.intersection(rdd2);
JavaRDD<String> distinct = rdd1.distinct();
二。JavaPairRDDs.
JavaPairRDD<String, Integer> rdd1 = sc.parallelizePairs(Arrays.asList(
new Tuple2<String, Integer>("asd", 111),
new Tuple2<String, Integer>("asd", 111),
new Tuple2<String, Integer>("asd", 111)
)); JavaPairRDD<String, Integer> rdd2 = sc.parallelizePairs(Arrays.asList(
new Tuple2<String, Integer>("sdfsd", 222),
new Tuple2<String, Integer>("sdfsd", 222),
new Tuple2<String, Integer>("sdfsd", 222)
)); JavaPairRDD<String, Iterable<Integer>> stringIterableJavaPairRDD = rdd1.groupByKey(); JavaPairRDD<String, Integer> rdd = rdd1.reduceByKey(new Function2<Integer, Integer, Integer>() {
public Integer call(Integer integer, Integer integer2) throws Exception {
return integer + integer2;
}
}); JavaPairRDD<String, Integer> rdd3 = rdd1.aggregateByKey(0, new Function2<Integer, Integer, Integer>() {
public Integer call(Integer integer, Integer integer2) throws Exception {
return max(integer,integer2);
}
}, new Function2<Integer, Integer, Integer>() {
public Integer call(Integer integer, Integer integer2) throws Exception {
return integer + integer2;
}
}); JavaPairRDD<String, Integer> rdd111 = rdd1.sortByKey(); JavaPairRDD<String, Tuple2<Integer, Integer>> join = rdd1.join(rdd2);
JavaPairRDD<String, Tuple2<Integer, Optional<Integer>>> stringTuple2JavaPairRDD = rdd1.leftOuterJoin(rdd2);
JavaPairRDD<String, Tuple2<Optional<Integer>, Integer>> stringTuple2JavaPairRDD1 = rdd1.rightOuterJoin(rdd2);
JavaPairRDD<String, Tuple2<Optional<Integer>, Optional<Integer>>> stringTuple2JavaPairRDD2 = rdd1.fullOuterJoin(rdd2); JavaPairRDD<String, Tuple2<Iterable<Integer>, Iterable<Integer>>> cogroup = rdd1.cogroup(rdd2); JavaPairRDD<String, Integer> coalesce = rdd1.coalesce(3, false); JavaPairRDD<String, Integer> repartition = rdd1.repartition(3); JavaPairRDD<String, Integer> rdd5 = rdd1.repartitionAndSortWithinPartitions(new HashPartitioner(2)); JavaPairRDD<Tuple2<String, Integer>, Tuple2<String, Integer>> cartesian = rdd1.cartesian(rdd2); JavaRDD<String> pipe = rdd1.pipe("");
zip:
JavaPairRDD<Tuple2<String, Integer>, Tuple2<String, Integer>> zip = rdd1.zip(rdd2);
JavaPairRDD<Tuple2<String, Integer>, Long> tuple2LongJavaPairRDD = rdd1.zipWithIndex();
最后都要加上
sc.stop();
repartitionAndSortWithinPartitions算子详解
spark Transformations算子的更多相关文章
- 【Spark篇】---Spark中transformations算子二
一.前述 今天继续整理几个Transformation算子如下: mapPartitionWithIndex repartition coalesce groupByKey zip zipWithIn ...
- Spark RDD概念学习系列之Spark的算子的分类(十一)
Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理. Transformat ...
- Spark操作算子本质-RDD的容错
Spark操作算子本质-RDD的容错spark模式1.standalone master 资源调度 worker2.yarn resourcemanager 资源调度 nodemanager在一个集群 ...
- Spark RDD概念学习系列之Spark的算子的作用(十四)
Spark的算子的作用 首先,关于spark算子的分类,详细见 http://www.cnblogs.com/zlslch/p/5723857.html 1.Transformation 变换/转换算 ...
- [大数据之Spark]——Transformations转换入门经典实例
Spark相比于Mapreduce的一大优势就是提供了很多的方法,可以直接使用:另一个优势就是执行速度快,这要得益于DAG的调度,想要理解这个调度规则,还要理解函数之间的依赖关系. 本篇就着重描述下S ...
- Spark RDD算子介绍
Spark学习笔记总结 01. Spark基础 1. 介绍 Spark可以用于批处理.交互式查询(Spark SQL).实时流处理(Spark Streaming).机器学习(Spark MLlib) ...
- 列举spark所有算子
一.RDD概述 1.什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可 ...
- Spark Transformations介绍
背景 本文介绍是基于Spark 1.3源码 如何创建RDD? RDD可以从普通数组创建出来,也可以从文件系统或者HDFS中的文件创建出来. 举例:从普通数组创建RDD,里面包含了1到9这9个数字,它们 ...
- Spark常用算子-KeyValue数据类型的算子
package com.test; import java.util.ArrayList; import java.util.List; import java.util.Map; import or ...
随机推荐
- saltstack运维软件
一.saltstack介绍 1.介绍 SaltStack管理工具允许管理员对多个操作系统创建一个一致的管理系统,包括VMware vSphere环境. SaltStack是一个服务器基础架构集中化管理 ...
- phpStudy The requested URL /web/index.php was not found on this server
1.原因 phpStudy的httpd-conf 与 vhosts-ini 的目录设置错了 2.解决 分别打开httpd-conf 与 vhosts-ini 2个文件,搜索WWW,把里面的路径改成你的 ...
- 微服务下的容器部署和管理平台Rancher
Rancher是什么 Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从头搭建容器服务平台.Rancher提供了在生产环境中使用的管理Docke ...
- 我眼中的支持向量机(SVM)
看吴恩达支持向量机的学习视频,看了好几遍,才有一点的理解,梳理一下相关知识. (1)优化目标: 支持向量机也是属于监督学习算法,先从优化目标开始. 优化目标是从Logistics regressi ...
- Entity Framework入门教程(11)---EF6中的异步查询和异步保存
EF6中的异步查询和异步保存 在.NET4.5中介绍了异步操作,异步操作在EF中也很有用,在EF6中我们可以使用DbContext的实例进行异步查询和异步保存. 1.异步查询 下边是一个通过L2E语法 ...
- 尝试去读SQLMAP源码(一)
本人python 小菜比 一枚.拜读业界典范~~ 阅读sqlmap 的版本是1.1.6,目前应该是最新版. sqlmap.py 脚本中 72~83 def modulePath(): "&q ...
- 不定参数对arguments对象的影响
如果声明函数时定义了不定参数,则在函数被调用时,arguments对象包含了所有传入的参数: function checkArgs(...args){ console.log(args.length, ...
- Codeforces 1096F(dp + 树状数组)
题目链接 题意: 对于长度为$n$的排列,在已知一些位的前提下求逆序对的期望 思路: 将答案分为$3$部分 $1.$$-1$与$-1$之间对答案的贡献.由于逆序对考虑的是数字之间的大小关系,故假设$- ...
- Coursera, Big Data 3, Integration and Processing (week 5)
Week 5, Big Data Analytics using Spark Programing in Spark Spark Core: Programming in Spark us ...
- Hello jna
记录下这几天用jna3.5.0调c++写的dll的经历 os:win7 用jna调dll首先需要一个dll文件并有可调的方法,然后根据方法的名称,参数,返回值编写一个interface c++需要包含 ...