digraph G {
0 [id="node0" labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>" tooltip="AdaptiveSparkPlan isFinalPlan=true"];
subgraph cluster1 {
isCluster="true";
id="cluster1";
label="WholeStageCodegen (4)\n \nduration: 3 ms";
tooltip="WholeStageCodegen (4)";
2 [id="node2" labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build: 3 ms<br>number of output rows: 1" tooltip="HashAggregate(keys=[], functions=[count(1)])"];
}
3 [id="node3" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 37<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 37<br>local bytes read: 2.7 KiB<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>592.0 B (16.0 B, 16.0 B, 16.0 B (stage 100821.0: task 324141))<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>5 ms (0 ms, 0 ms, 0 ms (stage 100821.0: task 324160))<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>number of partitions: 1<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>2.7 KiB (75.0 B, 75.0 B, 75.0 B (stage 100821.0: task 324141))" tooltip="Exchange SinglePartition, ENSURE_REQUIREMENTS, [plan_id=1457856]"];
subgraph cluster4 {
isCluster="true";
id="cluster4";
label="WholeStageCodegen (3)\n \nduration: total (min, med, max (stageId: taskId))\n25 ms (0 ms, 0 ms, 5 ms (stage 100821.0: task 324141))";
tooltip="WholeStageCodegen (3)";
5 [id="node5" labelType="html" label="<b>HashAggregate</b><br><br>time in aggregation build total (min, med, max (stageId: taskId))<br>2 ms (0 ms, 0 ms, 1 ms (stage 100821.0: task 324141))<br>number of output rows: 37" tooltip="HashAggregate(keys=[], functions=[partial_count(1)])"];
6 [id="node6" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project"];
7 [id="node7" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 146" tooltip="BroadcastHashJoin [product#944305, plant#944306], [product#945565, plant#945566], Inner, BuildLeft, false"];
}
8 [id="node8" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 1 ms<br>time to build: 2 ms<br>time to collect: 310 ms<br>number of output rows: 146<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1457817]"];
subgraph cluster9 {
isCluster="true";
id="cluster9";
label="WholeStageCodegen (2)\n \nduration: total (min, med, max (stageId: taskId))\n37 ms (0 ms, 0 ms, 5 ms (stage 100819.0: task 324113))";
tooltip="WholeStageCodegen (2)";
10 [id="node10" labelType="html" label="<b>Filter</b><br><br>number of output rows: 146" tooltip="Filter (isnotnull(product#944305) AND isnotnull(plant#944306))"];
}
11 [id="node11" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 146" tooltip="InMemoryTableScan [product#944305, plant#944306], [isnotnull(product#944305), isnotnull(plant#944306)]"];
12 [id="node12" labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>" tooltip="AdaptiveSparkPlan isFinalPlan=true"];
subgraph cluster13 {
isCluster="true";
id="cluster13";
label="WholeStageCodegen (11)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (11)";
14 [id="node14" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 0 ms<br>peak memory: 0.0 B<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[product#944305, plant#944306], functions=[])"];
}
15 [id="node15" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 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: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(product#944305, plant#944306, 37), ENSURE_REQUIREMENTS, [plan_id=1457554]"];
subgraph cluster16 {
isCluster="true";
id="cluster16";
label="WholeStageCodegen (10)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (10)";
17 [id="node17" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 0 ms<br>peak memory: 0.0 B<br>number of output rows: 0<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[product#944305, plant#944306], functions=[])"];
18 [id="node18" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306]"];
19 [id="node19" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (((size(demandTimeBuckets#944819, true) = 0) OR isnull(demandTimeBuckets#944819)) AND ((size(demandPointInTime#944822, true) = 0) OR isnull(demandPointInTime#944822)))"];
20 [id="node20" labelType="html" label="<b>SortMergeJoin</b><br><br>number of output rows: 0<br>spill size: 0.0 B" tooltip="SortMergeJoin [coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305)], [coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814)], LeftOuter"];
}
subgraph cluster21 {
isCluster="true";
id="cluster21";
label="WholeStageCodegen (8)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (8)";
22 [id="node22" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [coalesce(plant#944306, ) ASC NULLS FIRST, isnull(plant#944306) ASC NULLS FIRST, coalesce(product#944305, ) ASC NULLS FIRST, isnull(product#944305) ASC NULLS FIRST], false, 0"];
}
23 [id="node23" labelType="html" label="<br><b>AQEShuffleRead</b><br><br>" tooltip="AQEShuffleRead coalesced"];
24 [id="node24" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 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: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305), 37), ENSURE_REQUIREMENTS, [plan_id=1457460]"];
subgraph cluster25 {
isCluster="true";
id="cluster25";
label="WholeStageCodegen (7)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (7)";
26 [id="node26" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306]"];
27 [id="node27" labelType="html" label="<b>Generate</b><br><br>number of output rows: 0" tooltip="Generate explode(_extract_quantityDenominator#944849), [product#944305, plant#944306], true, [quantityDenominator#944420]"];
28 [id="node28" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409.quantityDenominator AS _extract_quantityDenominator#944849]"];
29 [id="node29" labelType="html" label="<b>Generate</b><br><br>number of output rows: 0" tooltip="Generate explode(filteredUnitOfMeasureConversions#944409.quantityNumerator), [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409], true, [quantityNumerator#944417]"];
}
30 [id="node30" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306, filter(unitOfMeasureConversions#944403, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#944928) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#944929)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#944401.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#944401.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#944409]"];
subgraph cluster31 {
isCluster="true";
id="cluster31";
label="WholeStageCodegen (6)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (6)";
32 [id="node32" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 0" tooltip="BroadcastHashJoin [product#944305], [internalUUID#944397], LeftOuter, BuildRight, false"];
33 [id="node33" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306, _extract_code#944928, _extract_internalRefUUID#944929]"];
34 [id="node34" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 0" tooltip="BroadcastHashJoin [coalesce(product#944305, ), isnull(product#944305), coalesce(plant#944306, ), isnull(plant#944306)], [coalesce(_extract_internalRefUUID#944930, ), isnull(_extract_internalRefUUID#944930), coalesce(_extract_internalRefUUID#944931, ), isnull(_extract_internalRefUUID#944931)], LeftOuter, BuildRight, false"];
}
35 [id="node35" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 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: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(product#944305, plant#944306, 37), REPARTITION_BY_NUM, [plan_id=1456881]"];
subgraph cluster36 {
isCluster="true";
id="cluster36";
label="WholeStageCodegen (1)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (1)";
37 [id="node37" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 0<br>number of input batches: 0" tooltip="ColumnarToRow"];
}
38 [id="node38" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 0<br>scan time: 0 ms<br>metadata time: 0 ms<br>size of files read: 0.0 B<br>number of output rows: 0" tooltip="FileScan parquet [product#944305,plant#944306] Batched: true, DataFilters: [], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<product:string,plant:string>"];
39 [id="node39" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 0 ms<br>number of output rows: 0<br>data size: 0.0 B" 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=1457064]"];
subgraph cluster40 {
isCluster="true";
id="cluster40";
label="WholeStageCodegen (5)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (5)";
41 [id="node41" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_code#944928, _extract_internalRefUUID#944929, _extract_internalRefUUID#944930, _extract_internalRefUUID#944931]"];
}
42 [id="node42" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 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: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1456895]"];
subgraph cluster43 {
isCluster="true";
id="cluster43";
label="WholeStageCodegen (2)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (2)";
44 [id="node44" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#944363.internalRefUUID AS _extract_internalRefUUID#944931, product#944364.internalRefUUID AS _extract_internalRefUUID#944930, productionAspect#944366.productMovementPlants.unitOfIssue.code AS _extract_code#944928, productionAspect#944366.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#944929]"];
45 [id="node45" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 0<br>number of input batches: 0" tooltip="ColumnarToRow"];
}
46 [id="node46" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 0<br>scan time: 0 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 0.0 B<br>number of output rows: 0<br>number of partitions read: 0" tooltip="FileScan parquet [plant#944363,product#944364,productionAspect#944366,systemId#944361] Batched: true, DataFilters: [], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspe..."];
47 [id="node47" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 0 ms<br>number of output rows: 0<br>data size: 0.0 B" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1456926]"];
48 [id="node48" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 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: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1456916]"];
subgraph cluster49 {
isCluster="true";
id="cluster49";
label="WholeStageCodegen (3)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (3)";
50 [id="node50" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]"];
51 [id="node51" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter isnotnull(internalUUID#944397)"];
52 [id="node52" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 0<br>number of input batches: 0" tooltip="ColumnarToRow"];
}
53 [id="node53" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 0<br>scan time: 0 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 0.0 B<br>number of output rows: 0<br>number of partitions read: 0" tooltip="FileScan parquet [internalUUID#944397,baseUnitOfMeasure#944401,unitOfMeasureConversions#944403,systemId#944396] Batched: true, DataFilters: [isnotnull(internalUUID#944397)], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [IsNotNull(internalUUID)], ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMea..."];
subgraph cluster54 {
isCluster="true";
id="cluster54";
label="WholeStageCodegen (9)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (9)";
55 [id="node55" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 0.0 B<br>spill size: 0.0 B" tooltip="Sort [coalesce(plant#944815, ) ASC NULLS FIRST, isnull(plant#944815) ASC NULLS FIRST, coalesce(product#944814, ) ASC NULLS FIRST, isnull(product#944814) ASC NULLS FIRST], false, 0"];
}
56 [id="node56" labelType="html" label="<br><b>AQEShuffleRead</b><br><br>" tooltip="AQEShuffleRead coalesced"];
57 [id="node57" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 0.0 B<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 0 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: 0 ms<br>remote bytes read: 0.0 B<br>number of partitions: 0<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="Exchange hashpartitioning(coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814), 37), ENSURE_REQUIREMENTS, [plan_id=1456940]"];
subgraph cluster58 {
isCluster="true";
id="cluster58";
label="WholeStageCodegen (4)\n \nduration: 0 ms";
tooltip="WholeStageCodegen (4)";
59 [id="node59" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 0<br>number of input batches: 0" tooltip="ColumnarToRow"];
}
60 [id="node60" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 0<br>scan time: 0 ms<br>metadata time: 0 ms<br>size of files read: 0.0 B<br>number of output rows: 0" tooltip="FileScan parquet [product#944814,plant#944815,demandTimeBuckets#944819,demandPointInTime#944822] Batched: true, DataFilters: [], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<product:string,plant:string,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,d..."];
61 [id="node61" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1,462<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 1,462<br>local bytes read total (min, med, max (stageId: taskId))<br>63.8 KiB (1636.0 B, 1767.0 B, 1868.0 B (stage 100821.0: task 324143))<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: 125.6 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 100821.0: task 324141))<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: 63.8 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1457728]"];
subgraph cluster62 {
isCluster="true";
id="cluster62";
label="WholeStageCodegen (1)\n \nduration: 124 ms";
tooltip="WholeStageCodegen (1)";
63 [id="node63" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#945559.internalRefUUID AS product#945565, plant#945558.internalRefUUID AS plant#945566]"];
64 [id="node64" labelType="html" label="<b>Filter</b><br><br>number of output rows: 1,462" tooltip="Filter (isnotnull(product#945559.internalRefUUID) AND isnotnull(plant#945558.internalRefUUID))"];
65 [id="node65" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 1,462<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
66 [id="node66" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 121 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 156 ms<br>size of files read: 80.3 KiB<br>number of output rows: 1,462<br>number of partitions read: 1" tooltip="FileScan parquet [plant#945558,product#945559,systemId#945556] Batched: true, DataFilters: [isnotnull(product#945559.internalRefUUID), isnotnull(plant#945558.internalRefUUID)], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [IsNotNull(product.internalRefUUID), IsNotNull(plant.internalRefUUID)], ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>>"];
2->0;
3->2;
5->3;
6->5;
7->6;
8->7;
10->8;
11->10;
12->11;
14->12;
15->14;
17->15;
18->17;
19->18;
20->19;
22->20;
23->22;
24->23;
26->24;
27->26;
28->27;
29->28;
30->29;
32->30;
33->32;
34->33;
35->34;
37->35;
38->37;
39->34;
41->39;
42->41;
44->42;
45->44;
46->45;
47->32;
48->47;
50->48;
51->50;
52->51;
53->52;
55->20;
56->55;
57->56;
59->57;
60->59;
61->7;
63->61;
64->63;
65->64;
66->65;
}
== Physical Plan ==
AdaptiveSparkPlan (104)
+- == Final Plan ==
ResultQueryStage (93), Statistics(sizeInBytes=8.0 EiB)
+- * HashAggregate (92)
+- ShuffleQueryStage (91), Statistics(sizeInBytes=592.0 B, rowCount=37)
+- Exchange (90)
+- * HashAggregate (89)
+- * Project (88)
+- * BroadcastHashJoin Inner BuildLeft (87)
:- BroadcastQueryStage (80), Statistics(sizeInBytes=2.0 MiB, rowCount=146)
: +- BroadcastExchange (79)
: +- * Filter (78)
: +- TableCacheQueryStage (77), Statistics(sizeInBytes=10.3 KiB, rowCount=146)
: +- InMemoryTableScan (1)
: +- InMemoryRelation (2)
: +- AdaptiveSparkPlan (76)
+- == Final Plan ==
ResultQueryStage (48)
+- * HashAggregate (47)
+- ShuffleQueryStage (46), Statistics(sizeInBytes=12.5 KiB, rowCount=146)
+- Exchange (45)
+- * HashAggregate (44)
+- * Project (43)
+- * Filter (42)
+- * SortMergeJoin LeftOuter (41)
:- * Sort (34)
: +- AQEShuffleRead (33)
: +- ShuffleQueryStage (32), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: +- Exchange (31)
: +- * Project (30)
: +- * Generate (29)
: +- * Project (28)
: +- * Generate (27)
: +- Project (26)
: +- * BroadcastHashJoin LeftOuter BuildRight (25)
: :- * Project (16)
: : +- * BroadcastHashJoin LeftOuter BuildRight (15)
: : :- ShuffleQueryStage (6), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: : : +- Exchange (5)
: : : +- * ColumnarToRow (4)
: : : +- Scan parquet (3)
: : +- BroadcastQueryStage (14), Statistics(sizeInBytes=2.1 MiB, rowCount=1.46E+3)
: : +- BroadcastExchange (13)
: : +- * Project (12)
: : +- ShuffleQueryStage (11), Statistics(sizeInBytes=202.9 KiB, rowCount=1.46E+3)
: : +- Exchange (10)
: : +- * Project (9)
: : +- * ColumnarToRow (8)
: : +- Scan parquet (7)
: +- BroadcastQueryStage (24), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: +- BroadcastExchange (23)
: +- ShuffleQueryStage (22), Statistics(sizeInBytes=88.5 KiB, rowCount=145)
: +- Exchange (21)
: +- * Project (20)
: +- * Filter (19)
: +- * ColumnarToRow (18)
: +- Scan parquet (17)
+- * Sort (40)
+- AQEShuffleRead (39)
+- ShuffleQueryStage (38), Statistics(sizeInBytes=4.9 MiB, rowCount=434)
+- Exchange (37)
+- * ColumnarToRow (36)
+- Scan parquet (35)
+- == Initial Plan ==
HashAggregate (75)
+- Exchange (74)
+- HashAggregate (73)
+- Project (72)
+- Filter (71)
+- SortMergeJoin LeftOuter (70)
:- Sort (67)
: +- Exchange (66)
: +- Project (65)
: +- Generate (64)
: +- Project (63)
: +- Generate (62)
: +- Project (61)
: +- BroadcastHashJoin LeftOuter BuildRight (60)
: :- Project (55)
: : +- BroadcastHashJoin LeftOuter BuildRight (54)
: : :- Exchange (49)
: : : +- Scan parquet (3)
: : +- BroadcastExchange (53)
: : +- Project (52)
: : +- Exchange (51)
: : +- Project (50)
: : +- Scan parquet (7)
: +- BroadcastExchange (59)
: +- Exchange (58)
: +- Project (57)
: +- Filter (56)
: +- Scan parquet (17)
+- Sort (69)
+- Exchange (68)
+- Scan parquet (35)
+- ShuffleQueryStage (86), Statistics(sizeInBytes=125.6 KiB, rowCount=1.46E+3)
+- Exchange (85)
+- * Project (84)
+- * Filter (83)
+- * ColumnarToRow (82)
+- Scan parquet (81)
+- == Initial Plan ==
HashAggregate (103)
+- Exchange (102)
+- HashAggregate (101)
+- Project (100)
+- BroadcastHashJoin Inner BuildRight (99)
:- Filter (94)
: +- InMemoryTableScan (1)
: +- InMemoryRelation (2)
: +- AdaptiveSparkPlan (76)
+- == Final Plan ==
ResultQueryStage (48)
+- * HashAggregate (47)
+- ShuffleQueryStage (46), Statistics(sizeInBytes=12.5 KiB, rowCount=146)
+- Exchange (45)
+- * HashAggregate (44)
+- * Project (43)
+- * Filter (42)
+- * SortMergeJoin LeftOuter (41)
:- * Sort (34)
: +- AQEShuffleRead (33)
: +- ShuffleQueryStage (32), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: +- Exchange (31)
: +- * Project (30)
: +- * Generate (29)
: +- * Project (28)
: +- * Generate (27)
: +- Project (26)
: +- * BroadcastHashJoin LeftOuter BuildRight (25)
: :- * Project (16)
: : +- * BroadcastHashJoin LeftOuter BuildRight (15)
: : :- ShuffleQueryStage (6), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: : : +- Exchange (5)
: : : +- * ColumnarToRow (4)
: : : +- Scan parquet (3)
: : +- BroadcastQueryStage (14), Statistics(sizeInBytes=2.1 MiB, rowCount=1.46E+3)
: : +- BroadcastExchange (13)
: : +- * Project (12)
: : +- ShuffleQueryStage (11), Statistics(sizeInBytes=202.9 KiB, rowCount=1.46E+3)
: : +- Exchange (10)
: : +- * Project (9)
: : +- * ColumnarToRow (8)
: : +- Scan parquet (7)
: +- BroadcastQueryStage (24), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: +- BroadcastExchange (23)
: +- ShuffleQueryStage (22), Statistics(sizeInBytes=88.5 KiB, rowCount=145)
: +- Exchange (21)
: +- * Project (20)
: +- * Filter (19)
: +- * ColumnarToRow (18)
: +- Scan parquet (17)
+- * Sort (40)
+- AQEShuffleRead (39)
+- ShuffleQueryStage (38), Statistics(sizeInBytes=4.9 MiB, rowCount=434)
+- Exchange (37)
+- * ColumnarToRow (36)
+- Scan parquet (35)
+- == Initial Plan ==
HashAggregate (75)
+- Exchange (74)
+- HashAggregate (73)
+- Project (72)
+- Filter (71)
+- SortMergeJoin LeftOuter (70)
:- Sort (67)
: +- Exchange (66)
: +- Project (65)
: +- Generate (64)
: +- Project (63)
: +- Generate (62)
: +- Project (61)
: +- BroadcastHashJoin LeftOuter BuildRight (60)
: :- Project (55)
: : +- BroadcastHashJoin LeftOuter BuildRight (54)
: : :- Exchange (49)
: : : +- Scan parquet (3)
: : +- BroadcastExchange (53)
: : +- Project (52)
: : +- Exchange (51)
: : +- Project (50)
: : +- Scan parquet (7)
: +- BroadcastExchange (59)
: +- Exchange (58)
: +- Project (57)
: +- Filter (56)
: +- Scan parquet (17)
+- Sort (69)
+- Exchange (68)
+- Scan parquet (35)
+- BroadcastExchange (98)
+- Exchange (97)
+- Project (96)
+- Filter (95)
+- Scan parquet (81)
(1) InMemoryTableScan
Output [2]: [product#944305, plant#944306]
Arguments: [product#944305, plant#944306], [isnotnull(product#944305), isnotnull(plant#944306)]
(2) InMemoryRelation
Arguments: [product#944305, plant#944306], StorageLevel(disk, memory, 2 replicas)
(3) Scan parquet
Output [2]: [product#944305, plant#944306]
Batched: true
Location: InMemoryFileIndex [hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000000678/shardId=0_1_10000000678]
ReadSchema: struct<product:string,plant:string>
(4) ColumnarToRow [codegen id : 1]
Input [2]: [product#944305, plant#944306]
(5) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(product#944305, plant#944306, 37), REPARTITION_BY_NUM, [plan_id=1456881]
(6) ShuffleQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 0
(7) Scan parquet
Output [4]: [plant#944363, product#944364, productionAspect#944366, systemId#944361]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.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#944363, product#944364, productionAspect#944366, systemId#944361]
(9) Project [codegen id : 2]
Output [4]: [plant#944363.internalRefUUID AS _extract_internalRefUUID#944931, product#944364.internalRefUUID AS _extract_internalRefUUID#944930, productionAspect#944366.productMovementPlants.unitOfIssue.code AS _extract_code#944928, productionAspect#944366.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#944929]
Input [4]: [plant#944363, product#944364, productionAspect#944366, systemId#944361]
(10) Exchange
Input [4]: [_extract_internalRefUUID#944931, _extract_internalRefUUID#944930, _extract_code#944928, _extract_internalRefUUID#944929]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1456895]
(11) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#944931, _extract_internalRefUUID#944930, _extract_code#944928, _extract_internalRefUUID#944929]
Arguments: 1
(12) Project [codegen id : 5]
Output [4]: [_extract_code#944928, _extract_internalRefUUID#944929, _extract_internalRefUUID#944930, _extract_internalRefUUID#944931]
Input [4]: [_extract_internalRefUUID#944931, _extract_internalRefUUID#944930, _extract_code#944928, _extract_internalRefUUID#944929]
(13) BroadcastExchange
Input [4]: [_extract_code#944928, _extract_internalRefUUID#944929, _extract_internalRefUUID#944930, _extract_internalRefUUID#944931]
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=1457064]
(14) BroadcastQueryStage
Output [4]: [_extract_code#944928, _extract_internalRefUUID#944929, _extract_internalRefUUID#944930, _extract_internalRefUUID#944931]
Arguments: 4
(15) BroadcastHashJoin [codegen id : 6]
Left keys [4]: [coalesce(product#944305, ), isnull(product#944305), coalesce(plant#944306, ), isnull(plant#944306)]
Right keys [4]: [coalesce(_extract_internalRefUUID#944930, ), isnull(_extract_internalRefUUID#944930), coalesce(_extract_internalRefUUID#944931, ), isnull(_extract_internalRefUUID#944931)]
Join type: LeftOuter
Join condition: None
(16) Project [codegen id : 6]
Output [4]: [product#944305, plant#944306, _extract_code#944928, _extract_internalRefUUID#944929]
Input [6]: [product#944305, plant#944306, _extract_code#944928, _extract_internalRefUUID#944929, _extract_internalRefUUID#944930, _extract_internalRefUUID#944931]
(17) Scan parquet
Output [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.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>>>
(18) ColumnarToRow [codegen id : 3]
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
(19) Filter [codegen id : 3]
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
Condition : isnotnull(internalUUID#944397)
(20) Project [codegen id : 3]
Output [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
(21) Exchange
Input [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1456916]
(22) ShuffleQueryStage
Output [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: 2
(23) BroadcastExchange
Input [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1456926]
(24) BroadcastQueryStage
Output [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: 5
(25) BroadcastHashJoin [codegen id : 6]
Left keys [1]: [product#944305]
Right keys [1]: [internalUUID#944397]
Join type: LeftOuter
Join condition: None
(26) Project
Output [3]: [product#944305, plant#944306, filter(unitOfMeasureConversions#944403, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#944928) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#944929)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#944401.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#944401.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#944409]
Input [7]: [product#944305, plant#944306, _extract_code#944928, _extract_internalRefUUID#944929, internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
(27) Generate [codegen id : 7]
Input [3]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409]
Arguments: explode(filteredUnitOfMeasureConversions#944409.quantityNumerator), [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409], true, [quantityNumerator#944417]
(28) Project [codegen id : 7]
Output [3]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409.quantityDenominator AS _extract_quantityDenominator#944849]
Input [4]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409, quantityNumerator#944417]
(29) Generate [codegen id : 7]
Input [3]: [product#944305, plant#944306, _extract_quantityDenominator#944849]
Arguments: explode(_extract_quantityDenominator#944849), [product#944305, plant#944306], true, [quantityDenominator#944420]
(30) Project [codegen id : 7]
Output [2]: [product#944305, plant#944306]
Input [3]: [product#944305, plant#944306, quantityDenominator#944420]
(31) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305), 37), ENSURE_REQUIREMENTS, [plan_id=1457460]
(32) ShuffleQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 6
(33) AQEShuffleRead
Input [2]: [product#944305, plant#944306]
Arguments: coalesced
(34) Sort [codegen id : 8]
Input [2]: [product#944305, plant#944306]
Arguments: [coalesce(plant#944306, ) ASC NULLS FIRST, isnull(plant#944306) ASC NULLS FIRST, coalesce(product#944305, ) ASC NULLS FIRST, isnull(product#944305) ASC NULLS FIRST], false, 0
(35) Scan parquet
Output [4]: [product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Batched: true
Location: InMemoryFileIndex [hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000000678/0_1_10000000678]
ReadSchema: struct<product:string,plant:string,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(36) ColumnarToRow [codegen id : 4]
Input [4]: [product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
(37) Exchange
Input [4]: [product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Arguments: hashpartitioning(coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814), 37), ENSURE_REQUIREMENTS, [plan_id=1456940]
(38) ShuffleQueryStage
Output [4]: [product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Arguments: 3
(39) AQEShuffleRead
Input [4]: [product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Arguments: coalesced
(40) Sort [codegen id : 9]
Input [4]: [product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Arguments: [coalesce(plant#944815, ) ASC NULLS FIRST, isnull(plant#944815) ASC NULLS FIRST, coalesce(product#944814, ) ASC NULLS FIRST, isnull(product#944814) ASC NULLS FIRST], false, 0
(41) SortMergeJoin [codegen id : 10]
Left keys [4]: [coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305)]
Right keys [4]: [coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814)]
Join type: LeftOuter
Join condition: None
(42) Filter [codegen id : 10]
Input [6]: [product#944305, plant#944306, product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Condition : (((size(demandTimeBuckets#944819, true) = 0) OR isnull(demandTimeBuckets#944819)) AND ((size(demandPointInTime#944822, true) = 0) OR isnull(demandPointInTime#944822)))
(43) Project [codegen id : 10]
Output [2]: [product#944305, plant#944306]
Input [6]: [product#944305, plant#944306, product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
(44) HashAggregate [codegen id : 10]
Input [2]: [product#944305, plant#944306]
Keys [2]: [product#944305, plant#944306]
Functions: []
Aggregate Attributes: []
Results [2]: [product#944305, plant#944306]
(45) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(product#944305, plant#944306, 37), ENSURE_REQUIREMENTS, [plan_id=1457554]
(46) ShuffleQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 7
(47) HashAggregate [codegen id : 11]
Input [2]: [product#944305, plant#944306]
Keys [2]: [product#944305, plant#944306]
Functions: []
Aggregate Attributes: []
Results [2]: [product#944305, plant#944306]
(48) ResultQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 8
(49) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(product#944305, plant#944306, 37), REPARTITION_BY_NUM, [plan_id=1456767]
(50) Project
Output [4]: [plant#944363.internalRefUUID AS _extract_internalRefUUID#944931, product#944364.internalRefUUID AS _extract_internalRefUUID#944930, productionAspect#944366.productMovementPlants.unitOfIssue.code AS _extract_code#944928, productionAspect#944366.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#944929]
Input [4]: [plant#944363, product#944364, productionAspect#944366, systemId#944361]
(51) Exchange
Input [4]: [_extract_internalRefUUID#944931, _extract_internalRefUUID#944930, _extract_code#944928, _extract_internalRefUUID#944929]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1456770]
(52) Project
Output [4]: [_extract_code#944928, _extract_internalRefUUID#944929, _extract_internalRefUUID#944930, _extract_internalRefUUID#944931]
Input [4]: [_extract_internalRefUUID#944931, _extract_internalRefUUID#944930, _extract_code#944928, _extract_internalRefUUID#944929]
(53) BroadcastExchange
Input [4]: [_extract_code#944928, _extract_internalRefUUID#944929, _extract_internalRefUUID#944930, _extract_internalRefUUID#944931]
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=1456791]
(54) BroadcastHashJoin
Left keys [4]: [coalesce(product#944305, ), isnull(product#944305), coalesce(plant#944306, ), isnull(plant#944306)]
Right keys [4]: [coalesce(_extract_internalRefUUID#944930, ), isnull(_extract_internalRefUUID#944930), coalesce(_extract_internalRefUUID#944931, ), isnull(_extract_internalRefUUID#944931)]
Join type: LeftOuter
Join condition: None
(55) Project
Output [4]: [product#944305, plant#944306, _extract_code#944928, _extract_internalRefUUID#944929]
Input [6]: [product#944305, plant#944306, _extract_code#944928, _extract_internalRefUUID#944929, _extract_internalRefUUID#944930, _extract_internalRefUUID#944931]
(56) Filter
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
Condition : isnotnull(internalUUID#944397)
(57) Project
Output [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
(58) Exchange
Input [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1456777]
(59) BroadcastExchange
Input [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1456795]
(60) BroadcastHashJoin
Left keys [1]: [product#944305]
Right keys [1]: [internalUUID#944397]
Join type: LeftOuter
Join condition: None
(61) Project
Output [3]: [product#944305, plant#944306, filter(unitOfMeasureConversions#944403, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#944928) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#944929)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#944401.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#944401.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#944409]
Input [7]: [product#944305, plant#944306, _extract_code#944928, _extract_internalRefUUID#944929, internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
(62) Generate
Input [3]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409]
Arguments: explode(filteredUnitOfMeasureConversions#944409.quantityNumerator), [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409], true, [quantityNumerator#944417]
(63) Project
Output [3]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409.quantityDenominator AS _extract_quantityDenominator#944849]
Input [4]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409, quantityNumerator#944417]
(64) Generate
Input [3]: [product#944305, plant#944306, _extract_quantityDenominator#944849]
Arguments: explode(_extract_quantityDenominator#944849), [product#944305, plant#944306], true, [quantityDenominator#944420]
(65) Project
Output [2]: [product#944305, plant#944306]
Input [3]: [product#944305, plant#944306, quantityDenominator#944420]
(66) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305), 37), ENSURE_REQUIREMENTS, [plan_id=1456804]
(67) Sort
Input [2]: [product#944305, plant#944306]
Arguments: [coalesce(plant#944306, ) ASC NULLS FIRST, isnull(plant#944306) ASC NULLS FIRST, coalesce(product#944305, ) ASC NULLS FIRST, isnull(product#944305) ASC NULLS FIRST], false, 0
(68) Exchange
Input [4]: [product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Arguments: hashpartitioning(coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814), 37), ENSURE_REQUIREMENTS, [plan_id=1456805]
(69) Sort
Input [4]: [product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Arguments: [coalesce(plant#944815, ) ASC NULLS FIRST, isnull(plant#944815) ASC NULLS FIRST, coalesce(product#944814, ) ASC NULLS FIRST, isnull(product#944814) ASC NULLS FIRST], false, 0
(70) SortMergeJoin
Left keys [4]: [coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305)]
Right keys [4]: [coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814)]
Join type: LeftOuter
Join condition: None
(71) Filter
Input [6]: [product#944305, plant#944306, product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
Condition : (((size(demandTimeBuckets#944819, true) = 0) OR isnull(demandTimeBuckets#944819)) AND ((size(demandPointInTime#944822, true) = 0) OR isnull(demandPointInTime#944822)))
(72) Project
Output [2]: [product#944305, plant#944306]
Input [6]: [product#944305, plant#944306, product#944814, plant#944815, demandTimeBuckets#944819, demandPointInTime#944822]
(73) HashAggregate
Input [2]: [product#944305, plant#944306]
Keys [2]: [product#944305, plant#944306]
Functions: []
Aggregate Attributes: []
Results [2]: [product#944305, plant#944306]
(74) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(product#944305, plant#944306, 37), ENSURE_REQUIREMENTS, [plan_id=1456813]
(75) HashAggregate
Input [2]: [product#944305, plant#944306]
Keys [2]: [product#944305, plant#944306]
Functions: []
Aggregate Attributes: []
Results [2]: [product#944305, plant#944306]
(76) AdaptiveSparkPlan
Output [2]: [product#944305, plant#944306]
Arguments: isFinalPlan=true
(77) TableCacheQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 0
(78) Filter [codegen id : 2]
Input [2]: [product#944305, plant#944306]
Condition : (isnotnull(product#944305) AND isnotnull(plant#944306))
(79) BroadcastExchange
Input [2]: [product#944305, plant#944306]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1457817]
(80) BroadcastQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 2
(81) Scan parquet
Output [3]: [plant#945558, product#945559, systemId#945556]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
PushedFilters: [IsNotNull(product.internalRefUUID), IsNotNull(plant.internalRefUUID)]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>>
(82) ColumnarToRow [codegen id : 1]
Input [3]: [plant#945558, product#945559, systemId#945556]
(83) Filter [codegen id : 1]
Input [3]: [plant#945558, product#945559, systemId#945556]
Condition : (isnotnull(product#945559.internalRefUUID) AND isnotnull(plant#945558.internalRefUUID))
(84) Project [codegen id : 1]
Output [2]: [product#945559.internalRefUUID AS product#945565, plant#945558.internalRefUUID AS plant#945566]
Input [3]: [plant#945558, product#945559, systemId#945556]
(85) Exchange
Input [2]: [product#945565, plant#945566]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1457728]
(86) ShuffleQueryStage
Output [2]: [product#945565, plant#945566]
Arguments: 1
(87) BroadcastHashJoin [codegen id : 3]
Left keys [2]: [product#944305, plant#944306]
Right keys [2]: [product#945565, plant#945566]
Join type: Inner
Join condition: None
(88) Project [codegen id : 3]
Output: []
Input [4]: [product#944305, plant#944306, product#945565, plant#945566]
(89) HashAggregate [codegen id : 3]
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#945788L]
Results [1]: [count#945789L]
(90) Exchange
Input [1]: [count#945789L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=1457856]
(91) ShuffleQueryStage
Output [1]: [count#945789L]
Arguments: 3
(92) HashAggregate [codegen id : 4]
Input [1]: [count#945789L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#945635L]
Results [1]: [count(1)#945635L AS count#945632L]
(93) ResultQueryStage
Output [1]: [count#945632L]
Arguments: 4
(94) Filter
Input [2]: [product#944305, plant#944306]
Condition : (isnotnull(product#944305) AND isnotnull(plant#944306))
(95) Filter
Input [3]: [plant#945558, product#945559, systemId#945556]
Condition : (isnotnull(product#945559.internalRefUUID) AND isnotnull(plant#945558.internalRefUUID))
(96) Project
Output [2]: [product#945559.internalRefUUID AS product#945565, plant#945558.internalRefUUID AS plant#945566]
Input [3]: [plant#945558, product#945559, systemId#945556]
(97) Exchange
Input [2]: [product#945565, plant#945566]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1457688]
(98) BroadcastExchange
Input [2]: [product#945565, plant#945566]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1457694]
(99) BroadcastHashJoin
Left keys [2]: [product#944305, plant#944306]
Right keys [2]: [product#945565, plant#945566]
Join type: Inner
Join condition: None
(100) Project
Output: []
Input [4]: [product#944305, plant#944306, product#945565, plant#945566]
(101) HashAggregate
Input: []
Keys: []
Functions [1]: [partial_count(1)]
Aggregate Attributes [1]: [count#945788L]
Results [1]: [count#945789L]
(102) Exchange
Input [1]: [count#945789L]
Arguments: SinglePartition, ENSURE_REQUIREMENTS, [plan_id=1457699]
(103) HashAggregate
Input [1]: [count#945789L]
Keys: []
Functions [1]: [count(1)]
Aggregate Attributes [1]: [count(1)#945635L]
Results [1]: [count(1)#945635L AS count#945632L]
(104) AdaptiveSparkPlan
Output [1]: [count#945632L]
Arguments: isFinalPlan=true