一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理方法及装置与流程

2023-01-16 09:51:54 来源:中国专利 TAG:
1.本技术涉及数据清洗领域,尤其涉及一种数据处理方法及装置。
背景技术
::2.数仓是大数据领域中的一个基础领域,hadoop和hive为大数据数仓最常用的组件。hive可以通过hadoop提供的inputformat进行数据信息的读写操作,原始的hadoopinputformat只能进行单行的读写操作,hive利用原始的hadoopinputformat便也只能清洗单行数据,即所有的数据信息必须写入一行hive表记录里。但有时获得的数据信息不是单行数据,例如json格式的数据进行格式化后就会变成多行数据。对于包括多行数据的数据信息,原始的hadoopinputformat无法清洗出用户需要的数据,使得原始的hadoopinputformat无法满足用户的需求。技术实现要素:3.有鉴于此,本技术的目的在于提供了一种数据处理方法及装置,以解决异构数据清洗的痛点,不需要对异构数据进行额外的合并处理,减少对数据的处理步骤,节约数据处理的时长,其具体技术方案如下:4.第一方面,本技术提供了一种数据处理方法,所述方法包括:5.接收待处理文件,所述待处理文件包括多行信息;6.对所述待处理文件进行压缩处理,得到压缩文件;7.读取所述压缩文件中的多行信息,得到多行数据;8.利用自定义hadoopinputformat对所述多行数据进行合并,得到单行完整数据;9.利用hive表的清洗逻辑对所述单行完整数据进行数据清洗,得到与所述单行完整数据对应的hive表记录。10.在一种可能的实现方式中,所述对所述待处理文件进行压缩处理,得到压缩文件,包括:11.采用不可分割格式对所述待处理文件进行压缩处理,得到压缩文件。12.在一种可能的实现方式中,所述读取所述压缩文件中的多行信息,得到多行数据,包括:13.利用maptask按行读取所述压缩文件中的多行信息,得到多行数据。14.在一种可能的实现方式中,若所述多行数据包括两行数据,所述利用自定义hadoopinputformat对所述多行数据进行合并,得到单行完整数据,包括:15.读取所述多行数据中的首行数据;16.判断所述首行数据是否完整;17.若所述首行数据不完整,则输出一行空的数据,并读取所述多行数据中的第二行数据;18.将所述第二行数据与所述首行数据进行合并,判断合并后的数据是否完整;19.若所述合并后的数据完整,则将合并后的数据作为单行完整数据。20.在一种可能的实现方式中,所述自定义hadoopinputformat通过以下方式得到:21.获取原始hadoopinputformat;22.自定义一个实现类继承所述原始hadoopinputformat中的fileinputformat,所述实现类的数据处理逻辑包括将多行数据合并为一行完整数据;23.自定义所述原始hadoopinputformat中的recordreader,得到所述自定义hadoopinputformat。24.第二方面,本技术还提供了一种数据处理装置,所述装置包括:25.接收模块,用于接收待处理文件,所述待处理文件包括多行信息;26.压缩模块,用于对所述待处理文件进行压缩处理,得到压缩文件;27.读取模块,用于读取所述压缩文件中的多行信息,得到多行数据;28.合并模块,用于利用自定义hadoopinputformat对所述多行数据进行合并,得到单行完整数据;29.清洗模块,用于利用hive表的清洗逻辑对所述单行完整数据进行数据清洗,得到与所述单行完整数据对应的hive表记录。30.在一种可能的实现方式中,所述压缩模块,具体用于:31.采用不可分割格式对所述待处理文件进行压缩处理,得到压缩文件。32.在一种可能的实现方式中,所述读取模块,具体用于:33.利用maptask按行读取所述压缩文件中的多行信息,得到多行数据。34.在一种可能的实现方式中,若所述多行数据包括两行数据,所述合并模块,具体用于:35.读取所述多行数据中的首行数据;36.判断所述首行数据是否完整;37.若所述首行数据不完整,则输出一行空的数据,并读取所述多行数据中的第二行数据;38.将所述第二行数据与所述首行数据进行合并,判断合并后的数据是否完整;39.若所述合并后的数据完整,则将合并后的数据作为单行完整数据。40.在一种可能的实现方式中,所述装置还包括自定义模块,所述自定义模块,用于:41.获取原始hadoopinputformat;42.自定义一个实现类替换所述原始hadoopinputformat中的fileinputformat,所述实现类的数据处理逻辑包括将多行数据合并为一行完整数据;43.自定义所述原始hadoopinputformat中的recordreader,得到所述自定义hadoopinputformat。44.本技术实施例提供的方法,包括:接收待处理文件,待处理文件包括多行信息;对待处理文件进行压缩处理,得到压缩文件;读取压缩文件中的多行信息,得到多行数据;利用自定义hadoopinputformat对多行数据进行合并,得到单行完整数据;利用hive表的清洗逻辑对单行完整数据进行数据清洗,得到与单行完整数据对应的hive表记录。本技术实施例基于自定义hadoopinputformat清洗异构数据,使多行数据转化为单行完整数据,再将单行完整数据使用hive表的清洗逻辑清洗为hive表的一行记录,解决了异构数据清洗的痛点,不需要对异构数据进行额外的合并处理,减少对数据的处理步骤,节约数据处理的时长。附图说明45.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。46.图1示出了本技术提供的一种数据处理方法实施例的流程图;47.图2示出了本技术提供的一种自定义hadoopinputformat的数据处理逻辑的流程图;48.图3示出了本技术提供的一种数据处理装置的结构示意图。具体实施方式49.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。50.首先,对本技术实施例中可能出现的一些名词进行解释。51.hadoop,是一个由apache基金会所开发的分布式系统基础架构。apachehadoop是一套用于在由通用硬件构建的大型集群上运行应用程序的框架,它实现了map/reduce编程范型,计算任务会被分割成小块(多次)运行在不同的节点上。除此之外,它还提供了一款分布式文件系统(hdfs),数据被存储在计算节点上以提供极高的跨数据中心聚合带宽。52.抽象类inputformat,是mapreduce编程模型包括的5个可编程组件之一。inputformat类的子类有专门用于读取普通文件的fileinputformat,用于读取数据库文件的dbinputfromat,用于读取hbase的tableinputformat等等。53.hive表,是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为mapreduce任务进行运行。其优点是学习成本低,可以通过类sql语句快速实现简单的mapreduce统计,不必开发专门的mapreduce应用,十分适合数据仓库的统计分析。54.记录阅读类recordreader,其作用是将数据切分成key/value的形式然后作为输入传给mapper。以行数为key,以行内容为value。55.maptask,在大数据数据处理中,每一个数据切片(split)分配一个maptask并行处理。56.请参见图1,示出了本技术实施例提供的一种数据处理方法实施例的流程图,本技术实施例至少包括以下步骤:57.s110,接收待处理文件。58.本技术实施例接收待处理文件,其中,待处理文件包括多行信息。59.s120,对待处理文件进行压缩处理,得到压缩文件。60.本技术实施例在接收待处理文件之后,对待处理文件进行压缩处理,得到压缩文件。61.对待处理文件进行压缩处理的一种实现方式可以是,采用不可分割格式对待处理文件进行压缩处理。其中,不可分割格式可以是gzip或者bzip2。需要说明的是,不可压缩格式可以由技术人员根据实际场景需要进行选择,本技术不做限定。62.在本技术实施例中,对待处理文件进行压缩处理,可以减少待处理文件的大小,选择不可分割格式进行文件压缩,可以让单个文件由一个maptask读取,防止多线程读取单个文件而导致的数据错乱。63.s130,读取压缩文件中的多行信息,得到多行数据。64.本技术实施例在得到压缩文件后,读取压缩文件中的多行信息,得到多行数据。65.读取压缩文件中的多行信息的一种实现方式可以是,利用maptask按行读取压缩文件中的多行信息。66.在大数据数据处理过程中,通常将一个数据文件进行切片,得到多个数据切片(split),每一个数据切片分配一个maptask并行处理。而切片不考虑数据文件整体,是逐个针对每一个数据文件单独切片,所以需要针对要处理的单个文件不让其分片。本技术实施例采用不可分片压缩格式,让每个文件只有一个maptask进行处理。maptask默认一次读取一行信息。67.s140,利用自定义hadoopinputformat对多行数据进行合并,得到单行完整数据。68.原始hadoopinputformat只能进行单行的读写操作,hive利用原始hadoopinputformat也只能清洗单行数据,无法清洗多行数据。因此,本技术实施例利用自定义hadoopinputformat对多行数据进行合并,从而得到单行完整数据,以便hive对单行完整数据进行数据清洗。69.若多行数据包括两行数据,利用自定义hadoopinputformat对多行数据进行合并,得到单行完整数据的一种实现方式可以包括如下步骤:70.s201,读取多行数据中的首行数据;71.s202,判断首行数据是否完整;72.s203,若首行数据不完整,则输出一行空的数据,并读取多行数据中的第二行数据;73.s204,将第二行数据与首行数据进行合并,判断合并后的数据是否完整;74.s205,若合并后的数据完整,则将合并后的数据作为单行完整数据。75.在数据清洗过程中,可以直接过滤空的数据。76.参见图2,示出了本技术实施例提供的一种自定义hadoopinputformat的数据处理逻辑的流程图。若多行数据包括n行数据,n为正整数,利用自定义hadoopinputformat对多行数据进行合并,得到单行完整数据,包括:77.s301,读取多行数据中的首行数据;78.s302,判断首行数据是否完整;79.s303,若首行数据不完整,则输出一行空的数据,并读取多行数据中的第二行数据;80.s304,将第二行数据与首行数据进行合并,得到第一合并数据,判断第一合并数据是否完整;81.s305,若第一合并数据不完整,则输出一行空的数据,并读取多行数据中的第三行数据;82.s306,将第三行数据与第一合并数据进行合并,得到第二合并数据,判断第二合并数据是否完整;83.s307,以此类推,直到将第n-2行数据与第n-3合并数据进行合并,得到第n-3合并数据,判断第n-3合并数据是否完整;84.s308,若第n-3合并数据不完整,则输出一行空的数据,并读取多行数据中的第n-1行数据;85.s309,将第n-1行数据与第n-3合并数据进行合并,得到第n-2合并数据,判断第n-2合并数据是否完整;86.s310,若第n-2合并数据不完整,则输出一行空的数据,并读取多行数据中的第n行数据;87.s311,将第n行数据与第n-2合并数据进行合并,得到第n-1合并数据,判断第n-1合并数据是否完整;88.s312,若第n-1合并数据完整,则将第n-1合并数据作为单行完整数据。89.通过本技术实施例,基于hadoopinputformat也能将多行数据进行合并,使得hive在数据清洗时,清洗的是合并的完整数据,保证数据的完整性。90.在本技术实施例中,自定义hadoopinputformat通过以下方式得到:91.s401,获取原始hadoopinputformat;92.s402,自定义一个实现类继承原始hadoopinputformat中的fileinputformat,实现类的数据处理逻辑包括将多行数据合并为一行完整数据;93.s403,自定义原始hadoopinputformat中的recordreader,得到自定义hadoopinputformat。使得自定义的recordreader可以用于实现实现类的数据处理逻辑,一次读取一行完整数据,并将读取的完整数据封装为kv类型。kv类型为key/value的形式。94.本技术实施例在得到自定义hadoopinputformat之后,将自定义hadoopinputformat打包部署到大数据集群中,并使用addjar命令,将自定义hadoopinputformat注册到大数据集群中。95.通过自定义hadoopinputformat清洗异构数据,不需要单独对原始的多行数据文件进行单独合并的步骤,合并的步骤可以直接使用大数据组件进行处理。按照hadoop框架的规定,每读取一行数据都要对应的输出一行数据,本技术实施例巧妙利用数据不完整,则输出一行空的数据,再后续过滤掉空的数据。减少数据文件的操作步骤和等待时间,从而提升效率。96.s150,利用hive表的清洗逻辑对单行完整数据进行数据清洗,得到与单行完整数据对应的hive表记录。97.本技术实施例在得到单行完整数据后,利用hive表的清洗逻辑对单行完整数据进行数据清洗,得到与单行完整数据对应的hive表记录。98.在本技术实施例中,接收待处理文件,待处理文件包括多行信息;对待处理文件进行压缩处理,得到压缩文件;读取压缩文件中的多行信息,得到多行数据;利用自定义hadoopinputformat对多行数据进行合并,得到单行完整数据;利用hive表的清洗逻辑对单行完整数据进行数据清洗,得到与单行完整数据对应的hive表记录。本技术实施例基于自定义hadoopinputformat清洗异构数据,使多行数据转化为单行完整数据,再将单行完整数据使用hive表的清洗逻辑清洗为hive表的一行记录,解决了异构数据清洗的痛点,不需要在hadoop框架外对异构数据进行额外的合并处理,减少对数据的处理步骤,节约数据处理的时长。99.接下来对本技术提供的一种数据处理装置进行介绍,下文介绍的一种数据处理装置与上文介绍的一种数据处理方法可相互对应参照。100.请参见图3,示出了本技术提供的一种数据处理装置的结构示意图,所述装置包括:101.接收模块301,用于接收待处理文件,所述待处理文件包括多行信息;102.压缩模块302,用于对所述待处理文件进行压缩处理,得到压缩文件;103.读取模块303,用于读取所述压缩文件中的多行信息,得到多行数据;104.合并模块304,用于利用自定义hadoopinputformat对所述多行数据进行合并,得到单行完整数据;105.清洗模块305,用于利用hive表的清洗逻辑对所述单行完整数据进行数据清洗,得到与所述单行完整数据对应的hive表记录。106.在本技术实施例中,所述压缩模块302,具体用于:107.采用不可分割格式对所述待处理文件进行压缩处理,得到压缩文件在本技术实施例中,所述读取模块303,具体用于:108.利用maptask按行读取所述压缩文件中的多行信息,得到多行数据。109.在本技术实施例中,若所述多行数据包括两行数据,所述合并模块,具体用于:110.读取所述多行数据中的首行数据;111.判断所述首行数据是否完整;112.若所述首行数据不完整,则输出一行空的数据,并读取所述多行数据中的第二行数据;113.将所述第二行数据与所述首行数据进行合并,判断合并后的数据是否完整;114.若所述合并后的数据完整,则将合并后的数据作为单行完整数据。115.在本技术实施例中,所述装置还包括自定义模块,所述自定义模块,用于:116.获取原始hadoopinputformat;117.自定义一个实现类替换所述原始hadoopinputformat中的fileinputformat,所述实现类的数据处理逻辑包括将多行数据合并为一行完整数据;118.自定义所述原始hadoopinputformat中的recordreader,得到所述自定义hadoopinputformat。119.在本技术实施例中,接收待处理文件,待处理文件包括多行信息;对待处理文件进行压缩处理,得到压缩文件;读取压缩文件中的多行信息,得到多行数据;利用自定义hadoopinputformat对多行数据进行合并,得到单行完整数据;利用hive表的清洗逻辑对单行完整数据进行数据清洗,得到与单行完整数据对应的hive表记录。本技术实施例基于自定义hadoopinputformat清洗异构数据,使多行数据转化为单行完整数据,再将单行完整数据使用hive表的清洗逻辑清洗为hive表的一行记录,解决了异构数据清洗的痛点,不需要在hadoop框架外对异构数据进行额外的合并处理,减少对数据的处理步骤,节约数据处理的时长。120.需要说明的是,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。121.对于前述的各实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本技术所必须的。122.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。123.对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。124.以上所述仅是本技术的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。当前第1页12当前第1页12
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献