System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开涉及大数据,尤其涉及数据查询方法、装置、计算机设备及存储介质。
技术介绍
1、一些大数据处理平台中,执行sql(structured query language,结构化查询语言)时可能存在问题。以spark为例,spark是一个可应用于大规模数据处理的快速、通用引擎。spark向用户提供很多内置算子以实现各种数据处理和分析操作,算子是指用于对数据集进行转换和计算的函数或方法。
2、spark向python(一种编程语言)开发者提供了接口pyspark,用户可以使用pyspark来提交自定义函数的代码,并注册至spark sql中作为python算子,后续用户便可以在sql语句中调用该自定义函数,spark会使用该python算子进行相应计算。
3、目前在平台中使用自定义函数存在一些问题。例如,条件语句本身会包含用户指定的目标条件以及满足目标条件后要执行的操作,如果满足目标条件后所要执行的操作中需要调用python自定义函数,spark对该sql的实际执行中,会先让python算子对数据表中的全量数据进行计算,再由其他算子从全量数据的计算结果中,筛选出满足目标条件的数据对应的计算结果。因此,已有技术存在python算子对未满足目标条件的数据进行了多余计算的缺陷。
技术实现思路
1、为克服相关技术中存在的问题,本公开提供了数据查询方法、装置、计算机设备及存储介质。
2、根据本说明书实施例的第一方面,提供一种数据查询方法,所述方法应用于大数据处
3、接收对源数据表的数据查询语句;
4、解析所述数据查询语句,确定所述数据查询语句中包含的目标条件语句;其中,所述目标条件语句包含目标条件和与所述目标条件对应的结果表达式,所述结果表达式用于调用所述自定义函数;
5、识别所述源数据表中的数据记录是否满足所述目标条件,并基于识别结果生成表征所述源数据表中的数据记录是否满足所述目标条件的数据标记;
6、将所述数据标记传递给用于执行所述自定义函数的python进程,以使所述python进程在对所述源数据表进行计算的过程中,基于所述数据标记,对未满足所述目标条件的数据记录进行过滤处理,并执行所述自定义函数以针对满足所述目标条件的数据记录进行计算。
7、根据本说明书实施例的第二方面,提供一种数据查询装置,所述装置应用于大数据处理平台中,所述大数据处理平台维护有用户基于python语言创建的自定义函数,所述装置包括:
8、接收模块,接收对源数据表的数据查询语句;
9、解析模块,解析所述数据查询语句,确定所述数据查询语句中包含的目标条件语句;其中,所述目标条件语句包含目标条件和与所述目标条件对应的结果表达式,所述结果表达式用于调用所述自定义函数;
10、生成模块,识别所述源数据表中的数据记录是否满足所述目标条件,并基于识别结果生成表征所述源数据表中的数据记录是否满足所述目标条件的数据标记;
11、传递模块,将所述数据标记传递给用于执行所述自定义函数的python进程,以使所述python进程在对所述源数据表进行计算的过程中,基于所述数据标记,对未满足所述目标条件的数据记录进行过滤处理,并执行所述自定义函数以针对满足所述目标条件的数据记录进行计算。
12、根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现前述第一方面所述方法实施例的步骤。
13、根据本说明书实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述第一方面所述方法实施例的步骤。
14、本说明书的实施例提供的技术方案可以包括以下有益效果:
15、本说明书实施例中,在大数据处理平台中会针对sql进行解析,若sql的目标条件语句中目标条件对应的结果表达式需要调用python自定义函数,本实施例会识别sql的源数据表中的数据记录是否满足该目标条件,并为数据记录生成表征该数据记录是否满足目标条件的数据标记;该数据标记能够传递给用于执行python自定义函数的python进程,使得python进程能够基于数据标记知道哪些数据记录需要调用自定义函数进行计算,哪些数据记录不需要计算可以直接过滤掉;如此,python进程不需要对源数据表进行全量计算,从而不会出现python进程进行多余计算的情况。
16、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本文档来自技高网...【技术保护点】
1.一种数据查询方法,所述方法应用于大数据处理平台中,所述大数据处理平台维护有用户基于Python语言创建的自定义函数,所述方法包括:
2.根据权利要求1所述的方法,所述目标条件语句还包含默认结果;
3.根据权利要求1所述的方法,所述自定义函数有多个;
4.根据权利要求3所述的方法,所述将所述数据标记传递给用于执行所述自定义函数的Python进程,以使所述Python进程在对所述源数据表进行计算的过程中,基于所述数据标记,对未满足所述目标条件的数据记录进行过滤处理,并执行所述自定义函数以针对满足所述目标条件的数据记录进行计算,包括:
5.根据权利要求1所述的方法,所述自定义函数是一个;所述数据标记包括用于指示数据记录是否满足目标条件的标签值。
6.根据权利要求1所述的方法,所述自定义函数有多个;所述数据标记包括:以所述自定义函数的函数标识为key,以用于指示数据记录是否满足目标条件的标签值为value的key-value键值对。
7.根据权利要求1所述的方法,所述目标条件语句包括CASE WHEN语句,或IF
8.一种数据查询装置,所述装置应用于大数据处理平台中,所述大数据处理平台维护有用户基于Python语言创建的自定义函数,所述装置包括:
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现权利要求1至7任一所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至7任一所述方法的步骤。
...【技术特征摘要】
1.一种数据查询方法,所述方法应用于大数据处理平台中,所述大数据处理平台维护有用户基于python语言创建的自定义函数,所述方法包括:
2.根据权利要求1所述的方法,所述目标条件语句还包含默认结果;
3.根据权利要求1所述的方法,所述自定义函数有多个;
4.根据权利要求3所述的方法,所述将所述数据标记传递给用于执行所述自定义函数的python进程,以使所述python进程在对所述源数据表进行计算的过程中,基于所述数据标记,对未满足所述目标条件的数据记录进行过滤处理,并执行所述自定义函数以针对满足所述目标条件的数据记录进行计算,包括:
5.根据权利要求1所述的方法,所述自定义函数是一个;所述数据标记包括用于指示数据记录是否满足目标条件的标签值。
6.根据权利要求1所...
【专利技术属性】
技术研发人员:汪翔春,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。