digraph G {
0 [labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>"];
subgraph cluster1 {
isCluster="true";
label="WholeStageCodegen (2)\n \nduration: 25 ms";
2 [labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build: 25 ms<br>number of output rows: 1"];
}
3 [labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1<br>local merged chunks fetched: 0<br>shuffle write time: 40 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 1<br>local bytes read: 56.0 B<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 1<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 16.0 B<br>local merged bytes read: 0.0 B<br>number of partitions: 1<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 56.0 B"];
subgraph cluster4 {
isCluster="true";
label="WholeStageCodegen (1)\n \nduration: 62 ms";
5 [labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build: 1 ms<br>number of output rows: 1"];
6 [labelType="html" label="<b>Scan JDBCRelation((SELECT \"N_Examen\", \"N_Patient_Etablissement\", \"N_Sejour\", \"N_Mutation\", \"Date_Prelevement\", \"Code_Analyse\", \"Libelle_Analyse\", \"Valeur\", \"Unite\", \"Valeur_Ref_Min\", \"Valeur_Ref_Max\", \"Statut\" FROM \"formation\".\"biologie_patient\") as x) [numPartitions=1] </b><br><br>number of output rows: 0"];
}
2->0;
3->2;
5->3;
6->5;
}
7
AdaptiveSparkPlan isFinalPlan=true
HashAggregate(keys=[], functions=[count(1)])
WholeStageCodegen (2)
Exchange SinglePartition, ENSURE_REQUIREMENTS, [plan_id=38]
HashAggregate(keys=[], functions=[partial_count(1)])
Scan JDBCRelation((SELECT "N_Examen", "N_Patient_Etablissement", "N_Sejour", "N_Mutation", "Date_Prelevement", "Code_Analyse", "Libelle_Analyse", "Valeur", "Unite", "Valeur_Ref_Min", "Valeur_Ref_Max", "Statut" FROM "formation"."biologie_patient") as x) [numPartitions=1] [] PushedFilters: [*EqualNullSafe(Libelle_Analyse,A)], ReadSchema: struct<>
WholeStageCodegen (1)
== Physical Plan ==
AdaptiveSparkPlan (8)
+- == Final Plan ==
* HashAggregate (5)
+- ShuffleQueryStage (4), Statistics(sizeInBytes=16.0 B, rowCount=1)
+- Exchange (3)
+- * HashAggregate (2)
+- * Scan JDBCRelation((SELECT "N_Examen", "N_Patient_Etablissement", "N_Sejour", "N_Mutation", "Date_Prelevement", "Code_Analyse", "Libelle_Analyse", "Valeur", "Unite", "Valeur_Ref_Min", "Valeur_Ref_Max", "Statut" FROM "formation"."biologie_patient") as x) [numPartitions=1] (1)
+- == Initial Plan ==
HashAggregate (7)
+- Exchange (6)
+- HashAggregate (2)
+- Scan JDBCRelation((SELECT "N_Examen", "N_Patient_Etablissement", "N_Sejour", "N_Mutation", "Date_Prelevement", "Code_Analyse", "Libelle_Analyse", "Valeur", "Unite", "Valeur_Ref_Min", "Valeur_Ref_Max", "Statut" FROM "formation"."biologie_patient") as x) [numPartitions=1] (1)
(1) Scan JDBCRelation((SELECT "N_Examen", "N_Patient_Etablissement", "N_Sejour", "N_Mutation", "Date_Prelevement", "Code_Analyse", "Libelle_Analyse", "Valeur", "Unite", "Valeur_Ref_Min", "Valeur_Ref_Max", "Statut" FROM "formation"."biologie_patient") as x) [numPartitions=1] [codegen id : 1]
Output: []
PushedFilters: [*EqualNullSafe(Libelle_Analyse,A)]
ReadSchema: struct<>
(2) HashAggregate [codegen id : 1]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#508L]
Results [1]: [count#509L]
(3) Exchange
Input [1]: [count#509L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=38]
(4) ShuffleQueryStage
Output [1]: [count#509L]
Arguments: 0
(5) HashAggregate [codegen id : 2]
Input [1]: [count#509L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#505L]
Results [1]: [count(1)#505L AS count#506L]
(6) Exchange
Input [1]: [count#509L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=31]
(7) HashAggregate
Input [1]: [count#509L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#505L]
Results [1]: [count(1)#505L AS count#506L]
(8) AdaptiveSparkPlan
Output [1]: [count#506L]
Arguments: isFinalPlan=true