【Kylin 踩坑之旅】kylin sum() avg() 无法返回预期的结果

2023-10-21 13:30
文章标签 无法 返回 sum 预期 kylin avg

本文主要是介绍【Kylin 踩坑之旅】kylin sum() avg() 无法返回预期的结果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在使用kylin 的时候遇到了avg()函数无法求出预期值的情况,通过检查发现sum()函数也无法得出预期值,所以通过查询多方资料找到了问题所在

  • sum 函数与avg 函数无法返回正确的结果
  • 可能会遇到的其他错误
      • 错误一
        • 错误
        • 原因
        • 解决办法
  • 参考资料

sum() 函数与avg() 函数无法返回正确的结果

之前使用select语句求和的时候遇到了这样的问题:
在kylin中执行

SELECT  price,count(price) ,sum(price) ,avg(price) FROM hive_test_order group by price;

返回结果为

EXPR$0	EXPR$1  EXPR$2
58  321 5.534482759
76  407 5.355263158
71  410 5.774647887
74  416 5.621621622
79  390 4.936708861
73  390 5.342465753
64  409 6.390625
80  420 5.25
64  375 5.859375

而在hive中执行得到的结果是
在hive中执行得到的结果

很明显得到的数据有问题

这是因为price在我这里被设置为维度的原因,我们需要将它转化为度量

【1】 在Cube Designer中点击添加Measure
在Cube Designer中点击添加Measure

【2】 勾选Also Show Dimensions 后选择相应字段,点击ok保存
勾选Also Show Dimensions 后选择相应字段,点击ok保存

【3】在Advanced Setting步骤中确认以下刚刚添加的是否在Advanced ColumnFamily当中
在Advanced Setting步骤中确认以下刚刚添加的是否在Advanced ColumnFamily当中
再次执行

SELECT  count(price) ,sum(price) ,avg(price) FROM  test.hive_test_order group by userid;
EXPR$0	EXPR$1  EXPR$2
58  849     14.63793103
76  1238    16.28947368
71  947     13.33802817
74  1211    16.36486486
79  1096    13.87341772
73  1004    13.75342466
64  1014    15.84375
80  1100    13.75
64  1026    16.03125

这样一看avg() 函数也恢复正常,这是因为kylin的avg函数是 sum/count得到的结果,sum不正确avg自然也就得不到正确结果。

可能会遇到的其他错误

错误一

错误:

Error Message
CubeDesc xxx is inconsistent with existing. Try purge that cube first or avoid updating key cube desc fields.
这里写图片描述

原因:

cobe发生了改变,而修改之前cube已经创建了相关的job,生成了处理结果。

解决办法:

需要将原处理结果清除掉。
这里写图片描述

参考资料

【1】 http://apache-kylin.74782.x6.nabble.com/sum-function-error-td8564.html
【2】 http://blog.csdn.net/yu616568/article/details/48103415

这篇关于【Kylin 踩坑之旅】kylin sum() avg() 无法返回预期的结果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/254702

相关文章

Springboot3统一返回类设计全过程(从问题到实现)

《Springboot3统一返回类设计全过程(从问题到实现)》文章介绍了如何在SpringBoot3中设计一个统一返回类,以实现前后端接口返回格式的一致性,该类包含状态码、描述信息、业务数据和时间戳,... 目录Spring Boot 3 统一返回类设计:从问题到实现一、核心需求:统一返回类要解决什么问题?

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

nacos服务无法注册到nacos服务中心问题及解决

《nacos服务无法注册到nacos服务中心问题及解决》本文详细描述了在Linux服务器上使用Tomcat启动Java程序时,服务无法注册到Nacos的排查过程,通过一系列排查步骤,发现问题出在Tom... 目录简介依赖异常情况排查断点调试原因解决NacosRegisterOnWar结果总结简介1、程序在

MySQL中如何求平均值常见实例(AVG函数详解)

《MySQL中如何求平均值常见实例(AVG函数详解)》MySQLavg()是一个聚合函数,用于返回各种记录中表达式的平均值,:本文主要介绍MySQL中用AVG函数如何求平均值的相关资料,文中通过代... 目录前言一、基本语法二、示例讲解1. 计算全表平均分2. 计算某门课程的平均分(例如:Math)三、结合

Django HTTPResponse响应体中返回openpyxl生成的文件过程

《DjangoHTTPResponse响应体中返回openpyxl生成的文件过程》Django返回文件流时需通过Content-Disposition头指定编码后的文件名,使用openpyxl的sa... 目录Django返回文件流时使用指定文件名Django HTTPResponse响应体中返回openp

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

mybatis执行insert返回id实现详解

《mybatis执行insert返回id实现详解》MyBatis插入操作默认返回受影响行数,需通过useGeneratedKeys+keyProperty或selectKey获取主键ID,确保主键为自... 目录 两种方式获取自增 ID:1. ​​useGeneratedKeys+keyProperty(推

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到