范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

HiveUDF第一篇怎么实现自己的hive自定义函数

  看到这篇文章的同学相信都是 大数据相关技术爱好者 、从业人员或者业界大佬。这篇文章篇基础,属于上手性指引,如有不对的地方欢迎指正
  文章的源代码github地址在文末
  为什么要有 UDF
  纵然 内置函数(Build-in Function)再丰富,也会遇到 无法完全满足我们特定场景的需要,这时我们需要 UDF;或者我们通过内置函数可以实现,但是业务代码冗长,又或者业务代码不仅冗长而且可能要多处维护,那么这时候我们需要 UDF。
  强如 Oracle 这一霸占传统金融行业大部分数据库份额的厂商,一样提供 用户自定义函数的接口,Hive 这一开源生态的神级项目,自然也不会少。
  总之:UDF 就是为灵活性而存在,为可扩展性而存在
  选择合适的 UDF
  按照不同使用场景需要, Hive 已经为我们将 UDF 归为3类,分别对应3种不同使用场景
  1. 转换函数 UDF :适用于行级别转换操作,数据行中的一列后者几列,生成一列或者几列,效果可参照 内置函数的 upper()  讲一列的字符串所有字符 统一转换为 大写字符;
  2. 聚合函数 UDAF: 适用与多行进行聚合成一行,或者多行分组聚合成相对小的多行,效果参照 内置函数 sum() ,一般配合 group by  使用较多
  3. 表生成函数 UDTF: 适用一行生成多行场景 ,效果参照 内置函数 explode()
  实现你的 UDF 逻辑
  1. 转换函数UDF 实现 :
  以前在 Oracle 上使用 decode 做 枚举型值转译用得方便,到 hive 上了 没有这么方便的函数,只能用 case when  或者 if  这种相对繁琐,代码行数偏大
  为实现这个UDF,我们需要继承Hive相应类,实现3个函数
  1. 第一个函数,初始化:这里做2个事情
  1> 检查传入字段的合法性,我这里函数使用时传入参数必须是大于等于4个的 偶数,参照 oracle decode
  2> 我这里返回的是 字符串类型(如果你在这里有疑问:为什么返回字符串要这样做, 我在第二篇中努力讲清楚)
  如果有些需要共享连接之类资源的场景,也可以在这里做,这个方法是 每生成一个 mapper对象 执行一次,也可以理解: MR 中 每个 parttion 才执行一次 ,我在实际工作中有一个 需要远端解密的场景就用到了
  2. 第二个函数,是真正转换函数
  3. 第三个函数,hive收集元数据信息的函数
  2. 聚合函数 UDAF实现:
  抱歉,我并没有合适的公开的 案例代码直接贴出来,后面有合适的
  3. 表生成函数 UDTF 实现:
  表生成函数有很多使用场景,我这直接上我的实例:我们在 实际数据仓库研发中,对缓慢变化维度 经常使用 拉链表 来实现;而在 hive 中是不支持 不等值条件写在 on 条件里 ,只能通过 where 子句实现,但 where 子句明显是过程中产生 笛卡尔积 的做法,
  为规避这个情况 写了一个通用的 日粒度拉链表 爆炸展开的 函数, 我们在 与事实表连接时 将很方便地实现 等值连接,也方便 HIve 或者 Spark 的 执行计划 优化,避免全量的shulffe,等值join 会方便 按连接键分区
  实现UDTF 需要继承 相应类,实现 3个函数
  1. 第一个函数,初始化:所做事情参照 UDF
  2. 第二个函数,循环生成记录并 通过 forward 函数输出
  3. 第三个函数,关闭函数,按需使用
  我这里什么都没做
  注册UDF 函数
  临时 UDF,当前会话CREATE temporary FUNCTION medcode AS "tech.jiafan.udf.MDecode" USING JAR "hdfs:///path/to/udf/your-package.jar";
  永久且全局 UDFCREATE FUNCTION medcode AS "tech.jiafan.udf.MDecode" USING JAR "hdfs:///path/to/udf/your-package.jar";
  这样做之后,会在 hive 的元数据库中查到函数的信息,若遇到 跨 session 无法使用,可选择 在相应的 session 中做函数重载
  reload function ;
  全局 UDF 不仅可在 Hive 中使用,亦可在 spark sql 中使用 ,hive 的 hiveserver2 的其他 jdbc/odbc 连接中使用
  [这篇文章完整代码在我的 github 上开源项目中,其中包含 类decode/日期转星座/IPv4与整数互转 以及适用 拉链表爆炸展开的表生成函数](https://github.com/Jiafan/hudf)
  参考
  为了进一步学习 和使用 UDF相关的功能,可以参考 官方文档 和 Clouder 文档
  [Hive官方文档-UDF](https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-Built-inOperators)
  [Cloudera的关于Hive UDF 的文档](https://docs.cloudera.com/HDPDocuments/HDP3/HDP-3.0.0/using-hiveql/content/hive_create_udf.html)
  下一篇
  Hive UDF 第二篇:实现UDF为什么要实现这几个方法
  [源代码仓库](https://github.com/Jiafan/hudf.git)

外星生物创造论认为六百多万年前外星人通过对黑猩猩进行基因改造从而创造了人,你同意吗?现在科学界的主流观点认为,人类和黑猩猩都有一个共同的祖先,在大约600万年前,人类和黑猩猩在进化的道路上分道扬镳,并在以后的漫长岁月里,逐渐演化出两个完全不同的物种。1879年,德区块链之下人与人之间的新链接这段时间,有新的领悟,房子,股票,crypto的价值,其实都源于人与人之间的共识。其实任何事物不都是这样吗,黄金之所以有价值,不也是这么多年人类历史发展下来的共识,根植于我们的意识智能化战争中左右战争胜负的新变量连接力计算力认知力智能化战争强者胜的三个维度杨耀辉张三虎周正引言战争制胜机理从来都是在科技进步的推动下悄然发生变化。从热兵器时代的火力制胜,到机械化时代的机动力制胜,再到信息化时代的信息力制胜,实际室内装修工会被人工智能取代吗?不会。智能家居还是可以的,智能装修想想就未来或许可能但不知道多远的可以有。没准那时候人类居住场景场所都不知道变成什么样了室外装修,因其高危险性,才是优先考虑会被人工智能取代的,如使乡村原来的村医年龄老化,医术差劲,外边的医生有技术,设备却进不来,该如何化解?说说我的看法吧,上边说的乡村医生老龄化严重!这个是个现实的问题国家发过统计,40岁以上的村医占了70以上,老龄化严重,年轻的大学生不愿意到卫生室,因为条件艰苦,待遇差,一年四季没有三星fold3参数?三星fold3参数配置三星作为一线手机厂商,新品中常常为消费者带来一些新的技术。其实关于三星GalaxyZFold3的爆料也不是一天两天的事了,不过现在这款产品已经正式上市了,下面让我们来看看它的详细参苹果iPhone15渲染图首曝!侧边神秘滚轮或能自定义近日,网上曝光了一组苹果iPhone15的概念设计图,暂不论其真实性,最大的亮点还在于该机的外观设计颇具惊喜。从曝光的渲染图来看,苹果iPhone15的左侧边框保留了电源键和上下音2022年投资方向梳理没有企业的时代,只有时代的企业,任何企业的发展,都蕴藏了时代的红利。宏观时代背景指明大的投资方向,中观行业景气度和空间决定我们选择哪个领域,微观企业情况决定我们最终投资哪些公司。一充电桩板块未来5年有望翻倍的11家企业未来5年,新能源充电桩智能电网在政策的大力支持下将迎来高光时刻,魔女梳理了11家企业,没有废话,全是干货,朋友们赶紧点赞收藏起来吧。1炬华科技300360,逻辑目前最强势充电桩个股滴滴退市!首富易主!未来将会何去何从?文杨国英激荡的时代,不缺少灰色的历史注脚。又到周五,被两个新闻震惊一是滴滴官宣,即日起退美返港。二是华人首富易主,币安赵长鹏登顶世界华人首富这两则新闻,全是灰色的。但两则新闻接下来是时候考虑入手一个数字货币钱包了数字货币钱包真的来了。近日,我国自主研发的中国芯数字货币钱包已通过相关测试。该产品可通过指纹识别解锁,支持数字货币收付款余额查询交易信息显示加载健康码等功能。中国人民银行数字货币研
阿里巴巴员工被领导侵犯,维权无人问津,曝光后才回应,令人费解世界变化万千,当你踏入形形色色的社会当中,你才能够真正的体会到什么叫做人心险恶,近些年来有关于职场潜规则的事情,一直是很多人十分痛恨的,然而此等现象在大公司也是经常会出现的。对于很三星GalaxyA12Nacho海外发布,搭载三星Exynos850芯片近日,三星继续延续着机海战术的策略,于欧洲市场正式发布了三星GalaxyA12Nacho机型。三星GalaxyA12Nacho为数不多的亮点在于搭在了三星自研Exynos850芯片漏洞2开启预售齐向东解读三年来网络安全产业变化8月9日,由七位中国工程院院士联袂推荐,奇安信集团董事长齐向东的个人著作漏洞第二版在当当网正式开启预售。继三年前首发漏洞后,漏洞第二版的发布,是齐向东在奇安信上市后对漏洞一书的升级阿里涉嫌性侵男员工通过字节跳动一面?字节无限期终止其招聘流程中华网财经讯,8月9日,有网友称,阿里巴巴女员工被侵犯事件的涉嫌男员工王某(花名曲一),曾去字节跳动面试,过了一面。对此,字节跳动相关HR回应称,经核查,该涉事人确实在字节跳动某岗河南受灾,华为又捐款又出力,只是没宣传一方有难,八方支援。人生总会遇到很多磨难与挫折,但与大自然的灾害相比,人类还是显得渺小与脆弱。我们唯一可以抵抗大自然的,就是我们的团结与互助。正所谓灾难无情,人间有情,正是因为每个ANC主动降噪技术加持的手游利器,ROG降临2RGB版游戏耳机评测几个月前入手了标准版ROG降临2游戏耳机,游戏效果立竿见影,和平精英的水平明显提升了一大截,但音质和降噪方面的表现马马虎虎,尤其是作为ROG的产品,败家之眼LOGO竟然不能发光,这早新闻华为鸿蒙用户超5千万三大运营商将会师A股智能早新闻,尽览天下事。2021年8月9日,智能制造网为您带来昨夜今晨的科技资讯,涵盖前沿科技智能制造等诸多领域热点话题,让您能更快洞察行业风向发现市场商机。新闻速览如下图片热点关苹果用户注意!iOS15要偷看相册,你愿意吗?早在今年6月份,苹果就发布了iOS15,比较让人惊喜的是,iPhone6s之后的机型都支持升级,6s用户估计还能再战两年。不过就在近日,苹果宣布了一件事,出发点是好的,但过程却并不三星GalaxyBuds2真无线降噪耳机上架亚马逊,约合1142元IT之家8月9日消息三星将于8月11日晚举办发布会,发布两款折叠屏新机以及第二代真无线降噪耳机GalaxyBuds2智能手表GalaxyWatch4系列。据外媒mspoweruse看完不踩坑!入手VGP大奖耳机,泥炭SonicPro是否值得发烧友入手无线蓝牙耳机现在是手机听歌玩游戏的常见配件,之前小编曾入手了一款SOUNDPEATS泥炭SonicPro无线蓝牙耳机,最近这款耳机又推出了升级版本,而且还获得了日本VGP2021SiOS14。7。1纠结升不升级?网友纵享丝滑,可以养老的版本相信所有小伙伴都遇到过这样一个问题,手机发布新系统了,我要不要更新呢?新系统怎么样呢?这不,作为iOS14仅剩不多的几个正式版,iOS14。7。1发布也有一段时间了,不少小伙伴还在