我的Pig脚本有以下几行
register 'foo.py' USING jython as foo;
文件foo.py存在于hdfs根目录中。
但是当我运行我的代码时,我得到了一个错误
ERROR 2997: Encountered IOException. File foo.py does not exist
我在谷歌上找到了这个线索
在pig中注册python udf时遇到ioexception。文件helloworld.py不存在
这个解决方案似乎意味着foo.py必须复制到本地文件系统才能正常工作。但这不是我的选择。
我想在hdfs上复制foo.py,然后从pig脚本中使用它。
我已经试过了 register './foo.py' USING jython as foo;
我可以确认foo.py存在于根hdfs目录中。
我还尝试将foo.py文件的权限更改为 rwxrwxrwx
但是Pig不可能找到那个文件。
编辑::因为我正在使用hortonworks小酒馆,我也试图注册我的自定义项在自定义项选项卡。但即使在注册后仍然会出现相同的错误。
edit2::我还复制了 /user/admin
目录并给出 rwxrwxrwx
权限。但还是找不到py文件。
edit3::也尝试过 register 'hdfs://foo.py' USING jython as util;
但还是找不到。
1条答案
按热度按时间jckbn6z71#
如果它在根里,你想
/foo.py
为了明确从hdfs加载,需要三个斜杠hdfs:///foo.py
(因为完整的语法是hdfs://namenode:port/fileURI
)使用
./foo.py
表示运行该命令的用户的hdfs用户文件夹的根