未处理Java Spark RDD操作

未处理Java Spark RDD操作,java,mongodb,apache-spark,Java,Mongodb,Apache Spark,这是我上一个问题的继续,但由于这是一个不同的问题,我认为最好为它创建一个新问题。我有以下代码: JavaMongoRDD<Document> rdd = MongoSpark.load(sc); System.out.println("Count: " + rdd.count()); Gson gson = new Gson(); rdd.foreach(item -> { String json = item.toJson(); //

这是我上一个问题的继续,但由于这是一个不同的问题,我认为最好为它创建一个新问题。我有以下代码:

JavaMongoRDD<Document> rdd = MongoSpark.load(sc);
System.out.println("Count: " + rdd.count());

Gson gson = new Gson();
        rdd.foreach(item -> {
            String json = item.toJson();
//              JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();
//              System.out.println(jsonObject.get("resourceId").getAsJsonObject().get("$binary").getAsString());
            Map<String, Object> map = gson.fromJson(json, new TypeToken<Map<String, Object>>() {
            }.getType());

            System.out.println(map.get("resourceId"));
            item.forEach((key, value) -> {
                if (key.equalsIgnoreCase("resourceId")) {
                    System.out.println(value);
                    resourceIds.add(value.toString());
                }
            });
        });
每次运行计数时,计数也会给我不同的结果,尽管Mongo集合没有被编辑。我不知道如何恢复输出,也不知道Spark的什么内部过程阻碍了操作。我需要缓存还是什么?请解释一下

2019-12-03 01:32:32 INFO  DAGScheduler:54 - ResultStage 1 (count at UUIDTransformerEngine.java:209) finished in 2.707 s
2019-12-03 01:32:32 INFO  DAGScheduler:54 - Job 1 finished: count at UUIDTransformerEngine.java:209, took 2.711357 s
Count: 13716
2019-12-03 01:32:37 INFO  MongoClientCache:48 - Closing MongoClient: