一、傳統的較為簡單的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. 使用上述方式則不用進行特殊處理