diff --git a/data-products/src/main/scala/org/sunbird/analytics/job/report/AssessmentMetricsJob.scala b/data-products/src/main/scala/org/sunbird/analytics/job/report/AssessmentMetricsJob.scala index 7913badf3..34436e155 100644 --- a/data-products/src/main/scala/org/sunbird/analytics/job/report/AssessmentMetricsJob.scala +++ b/data-products/src/main/scala/org/sunbird/analytics/job/report/AssessmentMetricsJob.scala @@ -476,16 +476,19 @@ object AssessmentMetricsJob extends optional.Application with IJob with BaseRepo .select(organisationDF.col("id").as("orgid"), col("orgname"), col("orgcode"), col("isrootorg"), col("state_name"), col("district_name")) - val stateUserLocationResolvedDF = userDF.filter(col("rootorgid") =!= lit(custRootOrgId)) - .join(userOrgDF, userDF.col("userid") === userOrgDF.col("userid")) + val subOrgDF = userOrgDF .join(stateOrgLocationDF, userOrgDF.col("organisationid") === stateOrgLocationDF.col("orgid") - && stateOrgLocationDF.col("isrootorg").equalTo(false), "left") + && stateOrgLocationDF.col("isrootorg").equalTo(false)) .dropDuplicates(Seq("userid")) + .select(col("userid"), stateOrgLocationDF.col("*")) + + val stateUserLocationResolvedDF = userDF.filter(col("rootorgid") =!= lit(custRootOrgId)) + .join(subOrgDF, Seq("userid"), "left") .select(userDF.col("*"), - col("orgname").as("declared-school-name"), - col("orgcode").as("declared-school-udise-code"), - col("state_name"), - col("district_name")).drop(col("locationids")) + subOrgDF.col("orgname").as("declared-school-name"), + subOrgDF.col("orgcode").as("declared-school-udise-code"), + subOrgDF.col("state_name"), + subOrgDF.col("district_name")).drop(col("locationids")) val stateUserDF = stateUserLocationResolvedDF.as("state_user") .join(externalIdentityDF, externalIdentityDF.col("idtype") === col("state_user.channel") diff --git a/data-products/src/main/scala/org/sunbird/analytics/job/report/CourseMetricsJob.scala b/data-products/src/main/scala/org/sunbird/analytics/job/report/CourseMetricsJob.scala index d432708d5..a4c900b66 100644 --- a/data-products/src/main/scala/org/sunbird/analytics/job/report/CourseMetricsJob.scala +++ b/data-products/src/main/scala/org/sunbird/analytics/job/report/CourseMetricsJob.scala @@ -346,17 +346,20 @@ object CourseMetricsJob extends optional.Application with IJob with ReportGenera // exclude the custodian user != custRootOrgId // join userDf to user_orgDF and then join with OrgDF to get orgname and orgcode ( filter isrootorg = false) - val stateUserLocationResolvedDF = userDF.filter(col("rootorgid") =!= lit(custRootOrgId)) - .join(userOrgDF, userDF.col("userid") === userOrgDF.col("userid")) + val subOrgDF = userOrgDF .join(stateOrgLocationDF, userOrgDF.col("organisationid") === stateOrgLocationDF.col("orgid") - && stateOrgLocationDF.col("isrootorg").equalTo(false), "left") + && stateOrgLocationDF.col("isrootorg").equalTo(false)) .dropDuplicates(Seq("userid")) + .select(col("userid"), stateOrgLocationDF.col("*")) + + val stateUserLocationResolvedDF = userDF.filter(col("rootorgid") =!= lit(custRootOrgId)) + .join(subOrgDF, Seq("userid"), "left") .select(userDF.col("*"), - col("orgname").as("declared-school-name"), - col("orgcode").as("declared-school-udise-code"), - col("state_name"), - col("district_name"), - col("block_name")).drop(col("locationids")) + subOrgDF.col("orgname").as("declared-school-name"), + subOrgDF.col("orgcode").as("declared-school-udise-code"), + subOrgDF.col("state_name"), + subOrgDF.col("district_name"), + subOrgDF.col("block_name")).drop(col("locationids")) val stateUserDF = stateUserLocationResolvedDF.as("state_user") .join(externalIdentityDF, externalIdentityDF.col("idtype") === col("state_user.channel")