首页 > 其他分享 >记一次spark聚合清洗数据分区裁剪失效的问题

记一次spark聚合清洗数据分区裁剪失效的问题

时间:2024-12-10 21:00:47浏览次数:7  
标签:dimen 分区 裁剪 过滤 报错 spark

背景

公司有一套大数据的清洗流程,模式是:spark with hive。在执行聚合原始表的操作当中,有一个spark sql过滤条件,如下:
yyyy = '${yyyy}' and mm = '${mm}' and dd = '${dd}' and hh = '${hh}' and (dimen ='303' or (dimen='302' and as_burl=1))
在跑任务的过程中发现报错,提示dimen='6'的分区文件不存在,报错退出了。报错如下:

问题

dimen在过滤条件中只使用了dimen='303'和dimen='302',为什么会出现依赖dimen='6'的情况?
在yarn中查看这个任务的执行计划,发现在分区裁剪的信息中,只有:yyyy,mm,dd,hh的分区过滤,dimen分区被忽略。这样导致的问题就是spark会去扫描所有dimen分区的,就会出现上图的报错,提示dimen='6'的文件不存在。

解决方法

由于查询条件中,dimen出现了or条件,怀疑是这个影响了spark的执行计划,所以调整sql,通过sql子查询的方式,先查出所有dimen in ('303','302')的数据,再进行聚合逻辑,查看其执行计划发现这次的计划中包含的dimen分区的过滤,问题解决。

总结

总的来说就是出现这种需要获取不属于过滤条件范围内的文件数据时,要先排查执行计划中是否有出现分区裁剪失效的问题。

标签:dimen,分区,裁剪,过滤,报错,spark
From: https://www.cnblogs.com/hill1126/p/18598000

相关文章

  • MySQL分区
    1. 什么是表分区?mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存表索引的。如果一张表的数据量太大的话,那么myd,myi就会变的很大,查找数......
  • SparkSQL 中 DataFrame 的转换
    目录一、Spark中的数据类型概述二、DataFrame的转换方式自动推断类型转换DataFrame  自定义Schema转换DataFrame三、DataFrame与RDD互转四、实际应用场景与注意事项五、总结        在大数据处理领域,SparkSQL凭借其强大的数据处理能力和高效的......
  • 探索SparkLLM API:如何在你的应用中集成智能聊天功能
    探索SparkLLMAPI:如何在你的应用中集成智能聊天功能引言现如今,人工智能聊天机器人在各类应用中愈发流行,帮助企业和开发者提升用户体验。iFlyTek的SparkLLM是一个出色的聊天模型API,它为开发者提供了强大的语言理解和生成能力。本篇文章旨在介绍如何使用SparkLLMAPI来集成......
  • Linux硬盘挂载与磁盘分区基础(二)(物理卷、卷组、逻辑卷)
      上篇介绍了分区,都是建立在硬盘的基础之上,但是问题出现了,硬盘的空间是固定的,一般的,无论我们的电脑还是服务器,都可以容纳多块硬盘,甚至还可以使用USB等接口接入额外的存储,这样,如果都是用单个硬盘的分区来管理,比如扩容,非常不方便,有没有办法把多个硬盘视为一个整理,当做一块硬盘来管......
  • 【fdisk 操作磁盘,新建分区】
    文章目录:fdisk操作磁盘,新建分区:(以我板子内部的EMMC设备为例)查看有无磁盘设备:已知磁盘路径为/dev/mmcblk0,使用fdisk操作磁盘:输入m查看分区命令:使用命令进行分区操作:查看生成的分区:查看确认分区生成,进行格式化处理:挂载并查看:编写shell脚本一键操作:fdisk......
  • 28-OpenCVSharp--图像ROI裁剪详细使用方法
    专栏地址:《OpenCV功能使用详解200篇》《OpenCV算子使用详解300篇》《Halcon算子使用详解300篇》内容持续更新,欢迎点击订阅OpenCVSharp图像裁剪selectROI算法详解在计算机视觉中,图像裁剪是非常基础的操作之一,常常用于从图像中提取感兴趣区域(RegionofInter......
  • 最新AI问答创作运营系统(SparkAi系统),GPT-4.0/GPT-4o多模态模型+联网搜索提问+问答分析+
    目录一、人工智能系统介绍文档二、功能模块介绍系统快速体验三、系统功能模块3.1AI全模型支持/插件系统AI大模型多模态模型文档分析多模态识图理解能力联网搜索回复总结3.2AI智能体应用3.2.1AI智能体/GPTs商店3.2.2AI智能体/GPTs工作台3.2.3自定义创建AI智......
  • spark 批量写入redis控制
    需求sparkscala程序读取hive数据,sparksql解析然后分批写入redis原则:一、尽可能少和redis交互,减少redis写入压力。二、可以考虑pipeline的操作习惯。三、不要一个partition只提交一个pipeline网络传输压力大内存消耗高Redis服务端处理压力大可能增加命令处理......
  • 直接删除Linux分区后进入电脑变成grub页面,如何解决
    这个就是Linux没删干净,要把grub删除。我找到两个视频,可以来帮助解决问题。目前我的问题已解决。第一个视频可以暂时从grub页面进入Windows页面,但是不保证之后再开机还是Windows页面。我尝试了一下,如果关机再重启的话还是grub页面而不是Windows页面。【电脑开机报错提示grub,wi......
  • 计算机毕业设计Spark+SpringBoot旅游推荐系统 旅游景点推荐 旅游可视化 旅游爬虫 景区
    温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!温馨提示:文末有CSDN平台官方提供的学长联系方式的名片!作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO......