我见过这个问题,但我还没有看到答案。。
有没有可能一次从pig中调用一个udf?
我基本上希望通过对javaudf的一次调用来处理我存储的文本文件的转换。转换的内部结构在java中更容易处理,开销也很小,所以我不想将逻辑转换为pig。。
我成功调用自定义项的唯一方法是将其作为某个数据集上foreach语句的一部分。我以为我可以创建一个大小为1的虚拟元组,然后将其用作“foreach”的一部分,但我也不知道创建这个虚拟元组的语法。。
udf不需要返回任何东西,它将处理fs逻辑本身,我只想能够从pig脚本中执行它,因为在这里插入它更合理,然后作为更大工作流的一部分。。
任何帮助都将不胜感激!谢谢!
2条答案
按热度按时间wpx232ag1#
免责声明:不建议将pig用于此类任务。如果一个cpu/ram可以进行处理,那么为什么还要麻烦mr呢?
这是可以做到的
我遇到了类似的问题,并使用了自定义storefunc实现。
pig将检查storelocation是否存在,outputformat是否有效,因此您可以扩展一些现有存储:
在Pig身上,它看起来像:
您还可以添加
rmf ./somewhere
之前STORE
(就像这里建议的那样)。cczfrluj2#
您还可以执行以下操作:
在自定义项中有一个元组,其中包含“all”,然后是输入表,您可以在自定义项中处理该表。