一种大规模xml数据的解析方法及系统与流程

文档序号:36501874发布日期:2023-12-28 05:21阅读:34来源:国知局
本技术涉及大数据,具体涉及一种大规模xml数据的解析方法及系统。
背景技术
::1、xml(可扩展标记语言)是一种常用的数据交换格式。在大数据环境下,xml作为一种常见的载体格式,经常用于存储和传输结构化数据。2、在大数据数仓中,以xml文件集合作为数据源时,对解析xml数据的效率有较高的要求。然而,由于xml文件集合通常包含大量的标签和嵌套结构,传统的解析方法在处理并输出大规模xml数据时存在性能瓶颈,存在效率低下的问题。因此,如何在处理大规模xml数据时提高解析和输出的效率,成为亟需解决的问题。3、因此,亟需一种大规模xml数据的解析方法来解决当前技术存在的问题。技术实现思路1、本技术提供了一种大规模xml数据的解析方法及系统,可以在处理大规模xml数据时有效提高解析和输出的效率。2、第一方面,本技术提供了一种大规模xml数据的解析方法,所述方法包括:从文件系统中读取xml文件集合;所述xml文件集合中包括多个xml子文件;对所述xml文件集合进行数据清洗预处理,得到预处理后的xml文件集合;所述预处理后的xml文件集合中包括多个预处理后的xml子文件;将多个所述预处理后的xml子文件作为多个xml节点;基于spark数据处理框架对多个所述xml节点进行解析,得到第一解析数据;所述第一解析数据为结构化数据;接收至少一个解析数据输出请求,所述解析数据输出请求携带数据输出条件;根据所述数据输出条件对应的输出方式,输出所述第一解析数据。3、通过采用上述技术方案,通过多个xml子文件进行预处理,以避免无效数据和重复数据对后续解析xml数据造成影响,从而实现同时对大量xml文件集合进行解析;将多个预处理后的xml子文件作为多个xml节点,并基于spark数据处理框架对多个xml节点进行解析,得到第一解析数据,解析过程可以充分利用spark分布式数据处理引擎的计算能力和内存计算优势,从而有效地提高了解析大规模xml数据时的效率。再根据所述数据输出条件对应的输出方式输出第一解析数据,从而能够有效提高输出大规模xml数据时的效率。4、可选的,所述预处理后的xml子文件包括多个初始属性;所述基于spark数据处理框架对多个所述预处理后的xml子文件进行解析,得到第一解析数据,具体包括:基于spark数据处理框架对多个所述xml节点、多个所述初始属性以及多个所述预处理后的xml子文件中的文件内容进行转化,得到第二解析数据;基于预设第一函数将所述第二解析数据转化为第三解析数据;基于预设第二函数将所述第三解析数据转化为所述第一解析数据。5、可选的,所述基于spark数据处理框架对多个所述xml节点、多个所述初始属性以及多个所述预处理后的xml子文件中的文件内容进行转化,得到第二解析数据,具体包括:判断多个所述初始属性中是否含有嵌套属性;若是,将每个所述嵌套属性拆分为多个子属性,并将每个所述嵌套属性以外的初始属性作为子属性;若否,将每个所述初始属性作为子属性;基于spark数据处理框架,将第i个所述xml节点映射为dataframe的第i行,并将第j个所述子属性映射为dataframe的第j列;其中,i∈[1,n],j∈[1,m],n和m均为大于1的正整数;基于spark数据处理框架,将第i个所述预处理后的xml子文件中第j个所述子属性对应的文件内容转换成预设的字段结构;所述预设的字段结构包括第i行第j列与文件内容的对应关系;将所述预设的字段结构对应存储于dataframe的第i行第j列,得到第二解析数据;所述第二解析数据为dataframe数据。6、通过采用上述技术方案,通过判断初始属性中是否含有嵌套属性,若是,将嵌套属性拆分成多个子属性,从而使得属性更加完整和准确,进而使得生成的dataframe数据更加完整和准确。7、可选的,所述基于预设第一函数将所述第二解析数据转化为第三解析数据,具体包括:基于df.as[ds]函数,将所述第二解析数据转化为第三解析数据;所述第二解析数据为dataframe数据,所述第三解析数据为dataset数据。8、可选的,所述基于预设第二函数将所述第三解析数据转化为所述第一解析数据,具体包括:基于ds.write().mode(savemode.overwrite).save(tablename)函数,将所述第三解析数据转化为所述第一解析数据;所述第三解析数据为dataset数据,所述第一解析数据为hive表格数据。9、可选的,在所述基于spark数据处理框架对多个所述预处理后的xml子文件进行解析,得到第一解析数据之后,所述方法还包括:接收所述解析数据的分析处理请求,所述分析处理请求携带数据分析处理条件;基于所述分析处理条件,采用spark sql对所述第一解析数据进行分析处理,和/或,采用hive sql对所述第一解析数据进行分析处理,得到分析处理结果。10、通过采用上述技术方案,通过分析处理条件,采用spark sql对第一解析数据进行分析处理,和/或,采用hive sql对第一解析数据进行分析处理,spark sql和hive sql具有多样的分析处理第一解析数据的功能,从而可以大规模地对第一解析数据进行分析处理。11、可选的,所述对所述xml文件集合进行预处理,得到预处理后的xml文件集合,具体包括:对每个所述xml子文件进行数据清洗操作,以去除所述xml子文件中的无效数据和重复数据,得到多个所述预处理后的xml子文件。12、在本技术的第二方面提供了一种大规模xml数据的解析系统,所述系统包括:xml文件集合读取模块、预处理模块、解析模块、处理模块以及输出模块;所述xml文件集合读取模块,用于从文件系统中读取xml文件集合;所述xml文件集合中包括多个xml子文件;所述预处理模块,用于对所述xml文件集合进行预处理,得到预处理后的xml文件集合;所述预处理后的xml文件集合中包括多个预处理后的xml子文件;所述解析模块,用于基于spark数据处理框架对多个所述预处理后的xml子文件进行解析,得到第一解析数据;所述第一解析数据为结构化数据;所述处理模块,用于接收至少一个解析数据输出请求,所述解析数据输出请求携带数据输出条件;所述输出模块,用于根据所述数据输出条件对应的输出方式,输出所述第一解析数据。13、在本技术的第三方面提供了一种电子设备,包括处理器、存储器、用户接口及网络接口,所述存储器用于存储指令,所述用户接口和网络接口用于给其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述电子设备执行如本技术第一方面任意一项所述的方法。14、在本技术的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有能够被处理器加载并执行如本技术第一方面任意一项所述的方法的计算机程序。15、综上所述,本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:16、1、通过多个xml子文件进行预处理,以避免无效数据和重复数据对后续解析xml数据造成影响,从而实现同时对大量xml文件集合进行解析;将多个预处理后的xml子文件作为多个xml节点,并基于spark数据处理框架对多个xml节点进行解析,得到第一解析数据,解析过程可以充分利用spark分布式数据处理引擎的计算能力和内存计算优势,从而有效地提高了解析大规模xml数据时的效率。再根据所述数据输出条件对应的输出方式输出第一解析数据,从而能够有效提高输出大规模xml数据时的效率。17、2、通过判断初始属性中是否含有嵌套属性,若是,将嵌套属性拆分成多个子属性,从而使得属性更加完整和准确,进而使得生成的dataframe数据更加完整和准确。18、3、通过分析处理条件,采用spark sql对第一解析数据进行分析处理,和/或,采用hive sql对第一解析数据进行分析处理,spark sql和hive sql具有多样的分析处理第一解析数据的功能,从而可以大规模地对第一解析数据进行分析处理。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1