从 Pig 脚本调用 Python 函数

Call Python function from Pig script

我是 Pig 的新手,我想在通过 PuTTy 连接到服务器后从 Pig 调用本地 python 文件。以下是我尝试过的代码和收到的错误消息:

REGISTER ‘myudf.py’ using jython as my_udf

错误信息在下面,我不知道如何告诉 Pig py 文件的路径。

File myudf.py does not exist

我试过的另一个代码是:

DEFINE mycommand `python myudf.py` ship(‘C:\Users\myname\Documents\code\myudf.py’);

错误信息是

unexpected character ’S’

这听起来超级简单,但我花了好几个小时,但还是失败了。任何建议将不胜感激。

听起来 Python 文件保存在您自己的计算机上,但您是服务器上的 运行 Pig。服务器无权访问您计算机上的文件。

您可以使用 WinSCP 等软件传输文件(假设您使用的是 Windows),或者在服务器上启动文本编辑器并 copy/paste 来自您 Python 的文本文件到文本编辑器中。例如,PuTTy 中的 vi myudf.pyemacs myudf.py 将启动一个文本编辑器,并在您保存后在服务器上创建一个名为 myudf.py 的文件。

创建 Python 文件后,您可能希望在 REGISTER 语句中包含服务器上文件的完整路径以避免混淆。 (pwd 显示您在服务器上的当前目录。)