我在HDFS中有两个需要分析的BZ2 Mongo DB BSON转储。我使用的是Spark 2.0.1和Scala 2.11.8。目前我正在使用Spark Shell。
我尝试使用mongo-spark连接器创建RDD,如下所示 -
val rdd = sc.newAPIHadoopFile(path="hdfs:///pathtofile/dump.bson.bz2",
classOf[com.mongodb.hadoop.BSONFileInputFormat].asSubclass(classOf[org.apache.hadoop.mapreduce.lib.input.FileInputFormat[Object, org.bson.BSONObject]]),
classOf[Object],
classOf[org.bson.BSONObject])
然后只需使用rdd.take(1)
阅读它。
执行该操作会给我java.lang.IllegalStateException: unread block data.
我也通过提取bz2档案尝试了同样的步骤。它会导致相同的错误。
如何解决上述错误?在Spark中读取BSON转储的任何替代方法?