IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 小小数据分析师的踩坑贴 | Hive报错,关于 percentile() vs percentile_approx() -> 正文阅读

[大数据]小小数据分析师的踩坑贴 | Hive报错,关于 percentile() vs percentile_approx()

《小小数据分析师的踩坑贴》系列 积累、总结自己工作日常中踩过的坑,希望以后不再遇到~ 🌟

?? 今天是Percentile函数在Hive中的使用,percentile() 🆚 percentile_approx()

报错:Hive query failed, Error while compiling statement: FAILED: NoMatchingMethodException No matching method for class org.apache.hadoop.hive.ql.udf.UDAFPercentile with (double, double). Possible choices: FUNC(bigint, array) FUNC(bigint, double)

?? 如果我的总结对你有帮助,请点赞👍支持哦,谢谢!!
欢迎留言交流~~ 一起进步 💦

?? 「更多我的踩坑贴」
小小数据分析师的踩坑贴 | 文章集合


一、背景

  • 需求:计算 某浮点型变量的分位数值(50、80、90分位数)
  • 做法:在hive脚本中,使用percentile 函数
  • 报错:Hive query failed, Error while compiling statement: FAILED: NoMatchingMethodException No matching method for class org.apache.hadoop.hive.ql.udf.UDAFPercentile with (double, double). Possible choices: FUNC(bigint, array) FUNC(bigint, double)

二、分析报错的原因 🔍

1、首先看懂报错讲的是什么:
FAILED: NoMatchingMethodException No matching method for class org.apache.hadoop.hive.ql.udf.UDAFPercentile with (double, double). Possible choices: FUNC(bigint, array) FUNC(bigint, double)
-》Percentile 函数错了
-〉具体怎么错的:
我用的是Percentile with (double, double),但是可行的方法是 Possible choices: FUNC(bigint, array) FUNC(bigint, double)

2、定位报错原因:
根据报错提示,可以知道 是 数据类型出了问题??
Possible choices: FUNC(bigint, array) FUNC(bigint, double)
-》如果要用percentile函数,则传入变量的数据类型应该为 bigint。而我传入的变量是浮点型的数据。
-》因此,要么更改数据类型,要么使用其他函数。


三、解决方案 😄

1、根据以上分析,两种解决办法:要么更改数据类型,要么使用其他函数。

2、但根据实际情况,变量一定要保持浮点型数据,不可能修改成bigint。所以,只能使用其他函数代替percentile()。

3、 percentile() 🆚 percentile_approx()

  • percentile(col, p):percentile要求输入的字段必须是int类型的
  • percentile_approx(col, p):percentile_approx则是数值类似型的都可以

4、解决方案:使用 percentile_approx()在这里插入图片描述


?? 如果我的总结对你有帮助,请点赞👍支持哦,谢谢!!
欢迎留言交流~~ 一起进步 💦

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 13:42:21  更:2021-08-09 13:42:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 18:28:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码