digraph G {
0 [id="node0" labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>" tooltip="AdaptiveSparkPlan isFinalPlan=true"];
1 [id="node1" labelType="html" label="<b>CollectLimit</b><br><br>shuffle records written: 37<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 1<br>local bytes read: 744.0 B<br>merged fetch fallback count: 0<br>local blocks read: 12<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>local merged bytes read: 0.0 B<br>remote reqs duration: 0 ms<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>5 ms (0 ms, 0 ms, 0 ms (stage 24728.0: task 372727))<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 0 ms<br>remote bytes read: 0.0 B<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>2.2 KiB (62.0 B, 62.0 B, 62.0 B (stage 24728.0: task 372722))" tooltip="CollectLimit 1"];
2 [id="node2" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 1,294" tooltip="InMemoryTableScan"];
3 [id="node3" labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>" tooltip="AdaptiveSparkPlan isFinalPlan=true"];
subgraph cluster4 {
isCluster="true";
id="cluster4";
label="WholeStageCodegen (8)\n \nduration: total (min, med, max (stageId: taskId))\n1.0 s (2 ms, 6 ms, 78 ms (stage 24726.0: task 372683))";
tooltip="WholeStageCodegen (8)";
5 [id="node5" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build total (min, med, max (stageId: taskId))<br>127 ms (0 ms, 2 ms, 12 ms (stage 24726.0: task 372689))<br>peak memory total (min, med, max (stageId: taskId))<br>83.3 MiB (2.3 MiB, 2.3 MiB, 2.3 MiB (stage 24726.0: task 372687))<br>number of output rows: 1,294<br>number of sort fallback tasks: 0<br>avg hash probes per key (min, med, max (stageId: taskId)):<br>(1, 1, 1 (stage 24726.0: task 372687))" tooltip="HashAggregate(keys=[businessContext#1200365, []#1208887, 1#1208888, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208889], functions=[])"];
6 [id="node6" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build total (min, med, max (stageId: taskId))<br>87 ms (0 ms, 1 ms, 10 ms (stage 24726.0: task 372683))<br>peak memory total (min, med, max (stageId: taskId))<br>83.3 MiB (2.3 MiB, 2.3 MiB, 2.3 MiB (stage 24726.0: task 372687))<br>number of output rows: 1,294<br>number of sort fallback tasks: 0<br>avg hash probes per key (min, med, max (stageId: taskId)):<br>(1, 1, 1 (stage 24726.0: task 372687))" tooltip="HashAggregate(keys=[businessContext#1200365, [] AS []#1208887, 1 AS 1#1208888, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION AS UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208889], functions=[])"];
7 [id="node7" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#1199942, plant#1199943, array(struct(name, PRODUCT, value, product#1199942), struct(name, PLANT, value, plant#1199943)) AS businessContext#1200365]"];
8 [id="node8" labelType="html" label="<b>Filter</b><br><br>number of output rows: 1,294" tooltip="Filter (((size(demandTimeBuckets#1200354, true) = 0) OR isnull(demandTimeBuckets#1200354)) AND ((size(demandPointInTime#1200357, true) = 0) OR isnull(demandPointInTime#1200357)))"];
9 [id="node9" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 1,294" tooltip="BroadcastHashJoin [product#1199942, plant#1199943], [product#1200349, plant#1200350], LeftOuter, BuildRight, false"];
10 [id="node10" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#1199942, plant#1199943]"];
11 [id="node11" labelType="html" label="<b>Generate</b><br><br>number of output rows: 1,294" tooltip="Generate explode(_extract_quantityDenominator#1208471), [product#1199942, plant#1199943], true, [quantityDenominator#1199999]"];
12 [id="node12" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988.quantityDenominator AS _extract_quantityDenominator#1208471]"];
13 [id="node13" labelType="html" label="<b>Generate</b><br><br>number of output rows: 1,294" tooltip="Generate explode(filteredUnitOfMeasureConversions#1199988.quantityNumerator), [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988], true, [quantityNumerator#1199996]"];
}
14 [id="node14" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#1199942, plant#1199943, filter(unitOfMeasureConversions#1199982, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1208510) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1208511)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1199980.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1199980.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1199988]"];
subgraph cluster15 {
isCluster="true";
id="cluster15";
label="WholeStageCodegen (7)\n \nduration: total (min, med, max (stageId: taskId))\n1.4 s (2 ms, 3 ms, 114 ms (stage 24726.0: task 372683))";
tooltip="WholeStageCodegen (7)";
16 [id="node16" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 1,294" tooltip="BroadcastHashJoin [product#1199942], [internalUUID#1199976], LeftOuter, BuildRight, false"];
17 [id="node17" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511]"];
18 [id="node18" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 1,294" tooltip="BroadcastHashJoin [coalesce(plant#1199943, ), isnull(plant#1199943)], [coalesce(internalUUID#1199960, ), isnull(internalUUID#1199960)], LeftOuter, BuildRight, false"];
19 [id="node19" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511]"];
20 [id="node20" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 1,294" tooltip="BroadcastHashJoin [coalesce(product#1199942, ), isnull(product#1199942), coalesce(plant#1199943, ), isnull(plant#1199943)], [coalesce(_extract_internalRefUUID#1208509, ), isnull(_extract_internalRefUUID#1208509), coalesce(_extract_internalRefUUID#1208512, ), isnull(_extract_internalRefUUID#1208512)], LeftOuter, BuildRight, false"];
}
21 [id="node21" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1,294<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 1,294<br>local bytes read total (min, med, max (stageId: taskId))<br>56.1 KiB (1164.0 B, 1584.0 B, 1976.0 B (stage 24726.0: task 372704))<br>merged fetch fallback count: 0<br>local blocks read: 37<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>111.2 KiB (2.1 KiB, 3.0 KiB, 4.2 KiB (stage 24715.0: task 372525))<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time total (min, med, max (stageId: taskId))<br>24 ms (0 ms, 0 ms, 3 ms (stage 24715.0: task 372528))<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 24726.0: task 372687))<br>remote bytes read: 0.0 B<br>number of partitions: 37<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>56.1 KiB (1164.0 B, 1584.0 B, 1976.0 B (stage 24715.0: task 372525))" tooltip="Exchange hashpartitioning(product#1199942, plant#1199943, 37), REPARTITION_BY_NUM, [plan_id=1914374]"];
subgraph cluster22 {
isCluster="true";
id="cluster22";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n3.2 s (56 ms, 75 ms, 129 ms (stage 24715.0: task 372537))";
tooltip="WholeStageCodegen (1)";
23 [id="node23" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 1,294<br>number of input batches: 37" tooltip="ColumnarToRow"];
}
24 [id="node24" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 37<br>scan time total (min, med, max (stageId: taskId))<br>3.1 s (55 ms, 73 ms, 127 ms (stage 24715.0: task 372537))<br>metadata time: 0 ms<br>size of files read: 114.1 KiB<br>number of output rows: 1,294" tooltip="FileScan parquet [product#1199942,plant#1199943] Batched: true, DataFilters: [], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<product:string,plant:string>"];
25 [id="node25" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 1 ms<br>time to build: 1 ms<br>time to collect: 89 ms<br>number of output rows: 1,426<br>data size: 2.1 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1914750]"];
subgraph cluster26 {
isCluster="true";
id="cluster26";
label="WholeStageCodegen (6)\n \nduration: total (min, med, max (stageId: taskId))\n0 ms (0 ms, 0 ms, 0 ms (stage 24724.0: task 372611))";
tooltip="WholeStageCodegen (6)";
27 [id="node27" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_code#1208510, _extract_internalRefUUID#1208511, _extract_internalRefUUID#1208509, _extract_internalRefUUID#1208512]"];
}
28 [id="node28" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1,426<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 1,426<br>local bytes read total (min, med, max (stageId: taskId))<br>75.6 KiB (1968.0 B, 2.0 KiB, 2.2 KiB (stage 24724.0: task 372658))<br>merged fetch fallback count: 0<br>local blocks read: 37<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 197.7 KiB<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 1 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 24724.0: task 372611))<br>remote bytes read: 0.0 B<br>number of partitions: 37<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 75.6 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914395]"];
subgraph cluster29 {
isCluster="true";
id="cluster29";
label="WholeStageCodegen (2)\n \nduration: 77 ms";
tooltip="WholeStageCodegen (2)";
30 [id="node30" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#1199949.internalRefUUID AS _extract_internalRefUUID#1208512, product#1199950.internalRefUUID AS _extract_internalRefUUID#1208509, productionAspect#1199952.productMovementPlants.unitOfIssue.code AS _extract_code#1208510, productionAspect#1199952.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1208511]"];
31 [id="node31" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 1,426<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
32 [id="node32" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 74 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 78.3 KiB<br>number of output rows: 1,426<br>number of partitions read: 1" tooltip="FileScan parquet [plant#1199949,product#1199950,productionAspect#1199952,systemId#1199947] Batched: true, DataFilters: [], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspe..."];
33 [id="node33" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 1 ms<br>time to collect: 123 ms<br>number of output rows: 24<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1914547]"];
34 [id="node34" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 24<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 24<br>local bytes read total (min, med, max (stageId: taskId))<br>2.5 KiB (107.0 B, 108.0 B, 108.0 B (stage 24720.0: task 372563))<br>merged fetch fallback count: 0<br>local blocks read: 24<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 1152.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 1 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 24720.0: task 372563))<br>remote bytes read: 0.0 B<br>number of partitions: 37<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 2.5 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914419]"];
subgraph cluster35 {
isCluster="true";
id="cluster35";
label="WholeStageCodegen (3)\n \nduration: 117 ms";
tooltip="WholeStageCodegen (3)";
36 [id="node36" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [internalUUID#1199960]"];
37 [id="node37" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 24<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
38 [id="node38" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 116 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 13.5 KiB<br>number of output rows: 24<br>number of partitions read: 1" tooltip="FileScan parquet [internalUUID#1199960,systemId#1199959] Batched: true, DataFilters: [], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<internalUUID:string>"];
39 [id="node39" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 1 ms<br>time to collect: 77 ms<br>number of output rows: 145<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1914644]"];
40 [id="node40" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 145<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 145<br>local bytes read total (min, med, max (stageId: taskId))<br>28.3 KiB (508.0 B, 775.0 B, 1128.0 B (stage 24722.0: task 372608))<br>merged fetch fallback count: 0<br>local blocks read: 37<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 87.9 KiB<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 1 ms<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 24722.0: task 372592))<br>remote bytes read: 0.0 B<br>number of partitions: 37<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 28.3 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914446]"];
subgraph cluster41 {
isCluster="true";
id="cluster41";
label="WholeStageCodegen (4)\n \nduration: 93 ms";
tooltip="WholeStageCodegen (4)";
42 [id="node42" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]"];
43 [id="node43" labelType="html" label="<b>Filter</b><br><br>number of output rows: 145" tooltip="Filter isnotnull(internalUUID#1199976)"];
44 [id="node44" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 145<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
45 [id="node45" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 93 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 34.3 KiB<br>number of output rows: 145<br>number of partitions read: 1" tooltip="FileScan parquet [internalUUID#1199976,baseUnitOfMeasure#1199980,unitOfMeasureConversions#1199982,systemId#1199975] Batched: true, DataFilters: [isnotnull(internalUUID#1199976)], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [IsNotNull(internalUUID)], ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMea..."];
46 [id="node46" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 1 ms<br>time to collect: 280 ms<br>number of output rows: 1,294<br>data size: 2.1 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1914474]"];
subgraph cluster47 {
isCluster="true";
id="cluster47";
label="WholeStageCodegen (5)\n \nduration: 104 ms";
tooltip="WholeStageCodegen (5)";
48 [id="node48" labelType="html" label="<b>Filter</b><br><br>number of output rows: 1,294" tooltip="Filter (isnotnull(product#1200349) AND isnotnull(plant#1200350))"];
49 [id="node49" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 1,294<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
50 [id="node50" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 95 ms<br>metadata time: 0 ms<br>size of files read: 10.4 KiB<br>number of output rows: 1,294" tooltip="FileScan parquet [product#1200349,plant#1200350,demandTimeBuckets#1200354,demandPointInTime#1200357] Batched: true, DataFilters: [isnotnull(product#1200349), isnotnull(plant#1200350)], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [IsNotNull(product), IsNotNull(plant)], ReadSchema: struct<product:string,plant:string,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,d..."];
1->0;
2->1;
3->2;
5->3;
6->5;
7->6;
8->7;
9->8;
10->9;
11->10;
12->11;
13->12;
14->13;
16->14;
17->16;
18->17;
19->18;
20->19;
21->20;
23->21;
24->23;
25->20;
27->25;
28->27;
30->28;
31->30;
32->31;
33->18;
34->33;
36->34;
37->36;
38->37;
39->16;
40->39;
42->40;
43->42;
44->43;
45->44;
46->9;
48->46;
49->48;
50->49;
}
== Physical Plan ==
AdaptiveSparkPlan (85)
+- == Final Plan ==
ResultQueryStage (83), Statistics(sizeInBytes=8.0 EiB)
+- CollectLimit (82)
+- TableCacheQueryStage (81), Statistics(sizeInBytes=350.0 KiB, rowCount=1.29E+3)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (80)
+- == Final Plan ==
ResultQueryStage (50)
+- * HashAggregate (49)
+- * HashAggregate (48)
+- * Project (47)
+- * Filter (46)
+- * BroadcastHashJoin LeftOuter BuildRight (45)
:- * Project (39)
: +- * Generate (38)
: +- * Project (37)
: +- * Generate (36)
: +- Project (35)
: +- * BroadcastHashJoin LeftOuter BuildRight (34)
: :- * Project (25)
: : +- * BroadcastHashJoin LeftOuter BuildRight (24)
: : :- * Project (16)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (15)
: : : :- ShuffleQueryStage (6), Statistics(sizeInBytes=111.2 KiB, rowCount=1.29E+3)
: : : : +- Exchange (5)
: : : : +- * ColumnarToRow (4)
: : : : +- Scan parquet (3)
: : : +- BroadcastQueryStage (14), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : +- BroadcastExchange (13)
: : : +- * Project (12)
: : : +- ShuffleQueryStage (11), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : +- Exchange (10)
: : : +- * Project (9)
: : : +- * ColumnarToRow (8)
: : : +- Scan parquet (7)
: : +- BroadcastQueryStage (23), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : +- BroadcastExchange (22)
: : +- ShuffleQueryStage (21), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: : +- Exchange (20)
: : +- * Project (19)
: : +- * ColumnarToRow (18)
: : +- Scan parquet (17)
: +- BroadcastQueryStage (33), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: +- BroadcastExchange (32)
: +- ShuffleQueryStage (31), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: +- Exchange (30)
: +- * Project (29)
: +- * Filter (28)
: +- * ColumnarToRow (27)
: +- Scan parquet (26)
+- BroadcastQueryStage (44), Statistics(sizeInBytes=2.1 MiB, rowCount=1.29E+3)
+- BroadcastExchange (43)
+- * Filter (42)
+- * ColumnarToRow (41)
+- Scan parquet (40)
+- == Initial Plan ==
HashAggregate (79)
+- HashAggregate (78)
+- Project (77)
+- Filter (76)
+- BroadcastHashJoin LeftOuter BuildRight (75)
:- Project (72)
: +- Generate (71)
: +- Project (70)
: +- Generate (69)
: +- Project (68)
: +- BroadcastHashJoin LeftOuter BuildRight (67)
: :- Project (62)
: : +- BroadcastHashJoin LeftOuter BuildRight (61)
: : :- Project (57)
: : : +- BroadcastHashJoin LeftOuter BuildRight (56)
: : : :- Exchange (51)
: : : : +- Scan parquet (3)
: : : +- BroadcastExchange (55)
: : : +- Project (54)
: : : +- Exchange (53)
: : : +- Project (52)
: : : +- Scan parquet (7)
: : +- BroadcastExchange (60)
: : +- Exchange (59)
: : +- Project (58)
: : +- Scan parquet (17)
: +- BroadcastExchange (66)
: +- Exchange (65)
: +- Project (64)
: +- Filter (63)
: +- Scan parquet (26)
+- BroadcastExchange (74)
+- Filter (73)
+- Scan parquet (40)
+- == Initial Plan ==
CollectLimit (84)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (80)
+- == Final Plan ==
ResultQueryStage (50)
+- * HashAggregate (49)
+- * HashAggregate (48)
+- * Project (47)
+- * Filter (46)
+- * BroadcastHashJoin LeftOuter BuildRight (45)
:- * Project (39)
: +- * Generate (38)
: +- * Project (37)
: +- * Generate (36)
: +- Project (35)
: +- * BroadcastHashJoin LeftOuter BuildRight (34)
: :- * Project (25)
: : +- * BroadcastHashJoin LeftOuter BuildRight (24)
: : :- * Project (16)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (15)
: : : :- ShuffleQueryStage (6), Statistics(sizeInBytes=111.2 KiB, rowCount=1.29E+3)
: : : : +- Exchange (5)
: : : : +- * ColumnarToRow (4)
: : : : +- Scan parquet (3)
: : : +- BroadcastQueryStage (14), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : +- BroadcastExchange (13)
: : : +- * Project (12)
: : : +- ShuffleQueryStage (11), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : +- Exchange (10)
: : : +- * Project (9)
: : : +- * ColumnarToRow (8)
: : : +- Scan parquet (7)
: : +- BroadcastQueryStage (23), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : +- BroadcastExchange (22)
: : +- ShuffleQueryStage (21), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: : +- Exchange (20)
: : +- * Project (19)
: : +- * ColumnarToRow (18)
: : +- Scan parquet (17)
: +- BroadcastQueryStage (33), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: +- BroadcastExchange (32)
: +- ShuffleQueryStage (31), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: +- Exchange (30)
: +- * Project (29)
: +- * Filter (28)
: +- * ColumnarToRow (27)
: +- Scan parquet (26)
+- BroadcastQueryStage (44), Statistics(sizeInBytes=2.1 MiB, rowCount=1.29E+3)
+- BroadcastExchange (43)
+- * Filter (42)
+- * ColumnarToRow (41)
+- Scan parquet (40)
+- == Initial Plan ==
HashAggregate (79)
+- HashAggregate (78)
+- Project (77)
+- Filter (76)
+- BroadcastHashJoin LeftOuter BuildRight (75)
:- Project (72)
: +- Generate (71)
: +- Project (70)
: +- Generate (69)
: +- Project (68)
: +- BroadcastHashJoin LeftOuter BuildRight (67)
: :- Project (62)
: : +- BroadcastHashJoin LeftOuter BuildRight (61)
: : :- Project (57)
: : : +- BroadcastHashJoin LeftOuter BuildRight (56)
: : : :- Exchange (51)
: : : : +- Scan parquet (3)
: : : +- BroadcastExchange (55)
: : : +- Project (54)
: : : +- Exchange (53)
: : : +- Project (52)
: : : +- Scan parquet (7)
: : +- BroadcastExchange (60)
: : +- Exchange (59)
: : +- Project (58)
: : +- Scan parquet (17)
: +- BroadcastExchange (66)
: +- Exchange (65)
: +- Project (64)
: +- Filter (63)
: +- Scan parquet (26)
+- BroadcastExchange (74)
+- Filter (73)
+- Scan parquet (40)
(1) InMemoryTableScan
Output: []
(2) InMemoryRelation
Arguments: [name#1200360, configurationVersion#1200359, executionId#1200367, createdAt#1200369, marketUnit#1200368, businessContext#1200365, messageVariables#1200366], StorageLevel(disk, memory, deserialized, 1 replicas)
(3) Scan parquet
Output [2]: [product#1199942, plant#1199943]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001355/shardId=0_1_10000001355]
ReadSchema: struct<product:string,plant:string>
(4) ColumnarToRow [codegen id : 1]
Input [2]: [product#1199942, plant#1199943]
(5) Exchange
Input [2]: [product#1199942, plant#1199943]
Arguments: hashpartitioning(product#1199942, plant#1199943, 37), REPARTITION_BY_NUM, [plan_id=1914374]
(6) ShuffleQueryStage
Output [2]: [product#1199942, plant#1199943]
Arguments: 0
(7) Scan parquet
Output [4]: [plant#1199949, product#1199950, productionAspect#1199952, systemId#1199947]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(8) ColumnarToRow [codegen id : 2]
Input [4]: [plant#1199949, product#1199950, productionAspect#1199952, systemId#1199947]
(9) Project [codegen id : 2]
Output [4]: [plant#1199949.internalRefUUID AS _extract_internalRefUUID#1208512, product#1199950.internalRefUUID AS _extract_internalRefUUID#1208509, productionAspect#1199952.productMovementPlants.unitOfIssue.code AS _extract_code#1208510, productionAspect#1199952.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1208511]
Input [4]: [plant#1199949, product#1199950, productionAspect#1199952, systemId#1199947]
(10) Exchange
Input [4]: [_extract_internalRefUUID#1208512, _extract_internalRefUUID#1208509, _extract_code#1208510, _extract_internalRefUUID#1208511]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914395]
(11) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#1208512, _extract_internalRefUUID#1208509, _extract_code#1208510, _extract_internalRefUUID#1208511]
Arguments: 1
(12) Project [codegen id : 6]
Output [4]: [_extract_code#1208510, _extract_internalRefUUID#1208511, _extract_internalRefUUID#1208509, _extract_internalRefUUID#1208512]
Input [4]: [_extract_internalRefUUID#1208512, _extract_internalRefUUID#1208509, _extract_code#1208510, _extract_internalRefUUID#1208511]
(13) BroadcastExchange
Input [4]: [_extract_code#1208510, _extract_internalRefUUID#1208511, _extract_internalRefUUID#1208509, _extract_internalRefUUID#1208512]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1914750]
(14) BroadcastQueryStage
Output [4]: [_extract_code#1208510, _extract_internalRefUUID#1208511, _extract_internalRefUUID#1208509, _extract_internalRefUUID#1208512]
Arguments: 7
(15) BroadcastHashJoin [codegen id : 7]
Left keys [4]: [coalesce(product#1199942, ), isnull(product#1199942), coalesce(plant#1199943, ), isnull(plant#1199943)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1208509, ), isnull(_extract_internalRefUUID#1208509), coalesce(_extract_internalRefUUID#1208512, ), isnull(_extract_internalRefUUID#1208512)]
Join type: LeftOuter
Join condition: None
(16) Project [codegen id : 7]
Output [4]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511]
Input [6]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511, _extract_internalRefUUID#1208509, _extract_internalRefUUID#1208512]
(17) Scan parquet
Output [2]: [internalUUID#1199960, systemId#1199959]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(18) ColumnarToRow [codegen id : 3]
Input [2]: [internalUUID#1199960, systemId#1199959]
(19) Project [codegen id : 3]
Output [1]: [internalUUID#1199960]
Input [2]: [internalUUID#1199960, systemId#1199959]
(20) Exchange
Input [1]: [internalUUID#1199960]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914419]
(21) ShuffleQueryStage
Output [1]: [internalUUID#1199960]
Arguments: 2
(22) BroadcastExchange
Input [1]: [internalUUID#1199960]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1914547]
(23) BroadcastQueryStage
Output [1]: [internalUUID#1199960]
Arguments: 5
(24) BroadcastHashJoin [codegen id : 7]
Left keys [2]: [coalesce(plant#1199943, ), isnull(plant#1199943)]
Right keys [2]: [coalesce(internalUUID#1199960, ), isnull(internalUUID#1199960)]
Join type: LeftOuter
Join condition: None
(25) Project [codegen id : 7]
Output [4]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511]
Input [5]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511, internalUUID#1199960]
(26) Scan parquet
Output [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(27) ColumnarToRow [codegen id : 4]
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
(28) Filter [codegen id : 4]
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
Condition : isnotnull(internalUUID#1199976)
(29) Project [codegen id : 4]
Output [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
(30) Exchange
Input [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914446]
(31) ShuffleQueryStage
Output [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: 3
(32) BroadcastExchange
Input [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1914644]
(33) BroadcastQueryStage
Output [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: 6
(34) BroadcastHashJoin [codegen id : 7]
Left keys [1]: [product#1199942]
Right keys [1]: [internalUUID#1199976]
Join type: LeftOuter
Join condition: None
(35) Project
Output [3]: [product#1199942, plant#1199943, filter(unitOfMeasureConversions#1199982, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1208510) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1208511)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1199980.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1199980.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1199988]
Input [7]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511, internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
(36) Generate [codegen id : 8]
Input [3]: [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988]
Arguments: explode(filteredUnitOfMeasureConversions#1199988.quantityNumerator), [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988], true, [quantityNumerator#1199996]
(37) Project [codegen id : 8]
Output [3]: [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988.quantityDenominator AS _extract_quantityDenominator#1208471]
Input [4]: [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988, quantityNumerator#1199996]
(38) Generate [codegen id : 8]
Input [3]: [product#1199942, plant#1199943, _extract_quantityDenominator#1208471]
Arguments: explode(_extract_quantityDenominator#1208471), [product#1199942, plant#1199943], true, [quantityDenominator#1199999]
(39) Project [codegen id : 8]
Output [2]: [product#1199942, plant#1199943]
Input [3]: [product#1199942, plant#1199943, quantityDenominator#1199999]
(40) Scan parquet
Output [4]: [product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001355/0_1_10000001355]
PushedFilters: [IsNotNull(product), IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(41) ColumnarToRow [codegen id : 5]
Input [4]: [product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
(42) Filter [codegen id : 5]
Input [4]: [product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
Condition : (isnotnull(product#1200349) AND isnotnull(plant#1200350))
(43) BroadcastExchange
Input [4]: [product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1914474]
(44) BroadcastQueryStage
Output [4]: [product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
Arguments: 4
(45) BroadcastHashJoin [codegen id : 8]
Left keys [2]: [product#1199942, plant#1199943]
Right keys [2]: [product#1200349, plant#1200350]
Join type: LeftOuter
Join condition: None
(46) Filter [codegen id : 8]
Input [6]: [product#1199942, plant#1199943, product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
Condition : (((size(demandTimeBuckets#1200354, true) = 0) OR isnull(demandTimeBuckets#1200354)) AND ((size(demandPointInTime#1200357, true) = 0) OR isnull(demandPointInTime#1200357)))
(47) Project [codegen id : 8]
Output [3]: [product#1199942, plant#1199943, array(struct(name, PRODUCT, value, product#1199942), struct(name, PLANT, value, plant#1199943)) AS businessContext#1200365]
Input [6]: [product#1199942, plant#1199943, product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
(48) HashAggregate [codegen id : 8]
Input [3]: [product#1199942, plant#1199943, businessContext#1200365]
Keys [6]: [businessContext#1200365, [] AS []#1208887, 1 AS 1#1208888, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION AS UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208889]
Functions: []
Aggregate Attributes: []
Results [6]: [businessContext#1200365, []#1208887, 1#1208888, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208889]
(49) HashAggregate [codegen id : 8]
Input [6]: [businessContext#1200365, []#1208887, 1#1208888, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208889]
Keys [6]: [businessContext#1200365, []#1208887, 1#1208888, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208889]
Functions: []
Aggregate Attributes: []
Results [7]: [UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION AS name#1200360, 1 AS configurationVersion#1200359, 10000001355 AS executionId#1200367, 2026-07-21T13:23:35.337Z AS createdAt#1200369, Grocery_SS AS marketUnit#1200368, businessContext#1200365, [] AS messageVariables#1200366]
(50) ResultQueryStage
Output [7]: [name#1200360, configurationVersion#1200359, executionId#1200367, createdAt#1200369, marketUnit#1200368, businessContext#1200365, messageVariables#1200366]
Arguments: 8
(51) Exchange
Input [2]: [product#1199942, plant#1199943]
Arguments: hashpartitioning(product#1199942, plant#1199943, 37), REPARTITION_BY_NUM, [plan_id=1914299]
(52) Project
Output [4]: [plant#1199949.internalRefUUID AS _extract_internalRefUUID#1208512, product#1199950.internalRefUUID AS _extract_internalRefUUID#1208509, productionAspect#1199952.productMovementPlants.unitOfIssue.code AS _extract_code#1208510, productionAspect#1199952.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1208511]
Input [4]: [plant#1199949, product#1199950, productionAspect#1199952, systemId#1199947]
(53) Exchange
Input [4]: [_extract_internalRefUUID#1208512, _extract_internalRefUUID#1208509, _extract_code#1208510, _extract_internalRefUUID#1208511]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914302]
(54) Project
Output [4]: [_extract_code#1208510, _extract_internalRefUUID#1208511, _extract_internalRefUUID#1208509, _extract_internalRefUUID#1208512]
Input [4]: [_extract_internalRefUUID#1208512, _extract_internalRefUUID#1208509, _extract_code#1208510, _extract_internalRefUUID#1208511]
(55) BroadcastExchange
Input [4]: [_extract_code#1208510, _extract_internalRefUUID#1208511, _extract_internalRefUUID#1208509, _extract_internalRefUUID#1208512]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1914335]
(56) BroadcastHashJoin
Left keys [4]: [coalesce(product#1199942, ), isnull(product#1199942), coalesce(plant#1199943, ), isnull(plant#1199943)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1208509, ), isnull(_extract_internalRefUUID#1208509), coalesce(_extract_internalRefUUID#1208512, ), isnull(_extract_internalRefUUID#1208512)]
Join type: LeftOuter
Join condition: None
(57) Project
Output [4]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511]
Input [6]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511, _extract_internalRefUUID#1208509, _extract_internalRefUUID#1208512]
(58) Project
Output [1]: [internalUUID#1199960]
Input [2]: [internalUUID#1199960, systemId#1199959]
(59) Exchange
Input [1]: [internalUUID#1199960]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914308]
(60) BroadcastExchange
Input [1]: [internalUUID#1199960]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1914339]
(61) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1199943, ), isnull(plant#1199943)]
Right keys [2]: [coalesce(internalUUID#1199960, ), isnull(internalUUID#1199960)]
Join type: LeftOuter
Join condition: None
(62) Project
Output [4]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511]
Input [5]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511, internalUUID#1199960]
(63) Filter
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
Condition : isnotnull(internalUUID#1199976)
(64) Project
Output [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
(65) Exchange
Input [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1914314]
(66) BroadcastExchange
Input [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1914343]
(67) BroadcastHashJoin
Left keys [1]: [product#1199942]
Right keys [1]: [internalUUID#1199976]
Join type: LeftOuter
Join condition: None
(68) Project
Output [3]: [product#1199942, plant#1199943, filter(unitOfMeasureConversions#1199982, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1208510) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1208511)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1199980.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1199980.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1199988]
Input [7]: [product#1199942, plant#1199943, _extract_code#1208510, _extract_internalRefUUID#1208511, internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
(69) Generate
Input [3]: [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988]
Arguments: explode(filteredUnitOfMeasureConversions#1199988.quantityNumerator), [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988], true, [quantityNumerator#1199996]
(70) Project
Output [3]: [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988.quantityDenominator AS _extract_quantityDenominator#1208471]
Input [4]: [product#1199942, plant#1199943, filteredUnitOfMeasureConversions#1199988, quantityNumerator#1199996]
(71) Generate
Input [3]: [product#1199942, plant#1199943, _extract_quantityDenominator#1208471]
Arguments: explode(_extract_quantityDenominator#1208471), [product#1199942, plant#1199943], true, [quantityDenominator#1199999]
(72) Project
Output [2]: [product#1199942, plant#1199943]
Input [3]: [product#1199942, plant#1199943, quantityDenominator#1199999]
(73) Filter
Input [4]: [product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
Condition : (isnotnull(product#1200349) AND isnotnull(plant#1200350))
(74) BroadcastExchange
Input [4]: [product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1914351]
(75) BroadcastHashJoin
Left keys [2]: [product#1199942, plant#1199943]
Right keys [2]: [product#1200349, plant#1200350]
Join type: LeftOuter
Join condition: None
(76) Filter
Input [6]: [product#1199942, plant#1199943, product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
Condition : (((size(demandTimeBuckets#1200354, true) = 0) OR isnull(demandTimeBuckets#1200354)) AND ((size(demandPointInTime#1200357, true) = 0) OR isnull(demandPointInTime#1200357)))
(77) Project
Output [3]: [product#1199942, plant#1199943, array(struct(name, PRODUCT, value, product#1199942), struct(name, PLANT, value, plant#1199943)) AS businessContext#1200365]
Input [6]: [product#1199942, plant#1199943, product#1200349, plant#1200350, demandTimeBuckets#1200354, demandPointInTime#1200357]
(78) HashAggregate
Input [3]: [product#1199942, plant#1199943, businessContext#1200365]
Keys [6]: [businessContext#1200365, [] AS []#1208723, 1 AS 1#1208724, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION AS UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208725]
Functions: []
Aggregate Attributes: []
Results [6]: [businessContext#1200365, []#1208723, 1#1208724, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208725]
(79) HashAggregate
Input [6]: [businessContext#1200365, []#1208723, 1#1208724, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208725]
Keys [6]: [businessContext#1200365, []#1208723, 1#1208724, product#1199942, plant#1199943, UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION#1208725]
Functions: []
Aggregate Attributes: []
Results [7]: [UNKNOWN_DEMAND_FOR_PRODUCT_LOCATION AS name#1200360, 1 AS configurationVersion#1200359, 10000001355 AS executionId#1200367, 2026-07-21T13:23:35.337Z AS createdAt#1200369, Grocery_SS AS marketUnit#1200368, businessContext#1200365, [] AS messageVariables#1200366]
(80) AdaptiveSparkPlan
Output [7]: [name#1200360, configurationVersion#1200359, executionId#1200367, createdAt#1200369, marketUnit#1200368, businessContext#1200365, messageVariables#1200366]
Arguments: isFinalPlan=true
(81) TableCacheQueryStage
Output: []
Arguments: 0
(82) CollectLimit
Input: []
Arguments: 1
(83) ResultQueryStage
Output: []
Arguments: 1
(84) CollectLimit
Input: []
Arguments: 1
(85) AdaptiveSparkPlan
Output: []
Arguments: isFinalPlan=true