从 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.py
或 emacs myudf.py
将启动一个文本编辑器,并在您保存后在服务器上创建一个名为 myudf.py
的文件。
创建 Python 文件后,您可能希望在 REGISTER
语句中包含服务器上文件的完整路径以避免混淆。 (pwd
显示您在服务器上的当前目录。)
我是 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.py
或 emacs myudf.py
将启动一个文本编辑器,并在您保存后在服务器上创建一个名为 myudf.py
的文件。
创建 Python 文件后,您可能希望在 REGISTER
语句中包含服务器上文件的完整路径以避免混淆。 (pwd
显示您在服务器上的当前目录。)