我的PIG脚本有以下一行
register 'foo.py' USING jython as foo;
文件foo.py存在于HDFS根目录中。
但是当我运行我的代码时出现错误
ERROR 2997: Encountered IOException. File foo.py does not exist
我做谷歌并找到了这个帖子
Encountered IOException while registering python UDF in pig. File helloworld.py does not exist
解决方案似乎暗示必须在本地文件系统上复制foo.py才能使其正常工作。但这对我来说不是一个选择。
我想在HDFS上复制foo.py,然后在猪脚本中使用它。
我已经尝试了register './foo.py' USING jython as foo;
,我可以确认根目录中有foo.py.
我也尝试将foo.py文件的权限更改为rwxrwxrwx
,但猪无法找到该文件。
编辑::由于我使用的是Hortonworks bistro,我还尝试在UDF选项卡中注册我的UDF。但即使在注册后它仍会出现相同的错误。
Edit2 ::我还复制了/user/admin
目录中的util.py并授予了rwxrwxrwx
权限。但仍无法找到py文件。
Edit3 ::也尝试register 'hdfs://foo.py' USING jython as util;
,但仍然无法找到它。
答案 0 :(得分:2)
如果它位于根目录中,则需要 if message.content.upper().startswith('!BAN'):
if "449706643710541824" in [role.id for role in message.author.roles]:
await
为了澄清HDFS的加载,需要三个斜杠/foo.py
(因为完整语法为hdfs:///foo.py
)
使用hdfs://namenode:port/fileURI
表示运行命令的用户 HDFS用户文件夹的根