0

私はこれでどこが間違っているのか理解できないようです。このスクリプトは、PigStorage では問題なく機能しますが、CSVLoader では ClassCastException が発生します。

ドキュメントを確認しましたが、役に立ちませんでした。

スタック トレースは次のとおりです。

Pig Stack Trace
---------------
ERROR 1200: Pig script failed to parse: 
<file pig_script.pig, line 15, column 0> pig script failed to validate: java.lang.ClassCastException: org.apache.pig.piggybank.storage.CSVLoader cannot be cast to org.apache.pig.StoreFuncInterface
org.apache.pig.impl.logicalLayer.FrontendException: ERROR 1000: Error during parsing. Pig script failed to parse: 
<file pig_script.pig, line 15, column 0> pig script failed to validate: java.lang.ClassCastException: org.apache.pig.piggybank.storage.CSVLoader cannot be cast to org.apache.pig.StoreFuncInterface
at org.apache.pig.PigServer$Graph.parseQuery(PigServer.java:1597)
at org.apache.pig.PigServer$Graph.registerQuery(PigServer.java:1540)
at org.apache.pig.PigServer.registerQuery(PigServer.java:540)
at org.apache.pig.tools.grunt.GruntParser.processPig(GruntParser.java:970)
at org.apache.pig.tools.pigscript.parser.PigScriptParser.parse(PigScriptParser.java:386)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:189)
at org.apache.pig.tools.grunt.GruntParser.parseStopOnError(GruntParser.java:165)
at org.apache.pig.tools.grunt.Grunt.exec(Grunt.java:84)
at org.apache.pig.Main.run(Main.java:555)
at org.apache.pig.Main.main(Main.java:111)
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:601)
at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
4

1 に答える 1

2

豚のスクリプトがなければ、これは推測ですが、STORE ステートメントで CSVLoader を使用しようとしていますか?

CSVLoaderはStoreFuncInterfaceを実装していません。これは、結果を保存するために使用するものに必要です。CSVLoader は LOAD ステートメントで使用されます。

これはインターフェイスを実装するため、代わりにCSVExcelStorageが必要になる可能性があります。前のリンクでも使用方法が詳しく説明されています。

STORE x INTO '<destFileName>'
USING CSVExcelStorage(['<delimiter>' [,{'YES_MULTILINE' | 'NO_MULTILINE'} [,{'UNIX' | 'WINDOWS' | 'UNCHANGED'}]]]);
于 2013-02-28T11:59:21.947 に答える