我在HDFS打开一堆文件(大约50个),如下所示:
val PATH = path_to_files
val FILE_PATH = "PATH+nt_uuid_2016-03-01.*1*.avro"
val df = sqlContext.read.avro(FILE_PATH)
然后我用df
做了一堆操作,在某些时候我得到了:
java.io.IOException: Not an Avro data file
at org.apache.avro.file.DataFileReader.openReader(DataFileReader.java:50)
at org.apache.avro.mapred.AvroRecordReader.(AvroRecordReader.java:41)
at org.apache.avro.mapred.AvroInputFormat.getRecordReader(AvroInputFormat.java:71)
at org.apache.spark.rdd.HadoopRDD$$anon$1.(HadoopRDD.scala:237)
at org.apache.spark.rdd.HadoopRDD.compute(HadoopRDD.scala:208)
at org.apache.spark.rdd.HadoopRDD.compute(HadoopRDD.scala:101)
at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:306)
at org.apache.spark.rdd.RDD.iterator(RDD.scala:270)
我怀疑其中一个文件可能存在问题,但我不知道哪一个。如果我与其中一个一起运行,则作业正确完成。
有没有办法捕捉异常并找出哪个是坏苹果?