mongodb spark read in java连接器中的分区不工作

mongodb spark read in java连接器中的分区不工作,java,mongodb,apache-spark,partition,Java,Mongodb,Apache Spark,Partition,我试图使用MongoDb spark connector读取数据,并希望在一个键上对数据集进行分区,从mongoD独立实例读取数据。我在看mongoDb spark的版本,它提到了各种分区类。我试图使用MongoSamplePartitioner类,但它只在一个分区上读取MongoPaginateByCountPartitioner类以及固定的66个分区。这甚至在我分别在这两种情况下配置“samplesPerPartition”和“numberOfPartitions”时也是如此。我需要使用通过

我试图使用MongoDb spark connector读取数据,并希望在一个键上对数据集进行分区,从mongoD独立实例读取数据。我在看mongoDb spark的版本,它提到了各种分区类。我试图使用
MongoSamplePartitioner
类,但它只在一个分区上读取
MongoPaginateByCountPartitioner
类以及固定的66个分区。这甚至在我分别在这两种情况下配置“samplesPerPartition”和“numberOfPartitions”时也是如此。我需要使用通过映射创建的readConfig。我的代码:

SparkSession SparkSession=SparkSession.builder().appName(“sampleRecords”)
.config(“spark.driver.host”、“2g”)
.config(“spark.driver.host”、“127.0.0.1”)
.master(“本地[4]”)。getOrCreate();
Map readOverrides=new HashMap();
readOverrides.put(“uri”mongodb://mongo-root:password@127.0.0.1:27017/importedDb.myNewCollection?authSource=admin“;
readOverrides.put(“numberOfPartitions”,“16”);
readOverrides.put(“分区器”、“MongoPaginateByCountPartitioner”);
ReadConfig ReadConfig=ReadConfig.create(readOverrides);
JavaSparkContext jsc=JavaSparkContext.fromSparkContext(sparkSession.sparkContext());
Dataset=MongoSpark.load(jsc,readConfig.toDF();
System.out.println(dataset.count())//24576
System.out.println(dataset.rdd().getNumPartitions())//66
使用示例分区器每次返回1个分区 我是不是遗漏了什么?请帮忙

PS-我正在阅读24576条记录,mongoD版本4.0.10,MongoSpark连接器2.3.1,java 8

编辑: 我让它工作了,需要在地图中提供像partitionerOptions.samplesPerPartition这样的属性。但我仍然面临一个问题,partitionoroptions.samplesPerPartition:“1000”,在MongoSamplePartitioner中只返回1个分区。有什么建议吗