hive + udaf + implode 函数的实现

hive中的explode函数,可以一个数组字段转换为多行记录

现在我实现该函数的逆函数,命名为implode

java代码如下:

package yuanshu.udf;

import java.util.ArrayList;

import org.apache.hadoop.hive.ql.exec.UDAF;

import org.apache.hadoop.hive.ql.exec.UDAFEvaluator;

import org.apache.hadoop.io.Text;

public class UDAF3 extends UDAF{

public static class Evaluator implements UDAFEvaluator {

private boolean mEmpty;

private ArrayList mSum;

public Evaluator() {

super();

init();

}

public void init() {

//mSum = "";

mSum = new ArrayList();

mEmpty = true;

}

public boolean iterate(String o) {

if (o != null) {

//String a = o.toString();

mSum.add(o);

mEmpty = false;

}

return true;

}

public ArrayList terminatePartial() {

// This is SQL standard - sum of zero items should be null.

return mEmpty ? null : mSum;

}

public boolean merge(ArrayList o) {

if (o != null) {

//String a = o.toString();

mSum.addAll(o);

mEmpty = false;

}

return true;

}

public ArrayList terminate() {

// This is SQL standard - sum of zero items should be null.

return mEmpty ? null : mSum;

}

}

}

在hive中,操作如下:

select

implode(nani)

from

(select

explode(s) as nani

from

(select

array(11,22,33,44) as s

from

tb1

)t1

)t2;

结果如下:

Job running in-process (local Hadoop)

2011-12-20 13:57:20,049 null map = 100%, reduce = 100%

Ended Job = job_local_0001

OK

["11","22","33","44","11","22","33","44","11","22","33","44","11","22","33","44","11","22","33","44","11","22","33","44","11","22","33","44","11","22","33","44"]

Time taken: 3.425 seconds

hive>

hive 转拼音udf_Hive UDF编程:自己动手实现implode函数相关推荐

  1. hive 转拼音udf_Hive 自定义UDF函数

    Hive的SQL可以通过用户定义的函数(UDF),用户定义的聚合(UDAF)和用户定义的表函数(UDTF)进行扩展. 当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函 ...

  2. hive 转拼音udf_MaxCompute UDF系列之拼音转换-阿里云开发者社区

    汉字转换拼音在日常开发中是个很常见的问题.例如我们伟大的12306,在地名中输入"WH",就会出现"武汉""芜湖""威海" ...

  3. hive 转拼音udf_<Zhuuu_ZZ>HIVE(十二)UDF自定义函数

    <Zhuuu_ZZ>HIVE(十二)UDF自定义函数 <Zhuuu_ZZ>HIVE(十二)UDF自定义函数 Hive UDF开发流程 一 创建Maven工程 二 导入依赖Jar ...

  4. 6、HIVE JDBC开发、UDF、体系结构、Thrift服务器、Driver、元数据库Metastore、数据库连接模式、单/多用户模式、远程服务模式、Hive技术原理解析、优化等(整理的笔记)

    目录: 5 HIVE开发 5.1 Hive JDBC开发 5.2 Hive UDF 6 Hive的体系结构 6.2 Thrift服务器 6.3 Driver 6.4 元数据库Metastore 6.5 ...

  5. Hive创建自己的UDF并永久化详细记录

    1.UDF是什么? hive的类SQL预发给数据挖掘工作者带来了很多便利,海量数据通过简单的sql就可以完成分析,有时候hive提供的函数功能满足不了业务需要,就需要我们自己来写UDF函数来辅助完成, ...

  6. python分段函数输入x的值求y的值_C语言编程题 有一分段函数如下,要求用scanf函数输入整数x的值,求y值并在屏幕上输出。有分段函数如下,编程实现输入整...

    C语言编程题 有一分段函数如下,要求用scanf函数输入整数x的值,求y值并在屏幕上输出. 有分段函数如下,编程实现输入整 www.zhiqu.org 时间: 2020-11-22 #include ...

  7. 翻译连载 | JavaScript轻量级函数式编程-第4章:组合函数 |《你不知道的JS》姊妹篇...

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...

  8. Python学习札记(二十) 函数式编程1 介绍 高阶函数介绍

    参考: 函数式编程 高阶函数 Note A.函数式编程(Functional Programming)介绍 1.函数是Python内建支持的一种封装,我们通过一层一层的函数调用把复杂任务分解成简单的任 ...

  9. c语言中removeDir的相反函数,C语言编程常见问题解答之常用函数的包括文件.doc

    C语言编程常见问题解答之常用函数的包括文件 C语言编程常见问题解答之常用函数的包含文件(1) 作者:unknown 更新时间: 2005-05-10 函数 包含 类别 功能 _atold math.h ...

  10. Python编程核心内容 ---- Function(函数)

    什么"大事"呢?下面将要介绍Python编程的核心内容之一--函数. 对于Python编程,函数的重要性不言而喻.重要的事情讲三遍:函数实在是太重要,太关键了. 引入函数 之前,我 ...

最新文章

  1. LeetCode(7.整数反转)JAVA
  2. 分享一个高质量的 小程序UI框架
  3. word break
  4. android面试题总结加强
  5. openstack之虚拟机管理命令
  6. CentOS 安装MySQL rpm方式安装
  7. 牛客2021年愚人节比赛 【题解】
  8. AHU_OJ 434
  9. mysql 加密 en_MySQL8.0 的表空间文件加密控制
  10. 黑马程序员_MapK,V 映射关系 Map.Entry
  11. python库ffmpeg的错误解决方法:“Couldn‘t find ffmpeg or avconv - defaulting to ffmpeg, but may not work“
  12. session json()中文乱码_[Win] FTP传输工具 FlashFxp v5.4.0 build3970 中文便携版
  13. 余压监控系统在住宅小区的应用方案
  14. iOS App Clips学习笔记
  15. 数据元素、数据项、组合项、数据结构
  16. USB会议摄像机的重要的网络特性
  17. 1.8-20:反反复复
  18. oracle创建表空间笔记 小白专属 小白必看!(内有福利)
  19. 互动媒体技术——Processing创意绘画系统
  20. Android 身份证扫描

热门文章

  1. Shifter - Responsive HTML5 高大上静态页面
  2. Git Commit failed with error The Git process exited with the code -1,073,741,819
  3. Matlab saveas 函数批量保存彩色eps图片到指定路径
  4. 智课雅思词汇---二十二、-al即是名词性后缀又是形容词后缀
  5. 学画画软件app推荐_一步一步教画画的app有哪些_2018手机画画软件哪个好呢_96u手游网...
  6. 陀螺仪c语言算法,陀螺仪传感器建模与卡尔曼姿态解算
  7. torch.kron()函数
  8. MySQL技术:数据库逻辑结构单元
  9. 编译适配 联想Y1(NewifiMini)的Padavan 固件
  10. 服务器四核cpu性能排行,服务器cpu性能排行