如何在Spark中读取和解析BSON转储文件?

时间:2016-10-20 12:07:50

标签: mongodb scala apache-spark bson

我在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转储的任何替代方法?

0 个答案:

没有答案