文档章节

Spark Streaming(2):Join

Joe_Wu
 Joe_Wu
发布于 2017/08/08 16:48
字数 306
阅读 15
收藏 0
package com.pyrrha.examples;

import java.util.ArrayList;
import java.util.List;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.Optional;

import scala.Tuple2;

public class JoinTransformation {
	
	public static void main(String[] args) {
		SparkConf conf = new SparkConf().setAppName("TransformationTest").setMaster("local");
		JavaSparkContext sc = new JavaSparkContext(conf);
		
		join(sc);
		
		sc.close();
	}
	/**
	 * @return:
	    ListA:
		[(name,Jos), (name,Marry), (name1,Tom)]
	    ListB
		[(name,Jos), (name,Black), (name2,David)]
		
		-----------------join-------------------
		[(name,(Jos,Jos)), (name,(Jos,Black)), (name,(Marry,Jos)), (name,(Marry,Black))]
		
		-----------------leftOuterJoin-------------------
		[(name,(Jos,Optional[Jos])), (name,(Jos,Optional[Black])), (name,(Marry,Optional[Jos])), (name,(Marry,Optional[Black])), (name1,(Tom,Optional.empty))]
		
		-----------------rightOuterJoin-------------------
		[(name,(Optional[Jos],Jos)), (name,(Optional[Jos],Black)), (name,(Optional[Marry],Jos)), (name,(Optional[Marry],Black)), (name2,(Optional.empty,David))]
		
		-----------------fullOuterJoin-------------------
		[(name,(Optional[Jos],Optional[Jos])), (name,(Optional[Jos],Optional[Black])), (name,(Optional[Marry],Optional[Jos])), (name,(Optional[Marry],Optional[Black])), (name2,(Optional.empty,Optional[David])), (name1,(Optional[Tom],Optional.empty))]
	 * @param sc
	 */
	public static void join(JavaSparkContext sc) {
		List<Tuple2<String, String>> listA = new ArrayList<Tuple2<String, String>>();
		listA.add(new Tuple2<String, String>("name","Jos"));
		listA.add(new Tuple2<String, String>("name","Marry"));
		listA.add(new Tuple2<String, String>("name1","Tom"));
		List<Tuple2<String, String>> listB = new ArrayList<Tuple2<String, String>>();
		listB.add(new Tuple2<String, String>("name","Jos"));
		listB.add(new Tuple2<String, String>("name","Black"));
		listB.add(new Tuple2<String, String>("name2","David"));
		
		JavaPairRDD<String, String> RDDA = sc.parallelizePairs(listA);
		JavaPairRDD<String, String> RDDB = sc.parallelizePairs(listB);
		System.out.println("-----------------data-------------------");
		System.out.println("ListA:");
		System.out.println(RDDA.collect());
		System.out.println("\n");
		System.out.println("ListB");
		System.out.println(RDDB.collect());
		System.out.println("\n");
		
		
		JavaPairRDD<String, Tuple2<String, String>> RDDC = RDDA.join(RDDB);
		System.out.println("-----------------join-------------------");
		System.out.println(RDDC.collect());
		System.out.println("\n");
		
		JavaPairRDD<String, Tuple2<String, Optional<String>>> RDDD = RDDA.leftOuterJoin(RDDB);
		System.out.println("-----------------leftOuterJoin-------------------");
		System.out.println(RDDD.collect());
		System.out.println("\n");
		
		JavaPairRDD<String, Tuple2<Optional<String>, String>> RDDE = RDDA.rightOuterJoin(RDDB);
		System.out.println("-----------------rightOuterJoin-------------------");
		System.out.println(RDDE.collect());
		System.out.println("\n");
		
		JavaPairRDD<String, Tuple2<Optional<String>, Optional<String>>> RDDF = RDDA.fullOuterJoin(RDDB);
		System.out.println("-----------------fullOuterJoin-------------------");
		System.out.println(RDDF.collect());
		System.out.println("\n");
		
	}
	
	
	

}

 

© 著作权归作者所有

共有 人打赏支持
Joe_Wu
粉丝 1
博文 9
码字总数 6567
作品 0
徐汇
程序员
Spark 学习资源收集【Updating】

(一)spark 相关安装部署、开发环境 1、Spark 伪分布式 & 全分布式 安装指南 http://my.oschina.net/leejun2005/blog/394928 2、Apache Spark探秘:三种分布式部署方式比较 http://dongxic...

大数据之路
2014/09/08
0
1
Spark cluster 部署

Spark 框架 Spark与Storm的对比 对于Storm来说: 1、建议在那种需要纯实时,不能忍受1秒以上延迟的场景下使用,比如实时金融系统,要求纯实时进行金融交易和分析 2、此外,如果对于实时计算的...

meteor_hy
06/27
0
0
你不能错过的 spark 学习资源

1. 书籍,在线文档 2. 网站 3. Databricks Blog 4. 文章,博客 5. 视频

u012608836
04/12
0
0
spark-submit提交Spark Streamming+Kafka程序

我的原创地址:https://dongkelun.com/2018/06/19/sparkSubmitKafka/ 前言 Spark Streaming本身是没有Kafka相关的jar包和API的,如果想利用Spark Streaming获取Kafka里的数据,需要自己将依赖...

董可伦
07/12
0
0
基于Kafka+SparkStreaming+HBase实时点击流案例

前言 最近在专注Spark开发,记录下自己的工作和学习路程,希望能跟大家互相交流成长 本文章更倾向于实战案例,涉及框架原理及基本应用还请读者自行阅读相关文章,相关在本文章最后参考资料中...

舒运
07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud Gateway真的有那么差吗?

前言 Spring Cloud从一开始最受大家质疑的就是网关性能,那是由于Spring Cloud最初选择了使用Netflix几年前开源的Zuul作为基础,而高性能版的Zuul 2在经过了多次跳票之后,对于Spring这样的整...

Java小铺
44分钟前
1
0
SpringBoot远程调试,远程debug你的线上项目

开发环境中代码出错了,可以利用IDE的debug功能来进行调试。那线上环境出错呢? 一、假设我们的项目是部署在tomcat中,那我们就需要对tomcat进行一定对配置,配置如下。 1. windows系统中,找...

nonnetta
49分钟前
0
0
JAVA秒杀优化方向

秒杀优化方向 将请求尽量拦截在系统上游:传统秒杀系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重,几乎所有请求都超时,流量虽大,下单成功的有效流量甚小,我们可以通过限流、...

小贱是个程序员
56分钟前
0
0
C# 统计字符串中大写字母和小写字母的个数

static void Main() { int count1 = 0; int count2 = 0; Console.WriteLine("请输入字符串"); string str = Convert.ToString(Consol......

熊二的爸爸是谁
58分钟前
0
0
分布式服务框架之远程通讯技术及原理分析

在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是...

老道士
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部