我在EMR作业中引导数据文件。引导成功,文件以正确的权限复制到/home/hadoop/contents/
文件夹。
但是,当我尝试在Pig脚本中访问它时,如下所示:
userdidstopick = load '/home/hadoop/contents/UserIdsToPick.txt' AS (uid:chararray);
我收到输入路径不存在的错误:
hdfs://10.183.166.176:9000/home/hadoop/contents/UserIdsToPick.txt
运行Ruby作业时,始终可以在/home/hadoop/contents/
文件夹下访问引导文件,一切都适合我。
猪不同吗?
答案 0 :(得分:1)
默认情况下,Pig on EMR配置为访问HDFS位置而不是本地文件系统。错误显示HDFS位置。
有两种方法可以解决这个问题:
在S3上复制文件,直接从s3
加载文件userdidstopick = load' s3_bucket_location / UserIdsToPick.txt' AS(uid:chararray);
或者您可以先在HDFS上复制文件(而不是本地文件系统),然后直接将其用作您今天所做的路径。
我更喜欢第一种选择。