天天看點

Spark讀取MongoDB資料的方法與優化

一、傳統的較為簡單的SparkSql方式讀取

Spark版本:2.4 CDH

MongoDB Spark Connector github位址:​​

​​https://github.com/mongodb/mongo-spark​​

Maven倉庫

對于MongoDB版本的小于3.2的需要顯示的指定

如下三個參數

幾種分區的實作:

具體的解釋可以檢視。com.mongodb.spark.rdd.partitioner.DefaultMongoPartitioner 原碼中的注釋

需要根據MongoDB的叢集部署方式選擇最适合自己的

每種分區實作需要的參數不盡相同。可以在對應的實作内檢視

二、自定義分區實作

Spark讀取MongoDB資料分區主要是通過繼承 MongoPartitioner 特質來實作partitions方法

ScalaAPI實作

1.如果使用SparkSql的方式,是使用反射的方式實作的。需要将自己實作的類以Jar包的方式上傳到Spark的classPath下。

2. 使用上述方式則不用進行特殊處理

繼續閱讀