错误 2997:遇到 IOException。目录 part1 不存在

Posted

技术标签:

【中文标题】错误 2997:遇到 IOException。目录 part1 不存在【英文标题】:ERROR 2997: Encountered IOException. Directory part1 does not exist 【发布时间】:2017-10-13 09:43:17 【问题描述】:

我在 Apache Pig 中执行脚本时遇到问题。我有 3 个文件,即 movies.csv、ratings.csv、tags.csv。首先我想加载“movies.csv”,然后加载“ratings.csv”并加入两个表。但是我在加载文件时遇到错误。我给的代码如下,

register 'piggybank-0.15.0.jar'
DEFINE CSVLoader org.apache.pig.piggybank.storage.CSVLoader();
part1 = LOAD '/home/cloudera/ml-20m/movies' as (movieId: chararray, title: chararray, genre: chararray);
cat part1;

当我发出“cat”命令时,我得到一个错误,因为

猪栈跟踪

ERROR 2997: Encountered IOException. Directory part1 does not exist.

java.io.IOException: Directory part1 does not exist.
    at org.apache.pig.tools.grunt.GruntParser.processCat(GruntParser.java:677)
    at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:233)
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:198)
    at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:173)
    at org.apache.pig.tools.grunt.Grunt.run(Grunt.java:69)
    at org.apache.pig.Main.run(Main.java:547)
    at org.apache.pig.Main.main(Main.java:158)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136)

但我在指定位置有文件。我不知道为什么猪无法识别输入文件。我尝试将输入文件放在 hdfs 中并加载文件。但是错误是一样的。谁能帮帮我吗。提前致谢。

【问题讨论】:

【参考方案1】:

part1 不是文件而是关系。当你在 Pig 中使用 LOAD 命令时,你是在指示将文件的内容加载到关系中。你不能在关系上使用 cat,因为 cat 最常见的用法是读取文件的内容。 要显示 part1 的内容,请使用

DUMP part1;

如果你坚持使用cat,则指定文件的完整路径

cat /home/cloudera/ml-20m/movies;

【讨论】:

以上是关于错误 2997:遇到 IOException。目录 part1 不存在的主要内容,如果未能解决你的问题,请参考以下文章

导入失败:java.io.IOException:无法运行程序“hive”:错误=2,没有这样的文件或目录

icarousel 中的 SIGABRT 错误

ant jar 错误:执行失败:java.io.IOException:无法运行程序...$aapt":错误=2,没有这样的文件或目录

前端学习(2997):vue+element今日头条管理--编码规范说明

s-s-rs 报告在浏览器上显示空白 2997 行数据,存储过程时间为 42 秒

Parcelable 在写入可序列化对象时遇到 IOException