当前位置: 首页 > article >正文

SQL进阶技巧:如何优化NULL值引发的数据倾斜问题?

目录

0 场景描述

1 问题分析

1.1 问题剖析

1.2 解决方案

2 小结


0 场景描述

实际业务中有些大量的null值或者一些无意义的数据参与到计算作业中,表中有大量的null值,如果表之间进行join操作,就会有shuffle产生,这样所有的null值都会被分配到一个reduce中,必然产生数据倾斜。

1 问题分析

1.1 问题剖析

疑问:NULL值和需要匹配的字段根本就匹配不上,为什么会进入到同一个reduce?

数据放到同一个reduce中的原因不是因为字段能不能join上,而是因为shuffle阶段的数据分发操作(数据路由算法决定的),因为join中的key要进行匹配,在mr中此时key需要被分发,只要key的hash结果是一样的,它们就会被拉到同一个reduce中,被分到


http://www.kler.cn/news/338828.html

相关文章:

  • 【时间盒子】-【9.任务设置项】自定义任务名称、任务时长等设置项组件
  • 函数编程:让开发完全专注于代码
  • 深度学习——生成对抗网络(GAN)
  • 多文件并发多线程MD5工具(相对快速的MD5一批文件),适配自定义MD5 Hash I/O缓存。
  • PCL 计算点云的平均曲率
  • win11远程连接MySQL(linux版),不需安装docker容器
  • 什么是变阻器?
  • 超声波清洗机什么品牌洗眼镜好用?四款高品质眼镜清洗机力荐!
  • 基于Java语言的充电桩平台+云快充协议+充电桩管理后台+充电桩小程序
  • 【Docker】05-Docker部署前端项目
  • 电子摄像头分割系统源码&数据集分享
  • RKMEDIA画面质量调节-QP调节
  • 电脑怎么卸载软件?学会这6个卸载软件技巧就够了(精选)
  • 基于Tensorrt C++ API 构建YOLOV5实现engine以及推理
  • PhpStudy-PHP5.4.45后门漏洞应用程序(C++/base64/winhttp)
  • OmniCorpus数据集:最大(百亿级别)多模态数据集
  • 深入理解C语言中的内存分配函数:malloc、calloc、realloc
  • Modern CMake 简明教程(5)- 安装
  • Redis篇(面试题 - 连环16炮)(持续更新迭代)
  • 【笔记】I/O总结王道强化视频笔记