我从Spark程序查询MongoDB。它正在返回BSON文件。由于BSON不是可拆分格式,因此即使它具有多个可用,它也只按一个执行器顺序处理它。
我了解到的一个解决方案是使用BSONSplitter API拆分文件,然后将其压缩为Lzo,因为它是可拆分格式。 我不想将文件保存到磁盘,即使用.lzo格式编写,因为我必须对其进行一些处理。 所以我的查询是,是否可以压缩BSON文件/拆分成内存本身,然后从中创建一个数据帧/ RDD,然后以分布式方式处理它。
或
总有一种不同的方法可能。
我正在使用Spark 1.6。 如果需要其他信息,请与我们联系。