如何给Apache Pig自定义UDF函数?】的更多相关文章

近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,散仙本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)散仙一直没有接触过,所以只能临阵磨枪了,花了两天时间,大致看完了pig官网的文档,在看文档期间,也是边实战边学习,这样以来,对pig的学习,会更加容易,当然本篇不是介绍如何快速学好一门框架或语言的文章,正如标题所示,散仙打算介绍下如何在Pig中,使用用户自定义的UDF函数,关于学习经验,散仙会在后面的文章里介绍. 一旦你学会了UDF的使用,就意味…
自定义UDF函数应用异常 版权声明:本文为yunshuxueyuan原创文章.如需转载请标明出处: http://www.cnblogs.com/sxt-zkys/QQ技术交流群:299142667 定义函数PlatformConvert: 实现传入hive表中string类型字段,通过查询中间表,返回int类型主键id值 public class PlatformConvert extends UDF{ public IntWritable evaluate(Text s) throws Ex…
最近几天,在研究怎么样把日志中的IP地址转化成具体省份城市. 希望写一个pig udf IP数据库采用的纯真IP数据库文件qqwry.dat,可以从http://www.cz88.net/下载. 这里关键点在于怎么样读取这个文件,浪费了二天时间,现在把代码记录下来供和我遇到相同问题的朋友参考. pig script register /usr/local/pig/mypigudf.jar; define ip2address my.pig.func.IP2Address('/user/anny/…
一:程序部分 1.需求 Double数据类型格式化,可以给定小数点位数 2.程序 package com.scala.it import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.sql.SQLContext import org.apache.spark.sql.hive.HiveContext import scala.math.BigDecimal.RoundingMode object Spark…
原文链接: https://www.toutiao.com/i6770870821809291788/ Hive和mapreduce相关的排序和运行的参数 1.设置每个reduce处理的数据量(单位是字节) 我们在hive中查看下 配置文件hive-site.xml.template 我们打开配置文件可以看到 这是256MB 如果超过1G,将使用4个reducers 2.设置最大运行的reduce的个数 同上我们可以在配置中找到下面的内容 复制到记事本里,简化了描述,从配置中我们可以看到默认re…
原创不易,转载请务必注明,原创地址,谢谢配合! http://qindongliang.iteye.com/ Pig系列的学习文档,希望对大家有用,感谢关注散仙! Apache Pig的前世今生 Apache Pig如何自定义UDF函数? Apache Pig5行代码怎么实现Hadoop的WordCount? Apache Pig入门学习文档(一) Apache Pig学习笔记(二) Apache Pig学习笔记之内置函数(三) 玩转大数据系列之Apache Pig如何与Apache Lucen…
import org.apache.spark.sql.SparkSession import org.apache.spark.sql.functions._ object Test2 { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName("Spark SQL basic example") .config("spark.some.config.optio…
7. 函数 7.1 系统内置函数 查看系统自带的函数:show functions; 显示自带的函数的用法:desc function upper(函数名); 详细显示自带的函数的用法:desc function extended upper; 7.2 自定义函数 根据用户自定义函数类别,分为以下三种: UDF(User Defined Function): 一进一出: UDAF(User Defined Aggregation Function): 聚合函数(多进一出),类似于:max/min…
散仙,在上篇文章中介绍了,如何使用Apache Pig与Lucene集成,还不知道的道友们,可以先看下上篇,熟悉下具体的流程. 在与Lucene集成过程中,我们发现最终还要把生成的Lucene索引,拷贝至本地磁盘,才能提供检索服务,这样以来,比较繁琐,而且有以下几个缺点: (一)在生成索引以及最终能提供正常的服务之前,索引经过多次落地操作,这无疑会给磁盘和网络IO,带来巨大影响 (二)Lucene的Field的配置与其UDF函数的代码耦合性过强,而且提供的配置也比较简单,不太容易满足,灵活多变的…
//创建得分窗口字典 var dict= new mutable.HashMap[Double, Int]() ){ dict.put(result_Score(i),i) } //自定义Udf函数 添加一列 sparkHiveSession.udf.register("getWindow", (ss11: Double) => { val winno:Int = dict(ss11) winno }) map (k -> v) map类型传进来一个k,获取v 如果这个k本…
一.前述 SparkSQL中的UDF相当于是1进1出,UDAF相当于是多进一出,类似于聚合函数. 开窗函数一般分组取topn时常用. 二.UDF和UDAF函数 1.UDF函数 java代码: SparkConf conf = new SparkConf(); conf.setMaster("local"); conf.setAppName("udf"); JavaSparkContext sc = new JavaSparkContext(conf); SQLCon…
自定义用户函数有两种方式,区别:是否使用强类型,参考demo:https://github.com/asker124143222/spark-demo 1.不使用强类型,继承UserDefinedAggregateFunction package com.home.spark import org.apache.spark.SparkConf import org.apache.spark.sql.{DataFrame, Row, SparkSession} import org.apache.…
目录 一.UDF(一进一出) 二.UDAF(多近一出) spark2.X 实现方式 案例 ①继承UserDefinedAggregateFunction,实现其中的方法 ②创建函数对象,注册函数,在sql中使用 spark3.X实现方式 案例 ①继承Aggregator [-IN, BUF, OUT],声明泛型,实现其中的方法 ②创建函数对象,注册函数,在sql中使用 一.UDF(一进一出) 步骤 ① 注册UDF函数,可以使用匿名函数. ② 在sql查询的时候使用自定义的UDF. 示例 impo…
Hive可以允许用户编写自己定义的函数UDF,来在查询中使用.Hive中有3种UDF: UDF:操作单个数据行,产生单个数据行: UDAF:操作多个数据行,产生一个数据行. UDTF:操作一个数据行,产生多个数据行一个表作为输出. 用户构建的UDF使用过程如下: 第一步:继承UDF或者UDAF或者UDTF,实现特定的方法. UDF实例参见http://svn.apache.org/repos/asf/hive/trunk/contrib/src/java/org/apache/hadoop/hi…
一.前述 SparkSql中自定义函数包括UDF和UDAF UDF:一进一出  UDAF:多进一出 (联想Sum函数) 二.UDF函数 UDF:用户自定义函数,user defined function * 根据UDF函数参数的个数来决定是实现哪一个UDF  UDF1,UDF2....UDF1xxx    * UDF1 传一个参数  UDF2传两个参数..... sqlContext.udf().register("StrLen", new UDF1<String,Integer…
hive自定义UDTF函数叉分函数 1.介绍 从聚合体日志中需要拆解出来各子日志数据,然后单独插入到各日志子表中.通过表生成函数完成这一过程. 2.定义ForkLogUDTF 2.1 HiveUtil工具类 package com.oldboy.umeng.hive.util; import com.oldboy.umeng.common.domain.AppStartupLog; import org.apache.hadoop.hdfs.protocol.RollingUpgradeInfo…
UDF:User Definition Function 一.function #查看自带的函数 hive (db_hive)> show functions; #查看一个函数的详细用法 hive (db_hive)> desc function extended split; OK tab_name split(str, regex) - Splits str around occurances that match regex Example: > SELECT split('one…
一.分析 Spark提供了非常丰富的算子,可以实现大部分的逻辑处理,例如,要实现行转列,可以用hiveContext中支持的concat_ws(',', collect_set('字段'))实现.但是这有明显的局限性[sqlContext不支持],因此,基于编码逻辑或自定义聚合函数实现相同的逻辑就显得非常重要了. 二.列转行代码实现 package utils import com.hankcs.hanlp.tokenizer.StandardTokenizer import org.apach…
1. 概述 UDF函数其实就是一个简单的函数,执行过程就是在Hive转换成MapReduce程序后,执行java方法,类似于像MapReduce执行过程中加入一个插件,方便扩展.UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAF. Hive可以允许用户编写自己定义的函数UDF,来在查询中使用. 2. UDF类型 Hive中有3种UDF: UDF:操作单个数据行,产生单个数据行: UDAF:操作多个数据行,产生一个数据行: UDTF:操作一个数据行,产生多个数据行一个表作为输出…
 在文章开始之前,我们还是简单来回顾下Pig的的前尘往事: 1,Pig是什么? Pig最早是雅虎公司的一个基于Hadoop的并行处理架构,后来Yahoo将Pig捐献给Apache(一个开源软件的基金组织)的一个项目,由Apache来负责维护,Pig是一个基于 Hadoop的大规模数据分析平台,它提供的SQL-like语言叫Pig Latin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算.Pig为复杂的海量数据并行计算提供了一个简 易的操作和编程接口,这…
1,Pig的安装    (一)软件要求    (二)下载Pig      (三)编译Pig 2,运行Pig    (一)Pig的所有执行模式    (二)pig的交互式模式    (三)使用pig脚本执行模式 3,Pig  Latin语句的声明     (一)加载数据     (二)使用和处理数据    (三)存储中间数据 (四)存储最终数据 (五)调试Pig Latin语言 4,Pig的属性值管理 5,Pig一些注意事项 1,Pig的安装 (一)软件安装 必须配置: (1)hadoop 下载地…
Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台.高效和稳定而闻名.按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额.尤其是在 X(Unix/Linux)平台上,Apache是最常见的选择.其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择. Apache并不是没有缺点,它最为诟病的一点就是变得越来越重,被普遍认为是重量级的WebServer.所以,近年来又涌现出了很多轻量级的替 代…
—虽然Hive提供了很多函数,但是有些还是难以满足我们的需求.因此Hive提供了自定义函数开发 —自定义函数包括三种UDF.UADF.UDTF —UDF(User-Defined-Function) —UDAF(User- Defined Aggregation Funcation) —UDTF(User-Defined Table-Generating Functions)  用来解决 输入一行输出多行(On-to-many maping) 的需求.  准备工作: UDF开发所需要依赖的jar…
简介 EL原本是JSTL1.0中的技术(所以EL和JSTL感情如此好就是自然的了),但是从JSP2.0开始,EL就分离出来纳入了JSP的标准了.但是EL函数还是和JSTL技术绑定在一起.下面将介绍如何自定义EL函数,以及JSTL中的EL函数. 自定义EL函数虽然用得很少(JSTL自带的EL函数已经够用了),但是可以帮助理解自定义tag打下基础. 自定义EL函数 一.编写Java实现函数 必须是public类中的public static 函数,每一个静态函数就可以成为一个EL函数.必须在工程的c…
简介 EL原本是JSTL1.0中的技术(所以EL和JSTL感情如此好就是自然的了),但是从JSP2.0开始,EL就分离出来纳入了JSP的标准了.但是EL函数还是和JSTL技术绑定在一起.下面将介绍如何自定义EL函数,以及JSTL中的EL函数. 自定义EL函数虽然用得很少(JSTL自带的EL函数已经够用了),但是可以帮助理解自定义tag打下基础. 自定义EL函数 一.编写Java实现函数 必须是public类中的public static 函数,每一个静态函数就可以成为一个EL函数.必须在工程的c…
开发中经常会碰到将IP转为地域的问题,所以以下记录Hive中自定义UDF来解析IP. 使用到的地域库位maxmind公司的geoIP2数据库,分为免费版GeoLite2-City.mmdb和收费版GeoIP2-City.mmdb,不管哪个版本,开发的接口都是相同. 开发环境: hive-2.3.0 hadoop 2.7.3 jdk 1.8 1. 新建maven项目regionParse,加入以下依赖包 <dependency> <groupId>org.apache.hive<…
软件环境: linux系统: CentOS6.7 Hadoop版本: 2.6.5 zookeeper版本: 3.4.8 主机配置: 一共m1, m2, m3这五部机, 每部主机的用户名都为centos 192.168.179.201: m1 192.168.179.202: m2 192.168.179.203: m3 m1: Zookeeper, Namenode, DataNode, ResourceManager, NodeManager, Master, Worker m2: Zooke…
一.编写一个UDF函数,实现将字符串大写转小写 import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; public final class Lower extends UDF { public Text evaluate(final Text s){ if (s == null){ return null; } return new Text(s.toString().toLowerCase())…
代码地址:https://gitee.com/nltxwz_xxd/abc_bigdata 一.flink编程方法 获取执行环境(execution environment) 加载/创建初始数据集 对数据集进行各种转换操作(生成新的数据集) 指定将计算的结果放到何处去 触发APP执行 flink的计算方式和spark一样都是惰性的 Flink APP都是延迟执行的 只有当execute()被显示调用时才会真正执行 本地执行还是在集群上执行取决于执行环境的类型 好处:用户可以根据业务构建复杂的应用…
在Jmeter->选项->函数助手对话框中我们可以看到Jmeter内置的一些常用函数,但考虑到测试过程中的实际情况,我们经常需要在脚本引用或者实现自定义的函数.那么如何在"函数助手对话框中"看到我们自定义的函数呢,下面将介绍详细步骤: Jmeter源码导入参考上一篇:https://www.cnblogs.com/xiaozhaoboke/p/14103865.html 一.在目录..\apache-jmeter-5.0\src\functions\org\apache\j…