UDF 可以访问调用 Pig 脚本中声明的参数或定义的值吗?

Posted

技术标签:

【中文标题】UDF 可以访问调用 Pig 脚本中声明的参数或定义的值吗?【英文标题】:Can a UDF access a parameter or a defined value declared in the calling Pig script? 【发布时间】:2014-05-12 11:50:27 【问题描述】:

我只是在尝试以任何可能的方式来修改 UDF 的功能。例如,假设我有一个基于百分位过滤的 UDF——我希望能够在 Pig 脚本中执行一些操作,例如“定义百分位 90”,并让 UDF 能够访问这个数字。

差不多就是这样。

【问题讨论】:

【参考方案1】:

哇,我刚刚在这里找到了这个:

https://www.inkling.com/read/programming-pig-alan-gates-1st/chapter-6/controlling-execution

您使用“set”并且值集在 JobConf 中可用。有关 JobConf 的更多信息,请参见此处:

https://www.inkling.com/read/programming-pig-alan-gates-1st/chapter-10/writing-an-evaluation-function#b0917dc6a9bd21005971e7b7198e1b49

*** 和这本 Inkling 书也讨论了使用 define 将参数传递给构造函数的替代方法,但似乎 JobConf 将是一个好方法——我怀疑使用 define 有局限性。

【讨论】:

以上是关于UDF 可以访问调用 Pig 脚本中声明的参数或定义的值吗?的主要内容,如果未能解决你的问题,请参考以下文章

Apache Pig - 在脚本中多次调用 Java UDF ToJSON

登录 Pig UDF

将多个参数传递给 Pig Filter UDF

Java UDF on Hadoop 输入参数——从 Pig on Hadoop 调用

Pig 脚本无法注册 UDF

从 Pig UDF 访问 HDFS