在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();

 

aggregateByKey算子详解

repartitionAndSortWithinPartitions算子详解

  

spark Transformations算子的更多相关文章

  1. 【Spark篇】---Spark中transformations算子二

    一.前述 今天继续整理几个Transformation算子如下: mapPartitionWithIndex repartition coalesce groupByKey zip zipWithIn ...

  2. Spark RDD概念学习系列之Spark的算子的分类(十一)

    Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理. Transformat ...

  3. Spark操作算子本质-RDD的容错

    Spark操作算子本质-RDD的容错spark模式1.standalone master 资源调度 worker2.yarn resourcemanager 资源调度 nodemanager在一个集群 ...

  4. Spark RDD概念学习系列之Spark的算子的作用(十四)

    Spark的算子的作用 首先,关于spark算子的分类,详细见 http://www.cnblogs.com/zlslch/p/5723857.html 1.Transformation 变换/转换算 ...

  5. [大数据之Spark]——Transformations转换入门经典实例

    Spark相比于Mapreduce的一大优势就是提供了很多的方法,可以直接使用:另一个优势就是执行速度快,这要得益于DAG的调度,想要理解这个调度规则,还要理解函数之间的依赖关系. 本篇就着重描述下S ...

  6. Spark RDD算子介绍

    Spark学习笔记总结 01. Spark基础 1. 介绍 Spark可以用于批处理.交互式查询(Spark SQL).实时流处理(Spark Streaming).机器学习(Spark MLlib) ...

  7. 列举spark所有算子

    一.RDD概述      1.什么是RDD           RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可 ...

  8. Spark Transformations介绍

    背景 本文介绍是基于Spark 1.3源码 如何创建RDD? RDD可以从普通数组创建出来,也可以从文件系统或者HDFS中的文件创建出来. 举例:从普通数组创建RDD,里面包含了1到9这9个数字,它们 ...

  9. Spark常用算子-KeyValue数据类型的算子

    package com.test; import java.util.ArrayList; import java.util.List; import java.util.Map; import or ...

随机推荐

  1. [BZOJ 4819] [SDOI 2017] 新生舞会

    Description 学校组织了一次新生舞会,Cathy作为经验丰富的老学姐,负责为同学们安排舞伴. 有 \(n\) 个男生和 \(n\) 个女生参加舞会买一个男生和一个女生一起跳舞,互为舞伴. C ...

  2. 数据分析---《Python for Data Analysis》学习笔记【02】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  3. WC2019滚粗记

    什么?你问WC2019滚粗记在哪里? 抱歉,这篇文章鸽了. 原因? 引用神仙\(yyb\)的话. 恩,想了想还是更一点吧. Day 0 签到海星,我写了个大大的\(Cgod\)有没有人看见啊,然后被广 ...

  4. Eclipse 运行导入的 Java 项目时,Error:A JNI error has occurred

    出现场景 导入 Java 项目,运行时,出现:Error:A JNI error has occurred.... 解决方式 该项目的 Build Path , 在Libraries 中删除后重新添加 ...

  5. Mycat的读写分离

    1. Mycat实现读写分离的部署: https://www.cnblogs.com/softidea/p/5447566.html springboot动态数据源的原理以及配置: Spring内置了 ...

  6. host-only局域网络

    在网桥配置的情况下设置: 网桥配置链接 配置前: 配置后: vi /etc/sysconfig/network-scripts/ifcfg-eth0 这里是使用static静态配置,具体网络配置及声明 ...

  7. C# 数独算法——LINQ+委托

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Sing ...

  8. 金融量化分析【day111】:Pandas-时间序列处理

    一.时间对象处理 1.start 开始时间 df["2018-12-01":"2018-12-30"] 2.end 结束时间 df['2018'] ...... ...

  9. Android App性能测试之二:CPU、流量

    CPU---监控值的获取方法.脚本实现和数据分析 1.获取CPU状态数据 adb shell dumpsys cpuinfo | findstr packagename 自动化测试脚本见cpustat ...

  10. Web常见漏洞修复建议

    一.SQL注入修复建议 1.过滤危险字符,例如:采用正则表达式匹配union.sleep.and.select.load_file等关键字,如果匹配到则终止运行. 2.使用预编译语句,使用PDO需要注 ...