一种数据处理方法及装置制造方法及图纸

技术编号:36157725 阅读:21 留言:0更新日期:2022-12-31 20:04
本申请实施例提供了一种数据处理方法及装置,该方法包括:接收待处理文件,待处理文件包括多行信息;对待处理文件进行压缩处理,得到压缩文件;读取压缩文件中的多行信息,得到多行数据;利用自定义HadoopInputFormat对多行数据进行合并,得到单行完整数据;利用hive表的清洗逻辑对单行完整数据进行数据清洗,得到与单行完整数据对应的hive表记录。本申请实施例基于自定义HadoopInputFormat清洗异构数据,使多行数据转化为单行完整数据,再将单行完整数据使用hive表的清洗逻辑清洗为hive表的一行记录,解决了异构数据清洗的痛点,不需要对异构数据进行额外的合并处理,减少对数据的处理步骤,节约数据处理的时长。节约数据处理的时长。节约数据处理的时长。

【技术实现步骤摘要】
一种数据处理方法及装置


[0001]本申请涉及数据清洗领域,尤其涉及一种数据处理方法及装置。

技术介绍

[0002]数仓是大数据领域中的一个基础领域,Hadoop和hive为大数据数仓最常用的组件。Hive可以通过Hadoop提供的InputFormat进行数据信息的读写操作,原始的HadoopInputFormat只能进行单行的读写操作,hive利用原始的hadoopInputFormat便也只能清洗单行数据,即所有的数据信息必须写入一行hive表记录里。但有时获得的数据信息不是单行数据,例如json格式的数据进行格式化后就会变成多行数据。对于包括多行数据的数据信息,原始的hadoopInputFormat无法清洗出用户需要的数据,使得原始的hadoop InputFormat无法满足用户的需求。

技术实现思路

[0003]有鉴于此,本申请的目的在于提供了一种数据处理方法及装置,以解决异构数据清洗的痛点,不需要对异构数据进行额外的合并处理,减少对数据的处理步骤,节约数据处理的时长,其具体技术方案如下:
[0004]第一方面,本申请提供了一种数据处理方法,所述方法包括:
[0005]接收待处理文件,所述待处理文件包括多行信息;
[0006]对所述待处理文件进行压缩处理,得到压缩文件;
[0007]读取所述压缩文件中的多行信息,得到多行数据;
[0008]利用自定义HadoopInputFormat对所述多行数据进行合并,得到单行完整数据;
[0009]利用hive表的清洗逻辑对所述单行完整数据进行数据清洗,得到与所述单行完整数据对应的hive表记录。
[0010]在一种可能的实现方式中,所述对所述待处理文件进行压缩处理,得到压缩文件,包括:
[0011]采用不可分割格式对所述待处理文件进行压缩处理,得到压缩文件。
[0012]在一种可能的实现方式中,所述读取所述压缩文件中的多行信息,得到多行数据,包括:
[0013]利用MapTask按行读取所述压缩文件中的多行信息,得到多行数据。
[0014]在一种可能的实现方式中,若所述多行数据包括两行数据,所述利用自定义HadoopInputFormat对所述多行数据进行合并,得到单行完整数据,包括:
[0015]读取所述多行数据中的首行数据;
[0016]判断所述首行数据是否完整;
[0017]若所述首行数据不完整,则输出一行空的数据,并读取所述多行数据中的第二行数据;
[0018]将所述第二行数据与所述首行数据进行合并,判断合并后的数据是否完整;
[0019]若所述合并后的数据完整,则将合并后的数据作为单行完整数据。
[0020]在一种可能的实现方式中,所述自定义HadoopInputFormat通过以下方式得到:
[0021]获取原始HadoopInputFormat;
[0022]自定义一个实现类继承所述原始HadoopInputFormat中的FileInputFormat,所述实现类的数据处理逻辑包括将多行数据合并为一行完整数据;
[0023]自定义所述原始HadoopInputFormat中的RecordReader,得到所述自定义HadoopInputFormat。
[0024]第二方面,本申请还提供了一种数据处理装置,所述装置包括:
[0025]接收模块,用于接收待处理文件,所述待处理文件包括多行信息;
[0026]压缩模块,用于对所述待处理文件进行压缩处理,得到压缩文件;
[0027]读取模块,用于读取所述压缩文件中的多行信息,得到多行数据;
[0028]合并模块,用于利用自定义HadoopInputFormat对所述多行数据进行合并,得到单行完整数据;
[0029]清洗模块,用于利用hive表的清洗逻辑对所述单行完整数据进行数据清洗,得到与所述单行完整数据对应的hive表记录。
[0030]在一种可能的实现方式中,所述压缩模块,具体用于:
[0031]采用不可分割格式对所述待处理文件进行压缩处理,得到压缩文件。
[0032]在一种可能的实现方式中,所述读取模块,具体用于:
[0033]利用MapTask按行读取所述压缩文件中的多行信息,得到多行数据。
[0034]在一种可能的实现方式中,若所述多行数据包括两行数据,所述合并模块,具体用于:
[0035]读取所述多行数据中的首行数据;
[0036]判断所述首行数据是否完整;
[0037]若所述首行数据不完整,则输出一行空的数据,并读取所述多行数据中的第二行数据;
[0038]将所述第二行数据与所述首行数据进行合并,判断合并后的数据是否完整;
[0039]若所述合并后的数据完整,则将合并后的数据作为单行完整数据。
[0040]在一种可能的实现方式中,所述装置还包括自定义模块,所述自定义模块,用于:
[0041]获取原始HadoopInputFormat;
[0042]自定义一个实现类替换所述原始HadoopInputFormat中的FileInputFormat,所述实现类的数据处理逻辑包括将多行数据合并为一行完整数据;
[0043]自定义所述原始HadoopInputFormat中的RecordReader,得到所述自定义HadoopInputFormat。
[0044]本申请实施例提供的方法,包括:接收待处理文件,待处理文件包括多行信息;对待处理文件进行压缩处理,得到压缩文件;读取压缩文件中的多行信息,得到多行数据;利用自定义HadoopInputFormat对多行数据进行合并,得到单行完整数据;利用hive表的清洗逻辑对单行完整数据进行数据清洗,得到与单行完整数据对应的hive表记录。本申请实施例基于自定义Hadoop InputFormat清洗异构数据,使多行数据转化为单行完整数据,再将单行完整数据使用hive表的清洗逻辑清洗为hive表的一行记录,解决了异构数据清洗的痛
点,不需要对异构数据进行额外的合并处理,减少对数据的处理步骤,节约数据处理的时长。
附图说明
[0045]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0046]图1示出了本申请提供的一种数据处理方法实施例的流程图;
[0047]图2示出了本申请提供的一种自定义HadoopInputFormat的数据处理逻辑的流程图;
[0048]图3示出了本申请提供的一种数据处理装置的结构示意图。
具体实施方式
[0049]为使本申请实施例的目的、技术方案和优点更加清楚,下本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据处理方法,其特征在于,所述方法包括:接收待处理文件,所述待处理文件包括多行信息;对所述待处理文件进行压缩处理,得到压缩文件;读取所述压缩文件中的多行信息,得到多行数据;利用自定义Hadoop InputFormat对所述多行数据进行合并,得到单行完整数据;利用hive表的清洗逻辑对所述单行完整数据进行数据清洗,得到与所述单行完整数据对应的hive表记录。2.根据权利要求1所述的方法,其特征在于,所述对所述待处理文件进行压缩处理,得到压缩文件,包括:采用不可分割格式对所述待处理文件进行压缩处理,得到压缩文件。3.根据权利要求1所述的方法,其特征在于,所述读取所述压缩文件中的多行信息,得到多行数据,包括:利用MapTask按行读取所述压缩文件中的多行信息,得到多行数据。4.根据权利要求1至3任一项所述的方法,其特征在于,若所述多行数据包括两行数据,所述利用自定义Hadoop InputFormat对所述多行数据进行合并,得到单行完整数据,包括:读取所述多行数据中的首行数据;判断所述首行数据是否完整;若所述首行数据不完整,则输出一行空的数据,并读取所述多行数据中的第二行数据;将所述第二行数据与所述首行数据进行合并,判断合并后的数据是否完整;若所述合并后的数据完整,则将合并后的数据作为单行完整数据。5.根据权利要求4所述的方法,其特征在于,所述自定义Hadoop InputFormat通过以下方式得到:获取原始Hadoop InputFormat;自定义一个实现类继承所述原始Hadoop InputFormat中的FileInputFormat,所述实现类的数据处理逻辑包括将多行数据合并为一行完整数据;自定义所述原始Hadoop InputFormat中的RecordReader,得到所述自定义Hadoop...

【专利技术属性】
技术研发人员:刘立力姚智健
申请(专利权)人:湖南快乐阳光互动娱乐传媒有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1