[发明专利]一种基于Spark的文件过滤方法及装置在审
申请号: | 201710796524.X | 申请日: | 2017-09-06 |
公开(公告)号: | CN109460669A | 公开(公告)日: | 2019-03-12 |
发明(设计)人: | 陈克凡 | 申请(专利权)人: | 北京国双科技有限公司 |
主分类号: | G06F21/62 | 分类号: | G06F21/62 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 100086 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 读取 过滤器 文件过滤 内存 过滤 规则创建 目标过滤 文件读取 用户需要 保证 | ||
本发明公开了一种基于Spark的文件过滤方法,根据目标过滤规则创建过滤器类,在Spark SQL将parquet文件读取到内存之前,基于所述过滤器类对各个待读取的parquet文件进行过滤,得到目标parquet文件,保证所有读取到内存中的parquet文件均为用户需要的parquet文件,不需要再有用户对已读取到内存的parquet文件进行特殊处理,即可保证得到正确的结果。同时,对于较为复杂的过滤需求,也可以通过编写更加复杂的过滤器类来实现,提高了文件过滤的灵活性。
技术领域
本发明涉及数据处理技术领域,更具体的,涉及一种基于Spark的文件过滤方法及装置。
背景技术
Spark是专为大规模数据处理而设计的快速通用的计算引擎,Spark SQL是Spark的一个组件,用于结构化数据的计算,Parquet是面向分析型业务的列式存储格式。
当使用Spark Sql读取数据库中表中的数据时,如果构成表的parquet文件中包含了不合法的parquet文件,则Spark Sql在读取parquet文件时会报错,程序无法继续运行下去,这时需要人工查看日志文件,并手工删除不合法的parquet文件,文件读取效率低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于Spark的文件过滤方法及装置。
具体技术方案如下:
一种基于Spark的文件过滤方法,包括:
根据目标过滤规则创建过滤器类;
在Spark SQL将parquet文件读取到内存之前,基于所述过滤器类对各个待读取的parquet文件进行过滤,得到目标parquet文件。
优选的,所述目标过滤规则为过滤错误文件的规则。
优选的,所述根据目标过滤规则创建过滤器类,包括:
对目标过滤规则进行解析,得到目标过滤文件属性和目标过滤范围;
根据所述目标过滤对象属性和所述目标过滤范围生成过滤器类。
优选的,所述目标过滤文件属性至少包括文件名称、文件大小、文件格式、文件存储数据和文件存储地址中的任意一项。
优选的,所述基于所述过滤器类对各个待读取的parquet文件进行过滤,得到目标parquet文件,包括:
依次判断每个待读取的parquet文件是否符合所述目标过滤规则;
将不符合所述目标过滤规则的所述待读取的parquet文件判定为目标parquet文件。
优选的,在得到目标parquet文件之后,所述方法还包括:
删除未通过所述过滤器类的parquet文件,或
将未通过所述过滤器类的parquet文件存储在预设存储空间。
优选的,在所述根据目标过滤规则创建过滤器类之前,所述方法还包括:
当接收到用户携带有过滤规则的更新指令时,删除当前过滤器类,并将所述过滤规则确定为所述目标过滤规则。
一种基于Spark的文件过滤装置,包括:
创建单元,用于根据目标过滤规则创建过滤器类;
过滤单元,用于在Spark SQL将parquet文件读取到内存之前,基于所述过滤器类对各个待读取的parquet文件进行过滤,得到目标parquet文件。
一种存储介质,所述存储介质包括存储的程序,
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京国双科技有限公司,未经北京国双科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710796524.X/2.html,转载请声明来源钻瓜专利网。