2017-02-14 17 views
0

私はクラスタシナリオで作業しています。 、私はHDFSに一つのファイルを考慮した場合、コードはうまく動作しますが、私はそれらを時間ごとにひとつのファイルを処理するために、ディレクトリにすべてのファイルを表示しようとすると、続くNullPointerExceptionファイルをHDFSに見つけるときに発生する

val sc = new SparkContext(conf) 
val sqlContext = new org.apache.spark.sql.SQLContext(sc) 
import sqlContext.implicits._ 
val files = new File("hdfs://nh-me:9000/user/user1/TotalFIle/").listFiles.map(_.getName).toList 

として、私は次のエラーを取得します

17/02/14 23:57:19 ERROR yarn.ApplicationMaster: User class threw exception: java.lang.NullPointerException 
java.lang.NullPointerException 
at  scala.collection.mutable.ArrayOps$ofRef$.length$extension(ArrayOps.scala:192) 
at scala.collection.mutable.ArrayOps$ofRef.length(ArrayOps.scala:192) 
at scala.collection.SeqLike$class.size(SeqLike.scala:106) 
at scala.collection.mutable.ArrayOps$ofRef.size(ArrayOps.scala:186) 
at scala.collection.mutable.Builder$class.sizeHint(Builder.scala:69) 
at scala.collection.mutable.ArrayBuilder.sizeHint(ArrayBuilder.scala:22) 
at scala.collection.TraversableLike$class.builder$1(TraversableLike.scala:230) 
at scala.collection.TraversableLike$class.map(TraversableLike.scala:233) 
at scala.collection.mutable.ArrayOps$ofRef.map(ArrayOps.scala:186) 
at SparkGraphGen$.main(CorrDistGraph.scala:53) 
at SparkGraphGen.main(CorrDistGraph.scala) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:497) 
at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:627) 
17/02/14 23:57:19 INFO yarn.ApplicationMaster: Final app status: FAILED, exitCode: 15, (reason: User class threw exception: java.lang.NullPointerException) 

答えて

0

をあなたはHDFS上のファイルにアクセスするためのJavaファイルAPIを使用することはできません。エラーは、私が投稿コードの一部で上記四行目で発生した53その行に注意してください。 HDFS APIを使用してファイルにアクセスする例を次に示します。

関連する問題