使用随机数以及扩容表进行join代码
/*** 使用随机数和扩容表进行join*/JavaPairRDD<String, Row> expandedRDD = userid2InfoRDD.flatMapToPair(new PairFlatMapFunction<Tuple2<Long,Row>, String, Row>() {private static final long serialVersionUID = 1L;@Overridepublic Iterable<Tuple2<String, Row>> call(Tuple2<Long, Row> tuple)throws Exception {List<Tuple2<String, Row>> list = new ArrayList<Tuple2<String, Row>>();for(int i = 0; i < 10; i++) {list.add(new Tuple2<String, Row>(0 + "_" + tuple._1, tuple._2));}return list;}});JavaPairRDD<String, String> mappedRDD = userid2PartAggrInfoRDD.mapToPair(new PairFunction<Tuple2<Long,String>, String, String>() {private static final long serialVersionUID = 1L;@Overridepublic Tuple2<String, String> call(Tuple2<Long, String> tuple)throws Exception {Random random = new Random();int prefix = random.nextInt(10);return new Tuple2<String, String>(prefix + "_" + tuple._1, tuple._2); }});JavaPairRDD<String, Tuple2<String, Row>> joinedRDD = mappedRDD.join(expandedRDD);JavaPairRDD<String, String> finalRDD = joinedRDD.mapToPair(new PairFunction<Tuple2<String,Tuple2<String,Row>>, String, String>() {private static final long serialVersionUID = 1L;@Overridepublic Tuple2<String, String> call(Tuple2<String, Tuple2<String, Row>> tuple)throws Exception {String partAggrInfo = tuple._2._1;Row userInfoRow = tuple._2._2;String sessionid = StringUtils.getFieldFromConcatString(partAggrInfo, "\\|", Constants.FIELD_SESSION_ID);int age = userInfoRow.getInt(3);String professional = userInfoRow.getString(4);String city = userInfoRow.getString(5);String sex = userInfoRow.getString(6);String fullAggrInfo = partAggrInfo + "|"+ Constants.FIELD_AGE + "=" + age + "|"+ Constants.FIELD_PROFESSIONAL + "=" + professional + "|"+ Constants.FIELD_CITY + "=" + city + "|"+ Constants.FIELD_SEX + "=" + sex;return new Tuple2<String, String>(sessionid, fullAggrInfo);}});
转载于:https://www.cnblogs.com/gentle-awen/p/10144893.html
使用随机数以及扩容表进行join代码相关推荐
- 阿里规定超过三张表禁止JOIN,为啥呢?
作者 | e71hao 来源 | http://blog.itpub.net/30393770/viewspace-2650450/ 一. 问题提出 <阿里巴巴JAVA开发手册>里面写超过 ...
- oracle中join另一个表后会查询不出一些数据_阿里规定超过3张表,禁止JOIN,为何?
一. 问题提出 <阿里巴巴JAVA开发手册>里面写超过三张表禁止join,这是为什么? 二.问题分析 对这个结论,你是否有怀疑呢?也不知道是哪位先哲说的不要人云亦云,今天我设计sql,来验 ...
- mysql关联表id_mysql join联表 + id自增
join的写法 如果用left join 左边的表一定是驱动表吗?两个表的join包含多个条件的等值匹配,都要写道on还是只把一个写到on,其余写道where部分? createtablea(f1in ...
- 涨知识了!阿里规定超过三张表禁止join,为啥?
点击上方"菜鸟学Python",选择"星标"公众号 重磅干货,第一时间送达 作者:e71hao blog.itpub.net/30393770/viewspac ...
- 一个流和百亿级的表的join
以spark为例:分治 百亿级的表按分区裁分,成几个表.最后每一个表很流进行join,最后在合并. 流和离线维表的join 核心代码: val kafkaManager = new KafkaMana ...
- 黑客登录界面科幻黑色主题网页模板表单验证代码
黑客登录界面科幻黑色主题网页模板表单验证代码 效果: html代码: <!DOCTYPE html> <html lang="en"><head> ...
- 1.19.5.4.流上的Join、常规Join、时间区间Join、时态表Join、基于处理时间的时态Join、时态表函数Join、用法
1.19.5.4.流上的Join 1.19.5.4.1.常规Join 1.19.5.4.2.时间区间Join 1.19.5.4.3.时态表Join 1.19.5.4.4.基于处理时间的时态Join 1 ...
- spark做两张大表的join操作,mapPartition和重分区算子的使用策略
Spark中做两个大hive表的join操作,先读取过来处理成两个数据量很大的RDD,如果两个RDD直接进行join操作,势必会造成shuffle等导致运行非常缓慢,那么怎么优化呢?方法如下: 首先, ...
- hive中多表full join主键重复问题
目录 0. 其他 1. 问题描述 2. 问题复现 2.1. 建表语句 2.2. 插入数据 2.3. 查询SQL以及问题 3. 问题原因 4. 问题解决 0. 相关文章链接 开发随笔文章汇总 1. 问题 ...
最新文章
- 整体关闭screen(转)
- 搭建 springMVC 框架
- [Student.Achieve] 学生教务管理系统开源
- 我是怎么用机器学习技术找到女票的
- Fliptile——搜索+二进制优化
- Android 使用数据库 SQlite
- 撸完这些JVM知识点,明天就去面试阿里P6+
- python旋转矩阵_python – 来自两个3D点的Euler角度和旋转矩阵
- java 数据结构--希尔排序
- 一台服务器装两个sql server_超详细的centos7部署zabbix监控服务器教程分享
- POJ 1952 DP
- Windows核心编程_HOOk SOCKET实现封包拦截
- 【狄克特斯拉算法验证】
- chrome浏览器在https网站中打开http图片,打不开的解决方案
- Adobe Photoshop download
- php面试-职业规划
- node16 node-sass 版本
- 解决Type interface com.kuang.mapper.UserMapper is not known to the MapperRegistry.的问题
- Custom Resource Definitions Operator
- 前向最大匹配分词FMM
热门文章
- MyBatis-13MyBatis动态SQL之【where、set、trim】
- 从浏览器输入URL到最终看到页面, 这其中经历了哪些过程 ?
- datagrip mysql乱码_DataGrip 2019.1.2 x64 连接MySQL出错解决
- 创建springboot_【小练习】创建SpringBoot程序
- 混沌动力学行为研究-分叉图
- 开关磁阻电机调速控制的仿真研究
- matlab 神经网络ann用于分类方法
- mysql如何实现读提交锁_MySQL学习笔记(二)—MySQL事务及锁详解
- html table 筛选记录,JS实现table表格内针对某列内容进行即时搜索筛选功能
- 面向特定专业领域的计算机,大学计算机文化基础考试题(本科)基础知识部分