错误 2997:遇到 IOException。目录 part1 不存在
ERROR 2997: Encountered IOException. Directory part1 does not exist
我在 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" 命令时,出现错误,因为
Pig 堆栈跟踪
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)
但是我在指定位置有文件。我不知道为什么 pig 无法识别输入文件。我试过将输入文件放在 hdfs 中并加载文件。但是错误是一样的。谁能帮帮我吗。提前致谢。
part1 不是文件而是 relation.When 您在 Pig 中使用 LOAD 命令,您指示将文件的内容加载到 relation.You 不能在关系上使用 cat,因为cat 最常见的用途是读取文件的内容。
要显示第 1 部分的内容,请使用
DUMP part1;
否则,如果您坚持使用 cat,则指定文件的完整路径
cat /home/cloudera/ml-20m/movies;
我在 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" 命令时,出现错误,因为
Pig 堆栈跟踪
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)
但是我在指定位置有文件。我不知道为什么 pig 无法识别输入文件。我试过将输入文件放在 hdfs 中并加载文件。但是错误是一样的。谁能帮帮我吗。提前致谢。
part1 不是文件而是 relation.When 您在 Pig 中使用 LOAD 命令,您指示将文件的内容加载到 relation.You 不能在关系上使用 cat,因为cat 最常见的用途是读取文件的内容。 要显示第 1 部分的内容,请使用
DUMP part1;
否则,如果您坚持使用 cat,则指定文件的完整路径
cat /home/cloudera/ml-20m/movies;