/*** 使用随机数和扩容表进行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代码相关推荐

  1. 阿里规定超过三张表禁止JOIN,为啥呢?

    作者 | e71hao 来源 | http://blog.itpub.net/30393770/viewspace-2650450/ 一. 问题提出 <阿里巴巴JAVA开发手册>里面写超过 ...

  2. oracle中join另一个表后会查询不出一些数据_阿里规定超过3张表,禁止JOIN,为何?

    一. 问题提出 <阿里巴巴JAVA开发手册>里面写超过三张表禁止join,这是为什么? 二.问题分析 对这个结论,你是否有怀疑呢?也不知道是哪位先哲说的不要人云亦云,今天我设计sql,来验 ...

  3. mysql关联表id_mysql join联表 + id自增

    join的写法 如果用left join 左边的表一定是驱动表吗?两个表的join包含多个条件的等值匹配,都要写道on还是只把一个写到on,其余写道where部分? createtablea(f1in ...

  4. 涨知识了!阿里规定超过三张表禁止join,为啥?

    点击上方"菜鸟学Python",选择"星标"公众号 重磅干货,第一时间送达 作者:e71hao blog.itpub.net/30393770/viewspac ...

  5. 一个流和百亿级的表的join

    以spark为例:分治 百亿级的表按分区裁分,成几个表.最后每一个表很流进行join,最后在合并. 流和离线维表的join 核心代码: val kafkaManager = new KafkaMana ...

  6. 黑客登录界面科幻黑色主题网页模板表单验证代码

    黑客登录界面科幻黑色主题网页模板表单验证代码 效果: html代码: <!DOCTYPE html> <html lang="en"><head> ...

  7. 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 ...

  8. spark做两张大表的join操作,mapPartition和重分区算子的使用策略

    Spark中做两个大hive表的join操作,先读取过来处理成两个数据量很大的RDD,如果两个RDD直接进行join操作,势必会造成shuffle等导致运行非常缓慢,那么怎么优化呢?方法如下: 首先, ...

  9. hive中多表full join主键重复问题

    目录 0. 其他 1. 问题描述 2. 问题复现 2.1. 建表语句 2.2. 插入数据 2.3. 查询SQL以及问题 3. 问题原因 4. 问题解决 0. 相关文章链接 开发随笔文章汇总 1. 问题 ...

最新文章

  1. 整体关闭screen(转)
  2. 搭建 springMVC 框架
  3. [Student.Achieve] 学生教务管理系统开源
  4. 我是怎么用机器学习技术找到女票的
  5. Fliptile——搜索+二进制优化
  6. Android 使用数据库 SQlite
  7. 撸完这些JVM知识点,明天就去面试阿里P6+
  8. python旋转矩阵_python – 来自两个3D点的Euler角度和旋转矩阵
  9. java 数据结构--希尔排序
  10. 一台服务器装两个sql server_超详细的centos7部署zabbix监控服务器教程分享
  11. POJ 1952 DP
  12. Windows核心编程_HOOk SOCKET实现封包拦截
  13. 【狄克特斯拉算法验证】
  14. chrome浏览器在https网站中打开http图片,打不开的解决方案
  15. Adobe Photoshop download
  16. php面试-职业规划
  17. node16 node-sass 版本
  18. 解决Type interface com.kuang.mapper.UserMapper is not known to the MapperRegistry.的问题
  19. Custom Resource Definitions Operator
  20. 前向最大匹配分词FMM

热门文章

  1. MyBatis-13MyBatis动态SQL之【where、set、trim】
  2. 从浏览器输入URL到最终看到页面, 这其中经历了哪些过程 ?
  3. datagrip mysql乱码_DataGrip 2019.1.2 x64 连接MySQL出错解决
  4. 创建springboot_【小练习】创建SpringBoot程序
  5. 混沌动力学行为研究-分叉图
  6. 开关磁阻电机调速控制的仿真研究
  7. matlab 神经网络ann用于分类方法
  8. mysql如何实现读提交锁_MySQL学习笔记(二)—MySQL事务及锁详解
  9. html table 筛选记录,JS实现table表格内针对某列内容进行即时搜索筛选功能
  10. 面向特定专业领域的计算机,大学计算机文化基础考试题(本科)基础知识部分