Код: Выделить всё
communes.foreachPartition(
partition -> {
partition.forEachRemaining(commune -> this.validator.validerRowCommune(historique, commune));
}
);
Код: Выделить всё
communesКод: Выделить всё
partitionа commune — это строка)
В следующем функция:
Код: Выделить всё
public Dataset rowCommunes(OptionsCreationLecture optionsCreationLecture, HistoriqueExecution historique, int anneeCOG, boolean inclureCommunesDelegueesAssociees, Verification... verifications) {
OptionsCreationLecture options = optionsCreationLecture != null ? optionsCreationLecture : optionsCreationLecture();
if (historique != null) {
historique.addReglesValidation(this.session, this.validator);
}
Supplier worker = () -> {
super.setStageDescription(this.messageSource, "row.cog.libelle.long", "row.cog.libelle.court", anneeCOG, inclureCommunesDelegueesAssociees);
LOGGER.info(this.messageSource.getMessage("row.cog.libelle.long", new Object[] {anneeCOG, inclureCommunesDelegueesAssociees}, Locale.getDefault()));
// Lier les codes communes et codes communes parents à leurs siren
Dataset c = this.cogCsvLoader.loadOpenData(anneeCOG, inclureCommunesDelegueesAssociees);
Dataset s = this.datasetSirenCommunaux.rowSirenCommunes(options, new SirenCommunesTriDepartementCommuneSiren(), anneeCOG);
Dataset communes = lierCommunesEtSiren(c,s).union(lierCommunesParentesEtSiren(c,s));
communes = communes.dropDuplicates("codeCommune", "typeCommune", "nomCommune");
communes = populationEtStrateCommunale(communes);
communes = liercontoursCommunes(communes, anneeCOG, verifications);
// Associer à chaque commune son code intercommunalité, si elle en a un (les communes-communautés peuvent ne pas en avoir).
Dataset perimetres = this.datasetPerimetres.rowPerimetres(this.session, anneeCOG, EPCIPerimetreDataset.TriPerimetresEPCI.CODE_COMMUNE_MEMBRE).selectExpr("sirenCommuneMembre", "sirenGroupement as codeEPCI", "nomGroupement as nomEPCI");
Column conditionJoinPerimetres = communes.col("sirenCommune").equalTo(perimetres.col("sirenCommuneMembre"));
verificateur().verifications("jonction communes et périmètres", communes, null, perimetres, conditionJoinPerimetres, verifications, Verification.SHOW_REJETS, Verification.COMPTAGES_ET_STATISTIQUES);
communes = communes.join(perimetres, conditionJoinPerimetres, "left");
// Y associer les départements.
communes = this.datasetDepartements.withDepartement("codeDepartementRetabli", communes, "codeDepartement", null, true, anneeCOG)
.drop("codeRegionDepartement")
.drop("codeDepartementRetabli");
communes.foreachPartition(
partition -> {
partition.forEachRemaining(commune -> this.validator.validerRowCommune(historique, commune));
}
);
return communes;
};
return constitutionStandard(options, worker,
new CacheParqueteur(options, this.session,
"cog-communes", "FILTRE-annee_{0,number,#0}_COMD-COMA_{1}",
new CogTriDepartementCommune(), anneeCOG, inclureCommunesDelegueesAssociees));
}
Например, это не так:
Код: Выделить всё
communes.foreachPartition(
partition -> partition.forEachRemaining(commune -> this.validator.validerRowCommune(historique, commune));
);

Подробнее здесь: https://stackoverflow.com/questions/783 ... expression