为了指定自定义处理, Pig提供了对用户定义函数(UDF)的支持。因此, Pig允许我们创建自己的功能。当前, 可以使用以下编程语言来实现Pig UDF:-
- Java
- Python
- Jython
- JavaScript
- Ruby
- Groovy
Apache PigUDF的示例 在Apache Pig里
- 所有UDF必须扩展“ org.apache.pig.EvalFunc”
- 所有功能都必须覆盖“ exec”方法。
UPPER.java
package com.hadoop;
import java.io.IOException;
import org.apache.pig.EvalFunc;
import org.apache.pig.data.Tuple;
public class TestUpper extends EvalFunc<
String>
{
public String exec(Tuple input) throws IOException {
if (input == null || input.size() == 0)
return null;
try{
String str = (String)input.get(0);
return str.toUpperCase();
}catch(Exception e){
throw new IOException("Caught exception processing input row ", e);
}
}
}
- 创建jar文件并将其导出到特定目录。为此, 右键单击项目-导出-Java-JAR文件-下一步。
文章图片
- 现在, 为jar文件提供一个特定的名称, 并将其保存在本地系统目录中。
文章图片
- 在本地计算机上创建一个文本文件, 然后插入元组列表。
$ nano pigsample
文章图片
- 将文本文件上载到HDFS的特定目录中。
$ hdfs dfs -put pigexample /pigexample
- 在本地计算机上创建一个Pig文件并编写脚本。
$ nano pscript.pig
文章图片
- 现在, 在终端中运行脚本以获取输出。
$pig pscript.pig
文章图片
【Pig UDF(用户定义函数)】在这里, 我们得到了期望的输出。
推荐阅读
- RDBMS与HBase的区别
- Apache Pig运行模式
- Apache Pig拉丁概念
- Apache Pig安装
- 卡车与SUV哪个适合你(有什么区别?哪个更好?)
- 福特Aspire与本田Amaze差异比较(哪一个更好())
- 沃尔沃比斯巴鲁更安全吗(哪个更好一点?)
- 本田Passport与Pilot有什么区别(全面比较和评论)
- 卡车比汽车更可靠吗(有什么区别?哪个更好?)