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>Execute InsertIntoHadoopFsRelationCommand</b><br><br>task commit time: 239 ms<br>number of written files: 1<br>job commit time: 468 ms<br>number of output rows: 11<br>number of dynamic part: 0<br>written output: 4.4 KiB" tooltip="Execute InsertIntoHadoopFsRelationCommand hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000000678/0_1_10000000678, false, Parquet, [path=hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000000678/0_1_10000000678], Overwrite, [product, location, documents, replenishmentRunId]"];
2 [id="node2" labelType="html" label="<br><b>WriteFiles</b><br><br>" tooltip="WriteFiles"];
3 [id="node3" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946271, plant#946270 AS location#958167, transform(openGoodsMovements#946371, lambdafunction(struct(documentId, lambda x_148#958170.documentId, documentUuid, lambda x_148#958170.documentUuid, openQty, lambda x_148#958170.openQty, qtyUomUuid, lambda x_148#958170.qtyUomUuid, qtyUom, lambda x_148#958170.qtyUom, plannedDeliveryDatetime, lambda x_148#958170.availabilityDatetime), lambda x_148#958170, false)) AS documents#958169, 10000000678 AS replenishmentRunId#958171L]"];
4 [id="node4" labelType="html" label="<b>Filter</b><br><br>number of output rows: 11" tooltip="Filter ((size(openGoodsMovements#946371, false) > 0) AND (size(transform(openGoodsMovements#946371, lambdafunction(struct(documentId, lambda x_148#958170.documentId, documentUuid, lambda x_148#958170.documentUuid, openQty, lambda x_148#958170.openQty, qtyUomUuid, lambda x_148#958170.qtyUomUuid, qtyUom, lambda x_148#958170.qtyUom, plannedDeliveryDatetime, lambda x_148#958170.availabilityDatetime), lambda x_148#958170, false)), false) > 0))"];
5 [id="node5" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 11<br>time in aggregation build: 50 ms<br>spill size: 0.0 B<br>number of sort fallback tasks: 0" tooltip="ObjectHashAggregate(keys=[product#946271, plant#946270], functions=[collect_list(openGoodsMovements#946361, 0, 0)])"];
6 [id="node6" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 3.1 KiB<br>number of coalesced partitions: 1" tooltip="AQEShuffleRead coalesced"];
7 [id="node7" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 11<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 11<br>local bytes read: 2.9 KiB<br>merged fetch fallback count: 0<br>local blocks read: 9<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 3.4 KiB<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: 37<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 2.9 KiB" tooltip="Exchange hashpartitioning(product#946271, plant#946270, 37), ENSURE_REQUIREMENTS, [plan_id=1620315]"];
8 [id="node8" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 11<br>time in aggregation build: 45 ms<br>spill size: 0.0 B<br>number of sort fallback tasks: 0" tooltip="ObjectHashAggregate(keys=[product#946271, plant#946270], functions=[partial_collect_list(openGoodsMovements#946361, 0, 0)])"];
9 [id="node9" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#946270, product#946271, filter(transform(CASE WHEN (_we0#946370L > 0) THEN transform(filter(confirmations#946278, lambdafunction(((NOT lambda x_140#946363.deletionIndicator AND lambda x_140#946363.isRelevantForConfirmation) AND isnotnull(lambda x_140#946363.confirmedDeliveryAt)), lambda x_140#946363, false)), lambdafunction(struct(openQty, greatest((lambda x_141#946366.confirmedQuantity - coalesce(lambda x_141#946366.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_141#946366.confirmedDeliveryAt), lambda x_141#946366, false)) ELSE transform(scheduleLines#946277, lambdafunction(struct(openQty, greatest((lambda x_139#946364.quantity - coalesce(lambda x_139#946364.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_139#946364.deliveryAt), lambda x_139#946364, false)) END, lambdafunction(struct(documentId, id#946255, documentUuid, internalUUID#946254, openQty, lambda x_142#946367.openQty, openQtyInBaseUnit, ((lambda x_142#946367.openQty * quantityNumerator#946275) / quantityDenominator#946276), qtyUom, quantityUom#946273, qtyUomUuid, quantityUomUuid#946274, availabilityDatetime, lambda x_142#946367.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_142#946367, false)), lambdafunction(NOT (lambda x_143#946368.openQty = 0.0), lambda x_143#946368, false)) AS openGoodsMovements#946361]"];
10 [id="node10" labelType="html" label="<b>Window</b><br><br>spill size: 0.0 B" tooltip="Window [sum(_w0#946369) windowspecdefinition(internalUUID#946254, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#946370L], [internalUUID#946254]"];
subgraph cluster11 {
isCluster="true";
id="cluster11";
label="WholeStageCodegen (69)\n \nduration: 184 ms";
tooltip="WholeStageCodegen (69)";
12 [id="node12" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 2.1 MiB<br>spill size: 0.0 B" tooltip="Sort [internalUUID#946254 ASC NULLS FIRST], false, 0"];
}
13 [id="node13" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 955.0 B<br>number of coalesced partitions: 1" tooltip="AQEShuffleRead coalesced"];
14 [id="node14" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 11<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 11<br>local bytes read: 877.0 B<br>merged fetch fallback count: 0<br>local blocks read: 1<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 4.4 KiB<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: 37<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 877.0 B" tooltip="Exchange hashpartitioning(internalUUID#946254, 37), ENSURE_REQUIREMENTS, [plan_id=1620009]"];
15 [id="node15" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, size(filter(confirmations#946278, lambdafunction(((NOT lambda x_140#946362.deletionIndicator AND lambda x_140#946362.isRelevantForConfirmation) AND isnotnull(lambda x_140#946362.confirmedDeliveryAt)), lambda x_140#946362, false)), false) AS _w0#946369]"];
subgraph cluster16 {
isCluster="true";
id="cluster16";
label="WholeStageCodegen (68)\n \nduration: 54 ms";
tooltip="WholeStageCodegen (68)";
17 [id="node17" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 11" tooltip="BroadcastHashJoin [product#944305, plant#944306, storageLocUuid#946315], [product#946271, plant#946270, storageLocUuid#946272], Inner, BuildRight, false"];
18 [id="node18" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#944306, product#944305, storageLocUuid#946315]"];
19 [id="node19" labelType="html" label="<b>SortMergeJoin</b><br><br>number of output rows: 434<br>spill size: 0.0 B" tooltip="SortMergeJoin [plant#944306], [plant#946288], Inner"];
}
subgraph cluster20 {
isCluster="true";
id="cluster20";
label="WholeStageCodegen (66)\n \nduration: 346 ms";
tooltip="WholeStageCodegen (66)";
21 [id="node21" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 2.1 MiB<br>spill size: 0.0 B" tooltip="Sort [plant#944306 ASC NULLS FIRST], false, 0"];
}
22 [id="node22" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 16.0 KiB<br>number of coalesced partitions: 1" tooltip="AQEShuffleRead coalesced"];
23 [id="node23" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read: 15.3 KiB<br>merged fetch fallback count: 0<br>local blocks read: 4<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 37.3 KiB<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: 37<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 15.3 KiB" tooltip="Exchange hashpartitioning(plant#944306, 37), ENSURE_REQUIREMENTS, [plan_id=1619855]"];
subgraph cluster24 {
isCluster="true";
id="cluster24";
label="WholeStageCodegen (65)\n \nduration: 55 ms";
tooltip="WholeStageCodegen (65)";
25 [id="node25" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306]"];
26 [id="node26" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305)], [coalesce(plant#945951, ), isnull(plant#945951), coalesce(product#945950, ), isnull(product#945950)], LeftOuter, BuildRight, false"];
}
27 [id="node27" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1" tooltip="AQEShuffleRead local"];
28 [id="node28" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read: 20.6 KiB<br>merged fetch fallback count: 0<br>local blocks read: 137<br>remote merged chunks fetched: 0<br>remote blocks read: 235<br>data size total (min, med, max (stageId: taskId))<br>37.3 KiB (528.0 B, 968.0 B, 1760.0 B (stage 101343.0: task 330286))<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>26 ms (0 ms, 0 ms, 0 ms (stage 101343.0: task 330258))<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: 35.5 KiB<br>number of partitions: 37<br>remote reqs duration: 10 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>56.1 KiB (863.0 B, 1433.0 B, 2.5 KiB (stage 101343.0: task 330178))" tooltip="Exchange hashpartitioning(coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305), 37), ENSURE_REQUIREMENTS, [plan_id=1611154]"];
subgraph cluster29 {
isCluster="true";
id="cluster29";
label="WholeStageCodegen (42)\n \nduration: total (min, med, max (stageId: taskId))\n72 ms (1 ms, 2 ms, 8 ms (stage 101343.0: task 330100))";
tooltip="WholeStageCodegen (42)";
30 [id="node30" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306]"];
31 [id="node31" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(_extract_quantityDenominator#962240), [product#944305, plant#944306], true, [quantityDenominator#944420]"];
32 [id="node32" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409.quantityDenominator AS _extract_quantityDenominator#962240]"];
33 [id="node33" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(filteredUnitOfMeasureConversions#944409.quantityNumerator), [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409], true, [quantityNumerator#944417]"];
}
34 [id="node34" 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#962402) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962403)) 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 cluster35 {
isCluster="true";
id="cluster35";
label="WholeStageCodegen (41)\n \nduration: total (min, med, max (stageId: taskId))\n384 ms (2 ms, 2 ms, 170 ms (stage 101343.0: task 330100))";
tooltip="WholeStageCodegen (41)";
36 [id="node36" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [product#944305], [internalUUID#944397], LeftOuter, BuildRight, false"];
37 [id="node37" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#944305, plant#944306, _extract_code#962402, _extract_internalRefUUID#962403]"];
38 [id="node38" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [coalesce(product#944305, ), isnull(product#944305), coalesce(plant#944306, ), isnull(plant#944306)], [coalesce(_extract_internalRefUUID#962404, ), isnull(_extract_internalRefUUID#962404), coalesce(_extract_internalRefUUID#962405, ), isnull(_extract_internalRefUUID#962405)], LeftOuter, BuildRight, false"];
}
39 [id="node39" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read total (min, med, max (stageId: taskId))<br>22.5 KiB (399.0 B, 581.0 B, 911.0 B (stage 101343.0: task 330286))<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>37.3 KiB (528.0 B, 968.0 B, 1760.0 B (stage 101297.0: task 329483))<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>18 ms (0 ms, 0 ms, 0 ms (stage 101297.0: task 329751))<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 101343.0: task 330113))<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>22.5 KiB (399.0 B, 581.0 B, 911.0 B (stage 101297.0: task 329483))" tooltip="Exchange hashpartitioning(product#944305, plant#944306, 37), REPARTITION_BY_NUM, [plan_id=1597976]"];
subgraph cluster40 {
isCluster="true";
id="cluster40";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n6.0 s (83 ms, 145 ms, 346 ms (stage 101297.0: task 330032))";
tooltip="WholeStageCodegen (1)";
41 [id="node41" labelType="html" label="<b>Filter</b><br><br>number of output rows: 434" tooltip="Filter (isnotnull(plant#944306) AND isnotnull(product#944305))"];
42 [id="node42" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 434<br>number of input batches: 37" tooltip="ColumnarToRow"];
}
43 [id="node43" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 37<br>scan time total (min, med, max (stageId: taskId))<br>5.3 s (83 ms, 142 ms, 346 ms (stage 101297.0: task 330032))<br>metadata time: 0 ms<br>size of files read: 78.2 KiB<br>number of output rows: 434" tooltip="FileScan parquet [product#944305,plant#944306] Batched: true, DataFilters: [isnotnull(plant#944306), isnotnull(product#944305)], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [IsNotNull(plant), IsNotNull(product)], ReadSchema: struct<product:string,plant:string>"];
44 [id="node44" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 1 ms<br>time to build: 8 ms<br>time to collect: 263 ms<br>number of output rows: 1,462<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=1600823]"];
subgraph cluster45 {
isCluster="true";
id="cluster45";
label="WholeStageCodegen (30)\n \nduration: total (min, med, max (stageId: taskId))\n0 ms (0 ms, 0 ms, 0 ms (stage 101316.0: task 329547))";
tooltip="WholeStageCodegen (30)";
46 [id="node46" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_code#962402, _extract_internalRefUUID#962403, _extract_internalRefUUID#962404, _extract_internalRefUUID#962405]"];
}
47 [id="node47" 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>77.5 KiB (1958.0 B, 2.1 KiB, 2.3 KiB (stage 101316.0: task 329678))<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: 202.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 101316.0: task 329547))<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: 77.5 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597992]"];
subgraph cluster48 {
isCluster="true";
id="cluster48";
label="WholeStageCodegen (2)\n \nduration: 100 ms";
tooltip="WholeStageCodegen (2)";
49 [id="node49" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#944363.internalRefUUID AS _extract_internalRefUUID#962405, product#944364.internalRefUUID AS _extract_internalRefUUID#962404, productionAspect#944366.productMovementPlants.unitOfIssue.code AS _extract_code#962402, productionAspect#944366.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#962403]"];
50 [id="node50" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 1,462<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
51 [id="node51" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 94 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 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#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..."];
52 [id="node52" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 1 ms<br>time to collect: 257 ms<br>number of output rows: 145<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1600261]"];
53 [id="node53" 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.8 KiB (573.0 B, 786.0 B, 999.0 B (stage 101314.0: task 329620))<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: 88.5 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 101314.0: task 329548))<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.8 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598013]"];
subgraph cluster54 {
isCluster="true";
id="cluster54";
label="WholeStageCodegen (3)\n \nduration: 117 ms";
tooltip="WholeStageCodegen (3)";
55 [id="node55" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]"];
56 [id="node56" labelType="html" label="<b>Filter</b><br><br>number of output rows: 145" tooltip="Filter isnotnull(internalUUID#944397)"];
57 [id="node57" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 145<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
58 [id="node58" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 117 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 33.6 KiB<br>number of output rows: 145<br>number of partitions read: 1" 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..."];
59 [id="node59" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 5 ms<br>time to collect: 41 ms<br>number of output rows: 434<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1619709]"];
60 [id="node60" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1" tooltip="AQEShuffleRead local"];
61 [id="node61" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read: 1509.0 B<br>merged fetch fallback count: 0<br>local blocks read: 10<br>remote merged chunks fetched: 0<br>remote blocks read: 355<br>data size total (min, med, max (stageId: taskId))<br>37.3 KiB (704.0 B, 1056.0 B, 1760.0 B (stage 101380.0: task 330722))<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>27 ms (0 ms, 0 ms, 1 ms (stage 101380.0: task 330722))<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 4 ms<br>remote bytes read: 53.9 KiB<br>number of partitions: 37<br>remote reqs duration: 9 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>55.4 KiB (1053.0 B, 1653.0 B, 2.5 KiB (stage 101380.0: task 330722))" tooltip="Exchange hashpartitioning(coalesce(plant#945951, ), isnull(plant#945951), coalesce(product#945950, ), isnull(product#945950), 37), ENSURE_REQUIREMENTS, [plan_id=1619551]"];
subgraph cluster62 {
isCluster="true";
id="cluster62";
label="WholeStageCodegen (64)\n \nduration: total (min, med, max (stageId: taskId))\n306 ms (4 ms, 8 ms, 24 ms (stage 101380.0: task 330722))";
tooltip="WholeStageCodegen (64)";
63 [id="node63" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#945950, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#945951]"];
64 [id="node64" labelType="html" label="<br><b>MapElements</b><br><br>" tooltip="MapElements com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@353c8b73, obj#945945: org.apache.spark.sql.Row"];
65 [id="node65" labelType="html" label="<br><b>DeserializeToObject</b><br><br>" tooltip="DeserializeToObject createexternalrow(invoke(product#945954.toString()), invoke(plant#945955.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#945956)), if (isnull(productPlant#945967)) null else createexternalrow(invoke(productPlant#945967.systemId.toString()), invoke(productPlant#945967.internalUUID.toString()), if (isnull(productPlant#945967.plant)) null else createexternalrow(invoke(productPlant#945967.plant.internalRefUUID.toString()), invoke(productPlant#945967.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#945967.product)) null else createexternalrow(invoke(productPlant#945967.product.internalRefUUID.toString()), invoke(productPlant#945967.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#945967.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#945967.productionAspect)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#945967.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)), if (isnull(productPlant#945967.salesPlant)) null else createexternalrow(if (isnull(productPlant#945967.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#945967.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#945967.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#945967.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#945967.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#945967.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#945967.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#945984)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#946209)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#946210, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#946211, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#944825, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#945919.toString()), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false), StructField(timezonecode,StringType,true)), obj#945940: org.apache.spark.sql.Row"];
66 [id="node66" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#946211, rawDemands#944825, CASE WHEN isnotnull(timezonecode#945917) THEN timezonecode#945917 ELSE UTC END AS timezonecode#945919]"];
67 [id="node67" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [coalesce(plant#945955, ), isnull(plant#945955)], [coalesce(internalUUID#945905, ), isnull(internalUUID#945905)], LeftOuter, BuildRight, false"];
}
68 [id="node68" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 434<br>time in aggregation build total (min, med, max (stageId: taskId))<br>533 ms (5 ms, 6 ms, 66 ms (stage 101380.0: task 330741))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 101380.0: task 330724))<br>number of sort fallback tasks: 0" tooltip="ObjectHashAggregate(keys=[product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780], functions=[collect_list(rawDemands#944824, 0, 0)])"];
69 [id="node69" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 33<br>partition data size total (min, med, max (stageId: taskId))<br>3.0 MiB (52.3 KiB, 94.7 KiB, 135.7 KiB (driver))<br>number of coalesced partitions: 4" tooltip="AQEShuffleRead coalesced"];
70 [id="node70" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read total (min, med, max (stageId: taskId))<br>2.2 MiB (34.8 KiB, 69.3 KiB, 108.5 KiB (stage 101380.0: task 330742))<br>merged fetch fallback count: 0<br>local blocks read: 273<br>remote merged chunks fetched: 0<br>remote blocks read: 92<br>data size total (min, med, max (stageId: taskId))<br>5.3 MiB (85.4 KiB, 161.1 KiB, 283.6 KiB (stage 101375.0: task 330718))<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>35 ms (0 ms, 0 ms, 1 ms (stage 101375.0: task 330684))<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 101380.0: task 330724))<br>remote bytes read total (min, med, max (stageId: taskId))<br>710.0 KiB (793.0 B, 19.0 KiB, 58.7 KiB (stage 101380.0: task 330741))<br>number of partitions: 37<br>remote reqs duration total (min, med, max (stageId: taskId))<br>20 ms (0 ms, 0 ms, 5 ms (stage 101380.0: task 330742))<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>2.9 MiB (53.2 KiB, 89.9 KiB, 151.8 KiB (stage 101375.0: task 330718))" tooltip="Exchange hashpartitioning(product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780, 37), ENSURE_REQUIREMENTS, [plan_id=1619332]"];
71 [id="node71" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 434<br>time in aggregation build total (min, med, max (stageId: taskId))<br>833 ms (9 ms, 11 ms, 110 ms (stage 101375.0: task 330688))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 101375.0: task 330685))<br>number of sort fallback tasks: 0" tooltip="ObjectHashAggregate(keys=[product#945954, plant#945955, orderDateTime#945956, knownfloatingpointnormalized(if (isnull(productPlant#945967)) null else named_struct(systemId, productPlant#945967.systemId, internalUUID, productPlant#945967.internalUUID, plant, productPlant#945967.plant, product, productPlant#945967.product, blockedForReplenishmentStartingFrom, productPlant#945967.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#945967.productionAspect)) null else named_struct(productMovementPlants, productPlant#945967.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#945967.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#945967.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#945967.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#945967.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#945967.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile)))), salesPlant, productPlant#945967.salesPlant, listing, productPlant#945967.listing, sourceOfSupplyCategory, productPlant#945967.sourceOfSupplyCategory)) AS productPlant#945967, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#945984)) AS outboundUnit#945984, stockDatetime#946209, knownfloatingpointnormalized(transform(stockBatchQuantities#946210, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#964781)), lambda arg#964781, false))) AS stockBatchQuantities#946210, [7226582400000000] AS [7226582400000000]#964780], functions=[partial_collect_list(rawDemands#944824, 0, 0)])"];
subgraph cluster72 {
isCluster="true";
id="cluster72";
label="WholeStageCodegen (63)\n \nduration: total (min, med, max (stageId: taskId))\n840 ms (9 ms, 11 ms, 110 ms (stage 101375.0: task 330688))";
tooltip="WholeStageCodegen (63)";
73 [id="node73" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, CASE WHEN isnotnull(product#944814) THEN struct(demandChannel, demandChannel#944816, demandStream, demandStream#944817, considerVariance, considerVariance#944818, demandTimeBuckets, demandTimeBuckets#944819, demandPointInTimeStart, demandPointInTimeStart#944820, demandPointInTimeEnd, demandPointInTimeEnd#944821, demandPointInTime, demandPointInTime#944822) END AS rawDemands#944824]"];
74 [id="node74" labelType="html" label="<b>SortMergeJoin</b><br><br>number of output rows: 434<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 101375.0: task 330685))" tooltip="SortMergeJoin [coalesce(plant#945955, ), isnull(plant#945955), coalesce(product#945954, ), isnull(product#945954)], [coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814)], LeftOuter"];
}
subgraph cluster75 {
isCluster="true";
id="cluster75";
label="WholeStageCodegen (61)\n \nduration: total (min, med, max (stageId: taskId))\n1.6 s (10 ms, 13 ms, 282 ms (stage 101375.0: task 330688))";
tooltip="WholeStageCodegen (61)";
76 [id="node76" labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 101375.0: task 330685))<br>peak memory total (min, med, max (stageId: taskId))<br>70.1 MiB (2.1 MiB, 2.1 MiB, 2.1 MiB (stage 101375.0: task 330685))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 101375.0: task 330685))" tooltip="Sort [coalesce(plant#945955, ) ASC NULLS FIRST, isnull(plant#945955) ASC NULLS FIRST, coalesce(product#945954, ) ASC NULLS FIRST, isnull(product#945954) ASC NULLS FIRST], false, 0"];
}
77 [id="node77" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 34<br>partition data size total (min, med, max (stageId: taskId))<br>280.3 KiB (3.8 KiB, 8.0 KiB, 13.2 KiB (driver))<br>number of coalesced partitions: 3" tooltip="AQEShuffleRead coalesced"];
78 [id="node78" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read total (min, med, max (stageId: taskId))<br>115.5 KiB (1389.0 B, 2.5 KiB, 10.4 KiB (stage 101375.0: task 330718))<br>merged fetch fallback count: 0<br>local blocks read: 161<br>remote merged chunks fetched: 0<br>remote blocks read: 211<br>data size total (min, med, max (stageId: taskId))<br>398.9 KiB (5.6 KiB, 9.9 KiB, 18.4 KiB (stage 101371.0: task 330651))<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>32 ms (0 ms, 0 ms, 1 ms (stage 101371.0: task 330646))<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 101375.0: task 330685))<br>remote bytes read total (min, med, max (stageId: taskId))<br>146.6 KiB (655.0 B, 5.0 KiB, 9.4 KiB (stage 101375.0: task 330705))<br>number of partitions: 37<br>remote reqs duration total (min, med, max (stageId: taskId))<br>19 ms (0 ms, 1 ms, 1 ms (stage 101375.0: task 330685))<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>262.1 KiB (4.0 KiB, 6.5 KiB, 11.4 KiB (stage 101371.0: task 330651))" tooltip="Exchange hashpartitioning(coalesce(plant#945955, ), isnull(plant#945955), coalesce(product#945954, ), isnull(product#945954), 37), ENSURE_REQUIREMENTS, [plan_id=1619056]"];
subgraph cluster79 {
isCluster="true";
id="cluster79";
label="WholeStageCodegen (60)\n \nduration: total (min, med, max (stageId: taskId))\n116 ms (1 ms, 2 ms, 11 ms (stage 101371.0: task 330647))";
tooltip="WholeStageCodegen (60)";
80 [id="node80" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, CASE WHEN isnotnull(minCalculationDateTime#946207) THEN minCalculationDateTime#946207 ELSE orderDateTime#945956 END AS stockDatetime#946209, CASE WHEN isnotnull(roundedQuantitySum#946208) THEN array(roundedQuantitySum#946208) ELSE [0.0] END AS stockBatchQuantities#946210]"];
81 [id="node81" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [plant#945955, product#945954], [plant#946093, product#946094], LeftOuter, BuildRight, false"];
82 [id="node82" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, CASE WHEN (isnull(outboundUnit#945983) OR (outboundUnit#945983 <= 0.0)) THEN 1.0 ELSE outboundUnit#945983 END AS outboundUnit#945984]"];
83 [id="node83" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, (cast(quantityNumerator#945981 as double) / cast(quantityDenominator#945982 as double)) AS outboundUnit#945983]"];
84 [id="node84" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(_extract_quantityDenominator#962406), [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, quantityNumerator#945981], true, [quantityDenominator#945982]"];
85 [id="node85" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(_extract_quantityNumerator#962407), [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, _extract_quantityDenominator#962406], true, [quantityNumerator#945981]"];
86 [id="node86" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, filteredUnitOfMeasureConversions#945980.quantityDenominator AS _extract_quantityDenominator#962406, filteredUnitOfMeasureConversions#945980.quantityNumerator AS _extract_quantityNumerator#962407]"];
}
87 [id="node87" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, filter(unitOfMeasureConversions#945975, lambdafunction((((lambda u#944410.measurementUnit1.code = productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#944410.measurementUnit1.internalRefUUID = productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#945973.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#945973.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#945980]"];
subgraph cluster88 {
isCluster="true";
id="cluster88";
label="WholeStageCodegen (59)\n \nduration: total (min, med, max (stageId: taskId))\n743 ms (4 ms, 5 ms, 124 ms (stage 101371.0: task 330647))";
tooltip="WholeStageCodegen (59)";
89 [id="node89" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [product#945954], [internalUUID#945969], LeftOuter, BuildRight, false"];
90 [id="node90" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [coalesce(product#945954, ), isnull(product#945954), coalesce(plant#945955, ), isnull(plant#945955)], [coalesce(productPlant#945967.product.internalRefUUID, ), isnull(productPlant#945967.product.internalRefUUID), coalesce(productPlant#945967.plant.internalRefUUID, ), isnull(productPlant#945967.plant.internalRefUUID)], LeftOuter, BuildRight, false"];
}
91 [id="node91" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read total (min, med, max (stageId: taskId))<br>24.1 KiB (425.0 B, 623.0 B, 969.0 B (stage 101371.0: task 330651))<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>40.7 KiB (576.0 B, 1056.0 B, 1920.0 B (stage 101299.0: task 329499))<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>20 ms (0 ms, 0 ms, 0 ms (stage 101299.0: task 329940))<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 101371.0: task 330643))<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>24.1 KiB (425.0 B, 623.0 B, 969.0 B (stage 101299.0: task 329499))" tooltip="Exchange hashpartitioning(product#945954, plant#945955, 37), REPARTITION_BY_NUM, [plan_id=1598037]"];
subgraph cluster92 {
isCluster="true";
id="cluster92";
label="WholeStageCodegen (4)\n \nduration: total (min, med, max (stageId: taskId))\n3.4 s (70 ms, 81 ms, 197 ms (stage 101299.0: task 329565))";
tooltip="WholeStageCodegen (4)";
93 [id="node93" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 434<br>number of input batches: 37" tooltip="ColumnarToRow"];
}
94 [id="node94" 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.2 s (68 ms, 80 ms, 197 ms (stage 101299.0: task 329565))<br>metadata time: 0 ms<br>size of files read: 78.2 KiB<br>number of output rows: 434" tooltip="FileScan parquet [product#945954,plant#945955,orderDateTime#945956] 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,orderDateTime:timestamp>"];
95 [id="node95" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 2 ms<br>time to build: 4 ms<br>time to collect: 336 ms<br>number of output rows: 1,462<br>data size: 2.1 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].plant.internalRefUUID)),false), [plan_id=1601936]"];
subgraph cluster96 {
isCluster="true";
id="cluster96";
label="WholeStageCodegen (36)\n \nduration: total (min, med, max (stageId: taskId))\n4 ms (0 ms, 0 ms, 3 ms (stage 101320.0: task 329603))";
tooltip="WholeStageCodegen (36)";
97 [id="node97" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [struct(systemId, systemId#945958, internalUUID, internalUUID#945959, plant, plant#945960, product, product#945961, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#945962, productionAspect, productionAspect#945963, salesPlant, salesPlant#945964, listing, listing#945965, sourceOfSupplyCategory, sourceOfSupplyCategory#945966) AS productPlant#945967]"];
}
98 [id="node98" 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>240.6 KiB (6.0 KiB, 6.5 KiB, 7.1 KiB (stage 101320.0: task 329698))<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: 1122.3 KiB<br>local merged bytes read: 0.0 B<br>local merged chunks fetched: 0<br>shuffle write time: 2 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 101320.0: task 329603))<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: 240.6 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598051]"];
subgraph cluster99 {
isCluster="true";
id="cluster99";
label="WholeStageCodegen (5)\n \nduration: 137 ms";
tooltip="WholeStageCodegen (5)";
100 [id="node100" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [systemId#945958, internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966]"];
101 [id="node101" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 1,462<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
102 [id="node102" 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: 0 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 [internalUUID#945959,plant#945960,product#945961,blockedForReplenishmentStartingFrom#945962,productionAspect#945963,salesPlant#945964,listing#945965,sourceOfSupplyCategory#945966,systemId#945958] Batched: true, DataFilters: [], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internal..."];
103 [id="node103" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 4 ms<br>time to collect: 173 ms<br>number of output rows: 55<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=1618744]"];
subgraph cluster104 {
isCluster="true";
id="cluster104";
label="WholeStageCodegen (58)\n \nduration: 7 ms";
tooltip="WholeStageCodegen (58)";
105 [id="node105" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 5 ms<br>peak memory: 2.3 MiB<br>number of output rows: 55<br>number of sort fallback tasks: 0<br>avg hash probes per key: 1" tooltip="HashAggregate(keys=[product#946094, plant#946093], functions=[min(calculationDateTime#946050), sum(quantity#946059)])"];
}
106 [id="node106" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 6.1 KiB<br>number of coalesced partitions: 1" tooltip="AQEShuffleRead coalesced"];
107 [id="node107" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 55<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 55<br>local bytes read: 5.7 KiB<br>merged fetch fallback count: 0<br>local blocks read: 28<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 5.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: 0 ms<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: 5.7 KiB" tooltip="Exchange hashpartitioning(product#946094, plant#946093, 37), ENSURE_REQUIREMENTS, [plan_id=1618428]"];
subgraph cluster108 {
isCluster="true";
id="cluster108";
label="WholeStageCodegen (57)\n \nduration: 204 ms";
tooltip="WholeStageCodegen (57)";
109 [id="node109" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 4 ms<br>peak memory: 256.0 KiB<br>number of output rows: 55<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[product#946094, plant#946093], functions=[partial_min(calculationDateTime#946050), partial_sum(quantity#946059)])"];
110 [id="node110" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#946093, product#946094, calculationDateTime#946050, quantity#946059]"];
111 [id="node111" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 55" tooltip="BroadcastHashJoin [coalesce(plant#946093, ), isnull(plant#946093), coalesce(product#946094, ), isnull(product#946094), coalesce(storageLocId#946057, ), isnull(storageLocId#946057), coalesce(calculationDateTime#946050, 1970-01-01 00:00:00), isnull(calculationDateTime#946050)], [coalesce(plant#946203, ), isnull(plant#946203), coalesce(product#946204, ), isnull(product#946204), coalesce(storageLocId#946167, ), isnull(storageLocId#946167), coalesce(max_calc_datetime#946205, 1970-01-01 00:00:00), isnull(max_calc_datetime#946205)], Inner, BuildLeft, false"];
}
112 [id="node112" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 5 ms<br>time to collect: 199 ms<br>number of output rows: 55<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, timestamp, true], 1970-01-01 00:00:00), isnull(input[3, timestamp, true])),false), [plan_id=1617792]"];
113 [id="node113" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1" tooltip="AQEShuffleRead local"];
114 [id="node114" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 55<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 55<br>local bytes read: 174.0 B<br>merged fetch fallback count: 0<br>local blocks read: 1<br>remote merged chunks fetched: 0<br>remote blocks read: 53<br>data size total (min, med, max (stageId: taskId))<br>6.4 KiB (120.0 B, 240.0 B, 840.0 B (stage 101359.0: task 330508))<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>13 ms (0 ms, 0 ms, 0 ms (stage 101359.0: task 330502))<br>remote merged bytes read: 0.0 B<br>local merged blocks fetched: 0<br>corrupt merged block chunks: 0<br>fetch wait time: 2 ms<br>remote bytes read: 9.1 KiB<br>number of partitions: 37<br>remote reqs duration: 8 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>9.2 KiB (174.0 B, 348.0 B, 1094.0 B (stage 101359.0: task 330508))" tooltip="Exchange hashpartitioning(coalesce(plant#946093, ), isnull(plant#946093), coalesce(product#946094, ), isnull(product#946094), coalesce(storageLocId#946057, ), isnull(storageLocId#946057), coalesce(calculationDateTime#946050, 1970-01-01 00:00:00), isnull(calculationDateTime#946050), 37), ENSURE_REQUIREMENTS, [plan_id=1616960]"];
subgraph cluster115 {
isCluster="true";
id="cluster115";
label="WholeStageCodegen (54)\n \nduration: total (min, med, max (stageId: taskId))\n585 ms (0 ms, 1 ms, 151 ms (stage 101359.0: task 330535))";
tooltip="WholeStageCodegen (54)";
116 [id="node116" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plantUuid#946054 AS plant#946093, productUuid#946056 AS product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]"];
117 [id="node117" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 55" tooltip="BroadcastHashJoin [plantUuid#946054, productUuid#946056], [plant#946063, product#946062], Inner, BuildLeft, (calculationDateTime#946050 <= orderDateTime#946064), false"];
172 [id="node172" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946062, plant#946063, orderDateTime#946064]"];
173 [id="node173" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(_extract_quantityDenominator#962289), [product#946062, plant#946063, orderDateTime#946064], true, [quantityDenominator#946090]"];
174 [id="node174" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088.quantityDenominator AS _extract_quantityDenominator#962289]"];
175 [id="node175" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(filteredUnitOfMeasureConversions#946088.quantityNumerator), [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088], true, [quantityNumerator#946089]"];
}
118 [id="node118" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 1 ms<br>time to build: 1 ms<br>time to collect: 17 ms<br>number of output rows: 89<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1615982]"];
119 [id="node119" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1" tooltip="AQEShuffleRead local"];
120 [id="node120" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 89<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 89<br>local bytes read: 8.9 KiB<br>merged fetch fallback count: 0<br>local blocks read: 35<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 10.4 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: 0 ms<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: 8.9 KiB" tooltip="Exchange hashpartitioning(productUuid#946056, plantUuid#946054, 37), ENSURE_REQUIREMENTS, [plan_id=1615389]"];
subgraph cluster121 {
isCluster="true";
id="cluster121";
label="WholeStageCodegen (50)\n \nduration: 30 ms";
tooltip="WholeStageCodegen (50)";
122 [id="node122" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#945988.internalRefUUID AS plantUuid#946054, product#945987.internalRefUUID AS productUuid#946056, calculationDateTime#946050, stockQuantity#946052.storagelocation.id AS storageLocId#946057, stockQuantity#946052.quantity.measure AS quantity#946059]"];
123 [id="node123" labelType="html" label="<b>Filter</b><br><br>number of output rows: 89" tooltip="Filter (((isnotnull(stockQuantity#946052.specialStockIndicator.code) AND isnotnull(stockQuantity#946052.stockType.code)) AND (stockQuantity#946052.specialStockIndicator.code = )) AND (stockQuantity#946052.stockType.code = 01))"];
124 [id="node124" labelType="html" label="<b>Generate</b><br><br>number of output rows: 89" tooltip="Generate explode(stockQuantities#946051), [product#945987, plant#945988, calculationDateTime#946050], false, [stockQuantity#946052]"];
125 [id="node125" labelType="html" label="<b>Filter</b><br><br>number of output rows: 89" tooltip="Filter ((size(stockQuantities#946051, true) > 0) AND isnotnull(calculationDateTime#946050))"];
}
126 [id="node126" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 89<br>time in aggregation build: 105 ms<br>spill size: 0.0 B<br>number of sort fallback tasks: 0" tooltip="ObjectHashAggregate(keys=[plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985], functions=[first(calculationDateTime#945989, false), collect_list(stockQuantity#946049, 0, 0)])"];
127 [id="node127" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 89<br>time in aggregation build: 118 ms<br>spill size: 0.0 B<br>number of sort fallback tasks: 0" tooltip="ObjectHashAggregate(keys=[plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985], functions=[partial_first(calculationDateTime#945989, false), partial_collect_list(stockQuantity#946049, 0, 0)])"];
128 [id="node128" labelType="html" label="<b>Generate</b><br><br>number of output rows: 89" tooltip="Generate explode(filter(stockQuantities#945990, lambdafunction(((lambda x#944569.storageLocation.internalRefUuid = storageLocUuid#946017) AND (lambda x#944569.storageLocation.Id = storageLocId#946016)), lambda x#944569, false))), [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, plantUuid#946015], false, [stockQuantity#946049]"];
subgraph cluster129 {
isCluster="true";
id="cluster129";
label="WholeStageCodegen (49)\n \nduration: 172 ms";
tooltip="WholeStageCodegen (49)";
130 [id="node130" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 90" tooltip="BroadcastHashJoin [coalesce(plant#945988.internalRefUUID, ), isnull(plant#945988.internalRefUUID)], [coalesce(plantUuid#946015, ), isnull(plantUuid#946015)], Inner, BuildLeft, false"];
138 [id="node138" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plantUuid#946015, storageLocId#946016, storageLocUuid#946017]"];
139 [id="node139" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 4" tooltip="BroadcastHashJoin [plantUuid#946015], [plant#946019], Inner, BuildLeft, false"];
153 [id="node153" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 9 ms<br>peak memory: 256.0 KiB<br>number of output rows: 4<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#946019], functions=[])"];
}
131 [id="node131" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 1 ms<br>time to build: 2 ms<br>time to collect: 300 ms<br>number of output rows: 398<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1600299]"];
132 [id="node132" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 398<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 398<br>local bytes read total (min, med, max (stageId: taskId))<br>64.3 KiB (1469.0 B, 1786.0 B, 2.1 KiB (stage 101318.0: task 329730))<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: 240.1 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 101318.0: task 329632))<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: 64.3 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598101]"];
subgraph cluster133 {
isCluster="true";
id="cluster133";
label="WholeStageCodegen (7)\n \nduration: 130 ms";
tooltip="WholeStageCodegen (7)";
134 [id="node134" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]"];
135 [id="node135" labelType="html" label="<b>Filter</b><br><br>number of output rows: 398" tooltip="Filter (isnotnull(plant#945988.internalRefUUID) AND isnotnull(product#945987.internalRefUUID))"];
136 [id="node136" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 398<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
137 [id="node137" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 126 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 30.1 KiB<br>number of output rows: 398<br>number of partitions read: 1" tooltip="FileScan parquet [internalUUID#945986,product#945987,plant#945988,calculationDateTime#945989,stockQuantities#945990,systemId#945985] Batched: true, DataFilters: [isnotnull(plant#945988.internalRefUUID), isnotnull(product#945987.internalRefUUID)], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)], ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internal..."];
140 [id="node140" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 362 ms<br>number of output rows: 4<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1602941]"];
subgraph cluster141 {
isCluster="true";
id="cluster141";
label="WholeStageCodegen (37)\n \nduration: total (min, med, max (stageId: taskId))\n1 ms (0 ms, 0 ms, 1 ms (stage 101322.0: task 329682))";
tooltip="WholeStageCodegen (37)";
142 [id="node142" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_internalRefUUID#962280 AS plantUuid#946015, storageLocations#946013.id AS storageLocId#946016, storageLocations#946013.internalRefUUID AS storageLocUuid#946017]"];
143 [id="node143" labelType="html" label="<b>Generate</b><br><br>number of output rows: 4" tooltip="Generate explode(_extract_storageLocations#962281), [_extract_internalRefUUID#962280], false, [storageLocations#946013]"];
144 [id="node144" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [distributionCenters#946012.internalRefUUID AS _extract_internalRefUUID#962280, distributionCenters#946012.storageLocations AS _extract_storageLocations#962281]"];
145 [id="node145" labelType="html" label="<b>Filter</b><br><br>number of output rows: 4" tooltip="Filter (((size(distributionCenters#946012.storageLocations, true) > 0) AND isnotnull(distributionCenters#946012.storageLocations)) AND isnotnull(distributionCenters#946012.internalRefUUID))"];
146 [id="node146" labelType="html" label="<b>Generate</b><br><br>number of output rows: 4" tooltip="Generate explode(distributionCenters#945997), false, [distributionCenters#946012]"];
}
147 [id="node147" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 1<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 2<br>local bytes read total (min, med, max (stageId: taskId))<br>960.0 B (480.0 B, 480.0 B, 480.0 B (stage 101323.0: task 329683))<br>merged fetch fallback count: 0<br>local blocks read: 2<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 704.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 total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 101323.0: task 329683))<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: 480.0 B" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598121]"];
subgraph cluster148 {
isCluster="true";
id="cluster148";
label="WholeStageCodegen (8)\n \nduration: total (min, med, max (stageId: taskId))\n215 ms (102 ms, 113 ms, 113 ms (stage 101305.0: task 329505))";
tooltip="WholeStageCodegen (8)";
149 [id="node149" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [distributionCenters#945997]"];
150 [id="node150" labelType="html" label="<b>Filter</b><br><br>number of output rows: 1" tooltip="Filter (((marketUnit#945991 <=> IW_MU_CRP-125444_1) AND (size(distributionCenters#945997, true) > 0)) AND isnotnull(distributionCenters#945997))"];
151 [id="node151" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 88<br>number of input batches: 2" tooltip="ColumnarToRow"];
}
152 [id="node152" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 2<br>scan time total (min, med, max (stageId: taskId))<br>214 ms (101 ms, 113 ms, 113 ms (stage 101305.0: task 329505))<br>metadata time: 0 ms<br>size of files read: 43.4 KiB<br>number of output rows: 88" tooltip="FileScan parquet [marketUnit#945991,distributionCenters#945997] Batched: true, DataFilters: [(marketUnit#945991 <=> IW_MU_CRP-125444_1), (size(distributionCenters#945997, true) > 0), isnotn..., Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [EqualNullSafe(marketUnit,IW_MU_CRP-125444_1), IsNotNull(distributionCenters)], ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storag..."];
154 [id="node154" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 15.9 KiB<br>number of coalesced partitions: 1" tooltip="AQEShuffleRead coalesced"];
155 [id="node155" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 139<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 417<br>local bytes read total (min, med, max (stageId: taskId))<br>6.1 KiB (432.0 B, 2.8 KiB, 2.8 KiB (stage 101349.0: task 330391))<br>merged fetch fallback count: 0<br>local blocks read: 58<br>remote merged chunks fetched: 0<br>remote blocks read: 359<br>data size total (min, med, max (stageId: taskId))<br>6.5 KiB (144.0 B, 192.0 B, 192.0 B (stage 101345.0: task 330295))<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>18 ms (0 ms, 0 ms, 0 ms (stage 101345.0: task 330326))<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 101349.0: task 330391))<br>remote bytes read total (min, med, max (stageId: taskId))<br>37.9 KiB (11.8 KiB, 11.8 KiB, 14.2 KiB (stage 101395.0: task 330760))<br>number of partitions: 37<br>remote reqs duration total (min, med, max (stageId: taskId))<br>25 ms (7 ms, 8 ms, 10 ms (stage 101348.0: task 330390))<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>14.7 KiB (324.0 B, 432.0 B, 432.0 B (stage 101345.0: task 330295))" tooltip="Exchange hashpartitioning(plant#946019, 37), ENSURE_REQUIREMENTS, [plan_id=1613477]"];
subgraph cluster156 {
isCluster="true";
id="cluster156";
label="WholeStageCodegen (44)\n \nduration: total (min, med, max (stageId: taskId))\n756 ms (1 ms, 1 ms, 97 ms (stage 101345.0: task 330321))";
tooltip="WholeStageCodegen (44)";
157 [id="node157" 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>34 ms (0 ms, 0 ms, 6 ms (stage 101345.0: task 330297))<br>peak memory total (min, med, max (stageId: taskId))<br>9.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 101345.0: task 330295))<br>number of output rows: 139<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#946019], functions=[])"];
158 [id="node158" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#946019]"];
159 [id="node159" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(_extract_quantityDenominator#962282), [plant#946019], true, [quantityDenominator#946046]"];
160 [id="node160" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#946019, filteredUnitOfMeasureConversions#946044.quantityDenominator AS _extract_quantityDenominator#962282]"];
161 [id="node161" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(filteredUnitOfMeasureConversions#946044.quantityNumerator), [plant#946019, filteredUnitOfMeasureConversions#946044], true, [quantityNumerator#946045]"];
}
162 [id="node162" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#946019, filter(unitOfMeasureConversions#946039, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962410) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962411)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946037.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946037.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946044]"];
subgraph cluster163 {
isCluster="true";
id="cluster163";
label="WholeStageCodegen (43)\n \nduration: total (min, med, max (stageId: taskId))\n1.6 s (1 ms, 1 ms, 311 ms (stage 101345.0: task 330297))";
tooltip="WholeStageCodegen (43)";
164 [id="node164" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [product#946018], [internalUUID#946033], LeftOuter, BuildRight, false"];
165 [id="node165" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946018, plant#946019, _extract_code#962410, _extract_internalRefUUID#962411]"];
166 [id="node166" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [coalesce(product#946018, ), isnull(product#946018), coalesce(plant#946019, ), isnull(plant#946019)], [coalesce(_extract_internalRefUUID#962409, ), isnull(_extract_internalRefUUID#962409), coalesce(_extract_internalRefUUID#962408, ), isnull(_extract_internalRefUUID#962408)], LeftOuter, BuildRight, false"];
}
167 [id="node167" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read total (min, med, max (stageId: taskId))<br>22.5 KiB (399.0 B, 581.0 B, 911.0 B (stage 101345.0: task 330325))<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>37.3 KiB (528.0 B, 968.0 B, 1760.0 B (stage 101300.0: task 329500))<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>17 ms (0 ms, 0 ms, 0 ms (stage 101300.0: task 329893))<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 101345.0: task 330295))<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>22.5 KiB (399.0 B, 581.0 B, 911.0 B (stage 101300.0: task 329500))" tooltip="Exchange hashpartitioning(product#946018, plant#946019, 37), REPARTITION_BY_NUM, [plan_id=1598144]"];
subgraph cluster168 {
isCluster="true";
id="cluster168";
label="WholeStageCodegen (9)\n \nduration: total (min, med, max (stageId: taskId))\n3.8 s (77 ms, 88 ms, 393 ms (stage 101300.0: task 329515))";
tooltip="WholeStageCodegen (9)";
169 [id="node169" labelType="html" label="<b>Filter</b><br><br>number of output rows: 434" tooltip="Filter isnotnull(plant#946019)"];
170 [id="node170" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 434<br>number of input batches: 37" tooltip="ColumnarToRow"];
}
171 [id="node171" 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.5 s (76 ms, 88 ms, 155 ms (stage 101300.0: task 329634))<br>metadata time: 0 ms<br>size of files read: 78.2 KiB<br>number of output rows: 434" tooltip="FileScan parquet [product#946018,plant#946019] Batched: true, DataFilters: [isnotnull(plant#946019)], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [IsNotNull(plant)], ReadSchema: struct<product:string,plant:string>"];
176 [id="node176" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946062, plant#946063, orderDateTime#946064, filter(unitOfMeasureConversions#946083, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962412) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962413)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946081.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946081.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946088]"];
subgraph cluster177 {
isCluster="true";
id="cluster177";
label="WholeStageCodegen (53)\n \nduration: total (min, med, max (stageId: taskId))\n1.4 s (1 ms, 2 ms, 371 ms (stage 101359.0: task 330535))";
tooltip="WholeStageCodegen (53)";
178 [id="node178" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [product#946062], [internalUUID#946077], LeftOuter, BuildRight, false"];
179 [id="node179" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946062, plant#946063, orderDateTime#946064, _extract_code#962412, _extract_internalRefUUID#962413]"];
180 [id="node180" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [coalesce(product#946062, ), isnull(product#946062), coalesce(plant#946063, ), isnull(plant#946063)], [coalesce(_extract_internalRefUUID#962414, ), isnull(_extract_internalRefUUID#962414), coalesce(_extract_internalRefUUID#962415, ), isnull(_extract_internalRefUUID#962415)], LeftOuter, BuildRight, false"];
}
181 [id="node181" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 868<br>local bytes read total (min, med, max (stageId: taskId))<br>48.3 KiB (425.0 B, 623.0 B, 969.0 B (stage 101360.0: task 330511))<br>merged fetch fallback count: 0<br>local blocks read: 74<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>40.7 KiB (576.0 B, 1056.0 B, 1920.0 B (stage 101303.0: task 329503))<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>18 ms (0 ms, 0 ms, 0 ms (stage 101303.0: task 329575))<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 101360.0: task 330473))<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>24.1 KiB (425.0 B, 623.0 B, 969.0 B (stage 101303.0: task 329503))" tooltip="Exchange hashpartitioning(product#946062, plant#946063, 37), REPARTITION_BY_NUM, [plan_id=1598224]"];
subgraph cluster182 {
isCluster="true";
id="cluster182";
label="WholeStageCodegen (12)\n \nduration: total (min, med, max (stageId: taskId))\n4.2 s (85 ms, 105 ms, 276 ms (stage 101303.0: task 329958))";
tooltip="WholeStageCodegen (12)";
183 [id="node183" labelType="html" label="<b>Filter</b><br><br>number of output rows: 434" tooltip="Filter ((isnotnull(orderDateTime#946064) AND isnotnull(plant#946063)) AND isnotnull(product#946062))"];
184 [id="node184" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 434<br>number of input batches: 37" tooltip="ColumnarToRow"];
}
185 [id="node185" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 37<br>scan time total (min, med, max (stageId: taskId))<br>4.2 s (84 ms, 104 ms, 275 ms (stage 101303.0: task 329958))<br>metadata time: 0 ms<br>size of files read: 78.2 KiB<br>number of output rows: 434" tooltip="FileScan parquet [product#946062,plant#946063,orderDateTime#946064] Batched: true, DataFilters: [isnotnull(orderDateTime#946064), isnotnull(plant#946063), isnotnull(product#946062)], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)], ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>"];
186 [id="node186" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1" tooltip="AQEShuffleRead local"];
187 [id="node187" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 55<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 55<br>local bytes read: 167.0 B<br>merged fetch fallback count: 0<br>local blocks read: 1<br>remote merged chunks fetched: 0<br>remote blocks read: 53<br>data size total (min, med, max (stageId: taskId))<br>6.0 KiB (112.0 B, 224.0 B, 784.0 B (stage 101360.0: task 330511))<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>14 ms (0 ms, 0 ms, 0 ms (stage 101360.0: task 330511))<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: 8.7 KiB<br>number of partitions: 37<br>remote reqs duration: 7 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>8.9 KiB (167.0 B, 334.0 B, 1047.0 B (stage 101360.0: task 330511))" tooltip="Exchange hashpartitioning(coalesce(plant#946203, ), isnull(plant#946203), coalesce(product#946204, ), isnull(product#946204), coalesce(storageLocId#946167, ), isnull(storageLocId#946167), coalesce(max_calc_datetime#946205, 1970-01-01 00:00:00), isnull(max_calc_datetime#946205), 37), ENSURE_REQUIREMENTS, [plan_id=1617419]"];
subgraph cluster188 {
isCluster="true";
id="cluster188";
label="WholeStageCodegen (56)\n \nduration: total (min, med, max (stageId: taskId))\n948 ms (1 ms, 2 ms, 196 ms (stage 101360.0: task 330536))";
tooltip="WholeStageCodegen (56)";
189 [id="node189" 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>85 ms (0 ms, 0 ms, 14 ms (stage 101360.0: task 330539))<br>peak memory total (min, med, max (stageId: taskId))<br>65.3 MiB (256.0 KiB, 2.3 MiB, 2.3 MiB (stage 101360.0: task 330473))<br>number of output rows: 55<br>number of sort fallback tasks: 0<br>avg hash probes per key (min, med, max (stageId: taskId)):<br>(1, 1, 1 (stage 101360.0: task 330473))" tooltip="HashAggregate(keys=[plant#946203, product#946204, storageLocId#946167], functions=[max(calculationDateTime#946160)])"];
190 [id="node190" 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>14 ms (0 ms, 0 ms, 4 ms (stage 101360.0: task 330536))<br>peak memory total (min, med, max (stageId: taskId))<br>9.3 MiB (256.0 KiB, 256.0 KiB, 256.0 KiB (stage 101360.0: task 330473))<br>number of output rows: 55<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#946203, product#946204, storageLocId#946167], functions=[partial_max(calculationDateTime#946160)])"];
191 [id="node191" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plantUuid#946164 AS plant#946203, productUuid#946166 AS product#946204, storageLocId#946167, calculationDateTime#946160]"];
192 [id="node192" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 55" tooltip="BroadcastHashJoin [plantUuid#946164, productUuid#946166], [plant#946173, product#946172], Inner, BuildLeft, (calculationDateTime#946160 <= orderDateTime#946174), false"];
210 [id="node210" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946172, plant#946173, orderDateTime#946174]"];
211 [id="node211" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(_extract_quantityDenominator#962305), [product#946172, plant#946173, orderDateTime#946174], true, [quantityDenominator#946200]"];
212 [id="node212" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198.quantityDenominator AS _extract_quantityDenominator#962305]"];
213 [id="node213" labelType="html" label="<b>Generate</b><br><br>number of output rows: 434" tooltip="Generate explode(filteredUnitOfMeasureConversions#946198.quantityNumerator), [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198], true, [quantityNumerator#946199]"];
}
193 [id="node193" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 15 ms<br>number of output rows: 89<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1616466]"];
194 [id="node194" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1" tooltip="AQEShuffleRead local"];
195 [id="node195" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 89<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 89<br>local bytes read: 8.4 KiB<br>merged fetch fallback count: 0<br>local blocks read: 35<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 9.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: 0 ms<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: 8.4 KiB" tooltip="Exchange hashpartitioning(productUuid#946166, plantUuid#946164, 37), ENSURE_REQUIREMENTS, [plan_id=1615457]"];
subgraph cluster196 {
isCluster="true";
id="cluster196";
label="WholeStageCodegen (52)\n \nduration: 29 ms";
tooltip="WholeStageCodegen (52)";
197 [id="node197" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#946098.internalRefUUID AS plantUuid#946164, product#946097.internalRefUUID AS productUuid#946166, calculationDateTime#946160, stockQuantity#946162.storagelocation.id AS storageLocId#946167]"];
198 [id="node198" labelType="html" label="<b>Filter</b><br><br>number of output rows: 89" tooltip="Filter (((isnotnull(stockQuantity#946162.specialStockIndicator.code) AND isnotnull(stockQuantity#946162.stockType.code)) AND (stockQuantity#946162.specialStockIndicator.code = )) AND (stockQuantity#946162.stockType.code = 01))"];
199 [id="node199" labelType="html" label="<b>Generate</b><br><br>number of output rows: 89" tooltip="Generate explode(stockQuantities#946161), [product#946097, plant#946098, calculationDateTime#946160], false, [stockQuantity#946162]"];
200 [id="node200" labelType="html" label="<b>Filter</b><br><br>number of output rows: 89" tooltip="Filter ((size(stockQuantities#946161, true) > 0) AND isnotnull(calculationDateTime#946160))"];
}
201 [id="node201" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 89<br>time in aggregation build: 105 ms<br>spill size: 0.0 B<br>number of sort fallback tasks: 0" tooltip="ObjectHashAggregate(keys=[plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095], functions=[first(calculationDateTime#946099, false), collect_list(stockQuantity#946159, 0, 0)])"];
202 [id="node202" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 89<br>time in aggregation build: 118 ms<br>spill size: 0.0 B<br>number of sort fallback tasks: 0" tooltip="ObjectHashAggregate(keys=[plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095], functions=[partial_first(calculationDateTime#946099, false), partial_collect_list(stockQuantity#946159, 0, 0)])"];
203 [id="node203" labelType="html" label="<b>Generate</b><br><br>number of output rows: 89" tooltip="Generate explode(filter(stockQuantities#946100, lambdafunction(((lambda x#944569.storageLocation.internalRefUuid = storageLocUuid#946127) AND (lambda x#944569.storageLocation.Id = storageLocId#946126)), lambda x#944569, false))), [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, plantUuid#946125], false, [stockQuantity#946159]"];
subgraph cluster204 {
isCluster="true";
id="cluster204";
label="WholeStageCodegen (51)\n \nduration: 171 ms";
tooltip="WholeStageCodegen (51)";
205 [id="node205" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 90" tooltip="BroadcastHashJoin [coalesce(plant#946098.internalRefUUID, ), isnull(plant#946098.internalRefUUID)], [coalesce(plantUuid#946125, ), isnull(plantUuid#946125)], Inner, BuildLeft, false"];
206 [id="node206" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plantUuid#946125, storageLocId#946126, storageLocUuid#946127]"];
207 [id="node207" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 4" tooltip="BroadcastHashJoin [plantUuid#946125], [plant#946129], Inner, BuildLeft, false"];
208 [id="node208" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 10 ms<br>peak memory: 256.0 KiB<br>number of output rows: 4<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#946129], functions=[])"];
}
209 [id="node209" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 15.9 KiB<br>number of coalesced partitions: 1" tooltip="AQEShuffleRead coalesced"];
214 [id="node214" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946172, plant#946173, orderDateTime#946174, filter(unitOfMeasureConversions#946193, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962422) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962423)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946191.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946191.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946198]"];
subgraph cluster215 {
isCluster="true";
id="cluster215";
label="WholeStageCodegen (55)\n \nduration: total (min, med, max (stageId: taskId))\n2.0 s (2 ms, 2 ms, 555 ms (stage 101360.0: task 330536))";
tooltip="WholeStageCodegen (55)";
216 [id="node216" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [product#946172], [internalUUID#946187], LeftOuter, BuildRight, false"];
217 [id="node217" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [product#946172, plant#946173, orderDateTime#946174, _extract_code#962422, _extract_internalRefUUID#962423]"];
218 [id="node218" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 434" tooltip="BroadcastHashJoin [coalesce(product#946172, ), isnull(product#946172), coalesce(plant#946173, ), isnull(plant#946173)], [coalesce(_extract_internalRefUUID#962420, ), isnull(_extract_internalRefUUID#962420), coalesce(_extract_internalRefUUID#962421, ), isnull(_extract_internalRefUUID#962421)], LeftOuter, BuildRight, false"];
}
subgraph cluster219 {
isCluster="true";
id="cluster219";
label="WholeStageCodegen (62)\n \nduration: total (min, med, max (stageId: taskId))\n1.1 s (9 ms, 12 ms, 166 ms (stage 101375.0: task 330688))";
tooltip="WholeStageCodegen (62)";
220 [id="node220" labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 101375.0: task 330685))<br>peak memory total (min, med, max (stageId: taskId))<br>70.1 MiB (2.1 MiB, 2.1 MiB, 2.1 MiB (stage 101375.0: task 330685))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 101375.0: task 330685))" 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"];
}
221 [id="node221" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 34<br>partition data size total (min, med, max (stageId: taskId))<br>2.8 MiB (51.1 KiB, 86.2 KiB, 148.0 KiB (driver))<br>number of coalesced partitions: 3" tooltip="AQEShuffleRead coalesced"];
222 [id="node222" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 434<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 434<br>local bytes read total (min, med, max (stageId: taskId))<br>390.9 KiB (247.0 B, 10.8 KiB, 52.7 KiB (stage 101375.0: task 330688))<br>merged fetch fallback count: 0<br>local blocks read: 57<br>remote merged chunks fetched: 0<br>remote blocks read: 316<br>data size total (min, med, max (stageId: taskId))<br>4.9 MiB (98.1 KiB, 146.2 KiB, 224.9 KiB (stage 101302.0: task 329502))<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>32 ms (0 ms, 0 ms, 1 ms (stage 101302.0: task 329502))<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>10 ms (0 ms, 0 ms, 2 ms (stage 101375.0: task 330692))<br>remote bytes read total (min, med, max (stageId: taskId))<br>2.3 MiB (23.5 KiB, 72.6 KiB, 120.6 KiB (stage 101375.0: task 330704))<br>number of partitions: 37<br>remote reqs duration total (min, med, max (stageId: taskId))<br>135 ms (3 ms, 4 ms, 9 ms (stage 101375.0: task 330686))<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>2.7 MiB (55.6 KiB, 82.2 KiB, 125.7 KiB (stage 101302.0: task 329502))" tooltip="Exchange hashpartitioning(coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814), 37), ENSURE_REQUIREMENTS, [plan_id=1598507]"];
subgraph cluster223 {
isCluster="true";
id="cluster223";
label="WholeStageCodegen (23)\n \nduration: total (min, med, max (stageId: taskId))\n2.8 s (66 ms, 80 ms, 119 ms (stage 101302.0: task 329905))";
tooltip="WholeStageCodegen (23)";
224 [id="node224" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 434<br>number of input batches: 33" tooltip="ColumnarToRow"];
}
225 [id="node225" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 33<br>scan time total (min, med, max (stageId: taskId))<br>2.6 s (64 ms, 77 ms, 114 ms (stage 101302.0: task 329905))<br>metadata time: 0 ms<br>size of files read: 1745.1 KiB<br>number of output rows: 434" tooltip="FileScan parquet [product#944814,plant#944815,demandChannel#944816,demandStream#944817,considerVariance#944818,demandTimeBuckets#944819,demandPointInTimeStart#944820,demandPointInTimeEnd#944821,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,demandChannel:string,demandStream:string,considerVariance:bool..."];
226 [id="node226" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 1 ms<br>time to collect: 216 ms<br>number of output rows: 27<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1599329]"];
227 [id="node227" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 27<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 27<br>local bytes read total (min, med, max (stageId: taskId))<br>3.5 KiB (131.0 B, 132.0 B, 132.0 B (stage 101312.0: task 329542))<br>merged fetch fallback count: 0<br>local blocks read: 27<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 1944.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 101312.0: task 329542))<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: 3.5 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598527]"];
subgraph cluster228 {
isCluster="true";
id="cluster228";
label="WholeStageCodegen (24)\n \nduration: 95 ms";
tooltip="WholeStageCodegen (24)";
229 [id="node229" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [internalUUID#945905, address#945911.timeZone.code AS timezonecode#945917]"];
230 [id="node230" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 27<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
231 [id="node231" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 95 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 13.1 KiB<br>number of output rows: 27<br>number of partitions read: 1" tooltip="FileScan parquet [internalUUID#945905,address#945911,systemId#945904] Batched: true, DataFilters: [], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>"];
subgraph cluster232 {
isCluster="true";
id="cluster232";
label="WholeStageCodegen (67)\n \nduration: 182 ms";
tooltip="WholeStageCodegen (67)";
233 [id="node233" labelType="html" label="<b>Sort</b><br><br>sort time: 0 ms<br>peak memory: 2.1 MiB<br>spill size: 0.0 B" tooltip="Sort [plant#946288 ASC NULLS FIRST], false, 0"];
234 [id="node234" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plantUuid#946313 AS plant#946288, storageLocUuid#946315]"];
235 [id="node235" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 4" tooltip="BroadcastHashJoin [plantUuid#946313], [plant#946317], Inner, BuildLeft, false"];
244 [id="node244" labelType="html" label="<b>HashAggregate</b><br><br>spill size: 0.0 B<br>time in aggregation build: 10 ms<br>peak memory: 256.0 KiB<br>number of output rows: 4<br>number of sort fallback tasks: 0<br>avg hash probes per key: 0" tooltip="HashAggregate(keys=[plant#946317], functions=[])"];
}
236 [id="node236" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 356 ms<br>number of output rows: 4<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1603048]"];
subgraph cluster237 {
isCluster="true";
id="cluster237";
label="WholeStageCodegen (39)\n \nduration: total (min, med, max (stageId: taskId))\n0 ms (0 ms, 0 ms, 0 ms (stage 101323.0: task 329683))";
tooltip="WholeStageCodegen (39)";
238 [id="node238" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [_extract_internalRefUUID#962313 AS plantUuid#946313, storageLocations#946311 AS storageLocUuid#946315]"];
239 [id="node239" labelType="html" label="<b>Filter</b><br><br>number of output rows: 4" tooltip="Filter isnotnull(storageLocations#946311)"];
240 [id="node240" labelType="html" label="<b>Generate</b><br><br>number of output rows: 4" tooltip="Generate explode(_extract_internalRefUUID#962484), [_extract_internalRefUUID#962313], false, [storageLocations#946311]"];
241 [id="node241" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [distributionCenters#946310.internalRefUUID AS _extract_internalRefUUID#962313, distributionCenters#946310.storageLocations.internalRefUUID AS _extract_internalRefUUID#962484]"];
242 [id="node242" labelType="html" label="<b>Filter</b><br><br>number of output rows: 4" tooltip="Filter (((size(distributionCenters#946310.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#946310.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#946310.internalRefUUID))"];
243 [id="node243" labelType="html" label="<b>Generate</b><br><br>number of output rows: 4" tooltip="Generate explode(distributionCenters#946295), false, [distributionCenters#946310]"];
}
245 [id="node245" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 15.9 KiB<br>number of coalesced partitions: 1" tooltip="AQEShuffleRead coalesced"];
246 [id="node246" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 1 ms<br>time to collect: 393 ms<br>number of output rows: 40<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[3, string, true], input[2, string, true], input[4, string, true]),false), [plan_id=1603907]"];
subgraph cluster247 {
isCluster="true";
id="cluster247";
label="WholeStageCodegen (40)\n \nduration: total (min, med, max (stageId: taskId))\n7 ms (0 ms, 0 ms, 6 ms (stage 101325.0: task 329844))";
tooltip="WholeStageCodegen (40)";
248 [id="node248" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [id#946255, internalUUID#946254, item#946265.plant.internalRefUUID AS plant#946270, item#946265.product.internalRefUUID AS product#946271, item#946265.storageLocation.internalRefUUID AS storageLocUuid#946272, item#946265.quantityUnit.code AS quantityUom#946273, item#946265.quantityUnit.internalRefUUID AS quantityUomUuid#946274, item#946265.quantityNumerator AS quantityNumerator#946275, item#946265.quantityDenominator AS quantityDenominator#946276, item#946265.scheduleLines AS scheduleLines#946277, item#946265.confirmations AS confirmations#946278]"];
249 [id="node249" labelType="html" label="<b>Filter</b><br><br>number of output rows: 40" tooltip="Filter ((((isnotnull(item#946265.deletionIndicator) AND isnotnull(item#946265.completeIndicator)) AND isnotnull(item#946265.returnIndicator)) AND ((NOT item#946265.deletionIndicator AND NOT item#946265.completeIndicator) AND NOT item#946265.returnIndicator)) AND ((isnotnull(item#946265.product.internalRefUUID) AND isnotnull(item#946265.plant.internalRefUUID)) AND isnotnull(item#946265.storageLocation.internalRefUUID)))"];
250 [id="node250" labelType="html" label="<b>Generate</b><br><br>number of output rows: 40" tooltip="Generate explode(items#946261), [internalUUID#946254, id#946255], false, [item#946265]"];
}
251 [id="node251" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 5<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 5<br>local bytes read total (min, med, max (stageId: taskId))<br>5.0 KiB (509.0 B, 513.0 B, 2.1 KiB (stage 101325.0: task 329865))<br>merged fetch fallback count: 0<br>local blocks read: 5<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 25.1 KiB<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 total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 101325.0: task 329844))<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: 5.0 KiB" tooltip="Exchange RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598659]"];
subgraph cluster252 {
isCluster="true";
id="cluster252";
label="WholeStageCodegen (29)\n \nduration: 107 ms";
tooltip="WholeStageCodegen (29)";
253 [id="node253" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [internalUUID#946254, id#946255, items#946261]"];
254 [id="node254" labelType="html" label="<b>Filter</b><br><br>number of output rows: 5" tooltip="Filter (((isnotnull(isMarkedForDeletion#946260) AND NOT isMarkedForDeletion#946260) AND (size(items#946261, true) > 0)) AND isnotnull(items#946261))"];
255 [id="node255" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 5<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
256 [id="node256" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 104 ms<br>dynamic partition pruning time: 0 ms<br>metadata time: 0 ms<br>size of files read: 20.2 KiB<br>number of output rows: 5<br>number of partitions read: 1" tooltip="FileScan parquet [internalUUID#946254,id#946255,isMarkedForDeletion#946260,items#946261,systemId#946253] Batched: true, DataFilters: [isnotnull(isMarkedForDeletion#946260), NOT isMarkedForDeletion#946260, (size(items#946261, true)..., Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [IsNotNull(isMarkedForDeletion), Not(EqualTo(isMarkedForDeletion,true)), IsNotNull(items)], ReadSchema: struct<internalUUID:string,id:string,isMarkedForDeletion:boolean,items:array<struct<number:string..."];
1->0;
2->1;
3->2;
4->3;
5->4;
6->5;
7->6;
8->7;
9->8;
10->9;
12->10;
13->12;
14->13;
15->14;
17->15;
18->17;
19->18;
21->19;
22->21;
23->22;
25->23;
26->25;
27->26;
28->27;
30->28;
31->30;
32->31;
33->32;
34->33;
36->34;
37->36;
38->37;
39->38;
41->39;
42->41;
43->42;
44->38;
46->44;
47->46;
49->47;
50->49;
51->50;
52->36;
53->52;
55->53;
56->55;
57->56;
58->57;
59->26;
60->59;
61->60;
63->61;
64->63;
65->64;
66->65;
67->66;
68->67;
69->68;
70->69;
71->70;
73->71;
74->73;
76->74;
77->76;
78->77;
80->78;
81->80;
82->81;
83->82;
84->83;
85->84;
86->85;
87->86;
89->87;
90->89;
91->90;
93->91;
94->93;
95->90;
97->95;
98->97;
100->98;
101->100;
102->101;
52->89;
103->81;
105->103;
106->105;
107->106;
109->107;
110->109;
111->110;
112->111;
113->112;
114->113;
116->114;
117->116;
118->117;
119->118;
120->119;
122->120;
123->122;
124->123;
125->124;
126->125;
127->126;
128->127;
130->128;
131->130;
132->131;
134->132;
135->134;
136->135;
137->136;
138->130;
139->138;
140->139;
142->140;
143->142;
144->143;
145->144;
146->145;
147->146;
149->147;
150->149;
151->150;
152->151;
153->139;
154->153;
155->154;
157->155;
158->157;
159->158;
160->159;
161->160;
162->161;
164->162;
165->164;
166->165;
167->166;
169->167;
170->169;
171->170;
44->166;
52->164;
172->117;
173->172;
174->173;
175->174;
176->175;
178->176;
179->178;
180->179;
181->180;
183->181;
184->183;
185->184;
44->180;
52->178;
186->111;
187->186;
189->187;
190->189;
191->190;
192->191;
193->192;
194->193;
195->194;
197->195;
198->197;
199->198;
200->199;
201->200;
202->201;
203->202;
205->203;
131->205;
206->205;
207->206;
140->207;
208->207;
209->208;
155->209;
210->192;
211->210;
212->211;
213->212;
214->213;
216->214;
217->216;
218->217;
181->218;
44->218;
52->216;
220->74;
221->220;
222->221;
224->222;
225->224;
226->67;
227->226;
229->227;
230->229;
231->230;
233->19;
234->233;
235->234;
236->235;
238->236;
239->238;
240->239;
241->240;
242->241;
243->242;
147->243;
244->235;
245->244;
155->245;
246->17;
248->246;
249->248;
250->249;
251->250;
253->251;
254->253;
255->254;
256->255;
}
== Physical Plan ==
AdaptiveSparkPlan (562)
+- == Final Plan ==
ResultQueryStage (279), Statistics(sizeInBytes=8.0 EiB)
+- Execute InsertIntoHadoopFsRelationCommand (278)
+- WriteFiles (277)
+- Project (276)
+- Filter (275)
+- ObjectHashAggregate (274)
+- AQEShuffleRead (273)
+- ShuffleQueryStage (272), Statistics(sizeInBytes=3.4 KiB, rowCount=11)
+- Exchange (271)
+- ObjectHashAggregate (270)
+- Project (269)
+- Window (268)
+- * Sort (267)
+- AQEShuffleRead (266)
+- ShuffleQueryStage (265), Statistics(sizeInBytes=4.4 KiB, rowCount=11)
+- Exchange (264)
+- Project (263)
+- * BroadcastHashJoin Inner BuildRight (262)
:- * Project (250)
: +- * SortMergeJoin Inner (249)
: :- * Sort (231)
: : +- AQEShuffleRead (230)
: : +- ShuffleQueryStage (229), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: : +- Exchange (228)
: : +- * Project (227)
: : +- * BroadcastHashJoin LeftOuter BuildRight (226)
: : :- AQEShuffleRead (32)
: : : +- ShuffleQueryStage (31), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: : : +- Exchange (30)
: : : +- * Project (29)
: : : +- * Generate (28)
: : : +- * Project (27)
: : : +- * Generate (26)
: : : +- Project (25)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (24)
: : : :- * Project (15)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (14)
: : : : :- ShuffleQueryStage (5), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: : : : : +- Exchange (4)
: : : : : +- * Filter (3)
: : : : : +- * ColumnarToRow (2)
: : : : : +- Scan parquet (1)
: : : : +- BroadcastQueryStage (13), Statistics(sizeInBytes=2.1 MiB, rowCount=1.46E+3)
: : : : +- BroadcastExchange (12)
: : : : +- * Project (11)
: : : : +- ShuffleQueryStage (10), Statistics(sizeInBytes=202.9 KiB, rowCount=1.46E+3)
: : : : +- Exchange (9)
: : : : +- * Project (8)
: : : : +- * ColumnarToRow (7)
: : : : +- Scan parquet (6)
: : : +- BroadcastQueryStage (23), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- BroadcastExchange (22)
: : : +- ShuffleQueryStage (21), Statistics(sizeInBytes=88.5 KiB, rowCount=145)
: : : +- Exchange (20)
: : : +- * Project (19)
: : : +- * Filter (18)
: : : +- * ColumnarToRow (17)
: : : +- Scan parquet (16)
: : +- BroadcastQueryStage (225), Statistics(sizeInBytes=2.0 MiB, rowCount=434)
: : +- BroadcastExchange (224)
: : +- AQEShuffleRead (223)
: : +- ShuffleQueryStage (222), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: : +- Exchange (221)
: : +- * SerializeFromObject (220)
: : +- * MapElements (219)
: : +- * DeserializeToObject (218)
: : +- * Project (217)
: : +- * BroadcastHashJoin LeftOuter BuildRight (216)
: : :- ObjectHashAggregate (208)
: : : +- AQEShuffleRead (207)
: : : +- ShuffleQueryStage (206), Statistics(sizeInBytes=5.3 MiB, rowCount=434)
: : : +- Exchange (205)
: : : +- ObjectHashAggregate (204)
: : : +- * Project (203)
: : : +- * SortMergeJoin LeftOuter (202)
: : : :- * Sort (195)
: : : : +- AQEShuffleRead (194)
: : : : +- ShuffleQueryStage (193), Statistics(sizeInBytes=398.9 KiB, rowCount=434)
: : : : +- Exchange (192)
: : : : +- * Project (191)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (190)
: : : : :- * Project (54)
: : : : : +- * Project (53)
: : : : : +- * Generate (52)
: : : : : +- * Generate (51)
: : : : : +- * Project (50)
: : : : : +- Project (49)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (48)
: : : : : :- * BroadcastHashJoin LeftOuter BuildRight (45)
: : : : : : :- ShuffleQueryStage (36), Statistics(sizeInBytes=40.7 KiB, rowCount=434)
: : : : : : : +- Exchange (35)
: : : : : : : +- * ColumnarToRow (34)
: : : : : : : +- Scan parquet (33)
: : : : : : +- BroadcastQueryStage (44), Statistics(sizeInBytes=2.1 MiB, rowCount=1.46E+3)
: : : : : : +- BroadcastExchange (43)
: : : : : : +- * Project (42)
: : : : : : +- ShuffleQueryStage (41), Statistics(sizeInBytes=1122.3 KiB, rowCount=1.46E+3)
: : : : : : +- Exchange (40)
: : : : : : +- * Project (39)
: : : : : : +- * ColumnarToRow (38)
: : : : : : +- Scan parquet (37)
: : : : : +- BroadcastQueryStage (47), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : : +- ReusedExchange (46)
: : : : +- BroadcastQueryStage (189), Statistics(sizeInBytes=2.0 MiB, rowCount=55)
: : : : +- BroadcastExchange (188)
: : : : +- * HashAggregate (187)
: : : : +- AQEShuffleRead (186)
: : : : +- ShuffleQueryStage (185), Statistics(sizeInBytes=5.6 KiB, rowCount=55)
: : : : +- Exchange (184)
: : : : +- * HashAggregate (183)
: : : : +- * Project (182)
: : : : +- * BroadcastHashJoin Inner BuildLeft (181)
: : : : :- BroadcastQueryStage (136), Statistics(sizeInBytes=2.0 MiB, rowCount=55)
: : : : : +- BroadcastExchange (135)
: : : : : +- AQEShuffleRead (134)
: : : : : +- ShuffleQueryStage (133), Statistics(sizeInBytes=6.4 KiB, rowCount=55)
: : : : : +- Exchange (132)
: : : : : +- * Project (131)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (130)
: : : : : :- BroadcastQueryStage (112), Statistics(sizeInBytes=2.0 MiB, rowCount=89)
: : : : : : +- BroadcastExchange (111)
: : : : : : +- AQEShuffleRead (110)
: : : : : : +- ShuffleQueryStage (109), Statistics(sizeInBytes=10.4 KiB, rowCount=89)
: : : : : : +- Exchange (108)
: : : : : : +- * Project (107)
: : : : : : +- * Filter (106)
: : : : : : +- * Generate (105)
: : : : : : +- * Filter (104)
: : : : : : +- ObjectHashAggregate (103)
: : : : : : +- ObjectHashAggregate (102)
: : : : : : +- Generate (101)
: : : : : : +- * BroadcastHashJoin Inner BuildLeft (100)
: : : : : : :- BroadcastQueryStage (62), Statistics(sizeInBytes=2.0 MiB, rowCount=398)
: : : : : : : +- BroadcastExchange (61)
: : : : : : : +- ShuffleQueryStage (60), Statistics(sizeInBytes=240.1 KiB, rowCount=398)
: : : : : : : +- Exchange (59)
: : : : : : : +- * Project (58)
: : : : : : : +- * Filter (57)
: : : : : : : +- * ColumnarToRow (56)
: : : : : : : +- Scan parquet (55)
: : : : : : +- * Project (99)
: : : : : : +- * BroadcastHashJoin Inner BuildLeft (98)
: : : : : : :- BroadcastQueryStage (75), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
: : : : : : : +- BroadcastExchange (74)
: : : : : : : +- * Project (73)
: : : : : : : +- * Generate (72)
: : : : : : : +- * Project (71)
: : : : : : : +- * Filter (70)
: : : : : : : +- * Generate (69)
: : : : : : : +- ShuffleQueryStage (68), Statistics(sizeInBytes=704.0 B, rowCount=1)
: : : : : : : +- Exchange (67)
: : : : : : : +- * Project (66)
: : : : : : : +- * Filter (65)
: : : : : : : +- * ColumnarToRow (64)
: : : : : : : +- Scan parquet (63)
: : : : : : +- * HashAggregate (97)
: : : : : : +- AQEShuffleRead (96)
: : : : : : +- ShuffleQueryStage (95), Statistics(sizeInBytes=6.5 KiB, rowCount=139)
: : : : : : +- Exchange (94)
: : : : : : +- * HashAggregate (93)
: : : : : : +- * Project (92)
: : : : : : +- * Generate (91)
: : : : : : +- * Project (90)
: : : : : : +- * Generate (89)
: : : : : : +- Project (88)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (87)
: : : : : : :- * Project (84)
: : : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (83)
: : : : : : : :- ShuffleQueryStage (80), Statistics(sizeInBytes=37.3 KiB, rowCount=434)
: : : : : : : : +- Exchange (79)
: : : : : : : : +- * Filter (78)
: : : : : : : : +- * ColumnarToRow (77)
: : : : : : : : +- Scan parquet (76)
: : : : : : : +- BroadcastQueryStage (82), Statistics(sizeInBytes=2.1 MiB, rowCount=1.46E+3)
: : : : : : : +- ReusedExchange (81)
: : : : : : +- BroadcastQueryStage (86), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : : : +- ReusedExchange (85)
: : : : : +- * Project (129)
: : : : : +- * Generate (128)
: : : : : +- * Project (127)
: : : : : +- * Generate (126)
: : : : : +- Project (125)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (124)
: : : : : :- * Project (121)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (120)
: : : : : : :- ShuffleQueryStage (117), Statistics(sizeInBytes=40.7 KiB, rowCount=434)
: : : : : : : +- Exchange (116)
: : : : : : : +- * Filter (115)
: : : : : : : +- * ColumnarToRow (114)
: : : : : : : +- Scan parquet (113)
: : : : : : +- BroadcastQueryStage (119), Statistics(sizeInBytes=2.1 MiB, rowCount=1.46E+3)
: : : : : : +- ReusedExchange (118)
: : : : : +- BroadcastQueryStage (123), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : : +- ReusedExchange (122)
: : : : +- AQEShuffleRead (180)
: : : : +- ShuffleQueryStage (179), Statistics(sizeInBytes=6.0 KiB, rowCount=55)
: : : : +- Exchange (178)
: : : : +- * HashAggregate (177)
: : : : +- * HashAggregate (176)
: : : : +- * Project (175)
: : : : +- * BroadcastHashJoin Inner BuildLeft (174)
: : : : :- BroadcastQueryStage (159), Statistics(sizeInBytes=2.0 MiB, rowCount=89)
: : : : : +- BroadcastExchange (158)
: : : : : +- AQEShuffleRead (157)
: : : : : +- ShuffleQueryStage (156), Statistics(sizeInBytes=9.7 KiB, rowCount=89)
: : : : : +- Exchange (155)
: : : : : +- * Project (154)
: : : : : +- * Filter (153)
: : : : : +- * Generate (152)
: : : : : +- * Filter (151)
: : : : : +- ObjectHashAggregate (150)
: : : : : +- ObjectHashAggregate (149)
: : : : : +- Generate (148)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (147)
: : : : : :- BroadcastQueryStage (138), Statistics(sizeInBytes=2.0 MiB, rowCount=398)
: : : : : : +- ReusedExchange (137)
: : : : : +- * Project (146)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (145)
: : : : : :- BroadcastQueryStage (140), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
: : : : : : +- ReusedExchange (139)
: : : : : +- * HashAggregate (144)
: : : : : +- AQEShuffleRead (143)
: : : : : +- ShuffleQueryStage (142), Statistics(sizeInBytes=6.5 KiB, rowCount=139)
: : : : : +- ReusedExchange (141)
: : : : +- * Project (173)
: : : : +- * Generate (172)
: : : : +- * Project (171)
: : : : +- * Generate (170)
: : : : +- Project (169)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (168)
: : : : :- * Project (165)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (164)
: : : : : :- ShuffleQueryStage (161), Statistics(sizeInBytes=40.7 KiB, rowCount=434)
: : : : : : +- ReusedExchange (160)
: : : : : +- BroadcastQueryStage (163), Statistics(sizeInBytes=2.1 MiB, rowCount=1.46E+3)
: : : : : +- ReusedExchange (162)
: : : : +- BroadcastQueryStage (167), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (166)
: : : +- * Sort (201)
: : : +- AQEShuffleRead (200)
: : : +- ShuffleQueryStage (199), Statistics(sizeInBytes=4.9 MiB, rowCount=434)
: : : +- Exchange (198)
: : : +- * ColumnarToRow (197)
: : : +- Scan parquet (196)
: : +- BroadcastQueryStage (215), Statistics(sizeInBytes=2.0 MiB, rowCount=27)
: : +- BroadcastExchange (214)
: : +- ShuffleQueryStage (213), Statistics(sizeInBytes=1944.0 B, rowCount=27)
: : +- Exchange (212)
: : +- * Project (211)
: : +- * ColumnarToRow (210)
: : +- Scan parquet (209)
: +- * Sort (248)
: +- * Project (247)
: +- * BroadcastHashJoin Inner BuildLeft (246)
: :- BroadcastQueryStage (241), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
: : +- BroadcastExchange (240)
: : +- * Project (239)
: : +- * Filter (238)
: : +- * Generate (237)
: : +- * Project (236)
: : +- * Filter (235)
: : +- * Generate (234)
: : +- ShuffleQueryStage (233), Statistics(sizeInBytes=704.0 B, rowCount=1)
: : +- ReusedExchange (232)
: +- * HashAggregate (245)
: +- AQEShuffleRead (244)
: +- ShuffleQueryStage (243), Statistics(sizeInBytes=6.5 KiB, rowCount=139)
: +- ReusedExchange (242)
+- BroadcastQueryStage (261), Statistics(sizeInBytes=2.0 MiB, rowCount=40)
+- BroadcastExchange (260)
+- * Project (259)
+- * Filter (258)
+- * Generate (257)
+- ShuffleQueryStage (256), Statistics(sizeInBytes=25.1 KiB, rowCount=5)
+- Exchange (255)
+- * Project (254)
+- * Filter (253)
+- * ColumnarToRow (252)
+- Scan parquet (251)
+- == Initial Plan ==
Execute InsertIntoHadoopFsRelationCommand (561)
+- WriteFiles (560)
+- Project (559)
+- Filter (558)
+- ObjectHashAggregate (557)
+- Exchange (556)
+- ObjectHashAggregate (555)
+- Project (554)
+- Window (553)
+- Sort (552)
+- Exchange (551)
+- Project (550)
+- BroadcastHashJoin Inner BuildRight (549)
:- Project (541)
: +- SortMergeJoin Inner (540)
: :- Sort (501)
: : +- Exchange (500)
: : +- Project (499)
: : +- SortMergeJoin LeftOuter (498)
: : :- Sort (299)
: : : +- Exchange (298)
: : : +- Project (297)
: : : +- Generate (296)
: : : +- Project (295)
: : : +- Generate (294)
: : : +- Project (293)
: : : +- BroadcastHashJoin LeftOuter BuildRight (292)
: : : :- Project (287)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (286)
: : : : :- Exchange (281)
: : : : : +- Filter (280)
: : : : : +- Scan parquet (1)
: : : : +- BroadcastExchange (285)
: : : : +- Project (284)
: : : : +- Exchange (283)
: : : : +- Project (282)
: : : : +- Scan parquet (6)
: : : +- BroadcastExchange (291)
: : : +- Exchange (290)
: : : +- Project (289)
: : : +- Filter (288)
: : : +- Scan parquet (16)
: : +- Sort (497)
: : +- Exchange (496)
: : +- SerializeFromObject (495)
: : +- MapElements (494)
: : +- DeserializeToObject (493)
: : +- Project (492)
: : +- BroadcastHashJoin LeftOuter BuildRight (491)
: : :- ObjectHashAggregate (487)
: : : +- Exchange (486)
: : : +- ObjectHashAggregate (485)
: : : +- Project (484)
: : : +- SortMergeJoin LeftOuter (483)
: : : :- Sort (480)
: : : : +- Exchange (479)
: : : : +- Project (478)
: : : : +- SortMergeJoin LeftOuter (477)
: : : : :- Sort (318)
: : : : : +- Project (317)
: : : : : +- Project (316)
: : : : : +- Generate (315)
: : : : : +- Generate (314)
: : : : : +- Project (313)
: : : : : +- Project (312)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (311)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (305)
: : : : : : :- Exchange (300)
: : : : : : : +- Scan parquet (33)
: : : : : : +- BroadcastExchange (304)
: : : : : : +- Project (303)
: : : : : : +- Exchange (302)
: : : : : : +- Project (301)
: : : : : : +- Scan parquet (37)
: : : : : +- BroadcastExchange (310)
: : : : : +- Exchange (309)
: : : : : +- Project (308)
: : : : : +- Filter (307)
: : : : : +- Scan parquet (306)
: : : : +- Sort (476)
: : : : +- HashAggregate (475)
: : : : +- Exchange (474)
: : : : +- HashAggregate (473)
: : : : +- Project (472)
: : : : +- SortMergeJoin Inner (471)
: : : : :- Sort (391)
: : : : : +- Exchange (390)
: : : : : +- Project (389)
: : : : : +- SortMergeJoin Inner (388)
: : : : : :- Sort (366)
: : : : : : +- Exchange (365)
: : : : : : +- Project (364)
: : : : : : +- Filter (363)
: : : : : : +- Generate (362)
: : : : : : +- Filter (361)
: : : : : : +- ObjectHashAggregate (360)
: : : : : : +- ObjectHashAggregate (359)
: : : : : : +- Generate (358)
: : : : : : +- BroadcastHashJoin Inner BuildLeft (357)
: : : : : : :- BroadcastExchange (322)
: : : : : : : +- Exchange (321)
: : : : : : : +- Project (320)
: : : : : : : +- Filter (319)
: : : : : : : +- Scan parquet (55)
: : : : : : +- Project (356)
: : : : : : +- BroadcastHashJoin Inner BuildLeft (355)
: : : : : : :- BroadcastExchange (331)
: : : : : : : +- Project (330)
: : : : : : : +- Generate (329)
: : : : : : : +- Project (328)
: : : : : : : +- Filter (327)
: : : : : : : +- Generate (326)
: : : : : : : +- Exchange (325)
: : : : : : : +- Project (324)
: : : : : : : +- Filter (323)
: : : : : : : +- Scan parquet (63)
: : : : : : +- HashAggregate (354)
: : : : : : +- Exchange (353)
: : : : : : +- HashAggregate (352)
: : : : : : +- Project (351)
: : : : : : +- Generate (350)
: : : : : : +- Project (349)
: : : : : : +- Generate (348)
: : : : : : +- Project (347)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (346)
: : : : : : :- Project (340)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (339)
: : : : : : : :- Exchange (333)
: : : : : : : : +- Filter (332)
: : : : : : : : +- Scan parquet (76)
: : : : : : : +- BroadcastExchange (338)
: : : : : : : +- Project (337)
: : : : : : : +- Exchange (336)
: : : : : : : +- Project (335)
: : : : : : : +- Scan parquet (334)
: : : : : : +- BroadcastExchange (345)
: : : : : : +- Exchange (344)
: : : : : : +- Project (343)
: : : : : : +- Filter (342)
: : : : : : +- Scan parquet (341)
: : : : : +- Sort (387)
: : : : : +- Project (386)
: : : : : +- Generate (385)
: : : : : +- Project (384)
: : : : : +- Generate (383)
: : : : : +- Project (382)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (381)
: : : : : :- Project (375)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (374)
: : : : : : :- Exchange (368)
: : : : : : : +- Filter (367)
: : : : : : : +- Scan parquet (113)
: : : : : : +- BroadcastExchange (373)
: : : : : : +- Project (372)
: : : : : : +- Exchange (371)
: : : : : : +- Project (370)
: : : : : : +- Scan parquet (369)
: : : : : +- BroadcastExchange (380)
: : : : : +- Exchange (379)
: : : : : +- Project (378)
: : : : : +- Filter (377)
: : : : : +- Scan parquet (376)
: : : : +- Sort (470)
: : : : +- Exchange (469)
: : : : +- HashAggregate (468)
: : : : +- HashAggregate (467)
: : : : +- Project (466)
: : : : +- SortMergeJoin Inner (465)
: : : : :- Sort (442)
: : : : : +- Exchange (441)
: : : : : +- Project (440)
: : : : : +- Filter (439)
: : : : : +- Generate (438)
: : : : : +- Filter (437)
: : : : : +- ObjectHashAggregate (436)
: : : : : +- ObjectHashAggregate (435)
: : : : : +- Generate (434)
: : : : : +- BroadcastHashJoin Inner BuildLeft (433)
: : : : : :- BroadcastExchange (396)
: : : : : : +- Exchange (395)
: : : : : : +- Project (394)
: : : : : : +- Filter (393)
: : : : : : +- Scan parquet (392)
: : : : : +- Project (432)
: : : : : +- BroadcastHashJoin Inner BuildLeft (431)
: : : : : :- BroadcastExchange (406)
: : : : : : +- Project (405)
: : : : : : +- Generate (404)
: : : : : : +- Project (403)
: : : : : : +- Filter (402)
: : : : : : +- Generate (401)
: : : : : : +- Exchange (400)
: : : : : : +- Project (399)
: : : : : : +- Filter (398)
: : : : : : +- Scan parquet (397)
: : : : : +- HashAggregate (430)
: : : : : +- Exchange (429)
: : : : : +- HashAggregate (428)
: : : : : +- Project (427)
: : : : : +- Generate (426)
: : : : : +- Project (425)
: : : : : +- Generate (424)
: : : : : +- Project (423)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (422)
: : : : : :- Project (416)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (415)
: : : : : : :- Exchange (409)
: : : : : : : +- Filter (408)
: : : : : : : +- Scan parquet (407)
: : : : : : +- BroadcastExchange (414)
: : : : : : +- Project (413)
: : : : : : +- Exchange (412)
: : : : : : +- Project (411)
: : : : : : +- Scan parquet (410)
: : : : : +- BroadcastExchange (421)
: : : : : +- Exchange (420)
: : : : : +- Project (419)
: : : : : +- Filter (418)
: : : : : +- Scan parquet (417)
: : : : +- Sort (464)
: : : : +- Project (463)
: : : : +- Generate (462)
: : : : +- Project (461)
: : : : +- Generate (460)
: : : : +- Project (459)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (458)
: : : : :- Project (452)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (451)
: : : : : :- Exchange (445)
: : : : : : +- Filter (444)
: : : : : : +- Scan parquet (443)
: : : : : +- BroadcastExchange (450)
: : : : : +- Project (449)
: : : : : +- Exchange (448)
: : : : : +- Project (447)
: : : : : +- Scan parquet (446)
: : : : +- BroadcastExchange (457)
: : : : +- Exchange (456)
: : : : +- Project (455)
: : : : +- Filter (454)
: : : : +- Scan parquet (453)
: : : +- Sort (482)
: : : +- Exchange (481)
: : : +- Scan parquet (196)
: : +- BroadcastExchange (490)
: : +- Exchange (489)
: : +- Project (488)
: : +- Scan parquet (209)
: +- Sort (539)
: +- Project (538)
: +- BroadcastHashJoin Inner BuildLeft (537)
: :- BroadcastExchange (512)
: : +- Project (511)
: : +- Filter (510)
: : +- Generate (509)
: : +- Project (508)
: : +- Filter (507)
: : +- Generate (506)
: : +- Exchange (505)
: : +- Project (504)
: : +- Filter (503)
: : +- Scan parquet (502)
: +- HashAggregate (536)
: +- Exchange (535)
: +- HashAggregate (534)
: +- Project (533)
: +- Generate (532)
: +- Project (531)
: +- Generate (530)
: +- Project (529)
: +- BroadcastHashJoin LeftOuter BuildRight (528)
: :- Project (522)
: : +- BroadcastHashJoin LeftOuter BuildRight (521)
: : :- Exchange (515)
: : : +- Filter (514)
: : : +- Scan parquet (513)
: : +- BroadcastExchange (520)
: : +- Project (519)
: : +- Exchange (518)
: : +- Project (517)
: : +- Scan parquet (516)
: +- BroadcastExchange (527)
: +- Exchange (526)
: +- Project (525)
: +- Filter (524)
: +- Scan parquet (523)
+- BroadcastExchange (548)
+- Project (547)
+- Filter (546)
+- Generate (545)
+- Exchange (544)
+- Project (543)
+- Filter (542)
+- Scan parquet (251)
(1) 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]
PushedFilters: [IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string>
(2) ColumnarToRow [codegen id : 1]
Input [2]: [product#944305, plant#944306]
(3) Filter [codegen id : 1]
Input [2]: [product#944305, plant#944306]
Condition : (isnotnull(plant#944306) AND isnotnull(product#944305))
(4) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(product#944305, plant#944306, 37), REPARTITION_BY_NUM, [plan_id=1597976]
(5) ShuffleQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 0
(6) 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>>>>
(7) ColumnarToRow [codegen id : 2]
Input [4]: [plant#944363, product#944364, productionAspect#944366, systemId#944361]
(8) Project [codegen id : 2]
Output [4]: [plant#944363.internalRefUUID AS _extract_internalRefUUID#962405, product#944364.internalRefUUID AS _extract_internalRefUUID#962404, productionAspect#944366.productMovementPlants.unitOfIssue.code AS _extract_code#962402, productionAspect#944366.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#962403]
Input [4]: [plant#944363, product#944364, productionAspect#944366, systemId#944361]
(9) Exchange
Input [4]: [_extract_internalRefUUID#962405, _extract_internalRefUUID#962404, _extract_code#962402, _extract_internalRefUUID#962403]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597992]
(10) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#962405, _extract_internalRefUUID#962404, _extract_code#962402, _extract_internalRefUUID#962403]
Arguments: 1
(11) Project [codegen id : 30]
Output [4]: [_extract_code#962402, _extract_internalRefUUID#962403, _extract_internalRefUUID#962404, _extract_internalRefUUID#962405]
Input [4]: [_extract_internalRefUUID#962405, _extract_internalRefUUID#962404, _extract_code#962402, _extract_internalRefUUID#962403]
(12) BroadcastExchange
Input [4]: [_extract_code#962402, _extract_internalRefUUID#962403, _extract_internalRefUUID#962404, _extract_internalRefUUID#962405]
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=1600823]
(13) BroadcastQueryStage
Output [4]: [_extract_code#962402, _extract_internalRefUUID#962403, _extract_internalRefUUID#962404, _extract_internalRefUUID#962405]
Arguments: 47
(14) BroadcastHashJoin [codegen id : 41]
Left keys [4]: [coalesce(product#944305, ), isnull(product#944305), coalesce(plant#944306, ), isnull(plant#944306)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962404, ), isnull(_extract_internalRefUUID#962404), coalesce(_extract_internalRefUUID#962405, ), isnull(_extract_internalRefUUID#962405)]
Join type: LeftOuter
Join condition: None
(15) Project [codegen id : 41]
Output [4]: [product#944305, plant#944306, _extract_code#962402, _extract_internalRefUUID#962403]
Input [6]: [product#944305, plant#944306, _extract_code#962402, _extract_internalRefUUID#962403, _extract_internalRefUUID#962404, _extract_internalRefUUID#962405]
(16) 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>>>
(17) ColumnarToRow [codegen id : 3]
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
(18) Filter [codegen id : 3]
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
Condition : isnotnull(internalUUID#944397)
(19) Project [codegen id : 3]
Output [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
(20) Exchange
Input [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598013]
(21) ShuffleQueryStage
Output [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: 2
(22) BroadcastExchange
Input [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1600261]
(23) BroadcastQueryStage
Output [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: 48
(24) BroadcastHashJoin [codegen id : 41]
Left keys [1]: [product#944305]
Right keys [1]: [internalUUID#944397]
Join type: LeftOuter
Join condition: None
(25) Project
Output [3]: [product#944305, plant#944306, filter(unitOfMeasureConversions#944403, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962402) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962403)) 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#962402, _extract_internalRefUUID#962403, internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
(26) Generate [codegen id : 42]
Input [3]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409]
Arguments: explode(filteredUnitOfMeasureConversions#944409.quantityNumerator), [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409], true, [quantityNumerator#944417]
(27) Project [codegen id : 42]
Output [3]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409.quantityDenominator AS _extract_quantityDenominator#962240]
Input [4]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409, quantityNumerator#944417]
(28) Generate [codegen id : 42]
Input [3]: [product#944305, plant#944306, _extract_quantityDenominator#962240]
Arguments: explode(_extract_quantityDenominator#962240), [product#944305, plant#944306], true, [quantityDenominator#944420]
(29) Project [codegen id : 42]
Output [2]: [product#944305, plant#944306]
Input [3]: [product#944305, plant#944306, quantityDenominator#944420]
(30) 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=1611154]
(31) ShuffleQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 73
(32) AQEShuffleRead
Input [2]: [product#944305, plant#944306]
Arguments: local
(33) Scan parquet
Output [3]: [product#945954, plant#945955, orderDateTime#945956]
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,orderDateTime:timestamp>
(34) ColumnarToRow [codegen id : 4]
Input [3]: [product#945954, plant#945955, orderDateTime#945956]
(35) Exchange
Input [3]: [product#945954, plant#945955, orderDateTime#945956]
Arguments: hashpartitioning(product#945954, plant#945955, 37), REPARTITION_BY_NUM, [plan_id=1598037]
(36) ShuffleQueryStage
Output [3]: [product#945954, plant#945955, orderDateTime#945956]
Arguments: 3
(37) Scan parquet
Output [9]: [internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966, systemId#945958]
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<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>
(38) ColumnarToRow [codegen id : 5]
Input [9]: [internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966, systemId#945958]
(39) Project [codegen id : 5]
Output [9]: [systemId#945958, internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966]
Input [9]: [internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966, systemId#945958]
(40) Exchange
Input [9]: [systemId#945958, internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598051]
(41) ShuffleQueryStage
Output [9]: [systemId#945958, internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966]
Arguments: 4
(42) Project [codegen id : 36]
Output [1]: [struct(systemId, systemId#945958, internalUUID, internalUUID#945959, plant, plant#945960, product, product#945961, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#945962, productionAspect, productionAspect#945963, salesPlant, salesPlant#945964, listing, listing#945965, sourceOfSupplyCategory, sourceOfSupplyCategory#945966) AS productPlant#945967]
Input [9]: [systemId#945958, internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966]
(43) BroadcastExchange
Input [1]: [productPlant#945967]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].plant.internalRefUUID)),false), [plan_id=1601936]
(44) BroadcastQueryStage
Output [1]: [productPlant#945967]
Arguments: 65
(45) BroadcastHashJoin [codegen id : 59]
Left keys [4]: [coalesce(product#945954, ), isnull(product#945954), coalesce(plant#945955, ), isnull(plant#945955)]
Right keys [4]: [coalesce(productPlant#945967.product.internalRefUUID, ), isnull(productPlant#945967.product.internalRefUUID), coalesce(productPlant#945967.plant.internalRefUUID, ), isnull(productPlant#945967.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(46) ReusedExchange [Reuses operator id: 22]
Output [3]: [internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975]
(47) BroadcastQueryStage
Output [3]: [internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975]
Arguments: 49
(48) BroadcastHashJoin [codegen id : 59]
Left keys [1]: [product#945954]
Right keys [1]: [internalUUID#945969]
Join type: LeftOuter
Join condition: None
(49) Project
Output [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, filter(unitOfMeasureConversions#945975, lambdafunction((((lambda u#944410.measurementUnit1.code = productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#944410.measurementUnit1.internalRefUUID = productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#945973.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#945973.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#945980]
Input [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975]
(50) Project [codegen id : 60]
Output [6]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, filteredUnitOfMeasureConversions#945980.quantityDenominator AS _extract_quantityDenominator#962406, filteredUnitOfMeasureConversions#945980.quantityNumerator AS _extract_quantityNumerator#962407]
Input [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, filteredUnitOfMeasureConversions#945980]
(51) Generate [codegen id : 60]
Input [6]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, _extract_quantityDenominator#962406, _extract_quantityNumerator#962407]
Arguments: explode(_extract_quantityNumerator#962407), [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, _extract_quantityDenominator#962406], true, [quantityNumerator#945981]
(52) Generate [codegen id : 60]
Input [6]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, _extract_quantityDenominator#962406, quantityNumerator#945981]
Arguments: explode(_extract_quantityDenominator#962406), [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, quantityNumerator#945981], true, [quantityDenominator#945982]
(53) Project [codegen id : 60]
Output [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, (cast(quantityNumerator#945981 as double) / cast(quantityDenominator#945982 as double)) AS outboundUnit#945983]
Input [6]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, quantityNumerator#945981, quantityDenominator#945982]
(54) Project [codegen id : 60]
Output [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, CASE WHEN (isnull(outboundUnit#945983) OR (outboundUnit#945983 <= 0.0)) THEN 1.0 ELSE outboundUnit#945983 END AS outboundUnit#945984]
Input [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945983]
(55) Scan parquet
Output [6]: [internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990, systemId#945985]
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-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(56) ColumnarToRow [codegen id : 7]
Input [6]: [internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990, systemId#945985]
(57) Filter [codegen id : 7]
Input [6]: [internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990, systemId#945985]
Condition : (isnotnull(plant#945988.internalRefUUID) AND isnotnull(product#945987.internalRefUUID))
(58) Project [codegen id : 7]
Output [6]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]
Input [6]: [internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990, systemId#945985]
(59) Exchange
Input [6]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598101]
(60) ShuffleQueryStage
Output [6]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]
Arguments: 7
(61) BroadcastExchange
Input [6]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1600299]
(62) BroadcastQueryStage
Output [6]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]
Arguments: 66
(63) Scan parquet
Output [2]: [marketUnit#945991, distributionCenters#945997]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,IW_MU_CRP-125444_1), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(64) ColumnarToRow [codegen id : 8]
Input [2]: [marketUnit#945991, distributionCenters#945997]
(65) Filter [codegen id : 8]
Input [2]: [marketUnit#945991, distributionCenters#945997]
Condition : (((marketUnit#945991 <=> IW_MU_CRP-125444_1) AND (size(distributionCenters#945997, true) > 0)) AND isnotnull(distributionCenters#945997))
(66) Project [codegen id : 8]
Output [1]: [distributionCenters#945997]
Input [2]: [marketUnit#945991, distributionCenters#945997]
(67) Exchange
Input [1]: [distributionCenters#945997]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598121]
(68) ShuffleQueryStage
Output [1]: [distributionCenters#945997]
Arguments: 8
(69) Generate [codegen id : 37]
Input [1]: [distributionCenters#945997]
Arguments: explode(distributionCenters#945997), false, [distributionCenters#946012]
(70) Filter [codegen id : 37]
Input [1]: [distributionCenters#946012]
Condition : (((size(distributionCenters#946012.storageLocations, true) > 0) AND isnotnull(distributionCenters#946012.storageLocations)) AND isnotnull(distributionCenters#946012.internalRefUUID))
(71) Project [codegen id : 37]
Output [2]: [distributionCenters#946012.internalRefUUID AS _extract_internalRefUUID#962280, distributionCenters#946012.storageLocations AS _extract_storageLocations#962281]
Input [1]: [distributionCenters#946012]
(72) Generate [codegen id : 37]
Input [2]: [_extract_internalRefUUID#962280, _extract_storageLocations#962281]
Arguments: explode(_extract_storageLocations#962281), [_extract_internalRefUUID#962280], false, [storageLocations#946013]
(73) Project [codegen id : 37]
Output [3]: [_extract_internalRefUUID#962280 AS plantUuid#946015, storageLocations#946013.id AS storageLocId#946016, storageLocations#946013.internalRefUUID AS storageLocUuid#946017]
Input [2]: [_extract_internalRefUUID#962280, storageLocations#946013]
(74) BroadcastExchange
Input [3]: [plantUuid#946015, storageLocId#946016, storageLocUuid#946017]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1602941]
(75) BroadcastQueryStage
Output [3]: [plantUuid#946015, storageLocId#946016, storageLocUuid#946017]
Arguments: 68
(76) Scan parquet
Output [2]: [product#946018, plant#946019]
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]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(77) ColumnarToRow [codegen id : 9]
Input [2]: [product#946018, plant#946019]
(78) Filter [codegen id : 9]
Input [2]: [product#946018, plant#946019]
Condition : isnotnull(plant#946019)
(79) Exchange
Input [2]: [product#946018, plant#946019]
Arguments: hashpartitioning(product#946018, plant#946019, 37), REPARTITION_BY_NUM, [plan_id=1598144]
(80) ShuffleQueryStage
Output [2]: [product#946018, plant#946019]
Arguments: 9
(81) ReusedExchange [Reuses operator id: 12]
Output [4]: [_extract_code#962410, _extract_internalRefUUID#962411, _extract_internalRefUUID#962409, _extract_internalRefUUID#962408]
(82) BroadcastQueryStage
Output [4]: [_extract_code#962410, _extract_internalRefUUID#962411, _extract_internalRefUUID#962409, _extract_internalRefUUID#962408]
Arguments: 51
(83) BroadcastHashJoin [codegen id : 43]
Left keys [4]: [coalesce(product#946018, ), isnull(product#946018), coalesce(plant#946019, ), isnull(plant#946019)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962409, ), isnull(_extract_internalRefUUID#962409), coalesce(_extract_internalRefUUID#962408, ), isnull(_extract_internalRefUUID#962408)]
Join type: LeftOuter
Join condition: None
(84) Project [codegen id : 43]
Output [4]: [product#946018, plant#946019, _extract_code#962410, _extract_internalRefUUID#962411]
Input [6]: [product#946018, plant#946019, _extract_code#962410, _extract_internalRefUUID#962411, _extract_internalRefUUID#962409, _extract_internalRefUUID#962408]
(85) ReusedExchange [Reuses operator id: 22]
Output [3]: [internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039]
(86) BroadcastQueryStage
Output [3]: [internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039]
Arguments: 52
(87) BroadcastHashJoin [codegen id : 43]
Left keys [1]: [product#946018]
Right keys [1]: [internalUUID#946033]
Join type: LeftOuter
Join condition: None
(88) Project
Output [2]: [plant#946019, filter(unitOfMeasureConversions#946039, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962410) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962411)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946037.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946037.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946044]
Input [7]: [product#946018, plant#946019, _extract_code#962410, _extract_internalRefUUID#962411, internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039]
(89) Generate [codegen id : 44]
Input [2]: [plant#946019, filteredUnitOfMeasureConversions#946044]
Arguments: explode(filteredUnitOfMeasureConversions#946044.quantityNumerator), [plant#946019, filteredUnitOfMeasureConversions#946044], true, [quantityNumerator#946045]
(90) Project [codegen id : 44]
Output [2]: [plant#946019, filteredUnitOfMeasureConversions#946044.quantityDenominator AS _extract_quantityDenominator#962282]
Input [3]: [plant#946019, filteredUnitOfMeasureConversions#946044, quantityNumerator#946045]
(91) Generate [codegen id : 44]
Input [2]: [plant#946019, _extract_quantityDenominator#962282]
Arguments: explode(_extract_quantityDenominator#962282), [plant#946019], true, [quantityDenominator#946046]
(92) Project [codegen id : 44]
Output [1]: [plant#946019]
Input [2]: [plant#946019, quantityDenominator#946046]
(93) HashAggregate [codegen id : 44]
Input [1]: [plant#946019]
Keys [1]: [plant#946019]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946019]
(94) Exchange
Input [1]: [plant#946019]
Arguments: hashpartitioning(plant#946019, 37), ENSURE_REQUIREMENTS, [plan_id=1613477]
(95) ShuffleQueryStage
Output [1]: [plant#946019]
Arguments: 74
(96) AQEShuffleRead
Input [1]: [plant#946019]
Arguments: coalesced
(97) HashAggregate
Input [1]: [plant#946019]
Keys [1]: [plant#946019]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946019]
(98) BroadcastHashJoin
Left keys [1]: [plantUuid#946015]
Right keys [1]: [plant#946019]
Join type: Inner
Join condition: None
(99) Project
Output [3]: [plantUuid#946015, storageLocId#946016, storageLocUuid#946017]
Input [4]: [plantUuid#946015, storageLocId#946016, storageLocUuid#946017, plant#946019]
(100) BroadcastHashJoin [codegen id : 49]
Left keys [2]: [coalesce(plant#945988.internalRefUUID, ), isnull(plant#945988.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#946015, ), isnull(plantUuid#946015)]
Join type: Inner
Join condition: None
(101) Generate
Input [9]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990, plantUuid#946015, storageLocId#946016, storageLocUuid#946017]
Arguments: explode(filter(stockQuantities#945990, lambdafunction(((lambda x#944569.storageLocation.internalRefUuid = storageLocUuid#946017) AND (lambda x#944569.storageLocation.Id = storageLocId#946016)), lambda x#944569, false))), [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, plantUuid#946015], false, [stockQuantity#946049]
(102) ObjectHashAggregate
Input [7]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, plantUuid#946015, stockQuantity#946049]
Keys [5]: [plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985]
Functions [2]: [partial_first(calculationDateTime#945989, false), partial_collect_list(stockQuantity#946049, 0, 0)]
Aggregate Attributes [3]: [first#947911, valueSet#947912, buf#947913]
Results [8]: [plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985, first#947914, valueSet#947915, buf#947916]
(103) ObjectHashAggregate
Input [8]: [plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985, first#947914, valueSet#947915, buf#947916]
Keys [5]: [plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985]
Functions [2]: [first(calculationDateTime#945989, false), collect_list(stockQuantity#946049, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#945989)()#944584, collect_list(stockQuantity#946049, 0, 0)#944585]
Results [4]: [product#945987, plant#945988, first(calculationDateTime#945989)()#944584 AS calculationDateTime#946050, collect_list(stockQuantity#946049, 0, 0)#944585 AS stockQuantities#946051]
(104) Filter [codegen id : 50]
Input [4]: [product#945987, plant#945988, calculationDateTime#946050, stockQuantities#946051]
Condition : ((size(stockQuantities#946051, true) > 0) AND isnotnull(calculationDateTime#946050))
(105) Generate [codegen id : 50]
Input [4]: [product#945987, plant#945988, calculationDateTime#946050, stockQuantities#946051]
Arguments: explode(stockQuantities#946051), [product#945987, plant#945988, calculationDateTime#946050], false, [stockQuantity#946052]
(106) Filter [codegen id : 50]
Input [4]: [product#945987, plant#945988, calculationDateTime#946050, stockQuantity#946052]
Condition : (((isnotnull(stockQuantity#946052.specialStockIndicator.code) AND isnotnull(stockQuantity#946052.stockType.code)) AND (stockQuantity#946052.specialStockIndicator.code = )) AND (stockQuantity#946052.stockType.code = 01))
(107) Project [codegen id : 50]
Output [5]: [plant#945988.internalRefUUID AS plantUuid#946054, product#945987.internalRefUUID AS productUuid#946056, calculationDateTime#946050, stockQuantity#946052.storagelocation.id AS storageLocId#946057, stockQuantity#946052.quantity.measure AS quantity#946059]
Input [4]: [product#945987, plant#945988, calculationDateTime#946050, stockQuantity#946052]
(108) Exchange
Input [5]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059]
Arguments: hashpartitioning(productUuid#946056, plantUuid#946054, 37), ENSURE_REQUIREMENTS, [plan_id=1615389]
(109) ShuffleQueryStage
Output [5]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059]
Arguments: 79
(110) AQEShuffleRead
Input [5]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059]
Arguments: local
(111) BroadcastExchange
Input [5]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1615982]
(112) BroadcastQueryStage
Output [5]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059]
Arguments: 81
(113) Scan parquet
Output [3]: [product#946062, plant#946063, orderDateTime#946064]
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]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(114) ColumnarToRow [codegen id : 12]
Input [3]: [product#946062, plant#946063, orderDateTime#946064]
(115) Filter [codegen id : 12]
Input [3]: [product#946062, plant#946063, orderDateTime#946064]
Condition : ((isnotnull(orderDateTime#946064) AND isnotnull(plant#946063)) AND isnotnull(product#946062))
(116) Exchange
Input [3]: [product#946062, plant#946063, orderDateTime#946064]
Arguments: hashpartitioning(product#946062, plant#946063, 37), REPARTITION_BY_NUM, [plan_id=1598224]
(117) ShuffleQueryStage
Output [3]: [product#946062, plant#946063, orderDateTime#946064]
Arguments: 14
(118) ReusedExchange [Reuses operator id: 12]
Output [4]: [_extract_code#962412, _extract_internalRefUUID#962413, _extract_internalRefUUID#962414, _extract_internalRefUUID#962415]
(119) BroadcastQueryStage
Output [4]: [_extract_code#962412, _extract_internalRefUUID#962413, _extract_internalRefUUID#962414, _extract_internalRefUUID#962415]
Arguments: 54
(120) BroadcastHashJoin [codegen id : 53]
Left keys [4]: [coalesce(product#946062, ), isnull(product#946062), coalesce(plant#946063, ), isnull(plant#946063)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962414, ), isnull(_extract_internalRefUUID#962414), coalesce(_extract_internalRefUUID#962415, ), isnull(_extract_internalRefUUID#962415)]
Join type: LeftOuter
Join condition: None
(121) Project [codegen id : 53]
Output [5]: [product#946062, plant#946063, orderDateTime#946064, _extract_code#962412, _extract_internalRefUUID#962413]
Input [7]: [product#946062, plant#946063, orderDateTime#946064, _extract_code#962412, _extract_internalRefUUID#962413, _extract_internalRefUUID#962414, _extract_internalRefUUID#962415]
(122) ReusedExchange [Reuses operator id: 22]
Output [3]: [internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083]
(123) BroadcastQueryStage
Output [3]: [internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083]
Arguments: 55
(124) BroadcastHashJoin [codegen id : 53]
Left keys [1]: [product#946062]
Right keys [1]: [internalUUID#946077]
Join type: LeftOuter
Join condition: None
(125) Project
Output [4]: [product#946062, plant#946063, orderDateTime#946064, filter(unitOfMeasureConversions#946083, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962412) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962413)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946081.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946081.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946088]
Input [8]: [product#946062, plant#946063, orderDateTime#946064, _extract_code#962412, _extract_internalRefUUID#962413, internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083]
(126) Generate
Input [4]: [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088]
Arguments: explode(filteredUnitOfMeasureConversions#946088.quantityNumerator), [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088], true, [quantityNumerator#946089]
(127) Project
Output [4]: [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088.quantityDenominator AS _extract_quantityDenominator#962289]
Input [5]: [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088, quantityNumerator#946089]
(128) Generate
Input [4]: [product#946062, plant#946063, orderDateTime#946064, _extract_quantityDenominator#962289]
Arguments: explode(_extract_quantityDenominator#962289), [product#946062, plant#946063, orderDateTime#946064], true, [quantityDenominator#946090]
(129) Project
Output [3]: [product#946062, plant#946063, orderDateTime#946064]
Input [4]: [product#946062, plant#946063, orderDateTime#946064, quantityDenominator#946090]
(130) BroadcastHashJoin [codegen id : 54]
Left keys [2]: [plantUuid#946054, productUuid#946056]
Right keys [2]: [plant#946063, product#946062]
Join type: Inner
Join condition: (calculationDateTime#946050 <= orderDateTime#946064)
(131) Project [codegen id : 54]
Output [5]: [plantUuid#946054 AS plant#946093, productUuid#946056 AS product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Input [8]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059, product#946062, plant#946063, orderDateTime#946064]
(132) Exchange
Input [5]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Arguments: hashpartitioning(coalesce(plant#946093, ), isnull(plant#946093), coalesce(product#946094, ), isnull(product#946094), coalesce(storageLocId#946057, ), isnull(storageLocId#946057), coalesce(calculationDateTime#946050, 1970-01-01 00:00:00), isnull(calculationDateTime#946050), 37), ENSURE_REQUIREMENTS, [plan_id=1616960]
(133) ShuffleQueryStage
Output [5]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Arguments: 83
(134) AQEShuffleRead
Input [5]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Arguments: local
(135) BroadcastExchange
Input [5]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, timestamp, true], 1970-01-01 00:00:00), isnull(input[3, timestamp, true])),false), [plan_id=1617792]
(136) BroadcastQueryStage
Output [5]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Arguments: 85
(137) ReusedExchange [Reuses operator id: 61]
Output [6]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100]
(138) BroadcastQueryStage
Output [6]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100]
Arguments: 67
(139) ReusedExchange [Reuses operator id: 74]
Output [3]: [plantUuid#946125, storageLocId#946126, storageLocUuid#946127]
(140) BroadcastQueryStage
Output [3]: [plantUuid#946125, storageLocId#946126, storageLocUuid#946127]
Arguments: 70
(141) ReusedExchange [Reuses operator id: 94]
Output [1]: [plant#946129]
(142) ShuffleQueryStage
Output [1]: [plant#946129]
Arguments: 76
(143) AQEShuffleRead
Input [1]: [plant#946129]
Arguments: coalesced
(144) HashAggregate
Input [1]: [plant#946129]
Keys [1]: [plant#946129]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946129]
(145) BroadcastHashJoin
Left keys [1]: [plantUuid#946125]
Right keys [1]: [plant#946129]
Join type: Inner
Join condition: None
(146) Project
Output [3]: [plantUuid#946125, storageLocId#946126, storageLocUuid#946127]
Input [4]: [plantUuid#946125, storageLocId#946126, storageLocUuid#946127, plant#946129]
(147) BroadcastHashJoin [codegen id : 51]
Left keys [2]: [coalesce(plant#946098.internalRefUUID, ), isnull(plant#946098.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#946125, ), isnull(plantUuid#946125)]
Join type: Inner
Join condition: None
(148) Generate
Input [9]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100, plantUuid#946125, storageLocId#946126, storageLocUuid#946127]
Arguments: explode(filter(stockQuantities#946100, lambdafunction(((lambda x#944569.storageLocation.internalRefUuid = storageLocUuid#946127) AND (lambda x#944569.storageLocation.Id = storageLocId#946126)), lambda x#944569, false))), [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, plantUuid#946125], false, [stockQuantity#946159]
(149) ObjectHashAggregate
Input [7]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, plantUuid#946125, stockQuantity#946159]
Keys [5]: [plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095]
Functions [2]: [partial_first(calculationDateTime#946099, false), partial_collect_list(stockQuantity#946159, 0, 0)]
Aggregate Attributes [3]: [first#947919, valueSet#947920, buf#947921]
Results [8]: [plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095, first#947922, valueSet#947923, buf#947924]
(150) ObjectHashAggregate
Input [8]: [plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095, first#947922, valueSet#947923, buf#947924]
Keys [5]: [plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095]
Functions [2]: [first(calculationDateTime#946099, false), collect_list(stockQuantity#946159, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#946099)()#944584, collect_list(stockQuantity#946159, 0, 0)#944585]
Results [4]: [product#946097, plant#946098, first(calculationDateTime#946099)()#944584 AS calculationDateTime#946160, collect_list(stockQuantity#946159, 0, 0)#944585 AS stockQuantities#946161]
(151) Filter [codegen id : 52]
Input [4]: [product#946097, plant#946098, calculationDateTime#946160, stockQuantities#946161]
Condition : ((size(stockQuantities#946161, true) > 0) AND isnotnull(calculationDateTime#946160))
(152) Generate [codegen id : 52]
Input [4]: [product#946097, plant#946098, calculationDateTime#946160, stockQuantities#946161]
Arguments: explode(stockQuantities#946161), [product#946097, plant#946098, calculationDateTime#946160], false, [stockQuantity#946162]
(153) Filter [codegen id : 52]
Input [4]: [product#946097, plant#946098, calculationDateTime#946160, stockQuantity#946162]
Condition : (((isnotnull(stockQuantity#946162.specialStockIndicator.code) AND isnotnull(stockQuantity#946162.stockType.code)) AND (stockQuantity#946162.specialStockIndicator.code = )) AND (stockQuantity#946162.stockType.code = 01))
(154) Project [codegen id : 52]
Output [4]: [plant#946098.internalRefUUID AS plantUuid#946164, product#946097.internalRefUUID AS productUuid#946166, calculationDateTime#946160, stockQuantity#946162.storagelocation.id AS storageLocId#946167]
Input [4]: [product#946097, plant#946098, calculationDateTime#946160, stockQuantity#946162]
(155) Exchange
Input [4]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167]
Arguments: hashpartitioning(productUuid#946166, plantUuid#946164, 37), ENSURE_REQUIREMENTS, [plan_id=1615457]
(156) ShuffleQueryStage
Output [4]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167]
Arguments: 80
(157) AQEShuffleRead
Input [4]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167]
Arguments: local
(158) BroadcastExchange
Input [4]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1616466]
(159) BroadcastQueryStage
Output [4]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167]
Arguments: 82
(160) ReusedExchange [Reuses operator id: 116]
Output [3]: [product#946172, plant#946173, orderDateTime#946174]
(161) ShuffleQueryStage
Output [3]: [product#946172, plant#946173, orderDateTime#946174]
Arguments: 30
(162) ReusedExchange [Reuses operator id: 12]
Output [4]: [_extract_code#962422, _extract_internalRefUUID#962423, _extract_internalRefUUID#962420, _extract_internalRefUUID#962421]
(163) BroadcastQueryStage
Output [4]: [_extract_code#962422, _extract_internalRefUUID#962423, _extract_internalRefUUID#962420, _extract_internalRefUUID#962421]
Arguments: 60
(164) BroadcastHashJoin [codegen id : 55]
Left keys [4]: [coalesce(product#946172, ), isnull(product#946172), coalesce(plant#946173, ), isnull(plant#946173)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962420, ), isnull(_extract_internalRefUUID#962420), coalesce(_extract_internalRefUUID#962421, ), isnull(_extract_internalRefUUID#962421)]
Join type: LeftOuter
Join condition: None
(165) Project [codegen id : 55]
Output [5]: [product#946172, plant#946173, orderDateTime#946174, _extract_code#962422, _extract_internalRefUUID#962423]
Input [7]: [product#946172, plant#946173, orderDateTime#946174, _extract_code#962422, _extract_internalRefUUID#962423, _extract_internalRefUUID#962420, _extract_internalRefUUID#962421]
(166) ReusedExchange [Reuses operator id: 22]
Output [3]: [internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193]
(167) BroadcastQueryStage
Output [3]: [internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193]
Arguments: 61
(168) BroadcastHashJoin [codegen id : 55]
Left keys [1]: [product#946172]
Right keys [1]: [internalUUID#946187]
Join type: LeftOuter
Join condition: None
(169) Project
Output [4]: [product#946172, plant#946173, orderDateTime#946174, filter(unitOfMeasureConversions#946193, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962422) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962423)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946191.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946191.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946198]
Input [8]: [product#946172, plant#946173, orderDateTime#946174, _extract_code#962422, _extract_internalRefUUID#962423, internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193]
(170) Generate
Input [4]: [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198]
Arguments: explode(filteredUnitOfMeasureConversions#946198.quantityNumerator), [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198], true, [quantityNumerator#946199]
(171) Project
Output [4]: [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198.quantityDenominator AS _extract_quantityDenominator#962305]
Input [5]: [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198, quantityNumerator#946199]
(172) Generate
Input [4]: [product#946172, plant#946173, orderDateTime#946174, _extract_quantityDenominator#962305]
Arguments: explode(_extract_quantityDenominator#962305), [product#946172, plant#946173, orderDateTime#946174], true, [quantityDenominator#946200]
(173) Project
Output [3]: [product#946172, plant#946173, orderDateTime#946174]
Input [4]: [product#946172, plant#946173, orderDateTime#946174, quantityDenominator#946200]
(174) BroadcastHashJoin [codegen id : 56]
Left keys [2]: [plantUuid#946164, productUuid#946166]
Right keys [2]: [plant#946173, product#946172]
Join type: Inner
Join condition: (calculationDateTime#946160 <= orderDateTime#946174)
(175) Project [codegen id : 56]
Output [4]: [plantUuid#946164 AS plant#946203, productUuid#946166 AS product#946204, storageLocId#946167, calculationDateTime#946160]
Input [7]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167, product#946172, plant#946173, orderDateTime#946174]
(176) HashAggregate [codegen id : 56]
Input [4]: [plant#946203, product#946204, storageLocId#946167, calculationDateTime#946160]
Keys [3]: [plant#946203, product#946204, storageLocId#946167]
Functions [1]: [partial_max(calculationDateTime#946160)]
Aggregate Attributes [1]: [max#947917]
Results [4]: [plant#946203, product#946204, storageLocId#946167, max#947918]
(177) HashAggregate [codegen id : 56]
Input [4]: [plant#946203, product#946204, storageLocId#946167, max#947918]
Keys [3]: [plant#946203, product#946204, storageLocId#946167]
Functions [1]: [max(calculationDateTime#946160)]
Aggregate Attributes [1]: [max(calculationDateTime#946160)#944648]
Results [4]: [plant#946203, product#946204, storageLocId#946167, max(calculationDateTime#946160)#944648 AS max_calc_datetime#946205]
(178) Exchange
Input [4]: [plant#946203, product#946204, storageLocId#946167, max_calc_datetime#946205]
Arguments: hashpartitioning(coalesce(plant#946203, ), isnull(plant#946203), coalesce(product#946204, ), isnull(product#946204), coalesce(storageLocId#946167, ), isnull(storageLocId#946167), coalesce(max_calc_datetime#946205, 1970-01-01 00:00:00), isnull(max_calc_datetime#946205), 37), ENSURE_REQUIREMENTS, [plan_id=1617419]
(179) ShuffleQueryStage
Output [4]: [plant#946203, product#946204, storageLocId#946167, max_calc_datetime#946205]
Arguments: 84
(180) AQEShuffleRead
Input [4]: [plant#946203, product#946204, storageLocId#946167, max_calc_datetime#946205]
Arguments: local
(181) BroadcastHashJoin [codegen id : 57]
Left keys [8]: [coalesce(plant#946093, ), isnull(plant#946093), coalesce(product#946094, ), isnull(product#946094), coalesce(storageLocId#946057, ), isnull(storageLocId#946057), coalesce(calculationDateTime#946050, 1970-01-01 00:00:00), isnull(calculationDateTime#946050)]
Right keys [8]: [coalesce(plant#946203, ), isnull(plant#946203), coalesce(product#946204, ), isnull(product#946204), coalesce(storageLocId#946167, ), isnull(storageLocId#946167), coalesce(max_calc_datetime#946205, 1970-01-01 00:00:00), isnull(max_calc_datetime#946205)]
Join type: Inner
Join condition: None
(182) Project [codegen id : 57]
Output [4]: [plant#946093, product#946094, calculationDateTime#946050, quantity#946059]
Input [9]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059, plant#946203, product#946204, storageLocId#946167, max_calc_datetime#946205]
(183) HashAggregate [codegen id : 57]
Input [4]: [plant#946093, product#946094, calculationDateTime#946050, quantity#946059]
Keys [2]: [product#946094, plant#946093]
Functions [2]: [partial_min(calculationDateTime#946050), partial_sum(quantity#946059)]
Aggregate Attributes [2]: [min#947907, sum#947908]
Results [4]: [product#946094, plant#946093, min#947909, sum#947910]
(184) Exchange
Input [4]: [product#946094, plant#946093, min#947909, sum#947910]
Arguments: hashpartitioning(product#946094, plant#946093, 37), ENSURE_REQUIREMENTS, [plan_id=1618428]
(185) ShuffleQueryStage
Output [4]: [product#946094, plant#946093, min#947909, sum#947910]
Arguments: 86
(186) AQEShuffleRead
Input [4]: [product#946094, plant#946093, min#947909, sum#947910]
Arguments: coalesced
(187) HashAggregate [codegen id : 58]
Input [4]: [product#946094, plant#946093, min#947909, sum#947910]
Keys [2]: [product#946094, plant#946093]
Functions [2]: [min(calculationDateTime#946050), sum(quantity#946059)]
Aggregate Attributes [2]: [min(calculationDateTime#946050)#944775, sum(quantity#946059)#944774]
Results [4]: [product#946094, plant#946093, min(calculationDateTime#946050)#944775 AS minCalculationDateTime#946207, round(sum(quantity#946059)#944774, 0) AS roundedQuantitySum#946208]
(188) BroadcastExchange
Input [4]: [product#946094, plant#946093, minCalculationDateTime#946207, roundedQuantitySum#946208]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=1618744]
(189) BroadcastQueryStage
Output [4]: [product#946094, plant#946093, minCalculationDateTime#946207, roundedQuantitySum#946208]
Arguments: 87
(190) BroadcastHashJoin [codegen id : 60]
Left keys [2]: [plant#945955, product#945954]
Right keys [2]: [plant#946093, product#946094]
Join type: LeftOuter
Join condition: None
(191) Project [codegen id : 60]
Output [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, CASE WHEN isnotnull(minCalculationDateTime#946207) THEN minCalculationDateTime#946207 ELSE orderDateTime#945956 END AS stockDatetime#946209, CASE WHEN isnotnull(roundedQuantitySum#946208) THEN array(roundedQuantitySum#946208) ELSE [0.0] END AS stockBatchQuantities#946210]
Input [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, product#946094, plant#946093, minCalculationDateTime#946207, roundedQuantitySum#946208]
(192) Exchange
Input [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210]
Arguments: hashpartitioning(coalesce(plant#945955, ), isnull(plant#945955), coalesce(product#945954, ), isnull(product#945954), 37), ENSURE_REQUIREMENTS, [plan_id=1619056]
(193) ShuffleQueryStage
Output [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210]
Arguments: 88
(194) AQEShuffleRead
Input [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210]
Arguments: coalesced
(195) Sort [codegen id : 61]
Input [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210]
Arguments: [coalesce(plant#945955, ) ASC NULLS FIRST, isnull(plant#945955) ASC NULLS FIRST, coalesce(product#945954, ) ASC NULLS FIRST, isnull(product#945954) ASC NULLS FIRST], false, 0
(196) Scan parquet
Output [9]: [product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, 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,demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(197) ColumnarToRow [codegen id : 23]
Input [9]: [product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, demandPointInTime#944822]
(198) Exchange
Input [9]: [product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, demandPointInTime#944822]
Arguments: hashpartitioning(coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814), 37), ENSURE_REQUIREMENTS, [plan_id=1598507]
(199) ShuffleQueryStage
Output [9]: [product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, demandPointInTime#944822]
Arguments: 35
(200) AQEShuffleRead
Input [9]: [product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, demandPointInTime#944822]
Arguments: coalesced
(201) Sort [codegen id : 62]
Input [9]: [product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, 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
(202) SortMergeJoin [codegen id : 63]
Left keys [4]: [coalesce(plant#945955, ), isnull(plant#945955), coalesce(product#945954, ), isnull(product#945954)]
Right keys [4]: [coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814)]
Join type: LeftOuter
Join condition: None
(203) Project [codegen id : 63]
Output [8]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, CASE WHEN isnotnull(product#944814) THEN struct(demandChannel, demandChannel#944816, demandStream, demandStream#944817, considerVariance, considerVariance#944818, demandTimeBuckets, demandTimeBuckets#944819, demandPointInTimeStart, demandPointInTimeStart#944820, demandPointInTimeEnd, demandPointInTimeEnd#944821, demandPointInTime, demandPointInTime#944822) END AS rawDemands#944824]
Input [16]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, demandPointInTime#944822]
(204) ObjectHashAggregate
Input [8]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, rawDemands#944824]
Keys [8]: [product#945954, plant#945955, orderDateTime#945956, knownfloatingpointnormalized(if (isnull(productPlant#945967)) null else named_struct(systemId, productPlant#945967.systemId, internalUUID, productPlant#945967.internalUUID, plant, productPlant#945967.plant, product, productPlant#945967.product, blockedForReplenishmentStartingFrom, productPlant#945967.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#945967.productionAspect)) null else named_struct(productMovementPlants, productPlant#945967.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#945967.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#945967.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#945967.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#945967.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#945967.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile)))), salesPlant, productPlant#945967.salesPlant, listing, productPlant#945967.listing, sourceOfSupplyCategory, productPlant#945967.sourceOfSupplyCategory)) AS productPlant#945967, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#945984)) AS outboundUnit#945984, stockDatetime#946209, knownfloatingpointnormalized(transform(stockBatchQuantities#946210, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#964781)), lambda arg#964781, false))) AS stockBatchQuantities#946210, [7226582400000000] AS [7226582400000000]#964780]
Functions [1]: [partial_collect_list(rawDemands#944824, 0, 0)]
Aggregate Attributes [1]: [buf#947905]
Results [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780, buf#947906]
(205) Exchange
Input [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780, buf#947906]
Arguments: hashpartitioning(product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780, 37), ENSURE_REQUIREMENTS, [plan_id=1619332]
(206) ShuffleQueryStage
Output [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780, buf#947906]
Arguments: 89
(207) AQEShuffleRead
Input [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780, buf#947906]
Arguments: coalesced
(208) ObjectHashAggregate
Input [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780, buf#947906]
Keys [8]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#964780]
Functions [1]: [collect_list(rawDemands#944824, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#944824, 0, 0)#944844]
Results [8]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, collect_list(rawDemands#944824, 0, 0)#944844 AS rawDemands#944825]
(209) Scan parquet
Output [3]: [internalUUID#945905, address#945911, systemId#945904]
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-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(210) ColumnarToRow [codegen id : 24]
Input [3]: [internalUUID#945905, address#945911, systemId#945904]
(211) Project [codegen id : 24]
Output [2]: [internalUUID#945905, address#945911.timeZone.code AS timezonecode#945917]
Input [3]: [internalUUID#945905, address#945911, systemId#945904]
(212) Exchange
Input [2]: [internalUUID#945905, timezonecode#945917]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598527]
(213) ShuffleQueryStage
Output [2]: [internalUUID#945905, timezonecode#945917]
Arguments: 36
(214) BroadcastExchange
Input [2]: [internalUUID#945905, timezonecode#945917]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1599329]
(215) BroadcastQueryStage
Output [2]: [internalUUID#945905, timezonecode#945917]
Arguments: 46
(216) BroadcastHashJoin [codegen id : 64]
Left keys [2]: [coalesce(plant#945955, ), isnull(plant#945955)]
Right keys [2]: [coalesce(internalUUID#945905, ), isnull(internalUUID#945905)]
Join type: LeftOuter
Join condition: None
(217) Project [codegen id : 64]
Output [10]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#946211, rawDemands#944825, CASE WHEN isnotnull(timezonecode#945917) THEN timezonecode#945917 ELSE UTC END AS timezonecode#945919]
Input [10]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, rawDemands#944825, internalUUID#945905, timezonecode#945917]
(218) DeserializeToObject [codegen id : 64]
Input [10]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, stockBatchShelfLifeEndDatetimes#946211, rawDemands#944825, timezonecode#945919]
Arguments: createexternalrow(invoke(product#945954.toString()), invoke(plant#945955.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#945956)), if (isnull(productPlant#945967)) null else createexternalrow(invoke(productPlant#945967.systemId.toString()), invoke(productPlant#945967.internalUUID.toString()), if (isnull(productPlant#945967.plant)) null else createexternalrow(invoke(productPlant#945967.plant.internalRefUUID.toString()), invoke(productPlant#945967.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#945967.product)) null else createexternalrow(invoke(productPlant#945967.product.internalRefUUID.toString()), invoke(productPlant#945967.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#945967.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#945967.productionAspect)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#945967.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)), if (isnull(productPlant#945967.salesPlant)) null else createexternalrow(if (isnull(productPlant#945967.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#945967.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#945967.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#945967.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#945967.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#945967.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#945967.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#945984)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#946209)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#946210, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#946211, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#944825, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#945919.toString()), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false), StructField(timezonecode,StringType,true)), obj#945940: org.apache.spark.sql.Row
(219) MapElements [codegen id : 64]
Input [1]: [obj#945940]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@353c8b73, obj#945945: org.apache.spark.sql.Row
(220) SerializeFromObject [codegen id : 64]
Input [1]: [obj#945945]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#945950, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#945951]
(221) Exchange
Input [2]: [product#945950, plant#945951]
Arguments: hashpartitioning(coalesce(plant#945951, ), isnull(plant#945951), coalesce(product#945950, ), isnull(product#945950), 37), ENSURE_REQUIREMENTS, [plan_id=1619551]
(222) ShuffleQueryStage
Output [2]: [product#945950, plant#945951]
Arguments: 90
(223) AQEShuffleRead
Input [2]: [product#945950, plant#945951]
Arguments: local
(224) BroadcastExchange
Input [2]: [product#945950, plant#945951]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1619709]
(225) BroadcastQueryStage
Output [2]: [product#945950, plant#945951]
Arguments: 91
(226) BroadcastHashJoin [codegen id : 65]
Left keys [4]: [coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305)]
Right keys [4]: [coalesce(plant#945951, ), isnull(plant#945951), coalesce(product#945950, ), isnull(product#945950)]
Join type: LeftOuter
Join condition: None
(227) Project [codegen id : 65]
Output [2]: [product#944305, plant#944306]
Input [4]: [product#944305, plant#944306, product#945950, plant#945951]
(228) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(plant#944306, 37), ENSURE_REQUIREMENTS, [plan_id=1619855]
(229) ShuffleQueryStage
Output [2]: [product#944305, plant#944306]
Arguments: 92
(230) AQEShuffleRead
Input [2]: [product#944305, plant#944306]
Arguments: coalesced
(231) Sort [codegen id : 66]
Input [2]: [product#944305, plant#944306]
Arguments: [plant#944306 ASC NULLS FIRST], false, 0
(232) ReusedExchange [Reuses operator id: 67]
Output [1]: [distributionCenters#946295]
(233) ShuffleQueryStage
Output [1]: [distributionCenters#946295]
Arguments: 38
(234) Generate [codegen id : 39]
Input [1]: [distributionCenters#946295]
Arguments: explode(distributionCenters#946295), false, [distributionCenters#946310]
(235) Filter [codegen id : 39]
Input [1]: [distributionCenters#946310]
Condition : (((size(distributionCenters#946310.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#946310.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#946310.internalRefUUID))
(236) Project [codegen id : 39]
Output [2]: [distributionCenters#946310.internalRefUUID AS _extract_internalRefUUID#962313, distributionCenters#946310.storageLocations.internalRefUUID AS _extract_internalRefUUID#962484]
Input [1]: [distributionCenters#946310]
(237) Generate [codegen id : 39]
Input [2]: [_extract_internalRefUUID#962313, _extract_internalRefUUID#962484]
Arguments: explode(_extract_internalRefUUID#962484), [_extract_internalRefUUID#962313], false, [storageLocations#946311]
(238) Filter [codegen id : 39]
Input [2]: [_extract_internalRefUUID#962313, storageLocations#946311]
Condition : isnotnull(storageLocations#946311)
(239) Project [codegen id : 39]
Output [2]: [_extract_internalRefUUID#962313 AS plantUuid#946313, storageLocations#946311 AS storageLocUuid#946315]
Input [2]: [_extract_internalRefUUID#962313, storageLocations#946311]
(240) BroadcastExchange
Input [2]: [plantUuid#946313, storageLocUuid#946315]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1603048]
(241) BroadcastQueryStage
Output [2]: [plantUuid#946313, storageLocUuid#946315]
Arguments: 71
(242) ReusedExchange [Reuses operator id: 94]
Output [1]: [plant#946317]
(243) ShuffleQueryStage
Output [1]: [plant#946317]
Arguments: 78
(244) AQEShuffleRead
Input [1]: [plant#946317]
Arguments: coalesced
(245) HashAggregate
Input [1]: [plant#946317]
Keys [1]: [plant#946317]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946317]
(246) BroadcastHashJoin [codegen id : 67]
Left keys [1]: [plantUuid#946313]
Right keys [1]: [plant#946317]
Join type: Inner
Join condition: None
(247) Project [codegen id : 67]
Output [2]: [plantUuid#946313 AS plant#946288, storageLocUuid#946315]
Input [3]: [plantUuid#946313, storageLocUuid#946315, plant#946317]
(248) Sort [codegen id : 67]
Input [2]: [plant#946288, storageLocUuid#946315]
Arguments: [plant#946288 ASC NULLS FIRST], false, 0
(249) SortMergeJoin [codegen id : 68]
Left keys [1]: [plant#944306]
Right keys [1]: [plant#946288]
Join type: Inner
Join condition: None
(250) Project [codegen id : 68]
Output [3]: [plant#944306, product#944305, storageLocUuid#946315]
Input [4]: [product#944305, plant#944306, plant#946288, storageLocUuid#946315]
(251) Scan parquet
Output [5]: [internalUUID#946254, id#946255, isMarkedForDeletion#946260, items#946261, systemId#946253]
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-procurement-purchaseorder]
PushedFilters: [IsNotNull(isMarkedForDeletion), Not(EqualTo(isMarkedForDeletion,true)), IsNotNull(items)]
ReadSchema: struct<internalUUID:string,id:string,isMarkedForDeletion:boolean,items:array<struct<number:string,completeIndicator:boolean,returnIndicator:boolean,deletionIndicator:boolean,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,quantityNumerator:double,quantityDenominator:double,scheduleLines:array<struct<number:string,deliveryAt:timestamp,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,receivedQuantity:double,deliveredQuantity:double,productAvailabilityDateTime:timestamp>>,confirmations:array<struct<number:string,confirmationCategory:struct<internalRefUUID:string,code:string>,confirmationDeliveryDate:date,confirmedDeliveryAt:timestamp,confirmedQuantity:double,mrpRelevantQuantity:double,confirmationCreationCategory:string,deletionIndicator:boolean,isRelevantForConfirmation:boolean,delivery:struct<internalRefUUID:string,id:string>,deliveryItemNumber:string>>>>>
(252) ColumnarToRow [codegen id : 29]
Input [5]: [internalUUID#946254, id#946255, isMarkedForDeletion#946260, items#946261, systemId#946253]
(253) Filter [codegen id : 29]
Input [5]: [internalUUID#946254, id#946255, isMarkedForDeletion#946260, items#946261, systemId#946253]
Condition : (((isnotnull(isMarkedForDeletion#946260) AND NOT isMarkedForDeletion#946260) AND (size(items#946261, true) > 0)) AND isnotnull(items#946261))
(254) Project [codegen id : 29]
Output [3]: [internalUUID#946254, id#946255, items#946261]
Input [5]: [internalUUID#946254, id#946255, isMarkedForDeletion#946260, items#946261, systemId#946253]
(255) Exchange
Input [3]: [internalUUID#946254, id#946255, items#946261]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1598659]
(256) ShuffleQueryStage
Output [3]: [internalUUID#946254, id#946255, items#946261]
Arguments: 45
(257) Generate [codegen id : 40]
Input [3]: [internalUUID#946254, id#946255, items#946261]
Arguments: explode(items#946261), [internalUUID#946254, id#946255], false, [item#946265]
(258) Filter [codegen id : 40]
Input [3]: [internalUUID#946254, id#946255, item#946265]
Condition : ((((isnotnull(item#946265.deletionIndicator) AND isnotnull(item#946265.completeIndicator)) AND isnotnull(item#946265.returnIndicator)) AND ((NOT item#946265.deletionIndicator AND NOT item#946265.completeIndicator) AND NOT item#946265.returnIndicator)) AND ((isnotnull(item#946265.product.internalRefUUID) AND isnotnull(item#946265.plant.internalRefUUID)) AND isnotnull(item#946265.storageLocation.internalRefUUID)))
(259) Project [codegen id : 40]
Output [11]: [id#946255, internalUUID#946254, item#946265.plant.internalRefUUID AS plant#946270, item#946265.product.internalRefUUID AS product#946271, item#946265.storageLocation.internalRefUUID AS storageLocUuid#946272, item#946265.quantityUnit.code AS quantityUom#946273, item#946265.quantityUnit.internalRefUUID AS quantityUomUuid#946274, item#946265.quantityNumerator AS quantityNumerator#946275, item#946265.quantityDenominator AS quantityDenominator#946276, item#946265.scheduleLines AS scheduleLines#946277, item#946265.confirmations AS confirmations#946278]
Input [3]: [internalUUID#946254, id#946255, item#946265]
(260) BroadcastExchange
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, storageLocUuid#946272, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278]
Arguments: HashedRelationBroadcastMode(List(input[3, string, true], input[2, string, true], input[4, string, true]),false), [plan_id=1603907]
(261) BroadcastQueryStage
Output [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, storageLocUuid#946272, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278]
Arguments: 72
(262) BroadcastHashJoin [codegen id : 68]
Left keys [3]: [product#944305, plant#944306, storageLocUuid#946315]
Right keys [3]: [product#946271, plant#946270, storageLocUuid#946272]
Join type: Inner
Join condition: None
(263) Project
Output [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, size(filter(confirmations#946278, lambdafunction(((NOT lambda x_140#946362.deletionIndicator AND lambda x_140#946362.isRelevantForConfirmation) AND isnotnull(lambda x_140#946362.confirmedDeliveryAt)), lambda x_140#946362, false)), false) AS _w0#946369]
Input [14]: [plant#944306, product#944305, storageLocUuid#946315, id#946255, internalUUID#946254, plant#946270, product#946271, storageLocUuid#946272, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278]
(264) Exchange
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369]
Arguments: hashpartitioning(internalUUID#946254, 37), ENSURE_REQUIREMENTS, [plan_id=1620009]
(265) ShuffleQueryStage
Output [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369]
Arguments: 93
(266) AQEShuffleRead
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369]
Arguments: coalesced
(267) Sort [codegen id : 69]
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369]
Arguments: [internalUUID#946254 ASC NULLS FIRST], false, 0
(268) Window
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369]
Arguments: [sum(_w0#946369) windowspecdefinition(internalUUID#946254, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#946370L], [internalUUID#946254]
(269) Project
Output [3]: [plant#946270, product#946271, filter(transform(CASE WHEN (_we0#946370L > 0) THEN transform(filter(confirmations#946278, lambdafunction(((NOT lambda x_140#946363.deletionIndicator AND lambda x_140#946363.isRelevantForConfirmation) AND isnotnull(lambda x_140#946363.confirmedDeliveryAt)), lambda x_140#946363, false)), lambdafunction(struct(openQty, greatest((lambda x_141#946366.confirmedQuantity - coalesce(lambda x_141#946366.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_141#946366.confirmedDeliveryAt), lambda x_141#946366, false)) ELSE transform(scheduleLines#946277, lambdafunction(struct(openQty, greatest((lambda x_139#946364.quantity - coalesce(lambda x_139#946364.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_139#946364.deliveryAt), lambda x_139#946364, false)) END, lambdafunction(struct(documentId, id#946255, documentUuid, internalUUID#946254, openQty, lambda x_142#946367.openQty, openQtyInBaseUnit, ((lambda x_142#946367.openQty * quantityNumerator#946275) / quantityDenominator#946276), qtyUom, quantityUom#946273, qtyUomUuid, quantityUomUuid#946274, availabilityDatetime, lambda x_142#946367.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_142#946367, false)), lambdafunction(NOT (lambda x_143#946368.openQty = 0.0), lambda x_143#946368, false)) AS openGoodsMovements#946361]
Input [12]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369, _we0#946370L]
(270) ObjectHashAggregate
Input [3]: [plant#946270, product#946271, openGoodsMovements#946361]
Keys [2]: [product#946271, plant#946270]
Functions [1]: [partial_collect_list(openGoodsMovements#946361, 0, 0)]
Aggregate Attributes [1]: [buf#947901]
Results [3]: [product#946271, plant#946270, buf#947902]
(271) Exchange
Input [3]: [product#946271, plant#946270, buf#947902]
Arguments: hashpartitioning(product#946271, plant#946270, 37), ENSURE_REQUIREMENTS, [plan_id=1620315]
(272) ShuffleQueryStage
Output [3]: [product#946271, plant#946270, buf#947902]
Arguments: 94
(273) AQEShuffleRead
Input [3]: [product#946271, plant#946270, buf#947902]
Arguments: coalesced
(274) ObjectHashAggregate
Input [3]: [product#946271, plant#946270, buf#947902]
Keys [2]: [product#946271, plant#946270]
Functions [1]: [collect_list(openGoodsMovements#946361, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#946361, 0, 0)#946386]
Results [3]: [product#946271, plant#946270, flatten(collect_list(openGoodsMovements#946361, 0, 0)#946386) AS openGoodsMovements#946371]
(275) Filter
Input [3]: [product#946271, plant#946270, openGoodsMovements#946371]
Condition : ((size(openGoodsMovements#946371, false) > 0) AND (size(transform(openGoodsMovements#946371, lambdafunction(struct(documentId, lambda x_148#958170.documentId, documentUuid, lambda x_148#958170.documentUuid, openQty, lambda x_148#958170.openQty, qtyUomUuid, lambda x_148#958170.qtyUomUuid, qtyUom, lambda x_148#958170.qtyUom, plannedDeliveryDatetime, lambda x_148#958170.availabilityDatetime), lambda x_148#958170, false)), false) > 0))
(276) Project
Output [4]: [product#946271, plant#946270 AS location#958167, transform(openGoodsMovements#946371, lambdafunction(struct(documentId, lambda x_148#958170.documentId, documentUuid, lambda x_148#958170.documentUuid, openQty, lambda x_148#958170.openQty, qtyUomUuid, lambda x_148#958170.qtyUomUuid, qtyUom, lambda x_148#958170.qtyUom, plannedDeliveryDatetime, lambda x_148#958170.availabilityDatetime), lambda x_148#958170, false)) AS documents#958169, 10000000678 AS replenishmentRunId#958171L]
Input [3]: [product#946271, plant#946270, openGoodsMovements#946371]
(277) WriteFiles
Input [4]: [product#946271, location#958167, documents#958169, replenishmentRunId#958171L]
(278) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000000678/0_1_10000000678, false, Parquet, [path=hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000000678/0_1_10000000678], Overwrite, [product, location, documents, replenishmentRunId]
(279) ResultQueryStage
Output: []
Arguments: 95
(280) Filter
Input [2]: [product#944305, plant#944306]
Condition : (isnotnull(plant#944306) AND isnotnull(product#944305))
(281) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(product#944305, plant#944306, 37), REPARTITION_BY_NUM, [plan_id=1597139]
(282) Project
Output [4]: [plant#944363.internalRefUUID AS _extract_internalRefUUID#962405, product#944364.internalRefUUID AS _extract_internalRefUUID#962404, productionAspect#944366.productMovementPlants.unitOfIssue.code AS _extract_code#962402, productionAspect#944366.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#962403]
Input [4]: [plant#944363, product#944364, productionAspect#944366, systemId#944361]
(283) Exchange
Input [4]: [_extract_internalRefUUID#962405, _extract_internalRefUUID#962404, _extract_code#962402, _extract_internalRefUUID#962403]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596896]
(284) Project
Output [4]: [_extract_code#962402, _extract_internalRefUUID#962403, _extract_internalRefUUID#962404, _extract_internalRefUUID#962405]
Input [4]: [_extract_internalRefUUID#962405, _extract_internalRefUUID#962404, _extract_code#962402, _extract_internalRefUUID#962403]
(285) BroadcastExchange
Input [4]: [_extract_code#962402, _extract_internalRefUUID#962403, _extract_internalRefUUID#962404, _extract_internalRefUUID#962405]
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=1597256]
(286) BroadcastHashJoin
Left keys [4]: [coalesce(product#944305, ), isnull(product#944305), coalesce(plant#944306, ), isnull(plant#944306)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962404, ), isnull(_extract_internalRefUUID#962404), coalesce(_extract_internalRefUUID#962405, ), isnull(_extract_internalRefUUID#962405)]
Join type: LeftOuter
Join condition: None
(287) Project
Output [4]: [product#944305, plant#944306, _extract_code#962402, _extract_internalRefUUID#962403]
Input [6]: [product#944305, plant#944306, _extract_code#962402, _extract_internalRefUUID#962403, _extract_internalRefUUID#962404, _extract_internalRefUUID#962405]
(288) Filter
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
Condition : isnotnull(internalUUID#944397)
(289) Project
Output [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Input [4]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403, systemId#944396]
(290) Exchange
Input [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596903]
(291) BroadcastExchange
Input [3]: [internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597260]
(292) BroadcastHashJoin
Left keys [1]: [product#944305]
Right keys [1]: [internalUUID#944397]
Join type: LeftOuter
Join condition: None
(293) Project
Output [3]: [product#944305, plant#944306, filter(unitOfMeasureConversions#944403, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962402) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962403)) 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#962402, _extract_internalRefUUID#962403, internalUUID#944397, baseUnitOfMeasure#944401, unitOfMeasureConversions#944403]
(294) Generate
Input [3]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409]
Arguments: explode(filteredUnitOfMeasureConversions#944409.quantityNumerator), [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409], true, [quantityNumerator#944417]
(295) Project
Output [3]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409.quantityDenominator AS _extract_quantityDenominator#962240]
Input [4]: [product#944305, plant#944306, filteredUnitOfMeasureConversions#944409, quantityNumerator#944417]
(296) Generate
Input [3]: [product#944305, plant#944306, _extract_quantityDenominator#962240]
Arguments: explode(_extract_quantityDenominator#962240), [product#944305, plant#944306], true, [quantityDenominator#944420]
(297) Project
Output [2]: [product#944305, plant#944306]
Input [3]: [product#944305, plant#944306, quantityDenominator#944420]
(298) 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=1597413]
(299) 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
(300) Exchange
Input [3]: [product#945954, plant#945955, orderDateTime#945956]
Arguments: hashpartitioning(product#945954, plant#945955, 37), REPARTITION_BY_NUM, [plan_id=1596911]
(301) Project
Output [9]: [systemId#945958, internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966]
Input [9]: [internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966, systemId#945958]
(302) Exchange
Input [9]: [systemId#945958, internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596914]
(303) Project
Output [1]: [struct(systemId, systemId#945958, internalUUID, internalUUID#945959, plant, plant#945960, product, product#945961, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#945962, productionAspect, productionAspect#945963, salesPlant, salesPlant#945964, listing, listing#945965, sourceOfSupplyCategory, sourceOfSupplyCategory#945966) AS productPlant#945967]
Input [9]: [systemId#945958, internalUUID#945959, plant#945960, product#945961, blockedForReplenishmentStartingFrom#945962, productionAspect#945963, salesPlant#945964, listing#945965, sourceOfSupplyCategory#945966]
(304) BroadcastExchange
Input [1]: [productPlant#945967]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>, false].plant.internalRefUUID)),false), [plan_id=1597267]
(305) BroadcastHashJoin
Left keys [4]: [coalesce(product#945954, ), isnull(product#945954), coalesce(plant#945955, ), isnull(plant#945955)]
Right keys [4]: [coalesce(productPlant#945967.product.internalRefUUID, ), isnull(productPlant#945967.product.internalRefUUID), coalesce(productPlant#945967.plant.internalRefUUID, ), isnull(productPlant#945967.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(306) Scan parquet
Output [4]: [internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975, systemId#945968]
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>>>
(307) Filter
Input [4]: [internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975, systemId#945968]
Condition : isnotnull(internalUUID#945969)
(308) Project
Output [3]: [internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975]
Input [4]: [internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975, systemId#945968]
(309) Exchange
Input [3]: [internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596920]
(310) BroadcastExchange
Input [3]: [internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597270]
(311) BroadcastHashJoin
Left keys [1]: [product#945954]
Right keys [1]: [internalUUID#945969]
Join type: LeftOuter
Join condition: None
(312) Project
Output [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, filter(unitOfMeasureConversions#945975, lambdafunction((((lambda u#944410.measurementUnit1.code = productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#944410.measurementUnit1.internalRefUUID = productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#945973.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#945973.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#945980]
Input [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, internalUUID#945969, baseUnitOfMeasure#945973, unitOfMeasureConversions#945975]
(313) Project
Output [6]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, filteredUnitOfMeasureConversions#945980.quantityDenominator AS _extract_quantityDenominator#962406, filteredUnitOfMeasureConversions#945980.quantityNumerator AS _extract_quantityNumerator#962407]
Input [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, filteredUnitOfMeasureConversions#945980]
(314) Generate
Input [6]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, _extract_quantityDenominator#962406, _extract_quantityNumerator#962407]
Arguments: explode(_extract_quantityNumerator#962407), [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, _extract_quantityDenominator#962406], true, [quantityNumerator#945981]
(315) Generate
Input [6]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, _extract_quantityDenominator#962406, quantityNumerator#945981]
Arguments: explode(_extract_quantityDenominator#962406), [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, quantityNumerator#945981], true, [quantityDenominator#945982]
(316) Project
Output [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, (cast(quantityNumerator#945981 as double) / cast(quantityDenominator#945982 as double)) AS outboundUnit#945983]
Input [6]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, quantityNumerator#945981, quantityDenominator#945982]
(317) Project
Output [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, CASE WHEN (isnull(outboundUnit#945983) OR (outboundUnit#945983 <= 0.0)) THEN 1.0 ELSE outboundUnit#945983 END AS outboundUnit#945984]
Input [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945983]
(318) Sort
Input [5]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984]
Arguments: [product#945954 ASC NULLS FIRST, plant#945955 ASC NULLS FIRST], false, 0
(319) Filter
Input [6]: [internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990, systemId#945985]
Condition : (isnotnull(plant#945988.internalRefUUID) AND isnotnull(product#945987.internalRefUUID))
(320) Project
Output [6]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]
Input [6]: [internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990, systemId#945985]
(321) Exchange
Input [6]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596931]
(322) BroadcastExchange
Input [6]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1597298]
(323) Filter
Input [2]: [marketUnit#945991, distributionCenters#945997]
Condition : (((marketUnit#945991 <=> IW_MU_CRP-125444_1) AND (size(distributionCenters#945997, true) > 0)) AND isnotnull(distributionCenters#945997))
(324) Project
Output [1]: [distributionCenters#945997]
Input [2]: [marketUnit#945991, distributionCenters#945997]
(325) Exchange
Input [1]: [distributionCenters#945997]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596935]
(326) Generate
Input [1]: [distributionCenters#945997]
Arguments: explode(distributionCenters#945997), false, [distributionCenters#946012]
(327) Filter
Input [1]: [distributionCenters#946012]
Condition : (((size(distributionCenters#946012.storageLocations, true) > 0) AND isnotnull(distributionCenters#946012.storageLocations)) AND isnotnull(distributionCenters#946012.internalRefUUID))
(328) Project
Output [2]: [distributionCenters#946012.internalRefUUID AS _extract_internalRefUUID#962280, distributionCenters#946012.storageLocations AS _extract_storageLocations#962281]
Input [1]: [distributionCenters#946012]
(329) Generate
Input [2]: [_extract_internalRefUUID#962280, _extract_storageLocations#962281]
Arguments: explode(_extract_storageLocations#962281), [_extract_internalRefUUID#962280], false, [storageLocations#946013]
(330) Project
Output [3]: [_extract_internalRefUUID#962280 AS plantUuid#946015, storageLocations#946013.id AS storageLocId#946016, storageLocations#946013.internalRefUUID AS storageLocUuid#946017]
Input [2]: [_extract_internalRefUUID#962280, storageLocations#946013]
(331) BroadcastExchange
Input [3]: [plantUuid#946015, storageLocId#946016, storageLocUuid#946017]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597294]
(332) Filter
Input [2]: [product#946018, plant#946019]
Condition : isnotnull(plant#946019)
(333) Exchange
Input [2]: [product#946018, plant#946019]
Arguments: hashpartitioning(product#946018, plant#946019, 37), REPARTITION_BY_NUM, [plan_id=1597148]
(334) Scan parquet
Output [4]: [plant#946024, product#946025, productionAspect#946027, systemId#946022]
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>>>>
(335) Project
Output [4]: [plant#946024.internalRefUUID AS _extract_internalRefUUID#962408, product#946025.internalRefUUID AS _extract_internalRefUUID#962409, productionAspect#946027.productMovementPlants.unitOfIssue.code AS _extract_code#962410, productionAspect#946027.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#962411]
Input [4]: [plant#946024, product#946025, productionAspect#946027, systemId#946022]
(336) Exchange
Input [4]: [_extract_internalRefUUID#962408, _extract_internalRefUUID#962409, _extract_code#962410, _extract_internalRefUUID#962411]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596947]
(337) Project
Output [4]: [_extract_code#962410, _extract_internalRefUUID#962411, _extract_internalRefUUID#962409, _extract_internalRefUUID#962408]
Input [4]: [_extract_internalRefUUID#962408, _extract_internalRefUUID#962409, _extract_code#962410, _extract_internalRefUUID#962411]
(338) BroadcastExchange
Input [4]: [_extract_code#962410, _extract_internalRefUUID#962411, _extract_internalRefUUID#962409, _extract_internalRefUUID#962408]
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=1597278]
(339) BroadcastHashJoin
Left keys [4]: [coalesce(product#946018, ), isnull(product#946018), coalesce(plant#946019, ), isnull(plant#946019)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962409, ), isnull(_extract_internalRefUUID#962409), coalesce(_extract_internalRefUUID#962408, ), isnull(_extract_internalRefUUID#962408)]
Join type: LeftOuter
Join condition: None
(340) Project
Output [4]: [product#946018, plant#946019, _extract_code#962410, _extract_internalRefUUID#962411]
Input [6]: [product#946018, plant#946019, _extract_code#962410, _extract_internalRefUUID#962411, _extract_internalRefUUID#962409, _extract_internalRefUUID#962408]
(341) Scan parquet
Output [4]: [internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039, systemId#946032]
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>>>
(342) Filter
Input [4]: [internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039, systemId#946032]
Condition : isnotnull(internalUUID#946033)
(343) Project
Output [3]: [internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039]
Input [4]: [internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039, systemId#946032]
(344) Exchange
Input [3]: [internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596954]
(345) BroadcastExchange
Input [3]: [internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597282]
(346) BroadcastHashJoin
Left keys [1]: [product#946018]
Right keys [1]: [internalUUID#946033]
Join type: LeftOuter
Join condition: None
(347) Project
Output [2]: [plant#946019, filter(unitOfMeasureConversions#946039, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962410) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962411)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946037.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946037.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946044]
Input [7]: [product#946018, plant#946019, _extract_code#962410, _extract_internalRefUUID#962411, internalUUID#946033, baseUnitOfMeasure#946037, unitOfMeasureConversions#946039]
(348) Generate
Input [2]: [plant#946019, filteredUnitOfMeasureConversions#946044]
Arguments: explode(filteredUnitOfMeasureConversions#946044.quantityNumerator), [plant#946019, filteredUnitOfMeasureConversions#946044], true, [quantityNumerator#946045]
(349) Project
Output [2]: [plant#946019, filteredUnitOfMeasureConversions#946044.quantityDenominator AS _extract_quantityDenominator#962282]
Input [3]: [plant#946019, filteredUnitOfMeasureConversions#946044, quantityNumerator#946045]
(350) Generate
Input [2]: [plant#946019, _extract_quantityDenominator#962282]
Arguments: explode(_extract_quantityDenominator#962282), [plant#946019], true, [quantityDenominator#946046]
(351) Project
Output [1]: [plant#946019]
Input [2]: [plant#946019, quantityDenominator#946046]
(352) HashAggregate
Input [1]: [plant#946019]
Keys [1]: [plant#946019]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946019]
(353) Exchange
Input [1]: [plant#946019]
Arguments: hashpartitioning(plant#946019, 37), ENSURE_REQUIREMENTS, [plan_id=1597291]
(354) HashAggregate
Input [1]: [plant#946019]
Keys [1]: [plant#946019]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946019]
(355) BroadcastHashJoin
Left keys [1]: [plantUuid#946015]
Right keys [1]: [plant#946019]
Join type: Inner
Join condition: None
(356) Project
Output [3]: [plantUuid#946015, storageLocId#946016, storageLocUuid#946017]
Input [4]: [plantUuid#946015, storageLocId#946016, storageLocUuid#946017, plant#946019]
(357) BroadcastHashJoin
Left keys [2]: [coalesce(plant#945988.internalRefUUID, ), isnull(plant#945988.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#946015, ), isnull(plantUuid#946015)]
Join type: Inner
Join condition: None
(358) Generate
Input [9]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, stockQuantities#945990, plantUuid#946015, storageLocId#946016, storageLocUuid#946017]
Arguments: explode(filter(stockQuantities#945990, lambdafunction(((lambda x#944569.storageLocation.internalRefUuid = storageLocUuid#946017) AND (lambda x#944569.storageLocation.Id = storageLocId#946016)), lambda x#944569, false))), [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, plantUuid#946015], false, [stockQuantity#946049]
(359) ObjectHashAggregate
Input [7]: [systemId#945985, internalUUID#945986, product#945987, plant#945988, calculationDateTime#945989, plantUuid#946015, stockQuantity#946049]
Keys [5]: [plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985]
Functions [2]: [partial_first(calculationDateTime#945989, false), partial_collect_list(stockQuantity#946049, 0, 0)]
Aggregate Attributes [3]: [first#947911, valueSet#947912, buf#947913]
Results [8]: [plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985, first#947914, valueSet#947915, buf#947916]
(360) ObjectHashAggregate
Input [8]: [plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985, first#947914, valueSet#947915, buf#947916]
Keys [5]: [plantUuid#946015, internalUUID#945986, plant#945988, product#945987, systemId#945985]
Functions [2]: [first(calculationDateTime#945989, false), collect_list(stockQuantity#946049, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#945989)()#944584, collect_list(stockQuantity#946049, 0, 0)#944585]
Results [4]: [product#945987, plant#945988, first(calculationDateTime#945989)()#944584 AS calculationDateTime#946050, collect_list(stockQuantity#946049, 0, 0)#944585 AS stockQuantities#946051]
(361) Filter
Input [4]: [product#945987, plant#945988, calculationDateTime#946050, stockQuantities#946051]
Condition : ((size(stockQuantities#946051, true) > 0) AND isnotnull(calculationDateTime#946050))
(362) Generate
Input [4]: [product#945987, plant#945988, calculationDateTime#946050, stockQuantities#946051]
Arguments: explode(stockQuantities#946051), [product#945987, plant#945988, calculationDateTime#946050], false, [stockQuantity#946052]
(363) Filter
Input [4]: [product#945987, plant#945988, calculationDateTime#946050, stockQuantity#946052]
Condition : (((isnotnull(stockQuantity#946052.specialStockIndicator.code) AND isnotnull(stockQuantity#946052.stockType.code)) AND (stockQuantity#946052.specialStockIndicator.code = )) AND (stockQuantity#946052.stockType.code = 01))
(364) Project
Output [5]: [plant#945988.internalRefUUID AS plantUuid#946054, product#945987.internalRefUUID AS productUuid#946056, calculationDateTime#946050, stockQuantity#946052.storagelocation.id AS storageLocId#946057, stockQuantity#946052.quantity.measure AS quantity#946059]
Input [4]: [product#945987, plant#945988, calculationDateTime#946050, stockQuantity#946052]
(365) Exchange
Input [5]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059]
Arguments: hashpartitioning(productUuid#946056, plantUuid#946054, 37), ENSURE_REQUIREMENTS, [plan_id=1597320]
(366) Sort
Input [5]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059]
Arguments: [productUuid#946056 ASC NULLS FIRST, plantUuid#946054 ASC NULLS FIRST], false, 0
(367) Filter
Input [3]: [product#946062, plant#946063, orderDateTime#946064]
Condition : ((isnotnull(orderDateTime#946064) AND isnotnull(plant#946063)) AND isnotnull(product#946062))
(368) Exchange
Input [3]: [product#946062, plant#946063, orderDateTime#946064]
Arguments: hashpartitioning(product#946062, plant#946063, 37), REPARTITION_BY_NUM, [plan_id=1597169]
(369) Scan parquet
Output [4]: [plant#946068, product#946069, productionAspect#946071, systemId#946066]
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>>>>
(370) Project
Output [4]: [plant#946068.internalRefUUID AS _extract_internalRefUUID#962415, product#946069.internalRefUUID AS _extract_internalRefUUID#962414, productionAspect#946071.productMovementPlants.unitOfIssue.code AS _extract_code#962412, productionAspect#946071.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#962413]
Input [4]: [plant#946068, product#946069, productionAspect#946071, systemId#946066]
(371) Exchange
Input [4]: [_extract_internalRefUUID#962415, _extract_internalRefUUID#962414, _extract_code#962412, _extract_internalRefUUID#962413]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596979]
(372) Project
Output [4]: [_extract_code#962412, _extract_internalRefUUID#962413, _extract_internalRefUUID#962414, _extract_internalRefUUID#962415]
Input [4]: [_extract_internalRefUUID#962415, _extract_internalRefUUID#962414, _extract_code#962412, _extract_internalRefUUID#962413]
(373) BroadcastExchange
Input [4]: [_extract_code#962412, _extract_internalRefUUID#962413, _extract_internalRefUUID#962414, _extract_internalRefUUID#962415]
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=1597307]
(374) BroadcastHashJoin
Left keys [4]: [coalesce(product#946062, ), isnull(product#946062), coalesce(plant#946063, ), isnull(plant#946063)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962414, ), isnull(_extract_internalRefUUID#962414), coalesce(_extract_internalRefUUID#962415, ), isnull(_extract_internalRefUUID#962415)]
Join type: LeftOuter
Join condition: None
(375) Project
Output [5]: [product#946062, plant#946063, orderDateTime#946064, _extract_code#962412, _extract_internalRefUUID#962413]
Input [7]: [product#946062, plant#946063, orderDateTime#946064, _extract_code#962412, _extract_internalRefUUID#962413, _extract_internalRefUUID#962414, _extract_internalRefUUID#962415]
(376) Scan parquet
Output [4]: [internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083, systemId#946076]
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>>>
(377) Filter
Input [4]: [internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083, systemId#946076]
Condition : isnotnull(internalUUID#946077)
(378) Project
Output [3]: [internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083]
Input [4]: [internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083, systemId#946076]
(379) Exchange
Input [3]: [internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596986]
(380) BroadcastExchange
Input [3]: [internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597311]
(381) BroadcastHashJoin
Left keys [1]: [product#946062]
Right keys [1]: [internalUUID#946077]
Join type: LeftOuter
Join condition: None
(382) Project
Output [4]: [product#946062, plant#946063, orderDateTime#946064, filter(unitOfMeasureConversions#946083, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962412) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962413)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946081.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946081.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946088]
Input [8]: [product#946062, plant#946063, orderDateTime#946064, _extract_code#962412, _extract_internalRefUUID#962413, internalUUID#946077, baseUnitOfMeasure#946081, unitOfMeasureConversions#946083]
(383) Generate
Input [4]: [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088]
Arguments: explode(filteredUnitOfMeasureConversions#946088.quantityNumerator), [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088], true, [quantityNumerator#946089]
(384) Project
Output [4]: [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088.quantityDenominator AS _extract_quantityDenominator#962289]
Input [5]: [product#946062, plant#946063, orderDateTime#946064, filteredUnitOfMeasureConversions#946088, quantityNumerator#946089]
(385) Generate
Input [4]: [product#946062, plant#946063, orderDateTime#946064, _extract_quantityDenominator#962289]
Arguments: explode(_extract_quantityDenominator#962289), [product#946062, plant#946063, orderDateTime#946064], true, [quantityDenominator#946090]
(386) Project
Output [3]: [product#946062, plant#946063, orderDateTime#946064]
Input [4]: [product#946062, plant#946063, orderDateTime#946064, quantityDenominator#946090]
(387) Sort
Input [3]: [product#946062, plant#946063, orderDateTime#946064]
Arguments: [product#946062 ASC NULLS FIRST, plant#946063 ASC NULLS FIRST], false, 0
(388) SortMergeJoin
Left keys [2]: [productUuid#946056, plantUuid#946054]
Right keys [2]: [product#946062, plant#946063]
Join type: Inner
Join condition: (calculationDateTime#946050 <= orderDateTime#946064)
(389) Project
Output [5]: [plantUuid#946054 AS plant#946093, productUuid#946056 AS product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Input [8]: [plantUuid#946054, productUuid#946056, calculationDateTime#946050, storageLocId#946057, quantity#946059, product#946062, plant#946063, orderDateTime#946064]
(390) Exchange
Input [5]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Arguments: hashpartitioning(coalesce(plant#946093, ), isnull(plant#946093), coalesce(product#946094, ), isnull(product#946094), coalesce(storageLocId#946057, ), isnull(storageLocId#946057), coalesce(calculationDateTime#946050, 1970-01-01 00:00:00), isnull(calculationDateTime#946050), 37), ENSURE_REQUIREMENTS, [plan_id=1597376]
(391) Sort
Input [5]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059]
Arguments: [coalesce(plant#946093, ) ASC NULLS FIRST, isnull(plant#946093) ASC NULLS FIRST, coalesce(product#946094, ) ASC NULLS FIRST, isnull(product#946094) ASC NULLS FIRST, coalesce(storageLocId#946057, ) ASC NULLS FIRST, isnull(storageLocId#946057) ASC NULLS FIRST, coalesce(calculationDateTime#946050, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#946050) ASC NULLS FIRST], false, 0
(392) Scan parquet
Output [6]: [internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100, systemId#946095]
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-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(393) Filter
Input [6]: [internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100, systemId#946095]
Condition : (isnotnull(plant#946098.internalRefUUID) AND isnotnull(product#946097.internalRefUUID))
(394) Project
Output [6]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100]
Input [6]: [internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100, systemId#946095]
(395) Exchange
Input [6]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1596998]
(396) BroadcastExchange
Input [6]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1597345]
(397) Scan parquet
Output [2]: [marketUnit#946101, distributionCenters#946107]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,IW_MU_CRP-125444_1), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(398) Filter
Input [2]: [marketUnit#946101, distributionCenters#946107]
Condition : (((marketUnit#946101 <=> IW_MU_CRP-125444_1) AND (size(distributionCenters#946107, true) > 0)) AND isnotnull(distributionCenters#946107))
(399) Project
Output [1]: [distributionCenters#946107]
Input [2]: [marketUnit#946101, distributionCenters#946107]
(400) Exchange
Input [1]: [distributionCenters#946107]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597002]
(401) Generate
Input [1]: [distributionCenters#946107]
Arguments: explode(distributionCenters#946107), false, [distributionCenters#946122]
(402) Filter
Input [1]: [distributionCenters#946122]
Condition : (((size(distributionCenters#946122.storageLocations, true) > 0) AND isnotnull(distributionCenters#946122.storageLocations)) AND isnotnull(distributionCenters#946122.internalRefUUID))
(403) Project
Output [2]: [distributionCenters#946122.internalRefUUID AS _extract_internalRefUUID#962296, distributionCenters#946122.storageLocations AS _extract_storageLocations#962297]
Input [1]: [distributionCenters#946122]
(404) Generate
Input [2]: [_extract_internalRefUUID#962296, _extract_storageLocations#962297]
Arguments: explode(_extract_storageLocations#962297), [_extract_internalRefUUID#962296], false, [storageLocations#946123]
(405) Project
Output [3]: [_extract_internalRefUUID#962296 AS plantUuid#946125, storageLocations#946123.id AS storageLocId#946126, storageLocations#946123.internalRefUUID AS storageLocUuid#946127]
Input [2]: [_extract_internalRefUUID#962296, storageLocations#946123]
(406) BroadcastExchange
Input [3]: [plantUuid#946125, storageLocId#946126, storageLocUuid#946127]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597341]
(407) Scan parquet
Output [2]: [product#946128, plant#946129]
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]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(408) Filter
Input [2]: [product#946128, plant#946129]
Condition : isnotnull(plant#946129)
(409) Exchange
Input [2]: [product#946128, plant#946129]
Arguments: hashpartitioning(product#946128, plant#946129, 37), REPARTITION_BY_NUM, [plan_id=1597180]
(410) Scan parquet
Output [4]: [plant#946134, product#946135, productionAspect#946137, systemId#946132]
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>>>>
(411) Project
Output [4]: [plant#946134.internalRefUUID AS _extract_internalRefUUID#962419, product#946135.internalRefUUID AS _extract_internalRefUUID#962416, productionAspect#946137.productMovementPlants.unitOfIssue.code AS _extract_code#962417, productionAspect#946137.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#962418]
Input [4]: [plant#946134, product#946135, productionAspect#946137, systemId#946132]
(412) Exchange
Input [4]: [_extract_internalRefUUID#962419, _extract_internalRefUUID#962416, _extract_code#962417, _extract_internalRefUUID#962418]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597014]
(413) Project
Output [4]: [_extract_code#962417, _extract_internalRefUUID#962418, _extract_internalRefUUID#962416, _extract_internalRefUUID#962419]
Input [4]: [_extract_internalRefUUID#962419, _extract_internalRefUUID#962416, _extract_code#962417, _extract_internalRefUUID#962418]
(414) BroadcastExchange
Input [4]: [_extract_code#962417, _extract_internalRefUUID#962418, _extract_internalRefUUID#962416, _extract_internalRefUUID#962419]
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=1597325]
(415) BroadcastHashJoin
Left keys [4]: [coalesce(product#946128, ), isnull(product#946128), coalesce(plant#946129, ), isnull(plant#946129)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962416, ), isnull(_extract_internalRefUUID#962416), coalesce(_extract_internalRefUUID#962419, ), isnull(_extract_internalRefUUID#962419)]
Join type: LeftOuter
Join condition: None
(416) Project
Output [4]: [product#946128, plant#946129, _extract_code#962417, _extract_internalRefUUID#962418]
Input [6]: [product#946128, plant#946129, _extract_code#962417, _extract_internalRefUUID#962418, _extract_internalRefUUID#962416, _extract_internalRefUUID#962419]
(417) Scan parquet
Output [4]: [internalUUID#946143, baseUnitOfMeasure#946147, unitOfMeasureConversions#946149, systemId#946142]
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>>>
(418) Filter
Input [4]: [internalUUID#946143, baseUnitOfMeasure#946147, unitOfMeasureConversions#946149, systemId#946142]
Condition : isnotnull(internalUUID#946143)
(419) Project
Output [3]: [internalUUID#946143, baseUnitOfMeasure#946147, unitOfMeasureConversions#946149]
Input [4]: [internalUUID#946143, baseUnitOfMeasure#946147, unitOfMeasureConversions#946149, systemId#946142]
(420) Exchange
Input [3]: [internalUUID#946143, baseUnitOfMeasure#946147, unitOfMeasureConversions#946149]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597021]
(421) BroadcastExchange
Input [3]: [internalUUID#946143, baseUnitOfMeasure#946147, unitOfMeasureConversions#946149]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597329]
(422) BroadcastHashJoin
Left keys [1]: [product#946128]
Right keys [1]: [internalUUID#946143]
Join type: LeftOuter
Join condition: None
(423) Project
Output [2]: [plant#946129, filter(unitOfMeasureConversions#946149, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962417) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962418)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946147.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946147.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946154]
Input [7]: [product#946128, plant#946129, _extract_code#962417, _extract_internalRefUUID#962418, internalUUID#946143, baseUnitOfMeasure#946147, unitOfMeasureConversions#946149]
(424) Generate
Input [2]: [plant#946129, filteredUnitOfMeasureConversions#946154]
Arguments: explode(filteredUnitOfMeasureConversions#946154.quantityNumerator), [plant#946129, filteredUnitOfMeasureConversions#946154], true, [quantityNumerator#946155]
(425) Project
Output [2]: [plant#946129, filteredUnitOfMeasureConversions#946154.quantityDenominator AS _extract_quantityDenominator#962298]
Input [3]: [plant#946129, filteredUnitOfMeasureConversions#946154, quantityNumerator#946155]
(426) Generate
Input [2]: [plant#946129, _extract_quantityDenominator#962298]
Arguments: explode(_extract_quantityDenominator#962298), [plant#946129], true, [quantityDenominator#946156]
(427) Project
Output [1]: [plant#946129]
Input [2]: [plant#946129, quantityDenominator#946156]
(428) HashAggregate
Input [1]: [plant#946129]
Keys [1]: [plant#946129]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946129]
(429) Exchange
Input [1]: [plant#946129]
Arguments: hashpartitioning(plant#946129, 37), ENSURE_REQUIREMENTS, [plan_id=1597338]
(430) HashAggregate
Input [1]: [plant#946129]
Keys [1]: [plant#946129]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946129]
(431) BroadcastHashJoin
Left keys [1]: [plantUuid#946125]
Right keys [1]: [plant#946129]
Join type: Inner
Join condition: None
(432) Project
Output [3]: [plantUuid#946125, storageLocId#946126, storageLocUuid#946127]
Input [4]: [plantUuid#946125, storageLocId#946126, storageLocUuid#946127, plant#946129]
(433) BroadcastHashJoin
Left keys [2]: [coalesce(plant#946098.internalRefUUID, ), isnull(plant#946098.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#946125, ), isnull(plantUuid#946125)]
Join type: Inner
Join condition: None
(434) Generate
Input [9]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, stockQuantities#946100, plantUuid#946125, storageLocId#946126, storageLocUuid#946127]
Arguments: explode(filter(stockQuantities#946100, lambdafunction(((lambda x#944569.storageLocation.internalRefUuid = storageLocUuid#946127) AND (lambda x#944569.storageLocation.Id = storageLocId#946126)), lambda x#944569, false))), [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, plantUuid#946125], false, [stockQuantity#946159]
(435) ObjectHashAggregate
Input [7]: [systemId#946095, internalUUID#946096, product#946097, plant#946098, calculationDateTime#946099, plantUuid#946125, stockQuantity#946159]
Keys [5]: [plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095]
Functions [2]: [partial_first(calculationDateTime#946099, false), partial_collect_list(stockQuantity#946159, 0, 0)]
Aggregate Attributes [3]: [first#947919, valueSet#947920, buf#947921]
Results [8]: [plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095, first#947922, valueSet#947923, buf#947924]
(436) ObjectHashAggregate
Input [8]: [plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095, first#947922, valueSet#947923, buf#947924]
Keys [5]: [plantUuid#946125, internalUUID#946096, plant#946098, product#946097, systemId#946095]
Functions [2]: [first(calculationDateTime#946099, false), collect_list(stockQuantity#946159, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#946099)()#944584, collect_list(stockQuantity#946159, 0, 0)#944585]
Results [4]: [product#946097, plant#946098, first(calculationDateTime#946099)()#944584 AS calculationDateTime#946160, collect_list(stockQuantity#946159, 0, 0)#944585 AS stockQuantities#946161]
(437) Filter
Input [4]: [product#946097, plant#946098, calculationDateTime#946160, stockQuantities#946161]
Condition : ((size(stockQuantities#946161, true) > 0) AND isnotnull(calculationDateTime#946160))
(438) Generate
Input [4]: [product#946097, plant#946098, calculationDateTime#946160, stockQuantities#946161]
Arguments: explode(stockQuantities#946161), [product#946097, plant#946098, calculationDateTime#946160], false, [stockQuantity#946162]
(439) Filter
Input [4]: [product#946097, plant#946098, calculationDateTime#946160, stockQuantity#946162]
Condition : (((isnotnull(stockQuantity#946162.specialStockIndicator.code) AND isnotnull(stockQuantity#946162.stockType.code)) AND (stockQuantity#946162.specialStockIndicator.code = )) AND (stockQuantity#946162.stockType.code = 01))
(440) Project
Output [4]: [plant#946098.internalRefUUID AS plantUuid#946164, product#946097.internalRefUUID AS productUuid#946166, calculationDateTime#946160, stockQuantity#946162.storagelocation.id AS storageLocId#946167]
Input [4]: [product#946097, plant#946098, calculationDateTime#946160, stockQuantity#946162]
(441) Exchange
Input [4]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167]
Arguments: hashpartitioning(productUuid#946166, plantUuid#946164, 37), ENSURE_REQUIREMENTS, [plan_id=1597367]
(442) Sort
Input [4]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167]
Arguments: [productUuid#946166 ASC NULLS FIRST, plantUuid#946164 ASC NULLS FIRST], false, 0
(443) Scan parquet
Output [3]: [product#946172, plant#946173, orderDateTime#946174]
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]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(444) Filter
Input [3]: [product#946172, plant#946173, orderDateTime#946174]
Condition : ((isnotnull(orderDateTime#946174) AND isnotnull(plant#946173)) AND isnotnull(product#946172))
(445) Exchange
Input [3]: [product#946172, plant#946173, orderDateTime#946174]
Arguments: hashpartitioning(product#946172, plant#946173, 37), REPARTITION_BY_NUM, [plan_id=1597201]
(446) Scan parquet
Output [4]: [plant#946178, product#946179, productionAspect#946181, systemId#946176]
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>>>>
(447) Project
Output [4]: [plant#946178.internalRefUUID AS _extract_internalRefUUID#962421, product#946179.internalRefUUID AS _extract_internalRefUUID#962420, productionAspect#946181.productMovementPlants.unitOfIssue.code AS _extract_code#962422, productionAspect#946181.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#962423]
Input [4]: [plant#946178, product#946179, productionAspect#946181, systemId#946176]
(448) Exchange
Input [4]: [_extract_internalRefUUID#962421, _extract_internalRefUUID#962420, _extract_code#962422, _extract_internalRefUUID#962423]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597046]
(449) Project
Output [4]: [_extract_code#962422, _extract_internalRefUUID#962423, _extract_internalRefUUID#962420, _extract_internalRefUUID#962421]
Input [4]: [_extract_internalRefUUID#962421, _extract_internalRefUUID#962420, _extract_code#962422, _extract_internalRefUUID#962423]
(450) BroadcastExchange
Input [4]: [_extract_code#962422, _extract_internalRefUUID#962423, _extract_internalRefUUID#962420, _extract_internalRefUUID#962421]
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=1597354]
(451) BroadcastHashJoin
Left keys [4]: [coalesce(product#946172, ), isnull(product#946172), coalesce(plant#946173, ), isnull(plant#946173)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962420, ), isnull(_extract_internalRefUUID#962420), coalesce(_extract_internalRefUUID#962421, ), isnull(_extract_internalRefUUID#962421)]
Join type: LeftOuter
Join condition: None
(452) Project
Output [5]: [product#946172, plant#946173, orderDateTime#946174, _extract_code#962422, _extract_internalRefUUID#962423]
Input [7]: [product#946172, plant#946173, orderDateTime#946174, _extract_code#962422, _extract_internalRefUUID#962423, _extract_internalRefUUID#962420, _extract_internalRefUUID#962421]
(453) Scan parquet
Output [4]: [internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193, systemId#946186]
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>>>
(454) Filter
Input [4]: [internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193, systemId#946186]
Condition : isnotnull(internalUUID#946187)
(455) Project
Output [3]: [internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193]
Input [4]: [internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193, systemId#946186]
(456) Exchange
Input [3]: [internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597053]
(457) BroadcastExchange
Input [3]: [internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597358]
(458) BroadcastHashJoin
Left keys [1]: [product#946172]
Right keys [1]: [internalUUID#946187]
Join type: LeftOuter
Join condition: None
(459) Project
Output [4]: [product#946172, plant#946173, orderDateTime#946174, filter(unitOfMeasureConversions#946193, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962422) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962423)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946191.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946191.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946198]
Input [8]: [product#946172, plant#946173, orderDateTime#946174, _extract_code#962422, _extract_internalRefUUID#962423, internalUUID#946187, baseUnitOfMeasure#946191, unitOfMeasureConversions#946193]
(460) Generate
Input [4]: [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198]
Arguments: explode(filteredUnitOfMeasureConversions#946198.quantityNumerator), [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198], true, [quantityNumerator#946199]
(461) Project
Output [4]: [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198.quantityDenominator AS _extract_quantityDenominator#962305]
Input [5]: [product#946172, plant#946173, orderDateTime#946174, filteredUnitOfMeasureConversions#946198, quantityNumerator#946199]
(462) Generate
Input [4]: [product#946172, plant#946173, orderDateTime#946174, _extract_quantityDenominator#962305]
Arguments: explode(_extract_quantityDenominator#962305), [product#946172, plant#946173, orderDateTime#946174], true, [quantityDenominator#946200]
(463) Project
Output [3]: [product#946172, plant#946173, orderDateTime#946174]
Input [4]: [product#946172, plant#946173, orderDateTime#946174, quantityDenominator#946200]
(464) Sort
Input [3]: [product#946172, plant#946173, orderDateTime#946174]
Arguments: [product#946172 ASC NULLS FIRST, plant#946173 ASC NULLS FIRST], false, 0
(465) SortMergeJoin
Left keys [2]: [productUuid#946166, plantUuid#946164]
Right keys [2]: [product#946172, plant#946173]
Join type: Inner
Join condition: (calculationDateTime#946160 <= orderDateTime#946174)
(466) Project
Output [4]: [plantUuid#946164 AS plant#946203, productUuid#946166 AS product#946204, storageLocId#946167, calculationDateTime#946160]
Input [7]: [plantUuid#946164, productUuid#946166, calculationDateTime#946160, storageLocId#946167, product#946172, plant#946173, orderDateTime#946174]
(467) HashAggregate
Input [4]: [plant#946203, product#946204, storageLocId#946167, calculationDateTime#946160]
Keys [3]: [plant#946203, product#946204, storageLocId#946167]
Functions [1]: [partial_max(calculationDateTime#946160)]
Aggregate Attributes [1]: [max#947917]
Results [4]: [plant#946203, product#946204, storageLocId#946167, max#947918]
(468) HashAggregate
Input [4]: [plant#946203, product#946204, storageLocId#946167, max#947918]
Keys [3]: [plant#946203, product#946204, storageLocId#946167]
Functions [1]: [max(calculationDateTime#946160)]
Aggregate Attributes [1]: [max(calculationDateTime#946160)#944648]
Results [4]: [plant#946203, product#946204, storageLocId#946167, max(calculationDateTime#946160)#944648 AS max_calc_datetime#946205]
(469) Exchange
Input [4]: [plant#946203, product#946204, storageLocId#946167, max_calc_datetime#946205]
Arguments: hashpartitioning(coalesce(plant#946203, ), isnull(plant#946203), coalesce(product#946204, ), isnull(product#946204), coalesce(storageLocId#946167, ), isnull(storageLocId#946167), coalesce(max_calc_datetime#946205, 1970-01-01 00:00:00), isnull(max_calc_datetime#946205), 37), ENSURE_REQUIREMENTS, [plan_id=1597377]
(470) Sort
Input [4]: [plant#946203, product#946204, storageLocId#946167, max_calc_datetime#946205]
Arguments: [coalesce(plant#946203, ) ASC NULLS FIRST, isnull(plant#946203) ASC NULLS FIRST, coalesce(product#946204, ) ASC NULLS FIRST, isnull(product#946204) ASC NULLS FIRST, coalesce(storageLocId#946167, ) ASC NULLS FIRST, isnull(storageLocId#946167) ASC NULLS FIRST, coalesce(max_calc_datetime#946205, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#946205) ASC NULLS FIRST], false, 0
(471) SortMergeJoin
Left keys [8]: [coalesce(plant#946093, ), isnull(plant#946093), coalesce(product#946094, ), isnull(product#946094), coalesce(storageLocId#946057, ), isnull(storageLocId#946057), coalesce(calculationDateTime#946050, 1970-01-01 00:00:00), isnull(calculationDateTime#946050)]
Right keys [8]: [coalesce(plant#946203, ), isnull(plant#946203), coalesce(product#946204, ), isnull(product#946204), coalesce(storageLocId#946167, ), isnull(storageLocId#946167), coalesce(max_calc_datetime#946205, 1970-01-01 00:00:00), isnull(max_calc_datetime#946205)]
Join type: Inner
Join condition: None
(472) Project
Output [4]: [plant#946093, product#946094, calculationDateTime#946050, quantity#946059]
Input [9]: [plant#946093, product#946094, storageLocId#946057, calculationDateTime#946050, quantity#946059, plant#946203, product#946204, storageLocId#946167, max_calc_datetime#946205]
(473) HashAggregate
Input [4]: [plant#946093, product#946094, calculationDateTime#946050, quantity#946059]
Keys [2]: [product#946094, plant#946093]
Functions [2]: [partial_min(calculationDateTime#946050), partial_sum(quantity#946059)]
Aggregate Attributes [2]: [min#947907, sum#947908]
Results [4]: [product#946094, plant#946093, min#947909, sum#947910]
(474) Exchange
Input [4]: [product#946094, plant#946093, min#947909, sum#947910]
Arguments: hashpartitioning(product#946094, plant#946093, 37), ENSURE_REQUIREMENTS, [plan_id=1597384]
(475) HashAggregate
Input [4]: [product#946094, plant#946093, min#947909, sum#947910]
Keys [2]: [product#946094, plant#946093]
Functions [2]: [min(calculationDateTime#946050), sum(quantity#946059)]
Aggregate Attributes [2]: [min(calculationDateTime#946050)#944775, sum(quantity#946059)#944774]
Results [4]: [product#946094, plant#946093, min(calculationDateTime#946050)#944775 AS minCalculationDateTime#946207, round(sum(quantity#946059)#944774, 0) AS roundedQuantitySum#946208]
(476) Sort
Input [4]: [product#946094, plant#946093, minCalculationDateTime#946207, roundedQuantitySum#946208]
Arguments: [product#946094 ASC NULLS FIRST, plant#946093 ASC NULLS FIRST], false, 0
(477) SortMergeJoin
Left keys [2]: [product#945954, plant#945955]
Right keys [2]: [product#946094, plant#946093]
Join type: LeftOuter
Join condition: None
(478) Project
Output [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, CASE WHEN isnotnull(minCalculationDateTime#946207) THEN minCalculationDateTime#946207 ELSE orderDateTime#945956 END AS stockDatetime#946209, CASE WHEN isnotnull(roundedQuantitySum#946208) THEN array(roundedQuantitySum#946208) ELSE [0.0] END AS stockBatchQuantities#946210]
Input [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, product#946094, plant#946093, minCalculationDateTime#946207, roundedQuantitySum#946208]
(479) Exchange
Input [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210]
Arguments: hashpartitioning(coalesce(plant#945955, ), isnull(plant#945955), coalesce(product#945954, ), isnull(product#945954), 37), ENSURE_REQUIREMENTS, [plan_id=1597394]
(480) Sort
Input [7]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210]
Arguments: [coalesce(plant#945955, ) ASC NULLS FIRST, isnull(plant#945955) ASC NULLS FIRST, coalesce(product#945954, ) ASC NULLS FIRST, isnull(product#945954) ASC NULLS FIRST], false, 0
(481) Exchange
Input [9]: [product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, demandPointInTime#944822]
Arguments: hashpartitioning(coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814), 37), ENSURE_REQUIREMENTS, [plan_id=1597395]
(482) Sort
Input [9]: [product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, 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
(483) SortMergeJoin
Left keys [4]: [coalesce(plant#945955, ), isnull(plant#945955), coalesce(product#945954, ), isnull(product#945954)]
Right keys [4]: [coalesce(plant#944815, ), isnull(plant#944815), coalesce(product#944814, ), isnull(product#944814)]
Join type: LeftOuter
Join condition: None
(484) Project
Output [8]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, CASE WHEN isnotnull(product#944814) THEN struct(demandChannel, demandChannel#944816, demandStream, demandStream#944817, considerVariance, considerVariance#944818, demandTimeBuckets, demandTimeBuckets#944819, demandPointInTimeStart, demandPointInTimeStart#944820, demandPointInTimeEnd, demandPointInTimeEnd#944821, demandPointInTime, demandPointInTime#944822) END AS rawDemands#944824]
Input [16]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, product#944814, plant#944815, demandChannel#944816, demandStream#944817, considerVariance#944818, demandTimeBuckets#944819, demandPointInTimeStart#944820, demandPointInTimeEnd#944821, demandPointInTime#944822]
(485) ObjectHashAggregate
Input [8]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, rawDemands#944824]
Keys [8]: [product#945954, plant#945955, orderDateTime#945956, knownfloatingpointnormalized(if (isnull(productPlant#945967)) null else named_struct(systemId, productPlant#945967.systemId, internalUUID, productPlant#945967.internalUUID, plant, productPlant#945967.plant, product, productPlant#945967.product, blockedForReplenishmentStartingFrom, productPlant#945967.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#945967.productionAspect)) null else named_struct(productMovementPlants, productPlant#945967.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#945967.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#945967.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#945967.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#945967.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#945967.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile)))), salesPlant, productPlant#945967.salesPlant, listing, productPlant#945967.listing, sourceOfSupplyCategory, productPlant#945967.sourceOfSupplyCategory)) AS productPlant#945967, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#945984)) AS outboundUnit#945984, stockDatetime#946209, knownfloatingpointnormalized(transform(stockBatchQuantities#946210, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#963825)), lambda arg#963825, false))) AS stockBatchQuantities#946210, [7226582400000000] AS [7226582400000000]#963824]
Functions [1]: [partial_collect_list(rawDemands#944824, 0, 0)]
Aggregate Attributes [1]: [buf#947905]
Results [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#963824, buf#947906]
(486) Exchange
Input [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#963824, buf#947906]
Arguments: hashpartitioning(product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#963824, 37), ENSURE_REQUIREMENTS, [plan_id=1597402]
(487) ObjectHashAggregate
Input [9]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#963824, buf#947906]
Keys [8]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000]#963824]
Functions [1]: [collect_list(rawDemands#944824, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#944824, 0, 0)#944844]
Results [8]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, collect_list(rawDemands#944824, 0, 0)#944844 AS rawDemands#944825]
(488) Project
Output [2]: [internalUUID#945905, address#945911.timeZone.code AS timezonecode#945917]
Input [3]: [internalUUID#945905, address#945911, systemId#945904]
(489) Exchange
Input [2]: [internalUUID#945905, timezonecode#945917]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597077]
(490) BroadcastExchange
Input [2]: [internalUUID#945905, timezonecode#945917]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1597405]
(491) BroadcastHashJoin
Left keys [2]: [coalesce(plant#945955, ), isnull(plant#945955)]
Right keys [2]: [coalesce(internalUUID#945905, ), isnull(internalUUID#945905)]
Join type: LeftOuter
Join condition: None
(492) Project
Output [10]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#946211, rawDemands#944825, CASE WHEN isnotnull(timezonecode#945917) THEN timezonecode#945917 ELSE UTC END AS timezonecode#945919]
Input [10]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, rawDemands#944825, internalUUID#945905, timezonecode#945917]
(493) DeserializeToObject
Input [10]: [product#945954, plant#945955, orderDateTime#945956, productPlant#945967, outboundUnit#945984, stockDatetime#946209, stockBatchQuantities#946210, stockBatchShelfLifeEndDatetimes#946211, rawDemands#944825, timezonecode#945919]
Arguments: createexternalrow(invoke(product#945954.toString()), invoke(plant#945955.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#945956)), if (isnull(productPlant#945967)) null else createexternalrow(invoke(productPlant#945967.systemId.toString()), invoke(productPlant#945967.internalUUID.toString()), if (isnull(productPlant#945967.plant)) null else createexternalrow(invoke(productPlant#945967.plant.internalRefUUID.toString()), invoke(productPlant#945967.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#945967.product)) null else createexternalrow(invoke(productPlant#945967.product.internalRefUUID.toString()), invoke(productPlant#945967.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#945967.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#945967.productionAspect)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#945967.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#945967.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#945967.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)), if (isnull(productPlant#945967.salesPlant)) null else createexternalrow(if (isnull(productPlant#945967.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#945967.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#945967.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#945967.listing, Some(class scala.collection.mutable.ArraySeq)), if (isnull(productPlant#945967.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#945967.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#945967.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), static_invoke(java.lang.Double.valueOf(outboundUnit#945984)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#946209)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#946210, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#946211, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#944825, Some(class scala.collection.mutable.ArraySeq)), invoke(timezonecode#945919.toString()), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false), StructField(timezonecode,StringType,true)), obj#945940: org.apache.spark.sql.Row
(494) MapElements
Input [1]: [obj#945940]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x0000000801fc3d98@353c8b73, obj#945945: org.apache.spark.sql.Row
(495) SerializeFromObject
Input [1]: [obj#945945]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#945950, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#945951]
(496) Exchange
Input [2]: [product#945950, plant#945951]
Arguments: hashpartitioning(coalesce(plant#945951, ), isnull(plant#945951), coalesce(product#945950, ), isnull(product#945950), 37), ENSURE_REQUIREMENTS, [plan_id=1597414]
(497) Sort
Input [2]: [product#945950, plant#945951]
Arguments: [coalesce(plant#945951, ) ASC NULLS FIRST, isnull(plant#945951) ASC NULLS FIRST, coalesce(product#945950, ) ASC NULLS FIRST, isnull(product#945950) ASC NULLS FIRST], false, 0
(498) SortMergeJoin
Left keys [4]: [coalesce(plant#944306, ), isnull(plant#944306), coalesce(product#944305, ), isnull(product#944305)]
Right keys [4]: [coalesce(plant#945951, ), isnull(plant#945951), coalesce(product#945950, ), isnull(product#945950)]
Join type: LeftOuter
Join condition: None
(499) Project
Output [2]: [product#944305, plant#944306]
Input [4]: [product#944305, plant#944306, product#945950, plant#945951]
(500) Exchange
Input [2]: [product#944305, plant#944306]
Arguments: hashpartitioning(plant#944306, 37), ENSURE_REQUIREMENTS, [plan_id=1597440]
(501) Sort
Input [2]: [product#944305, plant#944306]
Arguments: [plant#944306 ASC NULLS FIRST], false, 0
(502) Scan parquet
Output [2]: [marketUnit#946289, distributionCenters#946295]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,IW_MU_CRP-125444_1), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(503) Filter
Input [2]: [marketUnit#946289, distributionCenters#946295]
Condition : (((marketUnit#946289 <=> IW_MU_CRP-125444_1) AND (size(distributionCenters#946295, true) > 0)) AND isnotnull(distributionCenters#946295))
(504) Project
Output [1]: [distributionCenters#946295]
Input [2]: [marketUnit#946289, distributionCenters#946295]
(505) Exchange
Input [1]: [distributionCenters#946295]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597088]
(506) Generate
Input [1]: [distributionCenters#946295]
Arguments: explode(distributionCenters#946295), false, [distributionCenters#946310]
(507) Filter
Input [1]: [distributionCenters#946310]
Condition : (((size(distributionCenters#946310.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#946310.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#946310.internalRefUUID))
(508) Project
Output [2]: [distributionCenters#946310.internalRefUUID AS _extract_internalRefUUID#962313, distributionCenters#946310.storageLocations.internalRefUUID AS _extract_internalRefUUID#962484]
Input [1]: [distributionCenters#946310]
(509) Generate
Input [2]: [_extract_internalRefUUID#962313, _extract_internalRefUUID#962484]
Arguments: explode(_extract_internalRefUUID#962484), [_extract_internalRefUUID#962313], false, [storageLocations#946311]
(510) Filter
Input [2]: [_extract_internalRefUUID#962313, storageLocations#946311]
Condition : isnotnull(storageLocations#946311)
(511) Project
Output [2]: [_extract_internalRefUUID#962313 AS plantUuid#946313, storageLocations#946311 AS storageLocUuid#946315]
Input [2]: [_extract_internalRefUUID#962313, storageLocations#946311]
(512) BroadcastExchange
Input [2]: [plantUuid#946313, storageLocUuid#946315]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597435]
(513) Scan parquet
Output [2]: [product#946316, plant#946317]
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]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(514) Filter
Input [2]: [product#946316, plant#946317]
Condition : isnotnull(plant#946317)
(515) Exchange
Input [2]: [product#946316, plant#946317]
Arguments: hashpartitioning(product#946316, plant#946317, 37), REPARTITION_BY_NUM, [plan_id=1597231]
(516) Scan parquet
Output [4]: [plant#946322, product#946323, productionAspect#946325, systemId#946320]
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>>>>
(517) Project
Output [4]: [plant#946322.internalRefUUID AS _extract_internalRefUUID#962426, product#946323.internalRefUUID AS _extract_internalRefUUID#962427, productionAspect#946325.productMovementPlants.unitOfIssue.code AS _extract_code#962424, productionAspect#946325.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#962425]
Input [4]: [plant#946322, product#946323, productionAspect#946325, systemId#946320]
(518) Exchange
Input [4]: [_extract_internalRefUUID#962426, _extract_internalRefUUID#962427, _extract_code#962424, _extract_internalRefUUID#962425]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597101]
(519) Project
Output [4]: [_extract_code#962424, _extract_internalRefUUID#962425, _extract_internalRefUUID#962427, _extract_internalRefUUID#962426]
Input [4]: [_extract_internalRefUUID#962426, _extract_internalRefUUID#962427, _extract_code#962424, _extract_internalRefUUID#962425]
(520) BroadcastExchange
Input [4]: [_extract_code#962424, _extract_internalRefUUID#962425, _extract_internalRefUUID#962427, _extract_internalRefUUID#962426]
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=1597419]
(521) BroadcastHashJoin
Left keys [4]: [coalesce(product#946316, ), isnull(product#946316), coalesce(plant#946317, ), isnull(plant#946317)]
Right keys [4]: [coalesce(_extract_internalRefUUID#962427, ), isnull(_extract_internalRefUUID#962427), coalesce(_extract_internalRefUUID#962426, ), isnull(_extract_internalRefUUID#962426)]
Join type: LeftOuter
Join condition: None
(522) Project
Output [4]: [product#946316, plant#946317, _extract_code#962424, _extract_internalRefUUID#962425]
Input [6]: [product#946316, plant#946317, _extract_code#962424, _extract_internalRefUUID#962425, _extract_internalRefUUID#962427, _extract_internalRefUUID#962426]
(523) Scan parquet
Output [4]: [internalUUID#946331, baseUnitOfMeasure#946335, unitOfMeasureConversions#946337, systemId#946330]
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>>>
(524) Filter
Input [4]: [internalUUID#946331, baseUnitOfMeasure#946335, unitOfMeasureConversions#946337, systemId#946330]
Condition : isnotnull(internalUUID#946331)
(525) Project
Output [3]: [internalUUID#946331, baseUnitOfMeasure#946335, unitOfMeasureConversions#946337]
Input [4]: [internalUUID#946331, baseUnitOfMeasure#946335, unitOfMeasureConversions#946337, systemId#946330]
(526) Exchange
Input [3]: [internalUUID#946331, baseUnitOfMeasure#946335, unitOfMeasureConversions#946337]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597108]
(527) BroadcastExchange
Input [3]: [internalUUID#946331, baseUnitOfMeasure#946335, unitOfMeasureConversions#946337]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1597423]
(528) BroadcastHashJoin
Left keys [1]: [product#946316]
Right keys [1]: [internalUUID#946331]
Join type: LeftOuter
Join condition: None
(529) Project
Output [2]: [plant#946317, filter(unitOfMeasureConversions#946337, lambdafunction((((lambda u#944410.measurementUnit1.code = _extract_code#962424) AND (lambda u#944410.measurementUnit1.internalRefUUID = _extract_internalRefUUID#962425)) AND ((lambda u#944410.measurementUnit2.code = baseUnitOfMeasure#946335.code) AND (lambda u#944410.measurementUnit2.internalRefUUID = baseUnitOfMeasure#946335.internalRefUUID))), lambda u#944410, false)) AS filteredUnitOfMeasureConversions#946342]
Input [7]: [product#946316, plant#946317, _extract_code#962424, _extract_internalRefUUID#962425, internalUUID#946331, baseUnitOfMeasure#946335, unitOfMeasureConversions#946337]
(530) Generate
Input [2]: [plant#946317, filteredUnitOfMeasureConversions#946342]
Arguments: explode(filteredUnitOfMeasureConversions#946342.quantityNumerator), [plant#946317, filteredUnitOfMeasureConversions#946342], true, [quantityNumerator#946343]
(531) Project
Output [2]: [plant#946317, filteredUnitOfMeasureConversions#946342.quantityDenominator AS _extract_quantityDenominator#962315]
Input [3]: [plant#946317, filteredUnitOfMeasureConversions#946342, quantityNumerator#946343]
(532) Generate
Input [2]: [plant#946317, _extract_quantityDenominator#962315]
Arguments: explode(_extract_quantityDenominator#962315), [plant#946317], true, [quantityDenominator#946344]
(533) Project
Output [1]: [plant#946317]
Input [2]: [plant#946317, quantityDenominator#946344]
(534) HashAggregate
Input [1]: [plant#946317]
Keys [1]: [plant#946317]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946317]
(535) Exchange
Input [1]: [plant#946317]
Arguments: hashpartitioning(plant#946317, 37), ENSURE_REQUIREMENTS, [plan_id=1597432]
(536) HashAggregate
Input [1]: [plant#946317]
Keys [1]: [plant#946317]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#946317]
(537) BroadcastHashJoin
Left keys [1]: [plantUuid#946313]
Right keys [1]: [plant#946317]
Join type: Inner
Join condition: None
(538) Project
Output [2]: [plantUuid#946313 AS plant#946288, storageLocUuid#946315]
Input [3]: [plantUuid#946313, storageLocUuid#946315, plant#946317]
(539) Sort
Input [2]: [plant#946288, storageLocUuid#946315]
Arguments: [plant#946288 ASC NULLS FIRST], false, 0
(540) SortMergeJoin
Left keys [1]: [plant#944306]
Right keys [1]: [plant#946288]
Join type: Inner
Join condition: None
(541) Project
Output [3]: [plant#944306, product#944305, storageLocUuid#946315]
Input [4]: [product#944305, plant#944306, plant#946288, storageLocUuid#946315]
(542) Filter
Input [5]: [internalUUID#946254, id#946255, isMarkedForDeletion#946260, items#946261, systemId#946253]
Condition : (((isnotnull(isMarkedForDeletion#946260) AND NOT isMarkedForDeletion#946260) AND (size(items#946261, true) > 0)) AND isnotnull(items#946261))
(543) Project
Output [3]: [internalUUID#946254, id#946255, items#946261]
Input [5]: [internalUUID#946254, id#946255, isMarkedForDeletion#946260, items#946261, systemId#946253]
(544) Exchange
Input [3]: [internalUUID#946254, id#946255, items#946261]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1597124]
(545) Generate
Input [3]: [internalUUID#946254, id#946255, items#946261]
Arguments: explode(items#946261), [internalUUID#946254, id#946255], false, [item#946265]
(546) Filter
Input [3]: [internalUUID#946254, id#946255, item#946265]
Condition : ((((isnotnull(item#946265.deletionIndicator) AND isnotnull(item#946265.completeIndicator)) AND isnotnull(item#946265.returnIndicator)) AND ((NOT item#946265.deletionIndicator AND NOT item#946265.completeIndicator) AND NOT item#946265.returnIndicator)) AND ((isnotnull(item#946265.product.internalRefUUID) AND isnotnull(item#946265.plant.internalRefUUID)) AND isnotnull(item#946265.storageLocation.internalRefUUID)))
(547) Project
Output [11]: [id#946255, internalUUID#946254, item#946265.plant.internalRefUUID AS plant#946270, item#946265.product.internalRefUUID AS product#946271, item#946265.storageLocation.internalRefUUID AS storageLocUuid#946272, item#946265.quantityUnit.code AS quantityUom#946273, item#946265.quantityUnit.internalRefUUID AS quantityUomUuid#946274, item#946265.quantityNumerator AS quantityNumerator#946275, item#946265.quantityDenominator AS quantityDenominator#946276, item#946265.scheduleLines AS scheduleLines#946277, item#946265.confirmations AS confirmations#946278]
Input [3]: [internalUUID#946254, id#946255, item#946265]
(548) BroadcastExchange
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, storageLocUuid#946272, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278]
Arguments: HashedRelationBroadcastMode(List(input[3, string, true], input[2, string, true], input[4, string, true]),false), [plan_id=1597446]
(549) BroadcastHashJoin
Left keys [3]: [product#944305, plant#944306, storageLocUuid#946315]
Right keys [3]: [product#946271, plant#946270, storageLocUuid#946272]
Join type: Inner
Join condition: None
(550) Project
Output [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, size(filter(confirmations#946278, lambdafunction(((NOT lambda x_140#946362.deletionIndicator AND lambda x_140#946362.isRelevantForConfirmation) AND isnotnull(lambda x_140#946362.confirmedDeliveryAt)), lambda x_140#946362, false)), false) AS _w0#946369]
Input [14]: [plant#944306, product#944305, storageLocUuid#946315, id#946255, internalUUID#946254, plant#946270, product#946271, storageLocUuid#946272, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278]
(551) Exchange
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369]
Arguments: hashpartitioning(internalUUID#946254, 37), ENSURE_REQUIREMENTS, [plan_id=1597450]
(552) Sort
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369]
Arguments: [internalUUID#946254 ASC NULLS FIRST], false, 0
(553) Window
Input [11]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369]
Arguments: [sum(_w0#946369) windowspecdefinition(internalUUID#946254, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#946370L], [internalUUID#946254]
(554) Project
Output [3]: [plant#946270, product#946271, filter(transform(CASE WHEN (_we0#946370L > 0) THEN transform(filter(confirmations#946278, lambdafunction(((NOT lambda x_140#946363.deletionIndicator AND lambda x_140#946363.isRelevantForConfirmation) AND isnotnull(lambda x_140#946363.confirmedDeliveryAt)), lambda x_140#946363, false)), lambdafunction(struct(openQty, greatest((lambda x_141#946366.confirmedQuantity - coalesce(lambda x_141#946366.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_141#946366.confirmedDeliveryAt), lambda x_141#946366, false)) ELSE transform(scheduleLines#946277, lambdafunction(struct(openQty, greatest((lambda x_139#946364.quantity - coalesce(lambda x_139#946364.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_139#946364.deliveryAt), lambda x_139#946364, false)) END, lambdafunction(struct(documentId, id#946255, documentUuid, internalUUID#946254, openQty, lambda x_142#946367.openQty, openQtyInBaseUnit, ((lambda x_142#946367.openQty * quantityNumerator#946275) / quantityDenominator#946276), qtyUom, quantityUom#946273, qtyUomUuid, quantityUomUuid#946274, availabilityDatetime, lambda x_142#946367.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_142#946367, false)), lambdafunction(NOT (lambda x_143#946368.openQty = 0.0), lambda x_143#946368, false)) AS openGoodsMovements#946361]
Input [12]: [id#946255, internalUUID#946254, plant#946270, product#946271, quantityUom#946273, quantityUomUuid#946274, quantityNumerator#946275, quantityDenominator#946276, scheduleLines#946277, confirmations#946278, _w0#946369, _we0#946370L]
(555) ObjectHashAggregate
Input [3]: [plant#946270, product#946271, openGoodsMovements#946361]
Keys [2]: [product#946271, plant#946270]
Functions [1]: [partial_collect_list(openGoodsMovements#946361, 0, 0)]
Aggregate Attributes [1]: [buf#947901]
Results [3]: [product#946271, plant#946270, buf#947902]
(556) Exchange
Input [3]: [product#946271, plant#946270, buf#947902]
Arguments: hashpartitioning(product#946271, plant#946270, 37), ENSURE_REQUIREMENTS, [plan_id=1597456]
(557) ObjectHashAggregate
Input [3]: [product#946271, plant#946270, buf#947902]
Keys [2]: [product#946271, plant#946270]
Functions [1]: [collect_list(openGoodsMovements#946361, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#946361, 0, 0)#946386]
Results [3]: [product#946271, plant#946270, flatten(collect_list(openGoodsMovements#946361, 0, 0)#946386) AS openGoodsMovements#946371]
(558) Filter
Input [3]: [product#946271, plant#946270, openGoodsMovements#946371]
Condition : ((size(openGoodsMovements#946371, false) > 0) AND (size(transform(openGoodsMovements#946371, lambdafunction(struct(documentId, lambda x_148#958170.documentId, documentUuid, lambda x_148#958170.documentUuid, openQty, lambda x_148#958170.openQty, qtyUomUuid, lambda x_148#958170.qtyUomUuid, qtyUom, lambda x_148#958170.qtyUom, plannedDeliveryDatetime, lambda x_148#958170.availabilityDatetime), lambda x_148#958170, false)), false) > 0))
(559) Project
Output [4]: [product#946271, plant#946270 AS location#958167, transform(openGoodsMovements#946371, lambdafunction(struct(documentId, lambda x_148#958170.documentId, documentUuid, lambda x_148#958170.documentUuid, openQty, lambda x_148#958170.openQty, qtyUomUuid, lambda x_148#958170.qtyUomUuid, qtyUom, lambda x_148#958170.qtyUom, plannedDeliveryDatetime, lambda x_148#958170.availabilityDatetime), lambda x_148#958170, false)) AS documents#958169, 10000000678 AS replenishmentRunId#958171L]
Input [3]: [product#946271, plant#946270, openGoodsMovements#946371]
(560) WriteFiles
Input [4]: [product#946271, location#958167, documents#958169, replenishmentRunId#958171L]
(561) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000000678/0_1_10000000678, false, Parquet, [path=hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000000678/0_1_10000000678], Overwrite, [product, location, documents, replenishmentRunId]
(562) AdaptiveSparkPlan
Output: []
Arguments: isFinalPlan=true