pig的udf编写】的更多相关文章

http://www.cnblogs.com/anny-1980/p/3673569.html http://blog.csdn.net/ruishenh/article/details/12048067 http://blog.csdn.net/ruishenh/article/details/12192391…
近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,散仙本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)散仙一直没有接触过,所以只能临阵磨枪了,花了两天时间,大致看完了pig官网的文档,在看文档期间,也是边实战边学习,这样以来,对pig的学习,会更加容易,当然本篇不是介绍如何快速学好一门框架或语言的文章,正如标题所示,散仙打算介绍下如何在Pig中,使用用户自定义的UDF函数,关于学习经验,散仙会在后面的文章里介绍. 一旦你学会了UDF的使用,就意味…
在Mysql的官方文档中有说明如何给Mysql添加新的函数. 添加的函数可分为3种: .自行编写函数的源码,将源码编译成动态库,然后使用Mysql的CREATE FUNCTION语句来将函数添加进Mysql. .在源码等级上加入自行编写的函数,这样编译之后,新加入的函数就和Native函数一样,永久使用. .通过SQL语句脚本来完成函数的功能. 就这3中方式,第三种明显不足以完成我们所需要的业务工作,因为SQL语句不存在连接缓存的功能.第二种方法看似美好, 但是对于需要更换缓存方法(从redis…
最近几天,在研究怎么样把日志中的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/…
介绍 Apache DataFu分两部分,本文介绍的是其Pig UDF的部分.代码在Github上开源(除了代码外.也有一些slides介绍链接). DataFu里面是一些Pig的UDF.主要包含这些方面的函数: bags.geo.hash.linkanalysis.random.sampling.sessions.sets.stats.urls 每方面都相应一个package. 我把全部的函数源代码都浏览了一遍.事实上本身对这些UDF的使用,官方的文档上都有介绍,并且源代码的凝视里也些的非常清…
pig流式数据,load数据时,不能读入任意列. 但是,可以从头读,只能连续几列.就是前几列.比如10列数据,可以只读前3列.但不能读第3列: 如:数据testdata [wizad@sr104 lmj]$ cat testdata.txt  1,2,3,4,5,6,7,8,9,10 1,2,3,4,5,6,7,8,9,10 1,2,3,4,5,6,7,8,9,10 1,2,3,4,5,6,7,8,9,10 1,2,3,4,5,6,7,8,9,10 1,2,3,4,5,6,7,8,9,10 1,…
当我们配置了hadoop集群执行的时候 可以通过命令ls进行查看 存储语法 STORE Relation_name INTO ' required_directory_path ' [USING function]; STORE student INTO ' hdfs://localhost:9000/pig_Output/ ' USING PigStorage (','); 练习 可以先写一个run.pig脚本,文件内容为下面例子的全部过程,(w3school看store 保存数据到文件中),…
Pig是一个大规模数据分析平台.Pig的基础结构层包括一个产生MapReduce程序的编译器.在编译器中,大规模并行执行依据存在.Pig的语言包括一个叫Pig Latin的文本语言,此语言有如下特性:1.易于编程.实现简单的和高度并行的数据分析任务非常容易.2.自动优化.任务编码的方式允许系统自动去优化执行过程,从而使用户能够专注于逻辑,而非效率3.可扩展性,用户可以轻松编写自己的函数用于特殊用途的处理. 1 安装 1.安装java,配置环境变量2.安装pig,配置环境变量ps:安装一款平台级软…
实验目的 了解pig的该概念和原理 了解pig的思想和用途 了解pig与hadoop的关系 实验原理 1.Pig 相比Java的MapReduce API,Pig为大型数据集的处理提供了更高层次的抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构.Pig还提供了一套更强大的数据变换操作,包括在MapReduce中被忽视的连接Join操作. Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于执行Pig Latin程序的执行环境,当前有两…
相比Java的MapReduce api,Pig为大型数据集的处理提供了更高层次的抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构.Pig还提供了一套更强大的数据变换操作,包括在MapReduce中被忽视的连接Join操作. Hadoop版本:2.2.0  Pig版本:0.12.1 Pig介绍 Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于执行Pig Latin程序的执行环境,当前有两个环境:单JVM中的本地执行环境和Hadoo…
最近特别喜欢用Pig,拥有能满足大部分需求的内置函数(built-in functions),支持自定义函数(user defined functions, UDF),能load 纯文本.avro等格式数据:illustrate看pig执行步骤的结果,describe看alias的schema:以轻量级脚本形式跑MapReduce任务,各种爽爆. 1. Word Count 较于中文,英文比较工整,可以根据空格.标点符号进行分词. A = load '/user/.*/req-temp/text…
在这里贴一个pig源码的分析,做pig很长时间没做笔记,不包含任何细节,以后有机会再说吧 http://blackproof.iteye.com/blog/1769219 hadoop pig入门总结 pig简介 pig数据类型 pig latin语法 pig udf自定义 pig derived衍生 推荐书籍 programming pig 推荐网站 http://pig.apache.org/docs/r0.10.0/basic.html pig简介 pig是hadoop上层的衍生架构,与h…
Pig Latin UDF语句 REGISTER   在Pig运行时环境中注册一个JAR文件 DEFINE      为UDF.流式脚本或命令规范新建别名 Pig Latin命令类型 kill    中止某个MapReduce任务 exec 在一个新的Grunt shell程序中以批处理模式运行一个脚本 run   在当前Grunt外壳程序中运行程序 quit  退出解释器 set   设置Pig选项   模式(Schema) Pig的一个关系可以有一个关联的模式,模式为关系的字段指定名称和类型…
Apache Pig是MapReduce的一个抽象.它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流.Pig通常与 Hadoop 一起使用:我们可以使用Apache Pig在Hadoop中执行所有的数据处理操作. 要使用 Apache Pig 分析数据,程序员需要使用Pig Latin语言编写脚本.所有这些脚本都在内部转换为Map和Reduce任务.Apache Pig有一个名为 Pig Engine 的组件,它接受Pig Latin脚本作为输入,并将这些脚本转换为MapReduc…
Hive中的自定义函数允许用户扩展HiveQL,是一个非常强大的功能.Hive中具有多种类型的用户自定义函数.show functions命令可以列举出当前Hive会话中的所加载进来的函数,包括内置的以及用户加载的函数. 函数都有自身的使用文档,使用describe function命令就可以展示对应函数基本介绍. 标准函数UDF 用户自定义函数指的是一行数据中的一列或是多列数据作为参数然后返回结果是一个值的函数.这里用一个例子作为说明,我们当前有些数据表中存储的时间戳是以秒为单位的long值,…
Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于执行Pig Latin程序的执行环境,当前有两个环境:单JVM中的本地执行环境和Hadoop集群上的分布式执行环境. Pig内部,每个操作或变换是对输入进行数据处理,然后产生输出结果,这些变换操作被转换成一系列MapReduce作业,Pig让程序员不需要知道这些转换具体是如何进行的,这样工程师可以将精力集中在数据上,而非执行的细节上. Pig可以看做hadoop的客户端软件,可以连接到hadoop集群进行数据分析的工作 Pi…
首先,我想达到的目的是批量的处理一个目录下的的很多文档,这些文档保存了我要处理的数据,由于pig是初学..所以不知到该怎么批量的load,没有写过 自己的UDF,仅仅能一个一个文件的load,然后处理. 可是这个肯定不是我希望的处理方式,于是联想到是不是能够将pig脚本插入到shell中然后循环运行. 最后尝试成功了,当然我相信pig的udf中能够自定义这样的load的方式,可是假设出于高速实现的目的能够 先使用这样的方式. 以下是shell的代码部分: mkdir result_0925_D2…
散仙,在上篇文章中介绍了,如何使用Apache Pig与Lucene集成,还不知道的道友们,可以先看下上篇,熟悉下具体的流程. 在与Lucene集成过程中,我们发现最终还要把生成的Lucene索引,拷贝至本地磁盘,才能提供检索服务,这样以来,比较繁琐,而且有以下几个缺点: (一)在生成索引以及最终能提供正常的服务之前,索引经过多次落地操作,这无疑会给磁盘和网络IO,带来巨大影响 (二)Lucene的Field的配置与其UDF函数的代码耦合性过强,而且提供的配置也比较简单,不太容易满足,灵活多变的…
1. 引言 Airflow是Airbnb开源的一个用Python写就的工作流管理平台(workflow management platform).在前一篇文章中,介绍了如何用Crontab管理数据流,但是缺点也是显而易见.针对于Crontab的缺点,灵活可扩展的Airflow具有以下特点: 工作流依赖关系的可视化: 日志追踪: (Python脚本)易于扩展 对比Java系的Oozie,Airflow奉行"Configuration as code"哲学,对于描述工作流.判断触发条件等全…
Airflow 1. 引言 Airflow是Airbnb开源的一个用Python写就的工作流管理平台(workflow management platform).在前一篇文章中,介绍了如何用Crontab管理数据流,但是缺点也是显而易见.针对于Crontab的缺点,灵活可扩展的Airflow具有以下特点: 工作流依赖关系的可视化: 日志追踪: (Python脚本)易于扩展 对比Java系的Oozie,Airflow奉行“Configuration as code”哲学,对于描述工作流.判断触发条…
初学编程的人,都知道hello world的含义,当你第一次从控制台里打印出了hello world,就意味着,你已经开始步入了编程的大千世界,这和第一个吃螃蟹的人的意义有点类似,虽然这样比喻并不恰当. 如果说学会了使用hello world就代表着你踏入了单机编程的大门,那么学会在分布式环境下使用wordcount,则意味着你踏入了分布式编程的大门.试想一下,你的程序能够成百上千台机器的集群中运行,是不是一件很有纪念意义的事情呢?不管在Hadoop中,还是Spark中,初次学习这两个开源框架做…
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)". Tez是Apache开源的支持DAG作业的计算框架,它直接源于MapReduce框架,核心思想是将Map和Reduce两个操作进一步拆分,即Map被拆分成Input.Processor.Sort.Merge和Output, Reduce被拆分成Input.Shuffle.Sort.Merge.Processor和Output等,这样,这些分…
Hadoop生态系统配置Hadoop运行环境Hadoop系统架构HDFS分布式文件系统MapReduce分布式计算(MapReduce项目实战)使用脚本语言Pig(Pig项目实战)数据仓库工具Hive(Hive项目实战)无限大表数据库HBaseYARN架构数据处理 ------------------------------------------------- #include <bitcoin/bitcoin.hpp> bc::hash_digest create_merkle(bc::h…
1.  自定义udf 编写udf 1)pom.xml <dependency> <groupId>com.aliyun.odps</groupId> <artifactId>odps-sdk-udf</artifactId> <version>0.17.3</version> </dependency> </dependencies> 2) 函数套路: package com.odps.udf; i…
自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.其中成功的项目有Geronimo,有Tomcat,有Hadoop,有如今成了大数据王国关键车毂的分布式计算系统. 虽然Apache没有去维护有关下载量的完备统计数字,但是像Apache HTTP Server,已成为全球将近5亿多个网站的引擎,再比如OpenOffice,虽然只是前不久才进入Apache的项目库,但也已经被下载了数百万次. Apache还提供更为宽容的开源许可证. 下面是15个多年来非常重要的Apa…
15个非常重要的Apache开源项目汇总 自1999年创立以来,Apache软件基金会如今已成了众多重要的开源软件项目之家.本文列举了15个多年来非常重要的Apache项目,这些项目不仅对开源运动来说非常重要,对于与一般的技术世界来说也是非常重要的. 虽然Apache没有去维护有关下载量的完备统计数字,但是像Apache HTTP Server,已成为全球将近5亿多个网站的引擎,再比如OpenOffice,虽然只是前不久才进入Apache的项目库,但也已经被下载了数百万次.Apache还提供更为…
原文地址:http://blog.csdn.net/zythy/article/details/18326693 我们以气温统计和词频统计为例,讲解以下三种用户自定义函数. 用户自定义函数 什么时候需要用户自定义函数呢?和其它语言一样,当你希望简化程序结构或者需要重用程序代码时,函数就是你不二选择. Pig的用户自定义函数可以用Java编写,但是也可以用Python或Javascript编写.我们接下来以Java为例. 自定义过滤函数 我们仍然以先前的代码为例: records = load '…
一.UDF函数编写 1.步骤 1.继承UDF类 2.重写evalute方法 .继承GenericUDF .实现initialize.evaluate.getDisplayString方法 2.案例 实现lower函数: package com.xxx.udf; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; public class LowerUDF extends UDF { public…
Spark Sql提供了丰富的内置函数让开发者来使用,但实际开发业务场景可能很复杂,内置函数不能够满足业务需求,因此spark sql提供了可扩展的内置函数. UDF:是普通函数,输入一个或多个参数,返回一个值.比如:len(),isnull() UDAF:是聚合函数,输入一组值,返回一个聚合结果.比如:max(),avg(),sum() Spark编写UDF函数 下边的例子是在spark2.0之前的示例:例子中展示只有一个参数输入,和一个参数输出的UDF. package com.dx.str…
pyspark 编写 UDF函数 前言 以前用的是Scala,最近有个东西要用Python,就查了一下如何编写pyspark的UDF. pyspark udf 也是先定义一个函数,例如: def get_time(ts): try: res = datetime.fromtimestamp(int(ts)).strftime('%Y-%m-%d') return res except: return '' else: return '' udf的注册,这里需要定义其返回值类型,可从pyspark…