digraph G {
0 [id="node0" labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>" tooltip="AdaptiveSparkPlan isFinalPlan=true"];
1 [id="node1" labelType="html" label="<b>CollectLimit</b><br><br>shuffle records written: 0<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 0<br>local bytes read: 0.0 B<br>merged fetch fallback count: 0<br>local blocks read: 0<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>local merged bytes read: 0.0 B<br>remote reqs duration: 0 ms<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>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 0.0 B" tooltip="CollectLimit 1"];
subgraph cluster2 {
isCluster="true";
id="cluster2";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n22 ms (0 ms, 0 ms, 4 ms (stage 61429.0: task 150957))";
tooltip="WholeStageCodegen (1)";
3 [id="node3" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project"];
4 [id="node4" labelType="html" label="<b>Filter</b><br><br>number of output rows: 0" tooltip="Filter (size(unresolvedDependencies#724963, true) > 0)"];
}
5 [id="node5" labelType="html" label="<b>InMemoryTableScan</b><br><br>number of output rows: 177" tooltip="InMemoryTableScan [unresolvedDependencies#724963], [(size(unresolvedDependencies#724963, true) > 0)]"];
6 [id="node6" labelType="html" label="<br><b>AdaptiveSparkPlan</b><br><br>" tooltip="AdaptiveSparkPlan isFinalPlan=true"];
subgraph cluster7 {
isCluster="true";
id="cluster7";
label="WholeStageCodegen (10)\n \nduration: total (min, med, max (stageId: taskId))\n265 ms (0 ms, 1 ms, 52 ms (stage 61423.0: task 150927))";
tooltip="WholeStageCodegen (10)";
8 [id="node8" labelType="html" label="<br><b>SerializeFromObject</b><br><br>" tooltip="SerializeFromObject [assertnotnull(invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, orderProposalId), LongType, ObjectType(class java.lang.Long)).longValue())) AS orderProposalId#724957L, 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#724958, if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), LongType, ObjectType(class java.lang.Long)).longValue())), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object)), None) AS previousOrderProposals#724959, assertnotnull(invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, nodeId), LongType, ObjectType(class java.lang.Long)).longValue())) AS nodeId#724960L, if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), LongType, ObjectType(class java.lang.Long)).longValue())), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object)), None) AS dependentOnNodeIds#724961, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(5))) null else invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, clusterId), LongType, ObjectType(class java.lang.Long)).longValue()) AS clusterId#724962L, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(6))) null else if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), LongType, ObjectType(class java.lang.Long)).longValue()), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object)), None) AS unresolvedDependencies#724963]"];
}
9 [id="node9" labelType="html" label="<br><b>MapPartitions</b><br><br>" tooltip="MapPartitions org.apache.spark.sql.internal.ToScalaUDF$$$Lambda/0x00000008021bcd18@5aa0a601, obj#724949: org.apache.spark.sql.Row"];
10 [id="node10" labelType="html" label="<br><b>DeserializeToObject</b><br><br>" tooltip="DeserializeToObject createexternalrow(static_invoke(java.lang.Long.valueOf(orderProposalId#724875L)), invoke(plant#724905.toString()), mapobjects(lambdavariable(MapObject, LongType, false, -4), static_invoke(java.lang.Long.valueOf(lambdavariable(MapObject, LongType, false, -4))), previousOrderProposals#724906, Some(class scala.collection.mutable.ArraySeq)), static_invoke(java.lang.Long.valueOf(nodeId#724929L)), mapobjects(lambdavariable(MapObject, LongType, false, -5), static_invoke(java.lang.Long.valueOf(lambdavariable(MapObject, LongType, false, -5))), dependentOnNodeIds#724930, Some(class scala.collection.mutable.ArraySeq)), StructField(orderProposalId,LongType,false), StructField(plant,StringType,true), StructField(previousOrderProposals,ArrayType(LongType,false),false), StructField(nodeId,LongType,false), StructField(dependentOnNodeIds,ArrayType(LongType,false),false)), obj#724941: org.apache.spark.sql.Row"];
11 [id="node11" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 177<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 177<br>local bytes read total (min, med, max (stageId: taskId))<br>6.5 KiB (663.0 B, 695.0 B, 1783.0 B (stage 61423.0: task 150943))<br>merged fetch fallback count: 0<br>local blocks read: 7<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 20.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 total (min, med, max (stageId: taskId))<br>0 ms (0 ms, 0 ms, 0 ms (stage 61423.0: task 150927))<br>remote bytes read: 0.0 B<br>number of partitions: 25<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 6.5 KiB" tooltip="Exchange hashpartitioning(plant#724905, 25), REPARTITION_BY_COL, [plan_id=288223]"];
subgraph cluster12 {
isCluster="true";
id="cluster12";
label="WholeStageCodegen (9)\n \nduration: 33 ms";
tooltip="WholeStageCodegen (9)";
13 [id="node13" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L, previousOrderProposals#724906 AS dependentOnNodeIds#724930]"];
}
14 [id="node14" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 177<br>time in aggregation build: 99 ms<br>spill size: 0.0 B<br>number of sort fallback tasks: 1" tooltip="ObjectHashAggregate(keys=[orderProposalId#724875L], functions=[min(plant#724789), collect_set(previousOrderProposal#724904L, 0, 0)])"];
15 [id="node15" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 1<br>partition data size: 32.4 KiB<br>number of coalesced partitions: 1" tooltip="AQEShuffleRead coalesced"];
16 [id="node16" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 441<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 441<br>local bytes read: 20.6 KiB<br>merged fetch fallback count: 0<br>local blocks read: 50<br>remote merged chunks fetched: 0<br>remote blocks read: 25<br>data size total (min, med, max (stageId: taskId))<br>42.5 KiB (13.6 KiB, 14.2 KiB, 14.7 KiB (stage 61412.0: task 150925))<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>3 ms (1 ms, 1 ms, 1 ms (stage 61412.0: task 150925))<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: 10.3 KiB<br>number of partitions: 25<br>remote reqs duration: 1 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>30.9 KiB (10.1 KiB, 10.3 KiB, 10.5 KiB (stage 61412.0: task 150925))" tooltip="Exchange hashpartitioning(orderProposalId#724875L, 25), ENSURE_REQUIREMENTS, [plan_id=288171]"];
17 [id="node17" labelType="html" label="<b>ObjectHashAggregate</b><br><br>number of output rows: 441<br>time in aggregation build total (min, med, max (stageId: taskId))<br>683 ms (225 ms, 229 ms, 229 ms (stage 61412.0: task 150923))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 61412.0: task 150924))<br>number of sort fallback tasks: 3" tooltip="ObjectHashAggregate(keys=[orderProposalId#724875L], functions=[partial_min(plant#724789), partial_collect_set(previousOrderProposal#724904L, 0, 0)])"];
subgraph cluster18 {
isCluster="true";
id="cluster18";
label="WholeStageCodegen (8)\n \nduration: total (min, med, max (stageId: taskId))\n683 ms (225 ms, 229 ms, 229 ms (stage 61412.0: task 150923))";
tooltip="WholeStageCodegen (8)";
19 [id="node19" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#724789, orderProposalId#724875L, previousOrderProposal#724904L]"];
}
20 [id="node20" labelType="html" label="<b>Window</b><br><br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 61412.0: task 150924))" tooltip="Window [lag(orderProposalId#724875L, -1, null) windowspecdefinition(product#724840, plant#724789, availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST, specifiedwindowframe(RowFrame, -1, -1)) AS previousOrderProposal#724904L], [product#724840, plant#724789], [availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST]"];
subgraph cluster21 {
isCluster="true";
id="cluster21";
label="WholeStageCodegen (7)\n \nduration: total (min, med, max (stageId: taskId))\n1.4 s (449 ms, 450 ms, 451 ms (stage 61412.0: task 150925))";
tooltip="WholeStageCodegen (7)";
22 [id="node22" labelType="html" label="<b>Sort</b><br><br>sort time total (min, med, max (stageId: taskId))<br>3 ms (1 ms, 1 ms, 1 ms (stage 61412.0: task 150924))<br>peak memory total (min, med, max (stageId: taskId))<br>6.2 MiB (2.1 MiB, 2.1 MiB, 2.1 MiB (stage 61412.0: task 150924))<br>spill size total (min, med, max (stageId: taskId))<br>0.0 B (0.0 B, 0.0 B, 0.0 B (stage 61412.0: task 150924))" tooltip="Sort [product#724840 ASC NULLS FIRST, plant#724789 ASC NULLS FIRST, availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST], false, 0"];
}
23 [id="node23" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 3<br>partition data size total (min, med, max (stageId: taskId))<br>198.8 KiB (55.8 KiB, 57.7 KiB, 85.3 KiB (driver))<br>number of coalesced partitions: 3" tooltip="AQEShuffleRead coalesced"];
24 [id="node24" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 2,940<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 2,940<br>local bytes read total (min, med, max (stageId: taskId))<br>123.1 KiB (8.8 KiB, 46.4 KiB, 67.9 KiB (stage 61412.0: task 150925))<br>merged fetch fallback count: 0<br>local blocks read: 115<br>remote merged chunks fetched: 0<br>remote blocks read: 60<br>data size total (min, med, max (stageId: taskId))<br>321.6 KiB (32.9 KiB, 45.2 KiB, 54.7 KiB (stage 61408.0: task 150917))<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>9 ms (1 ms, 1 ms, 1 ms (stage 61408.0: task 150921))<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 61412.0: task 150924))<br>remote bytes read total (min, med, max (stageId: taskId))<br>66.9 KiB (8.8 KiB, 13.7 KiB, 44.3 KiB (stage 61412.0: task 150924))<br>number of partitions: 25<br>remote reqs duration total (min, med, max (stageId: taskId))<br>3 ms (0 ms, 1 ms, 2 ms (stage 61412.0: task 150924))<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>190.0 KiB (21.1 KiB, 27.2 KiB, 31.3 KiB (stage 61408.0: task 150917))" tooltip="Exchange hashpartitioning(product#724840, plant#724789, 25), ENSURE_REQUIREMENTS, [plan_id=288073]"];
subgraph cluster25 {
isCluster="true";
id="cluster25";
label="WholeStageCodegen (6)\n \nduration: total (min, med, max (stageId: taskId))\n275 ms (6 ms, 45 ms, 46 ms (stage 61408.0: task 150919))";
tooltip="WholeStageCodegen (6)";
26 [id="node26" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#724789, productOrderScheduleExploded#724839.product AS product#724840, productOrderScheduleExploded#724839.orderDateTime AS orderDateTime#724841, productOrderScheduleExploded#724839.availabilityDateTime AS availabilityDateTime#724842, xxhash64(CASE WHEN (_extract_supplierSubrange#724964 <=> true) THEN effectiveSubrange#724814 END, orderGroupingProfile#724799, CASE WHEN (_extract_mrpController#724965 <=> true) THEN productOrderScheduleExploded#724839.mrpController END, CASE WHEN (_extract_purchasingOrg#724966 <=> true) THEN productOrderScheduleExploded#724839.purchasingOrg END, CASE WHEN (_extract_orderDate#724967 <=> true) THEN productOrderScheduleExploded#724839.orderDateTime END, CASE WHEN (_extract_deliveryDate#724968 <=> true) THEN deliveryDateTime#724790 END, CASE WHEN (_extract_supplier#724969 <=> true) THEN supplierOrGroup#724816 END, locationOrGroup#724817, CASE WHEN (_extract_purchasingGroup#724970 <=> true) THEN productOrderScheduleExploded#724839.purchasingGroup END, ((((((((CASE WHEN (isnull(effectiveSubrange#724814) AND (_extract_supplierSubrange#724964 <=> true)) THEN 1 ELSE 0 END + CASE WHEN isnull(orderGroupingProfile#724799) THEN 2 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.mrpController) AND (_extract_mrpController#724965 <=> true)) THEN 4 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.purchasingOrg) AND (_extract_purchasingOrg#724966 <=> true)) THEN 8 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.orderDateTime) AND (_extract_orderDate#724967 <=> true)) THEN 16 ELSE 0 END) + CASE WHEN (isnull(deliveryDateTime#724790) AND (_extract_deliveryDate#724968 <=> true)) THEN 32 ELSE 0 END) + CASE WHEN (isnull(supplierOrGroup#724816) AND (_extract_supplier#724969 <=> true)) THEN 64 ELSE 0 END) + CASE WHEN isnull(locationOrGroup#724817) THEN 128 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.purchasingGroup) AND (_extract_purchasingGroup#724970 <=> true)) THEN 256 ELSE 0 END), 10000002108, 42) AS orderProposalId#724875L]"];
27 [id="node27" labelType="html" label="<b>Generate</b><br><br>number of output rows: 2,940" tooltip="Generate explode(productOrderSchedule#724794), [plant#724789, deliveryDateTime#724790, effectiveSubrange#724814, _extract_supplierSubrange#724964, _extract_mrpController#724965, _extract_purchasingOrg#724966, _extract_orderDate#724967, _extract_deliveryDate#724968, _extract_supplier#724969, _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817], false, [productOrderScheduleExploded#724839]"];
28 [id="node28" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, orderGroupCriteria#724827.supplierSubrange AS _extract_supplierSubrange#724964, orderGroupCriteria#724827.mrpController AS _extract_mrpController#724965, orderGroupCriteria#724827.purchasingOrg AS _extract_purchasingOrg#724966, orderGroupCriteria#724827.orderDate AS _extract_orderDate#724967, orderGroupCriteria#724827.deliveryDate AS _extract_deliveryDate#724968, orderGroupCriteria#724827.supplier AS _extract_supplier#724969, orderGroupCriteria#724827.purchasingGroup AS _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817]"];
29 [id="node29" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, CASE WHEN isnull(orderGroupCriteria#724808) THEN [true,false,false,false,true,false,false,false] ELSE orderGroupCriteria#724808 END AS orderGroupCriteria#724827, orderGroupingProfile#724799, coalesce(supplierGroup#724787, supplier#724788) AS supplierOrGroup#724816, coalesce(locationGroup#724801, plant#724789) AS locationOrGroup#724817]"];
30 [id="node30" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 522" tooltip="BroadcastHashJoin [coalesce(supplierGroup#724787, ), isnull(supplierGroup#724787), coalesce(supplier#724788, ), isnull(supplier#724788), coalesce(effectiveSubrange#724814, ), isnull(effectiveSubrange#724814), coalesce(plant#724789, ), isnull(plant#724789), coalesce(deliveryDateTime#724790, 1970-01-01 00:00:00), isnull(deliveryDateTime#724790)], [coalesce(supplierGroup#724800, ), isnull(supplierGroup#724800), coalesce(supplier#724795, ), isnull(supplier#724795), coalesce(effectiveSubrange#724815, ), isnull(effectiveSubrange#724815), coalesce(plant#724797, ), isnull(plant#724797), coalesce(deliveryDateTime#724798, 1970-01-01 00:00:00), isnull(deliveryDateTime#724798)], LeftOuter, BuildRight, false"];
}
31 [id="node31" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 7" tooltip="AQEShuffleRead local"];
32 [id="node32" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 522<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 522<br>local bytes read total (min, med, max (stageId: taskId))<br>332.2 KiB (28.9 KiB, 48.2 KiB, 62.5 KiB (stage 61408.0: task 150919))<br>merged fetch fallback count: 0<br>local blocks read: 325<br>remote merged chunks fetched: 0<br>remote blocks read: 43<br>data size total (min, med, max (stageId: taskId))<br>783.6 KiB (20.9 KiB, 31.9 KiB, 41.6 KiB (stage 61402.0: task 150907))<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>25 ms (0 ms, 0 ms, 1 ms (stage 61402.0: task 150870))<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 61408.0: task 150917))<br>remote bytes read total (min, med, max (stageId: taskId))<br>45.5 KiB (14.9 KiB, 30.6 KiB, 30.6 KiB (stage 61408.0: task 150918))<br>number of partitions: 25<br>remote reqs duration total (min, med, max (stageId: taskId))<br>1 ms (0 ms, 1 ms, 1 ms (stage 61408.0: task 150918))<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>377.7 KiB (11.4 KiB, 15.3 KiB, 17.3 KiB (stage 61402.0: task 150904))" tooltip="Exchange hashpartitioning(coalesce(supplierGroup#724787, ), isnull(supplierGroup#724787), coalesce(supplier#724788, ), isnull(supplier#724788), coalesce(effectiveSubrange#724814, ), isnull(effectiveSubrange#724814), coalesce(plant#724789, ), isnull(plant#724789), coalesce(deliveryDateTime#724790, 1970-01-01 00:00:00), isnull(deliveryDateTime#724790), 25), ENSURE_REQUIREMENTS, [plan_id=287768]"];
subgraph cluster33 {
isCluster="true";
id="cluster33";
label="WholeStageCodegen (5)\n \nduration: total (min, med, max (stageId: taskId))\n446 ms (3 ms, 5 ms, 41 ms (stage 61402.0: task 150871))";
tooltip="WholeStageCodegen (5)";
34 [id="node34" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, CASE WHEN isnotnull(supplyingPlant#724792) THEN productGroup#724793 ELSE subrange#724791 END AS effectiveSubrange#724814]"];
}
35 [id="node35" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 522<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 522<br>local bytes read total (min, med, max (stageId: taskId))<br>213.5 KiB (4.2 KiB, 8.9 KiB, 11.5 KiB (stage 61402.0: task 150907))<br>merged fetch fallback count: 0<br>local blocks read: 160<br>remote merged chunks fetched: 0<br>remote blocks read: 115<br>data size total (min, med, max (stageId: taskId))<br>791.8 KiB (56.9 KiB, 74.1 KiB, 82.7 KiB (stage 61396.0: task 150830))<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 (1 ms, 1 ms, 1 ms (stage 61396.0: task 150835))<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 61402.0: task 150871))<br>remote bytes read total (min, med, max (stageId: taskId))<br>151.2 KiB (2.8 KiB, 5.4 KiB, 10.1 KiB (stage 61402.0: task 150898))<br>number of partitions: 25<br>remote reqs duration total (min, med, max (stageId: taskId))<br>8 ms (0 ms, 0 ms, 1 ms (stage 61402.0: task 150873))<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written total (min, med, max (stageId: taskId))<br>364.7 KiB (27.1 KiB, 33.4 KiB, 37.4 KiB (stage 61396.0: task 150828))" tooltip="Exchange RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287226]"];
subgraph cluster36 {
isCluster="true";
id="cluster36";
label="WholeStageCodegen (1)\n \nduration: total (min, med, max (stageId: taskId))\n913 ms (59 ms, 71 ms, 144 ms (stage 61396.0: task 150828))";
tooltip="WholeStageCodegen (1)";
37 [id="node37" labelType="html" label="<b>Filter</b><br><br>number of output rows: 522" tooltip="Filter ((size(productOrderSchedule#724794, true) > 0) AND isnotnull(productOrderSchedule#724794))"];
38 [id="node38" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 522<br>number of input batches: 11" tooltip="ColumnarToRow"];
}
39 [id="node39" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 11<br>scan time total (min, med, max (stageId: taskId))<br>902 ms (58 ms, 70 ms, 142 ms (stage 61396.0: task 150828))<br>metadata time: 0 ms<br>size of files read: 188.1 KiB<br>number of output rows: 522" tooltip="FileScan parquet [supplierGroup#724787,supplier#724788,plant#724789,deliveryDateTime#724790,subrange#724791,supplyingPlant#724792,productGroup#724793,productOrderSchedule#724794] Batched: true, DataFilters: [(size(productOrderSchedule#724794, true) > 0), isnotnull(productOrderSchedule#724794)], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [IsNotNull(productOrderSchedule)], ReadSchema: struct<supplierGroup:string,supplier:string,plant:string,deliveryDateTime:timestamp,subrange:stri..."];
40 [id="node40" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 8 ms<br>time to collect: 91 ms<br>number of output rows: 522<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(coalesce(input[4, string, true], ), isnull(input[4, string, true]), coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[7, string, true], ), isnull(input[7, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, timestamp, true], 1970-01-01 00:00:00), isnull(input[2, timestamp, true])),false), [plan_id=287889]"];
41 [id="node41" labelType="html" label="<b>AQEShuffleRead</b><br><br>number of partitions: 2" tooltip="AQEShuffleRead local"];
42 [id="node42" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 522<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 522<br>local bytes read total (min, med, max (stageId: taskId))<br>97.8 KiB (47.5 KiB, 50.3 KiB, 50.3 KiB (stage 61405.0: task 150914))<br>merged fetch fallback count: 0<br>local blocks read: 347<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size total (min, med, max (stageId: taskId))<br>124.8 KiB (4.8 KiB, 5.0 KiB, 5.1 KiB (stage 61400.0: task 150880))<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>23 ms (0 ms, 0 ms, 1 ms (stage 61400.0: task 150868))<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 61405.0: task 150915))<br>remote bytes read: 0.0 B<br>number of partitions: 25<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>97.8 KiB (3.3 KiB, 3.9 KiB, 4.3 KiB (stage 61400.0: task 150888))" tooltip="Exchange hashpartitioning(coalesce(supplierGroup#724800, ), isnull(supplierGroup#724800), coalesce(supplier#724795, ), isnull(supplier#724795), coalesce(effectiveSubrange#724815, ), isnull(effectiveSubrange#724815), coalesce(plant#724797, ), isnull(plant#724797), coalesce(deliveryDateTime#724798, 1970-01-01 00:00:00), isnull(deliveryDateTime#724798), 25), ENSURE_REQUIREMENTS, [plan_id=287636]"];
subgraph cluster43 {
isCluster="true";
id="cluster43";
label="WholeStageCodegen (4)\n \nduration: total (min, med, max (stageId: taskId))\n236 ms (2 ms, 2 ms, 39 ms (stage 61400.0: task 150864))";
tooltip="WholeStageCodegen (4)";
44 [id="node44" labelType="html" label="<br><b>Project</b><br><br>" tooltip="Project [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, subrange#724796 AS effectiveSubrange#724815]"];
45 [id="node45" labelType="html" label="<b>BroadcastHashJoin</b><br><br>number of output rows: 522" tooltip="BroadcastHashJoin [orderGroupingProfile#724799], [orderGroupingProfile#724806], LeftOuter, BuildRight, false"];
}
46 [id="node46" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 522<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 522<br>local bytes read total (min, med, max (stageId: taskId))<br>27.5 KiB (1059.0 B, 1135.0 B, 1199.0 B (stage 61400.0: task 150883))<br>merged fetch fallback count: 0<br>local blocks read: 25<br>remote merged chunks fetched: 0<br>remote blocks read: 0<br>data size: 84.0 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 61400.0: task 150866))<br>remote bytes read: 0.0 B<br>number of partitions: 25<br>remote reqs duration: 0 ms<br>remote bytes read to disk: 0.0 B<br>shuffle bytes written: 27.5 KiB" tooltip="Exchange RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287242]"];
subgraph cluster47 {
isCluster="true";
id="cluster47";
label="WholeStageCodegen (2)\n \nduration: 105 ms";
tooltip="WholeStageCodegen (2)";
48 [id="node48" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 522<br>number of input batches: 1" tooltip="ColumnarToRow"];
}
49 [id="node49" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 1<br>scan time: 100 ms<br>metadata time: 0 ms<br>size of files read: 6.2 KiB<br>number of output rows: 522" tooltip="FileScan parquet [supplier#724795,subrange#724796,plant#724797,deliverydatetime#724798,ordergroupingprofile#724799,supplierGroup#724800,locationGroup#724801] Batched: true, DataFilters: [], Format: Parquet, Location: InMemoryFileIndex(1 paths)[hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanac..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<supplier:string,subrange:string,plant:string,deliverydatetime:timestamp,ordergroupingprofi..."];
50 [id="node50" labelType="html" label="<b>BroadcastExchange</b><br><br>time to broadcast: 0 ms<br>time to build: 0 ms<br>time to collect: 35 ms<br>number of output rows: 6<br>data size: 2.0 MiB" tooltip="BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, false]),false), [plan_id=287263]"];
51 [id="node51" labelType="html" label="<b>Exchange</b><br><br>shuffle records written: 6<br>remote merged reqs duration: 0 ms<br>remote merged blocks fetched: 0<br>records read: 6<br>local bytes read total (min, med, max (stageId: taskId))<br>628.0 B (121.0 B, 123.0 B, 384.0 B (stage 61398.0: task 150839))<br>merged fetch fallback count: 0<br>local blocks read: 5<br>remote merged chunks fetched: 0<br>remote blocks read: 1<br>data size total (min, med, max (stageId: taskId))<br>680.0 B (104.0 B, 112.0 B, 120.0 B (stage 61395.0: task 150822))<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>2 ms (0 ms, 0 ms, 0 ms (stage 61395.0: task 150826))<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 61398.0: task 150839))<br>remote bytes read: 126.0 B<br>number of partitions: 25<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>754.0 B (121.0 B, 126.0 B, 133.0 B (stage 61395.0: task 150824))" tooltip="Exchange RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287255]"];
subgraph cluster52 {
isCluster="true";
id="cluster52";
label="WholeStageCodegen (3)\n \nduration: total (min, med, max (stageId: taskId))\n864 ms (138 ms, 142 ms, 158 ms (stage 61395.0: task 150825))";
tooltip="WholeStageCodegen (3)";
53 [id="node53" labelType="html" label="<b>Filter</b><br><br>number of output rows: 6" tooltip="Filter isnotnull(orderGroupingProfile#724806)"];
54 [id="node54" labelType="html" label="<b>ColumnarToRow</b><br><br>number of output rows: 6<br>number of input batches: 6" tooltip="ColumnarToRow"];
}
55 [id="node55" labelType="html" label="<b>Scan parquet </b><br><br>number of files read: 6<br>scan time total (min, med, max (stageId: taskId))<br>853 ms (136 ms, 140 ms, 156 ms (stage 61395.0: task 150825))<br>metadata time: 0 ms<br>size of files read: 41.3 KiB<br>number of output rows: 6" tooltip="FileScan parquet [orderGroupingProfile#724806,orderGroupCriteria#724808] Batched: true, DataFilters: [isnotnull(orderGroupingProfile#724806)], Format: Parquet, Location: PreparedDeltaFileIndex(1 paths)[hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20...., PartitionFilters: [], PushedFilters: [IsNotNull(orderGroupingProfile)], ReadSchema: struct<orderGroupingProfile:string,orderGroupCriteria:struct<supplier:boolean,supplierSubrange:bo..."];
1->0;
3->1;
4->3;
5->4;
6->5;
8->6;
9->8;
10->9;
11->10;
13->11;
14->13;
15->14;
16->15;
17->16;
19->17;
20->19;
22->20;
23->22;
24->23;
26->24;
27->26;
28->27;
29->28;
30->29;
31->30;
32->31;
34->32;
35->34;
37->35;
38->37;
39->38;
40->30;
41->40;
42->41;
44->42;
45->44;
46->45;
48->46;
49->48;
50->45;
51->50;
53->51;
54->53;
55->54;
}
== Physical Plan ==
AdaptiveSparkPlan (92)
+- == Final Plan ==
ResultQueryStage (88), Statistics(sizeInBytes=8.0 EiB)
+- CollectLimit (87)
+- * Project (86)
+- * Filter (85)
+- TableCacheQueryStage (84), Statistics(sizeInBytes=20.3 KiB, rowCount=177)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (83)
+- == Final Plan ==
ResultQueryStage (52)
+- * SerializeFromObject (51)
+- MapPartitions (50)
+- DeserializeToObject (49)
+- ShuffleQueryStage (48), Statistics(sizeInBytes=20.3 KiB, rowCount=177)
+- Exchange (47)
+- * Project (46)
+- ObjectHashAggregate (45)
+- AQEShuffleRead (44)
+- ShuffleQueryStage (43), Statistics(sizeInBytes=42.5 KiB, rowCount=441)
+- Exchange (42)
+- ObjectHashAggregate (41)
+- * Project (40)
+- Window (39)
+- * Sort (38)
+- AQEShuffleRead (37)
+- ShuffleQueryStage (36), Statistics(sizeInBytes=321.6 KiB, rowCount=2.94E+3)
+- Exchange (35)
+- * Project (34)
+- * Generate (33)
+- * Project (32)
+- * Project (31)
+- * BroadcastHashJoin LeftOuter BuildRight (30)
:- AQEShuffleRead (11)
: +- ShuffleQueryStage (10), Statistics(sizeInBytes=783.6 KiB, rowCount=522)
: +- Exchange (9)
: +- * Project (8)
: +- ShuffleQueryStage (7), Statistics(sizeInBytes=791.8 KiB, rowCount=522)
: +- Exchange (6)
: +- * Filter (5)
: +- * ColumnarToRow (4)
: +- Scan parquet (3)
+- BroadcastQueryStage (29), Statistics(sizeInBytes=2.0 MiB, rowCount=522)
+- BroadcastExchange (28)
+- AQEShuffleRead (27)
+- ShuffleQueryStage (26), Statistics(sizeInBytes=124.8 KiB, rowCount=522)
+- Exchange (25)
+- * Project (24)
+- * BroadcastHashJoin LeftOuter BuildRight (23)
:- ShuffleQueryStage (15), Statistics(sizeInBytes=84.0 KiB, rowCount=522)
: +- Exchange (14)
: +- * ColumnarToRow (13)
: +- Scan parquet (12)
+- BroadcastQueryStage (22), Statistics(sizeInBytes=2.0 MiB, rowCount=6)
+- BroadcastExchange (21)
+- ShuffleQueryStage (20), Statistics(sizeInBytes=680.0 B, rowCount=6)
+- Exchange (19)
+- * Filter (18)
+- * ColumnarToRow (17)
+- Scan parquet (16)
+- == Initial Plan ==
SerializeFromObject (82)
+- MapPartitions (81)
+- DeserializeToObject (80)
+- Exchange (79)
+- Project (78)
+- ObjectHashAggregate (77)
+- Exchange (76)
+- ObjectHashAggregate (75)
+- Project (74)
+- Window (73)
+- Sort (72)
+- Exchange (71)
+- Project (70)
+- Generate (69)
+- Project (68)
+- Project (67)
+- SortMergeJoin LeftOuter (66)
:- Sort (57)
: +- Exchange (56)
: +- Project (55)
: +- Exchange (54)
: +- Filter (53)
: +- Scan parquet (3)
+- Sort (65)
+- Exchange (64)
+- Project (63)
+- BroadcastHashJoin LeftOuter BuildRight (62)
:- Exchange (58)
: +- Scan parquet (12)
+- BroadcastExchange (61)
+- Exchange (60)
+- Filter (59)
+- Scan parquet (16)
+- == Initial Plan ==
CollectLimit (91)
+- Project (90)
+- Filter (89)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (83)
+- == Final Plan ==
ResultQueryStage (52)
+- * SerializeFromObject (51)
+- MapPartitions (50)
+- DeserializeToObject (49)
+- ShuffleQueryStage (48), Statistics(sizeInBytes=20.3 KiB, rowCount=177)
+- Exchange (47)
+- * Project (46)
+- ObjectHashAggregate (45)
+- AQEShuffleRead (44)
+- ShuffleQueryStage (43), Statistics(sizeInBytes=42.5 KiB, rowCount=441)
+- Exchange (42)
+- ObjectHashAggregate (41)
+- * Project (40)
+- Window (39)
+- * Sort (38)
+- AQEShuffleRead (37)
+- ShuffleQueryStage (36), Statistics(sizeInBytes=321.6 KiB, rowCount=2.94E+3)
+- Exchange (35)
+- * Project (34)
+- * Generate (33)
+- * Project (32)
+- * Project (31)
+- * BroadcastHashJoin LeftOuter BuildRight (30)
:- AQEShuffleRead (11)
: +- ShuffleQueryStage (10), Statistics(sizeInBytes=783.6 KiB, rowCount=522)
: +- Exchange (9)
: +- * Project (8)
: +- ShuffleQueryStage (7), Statistics(sizeInBytes=791.8 KiB, rowCount=522)
: +- Exchange (6)
: +- * Filter (5)
: +- * ColumnarToRow (4)
: +- Scan parquet (3)
+- BroadcastQueryStage (29), Statistics(sizeInBytes=2.0 MiB, rowCount=522)
+- BroadcastExchange (28)
+- AQEShuffleRead (27)
+- ShuffleQueryStage (26), Statistics(sizeInBytes=124.8 KiB, rowCount=522)
+- Exchange (25)
+- * Project (24)
+- * BroadcastHashJoin LeftOuter BuildRight (23)
:- ShuffleQueryStage (15), Statistics(sizeInBytes=84.0 KiB, rowCount=522)
: +- Exchange (14)
: +- * ColumnarToRow (13)
: +- Scan parquet (12)
+- BroadcastQueryStage (22), Statistics(sizeInBytes=2.0 MiB, rowCount=6)
+- BroadcastExchange (21)
+- ShuffleQueryStage (20), Statistics(sizeInBytes=680.0 B, rowCount=6)
+- Exchange (19)
+- * Filter (18)
+- * ColumnarToRow (17)
+- Scan parquet (16)
+- == Initial Plan ==
SerializeFromObject (82)
+- MapPartitions (81)
+- DeserializeToObject (80)
+- Exchange (79)
+- Project (78)
+- ObjectHashAggregate (77)
+- Exchange (76)
+- ObjectHashAggregate (75)
+- Project (74)
+- Window (73)
+- Sort (72)
+- Exchange (71)
+- Project (70)
+- Generate (69)
+- Project (68)
+- Project (67)
+- SortMergeJoin LeftOuter (66)
:- Sort (57)
: +- Exchange (56)
: +- Project (55)
: +- Exchange (54)
: +- Filter (53)
: +- Scan parquet (3)
+- Sort (65)
+- Exchange (64)
+- Project (63)
+- BroadcastHashJoin LeftOuter BuildRight (62)
:- Exchange (58)
: +- Scan parquet (12)
+- BroadcastExchange (61)
+- Exchange (60)
+- Filter (59)
+- Scan parquet (16)
(1) InMemoryTableScan
Output [1]: [unresolvedDependencies#724963]
Arguments: [unresolvedDependencies#724963], [(size(unresolvedDependencies#724963, true) > 0)]
(2) InMemoryRelation
Arguments: [orderProposalId#724957L, plant#724958, previousOrderProposals#724959, nodeId#724960L, dependentOnNodeIds#724961, clusterId#724962L, unresolvedDependencies#724963], StorageLevel(disk, memory, 2 replicas)
(3) Scan parquet
Output [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
Batched: true
Location: InMemoryFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/grouping-worklist/10000002108]
PushedFilters: [IsNotNull(productOrderSchedule)]
ReadSchema: struct<supplierGroup:string,supplier:string,plant:string,deliveryDateTime:timestamp,subrange:string,supplyingPlant:string,productGroup:string,productOrderSchedule:array<struct<product:string,orderDateTime:timestamp,availabilityDateTime:timestamp,nextAvailabilityDateTime:timestamp,mrpController:string,sourceOfSupplyUuid:string,purchasingOrg:string,purchasingGroup:string,isFallbackOrderOnly:boolean>>>
(4) ColumnarToRow [codegen id : 1]
Input [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
(5) Filter [codegen id : 1]
Input [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
Condition : ((size(productOrderSchedule#724794, true) > 0) AND isnotnull(productOrderSchedule#724794))
(6) Exchange
Input [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
Arguments: RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287226]
(7) ShuffleQueryStage
Output [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
Arguments: 0
(8) Project [codegen id : 5]
Output [6]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, CASE WHEN isnotnull(supplyingPlant#724792) THEN productGroup#724793 ELSE subrange#724791 END AS effectiveSubrange#724814]
Input [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
(9) Exchange
Input [6]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814]
Arguments: hashpartitioning(coalesce(supplierGroup#724787, ), isnull(supplierGroup#724787), coalesce(supplier#724788, ), isnull(supplier#724788), coalesce(effectiveSubrange#724814, ), isnull(effectiveSubrange#724814), coalesce(plant#724789, ), isnull(plant#724789), coalesce(deliveryDateTime#724790, 1970-01-01 00:00:00), isnull(deliveryDateTime#724790), 25), ENSURE_REQUIREMENTS, [plan_id=287768]
(10) ShuffleQueryStage
Output [6]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814]
Arguments: 5
(11) AQEShuffleRead
Input [6]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814]
Arguments: local
(12) Scan parquet
Output [7]: [supplier#724795, subrange#724796, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801]
Batched: true
Location: InMemoryFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-param-determination-service/out/10000002108/SupplyNetworkProfiles/assignments]
ReadSchema: struct<supplier:string,subrange:string,plant:string,deliverydatetime:timestamp,ordergroupingprofile:string,supplierGroup:string,locationGroup:string>
(13) ColumnarToRow [codegen id : 2]
Input [7]: [supplier#724795, subrange#724796, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801]
(14) Exchange
Input [7]: [supplier#724795, subrange#724796, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801]
Arguments: RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287242]
(15) ShuffleQueryStage
Output [7]: [supplier#724795, subrange#724796, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801]
Arguments: 1
(16) Scan parquet
Output [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://2e93940d-4be8-4f12-830d-f0b8d392c03a.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/order-grouping-profile]
PushedFilters: [IsNotNull(orderGroupingProfile)]
ReadSchema: struct<orderGroupingProfile:string,orderGroupCriteria:struct<supplier:boolean,supplierSubrange:boolean,receivingLocation:boolean,deliveryDate:boolean,orderDate:boolean,purchasingOrg:boolean,purchasingGroup:boolean,mrpController:boolean>>
(17) ColumnarToRow [codegen id : 3]
Input [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
(18) Filter [codegen id : 3]
Input [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Condition : isnotnull(orderGroupingProfile#724806)
(19) Exchange
Input [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Arguments: RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287255]
(20) ShuffleQueryStage
Output [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Arguments: 2
(21) BroadcastExchange
Input [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false]),false), [plan_id=287263]
(22) BroadcastQueryStage
Output [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Arguments: 3
(23) BroadcastHashJoin [codegen id : 4]
Left keys [1]: [orderGroupingProfile#724799]
Right keys [1]: [orderGroupingProfile#724806]
Join type: LeftOuter
Join condition: None
(24) Project [codegen id : 4]
Output [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, subrange#724796 AS effectiveSubrange#724815]
Input [9]: [supplier#724795, subrange#724796, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupingProfile#724806, orderGroupCriteria#724808]
(25) Exchange
Input [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
Arguments: hashpartitioning(coalesce(supplierGroup#724800, ), isnull(supplierGroup#724800), coalesce(supplier#724795, ), isnull(supplier#724795), coalesce(effectiveSubrange#724815, ), isnull(effectiveSubrange#724815), coalesce(plant#724797, ), isnull(plant#724797), coalesce(deliveryDateTime#724798, 1970-01-01 00:00:00), isnull(deliveryDateTime#724798), 25), ENSURE_REQUIREMENTS, [plan_id=287636]
(26) ShuffleQueryStage
Output [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
Arguments: 4
(27) AQEShuffleRead
Input [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
Arguments: local
(28) BroadcastExchange
Input [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[4, string, true], ), isnull(input[4, string, true]), coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[7, string, true], ), isnull(input[7, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, timestamp, true], 1970-01-01 00:00:00), isnull(input[2, timestamp, true])),false), [plan_id=287889]
(29) BroadcastQueryStage
Output [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
Arguments: 6
(30) BroadcastHashJoin [codegen id : 6]
Left keys [10]: [coalesce(supplierGroup#724787, ), isnull(supplierGroup#724787), coalesce(supplier#724788, ), isnull(supplier#724788), coalesce(effectiveSubrange#724814, ), isnull(effectiveSubrange#724814), coalesce(plant#724789, ), isnull(plant#724789), coalesce(deliveryDateTime#724790, 1970-01-01 00:00:00), isnull(deliveryDateTime#724790)]
Right keys [10]: [coalesce(supplierGroup#724800, ), isnull(supplierGroup#724800), coalesce(supplier#724795, ), isnull(supplier#724795), coalesce(effectiveSubrange#724815, ), isnull(effectiveSubrange#724815), coalesce(plant#724797, ), isnull(plant#724797), coalesce(deliveryDateTime#724798, 1970-01-01 00:00:00), isnull(deliveryDateTime#724798)]
Join type: LeftOuter
Join condition: None
(31) Project [codegen id : 6]
Output [8]: [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, CASE WHEN isnull(orderGroupCriteria#724808) THEN [true,false,false,false,true,false,false,false] ELSE orderGroupCriteria#724808 END AS orderGroupCriteria#724827, orderGroupingProfile#724799, coalesce(supplierGroup#724787, supplier#724788) AS supplierOrGroup#724816, coalesce(locationGroup#724801, plant#724789) AS locationOrGroup#724817]
Input [14]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
(32) Project [codegen id : 6]
Output [14]: [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, orderGroupCriteria#724827.supplierSubrange AS _extract_supplierSubrange#724964, orderGroupCriteria#724827.mrpController AS _extract_mrpController#724965, orderGroupCriteria#724827.purchasingOrg AS _extract_purchasingOrg#724966, orderGroupCriteria#724827.orderDate AS _extract_orderDate#724967, orderGroupCriteria#724827.deliveryDate AS _extract_deliveryDate#724968, orderGroupCriteria#724827.supplier AS _extract_supplier#724969, orderGroupCriteria#724827.purchasingGroup AS _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817]
Input [8]: [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, orderGroupCriteria#724827, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817]
(33) Generate [codegen id : 6]
Input [14]: [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, _extract_supplierSubrange#724964, _extract_mrpController#724965, _extract_purchasingOrg#724966, _extract_orderDate#724967, _extract_deliveryDate#724968, _extract_supplier#724969, _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817]
Arguments: explode(productOrderSchedule#724794), [plant#724789, deliveryDateTime#724790, effectiveSubrange#724814, _extract_supplierSubrange#724964, _extract_mrpController#724965, _extract_purchasingOrg#724966, _extract_orderDate#724967, _extract_deliveryDate#724968, _extract_supplier#724969, _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817], false, [productOrderScheduleExploded#724839]
(34) Project [codegen id : 6]
Output [5]: [plant#724789, productOrderScheduleExploded#724839.product AS product#724840, productOrderScheduleExploded#724839.orderDateTime AS orderDateTime#724841, productOrderScheduleExploded#724839.availabilityDateTime AS availabilityDateTime#724842, xxhash64(CASE WHEN (_extract_supplierSubrange#724964 <=> true) THEN effectiveSubrange#724814 END, orderGroupingProfile#724799, CASE WHEN (_extract_mrpController#724965 <=> true) THEN productOrderScheduleExploded#724839.mrpController END, CASE WHEN (_extract_purchasingOrg#724966 <=> true) THEN productOrderScheduleExploded#724839.purchasingOrg END, CASE WHEN (_extract_orderDate#724967 <=> true) THEN productOrderScheduleExploded#724839.orderDateTime END, CASE WHEN (_extract_deliveryDate#724968 <=> true) THEN deliveryDateTime#724790 END, CASE WHEN (_extract_supplier#724969 <=> true) THEN supplierOrGroup#724816 END, locationOrGroup#724817, CASE WHEN (_extract_purchasingGroup#724970 <=> true) THEN productOrderScheduleExploded#724839.purchasingGroup END, ((((((((CASE WHEN (isnull(effectiveSubrange#724814) AND (_extract_supplierSubrange#724964 <=> true)) THEN 1 ELSE 0 END + CASE WHEN isnull(orderGroupingProfile#724799) THEN 2 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.mrpController) AND (_extract_mrpController#724965 <=> true)) THEN 4 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.purchasingOrg) AND (_extract_purchasingOrg#724966 <=> true)) THEN 8 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.orderDateTime) AND (_extract_orderDate#724967 <=> true)) THEN 16 ELSE 0 END) + CASE WHEN (isnull(deliveryDateTime#724790) AND (_extract_deliveryDate#724968 <=> true)) THEN 32 ELSE 0 END) + CASE WHEN (isnull(supplierOrGroup#724816) AND (_extract_supplier#724969 <=> true)) THEN 64 ELSE 0 END) + CASE WHEN isnull(locationOrGroup#724817) THEN 128 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.purchasingGroup) AND (_extract_purchasingGroup#724970 <=> true)) THEN 256 ELSE 0 END), 10000002108, 42) AS orderProposalId#724875L]
Input [14]: [plant#724789, deliveryDateTime#724790, effectiveSubrange#724814, _extract_supplierSubrange#724964, _extract_mrpController#724965, _extract_purchasingOrg#724966, _extract_orderDate#724967, _extract_deliveryDate#724968, _extract_supplier#724969, _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817, productOrderScheduleExploded#724839]
(35) Exchange
Input [5]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L]
Arguments: hashpartitioning(product#724840, plant#724789, 25), ENSURE_REQUIREMENTS, [plan_id=288073]
(36) ShuffleQueryStage
Output [5]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L]
Arguments: 7
(37) AQEShuffleRead
Input [5]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L]
Arguments: coalesced
(38) Sort [codegen id : 7]
Input [5]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L]
Arguments: [product#724840 ASC NULLS FIRST, plant#724789 ASC NULLS FIRST, availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST], false, 0
(39) Window
Input [5]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L]
Arguments: [lag(orderProposalId#724875L, -1, null) windowspecdefinition(product#724840, plant#724789, availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST, specifiedwindowframe(RowFrame, -1, -1)) AS previousOrderProposal#724904L], [product#724840, plant#724789], [availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST]
(40) Project [codegen id : 8]
Output [3]: [plant#724789, orderProposalId#724875L, previousOrderProposal#724904L]
Input [6]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L, previousOrderProposal#724904L]
(41) ObjectHashAggregate
Input [3]: [plant#724789, orderProposalId#724875L, previousOrderProposal#724904L]
Keys [1]: [orderProposalId#724875L]
Functions [2]: [partial_min(plant#724789), partial_collect_set(previousOrderProposal#724904L, 0, 0)]
Aggregate Attributes [2]: [min#725037, buf#725038]
Results [3]: [orderProposalId#724875L, min#725039, buf#725040]
(42) Exchange
Input [3]: [orderProposalId#724875L, min#725039, buf#725040]
Arguments: hashpartitioning(orderProposalId#724875L, 25), ENSURE_REQUIREMENTS, [plan_id=288171]
(43) ShuffleQueryStage
Output [3]: [orderProposalId#724875L, min#725039, buf#725040]
Arguments: 8
(44) AQEShuffleRead
Input [3]: [orderProposalId#724875L, min#725039, buf#725040]
Arguments: coalesced
(45) ObjectHashAggregate
Input [3]: [orderProposalId#724875L, min#725039, buf#725040]
Keys [1]: [orderProposalId#724875L]
Functions [2]: [min(plant#724789), collect_set(previousOrderProposal#724904L, 0, 0)]
Aggregate Attributes [2]: [min(plant#724789)#724927, collect_set(previousOrderProposal#724904L, 0, 0)#724928]
Results [4]: [orderProposalId#724875L, min(plant#724789)#724927 AS plant#724905, collect_set(previousOrderProposal#724904L, 0, 0)#724928 AS previousOrderProposals#724906, orderProposalId#724875L AS nodeId#724929L]
(46) Project [codegen id : 9]
Output [5]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L, previousOrderProposals#724906 AS dependentOnNodeIds#724930]
Input [4]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L]
(47) Exchange
Input [5]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L, dependentOnNodeIds#724930]
Arguments: hashpartitioning(plant#724905, 25), REPARTITION_BY_COL, [plan_id=288223]
(48) ShuffleQueryStage
Output [5]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L, dependentOnNodeIds#724930]
Arguments: 9
(49) DeserializeToObject
Input [5]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L, dependentOnNodeIds#724930]
Arguments: createexternalrow(static_invoke(java.lang.Long.valueOf(orderProposalId#724875L)), invoke(plant#724905.toString()), mapobjects(lambdavariable(MapObject, LongType, false, -4), static_invoke(java.lang.Long.valueOf(lambdavariable(MapObject, LongType, false, -4))), previousOrderProposals#724906, Some(class scala.collection.mutable.ArraySeq)), static_invoke(java.lang.Long.valueOf(nodeId#724929L)), mapobjects(lambdavariable(MapObject, LongType, false, -5), static_invoke(java.lang.Long.valueOf(lambdavariable(MapObject, LongType, false, -5))), dependentOnNodeIds#724930, Some(class scala.collection.mutable.ArraySeq)), StructField(orderProposalId,LongType,false), StructField(plant,StringType,true), StructField(previousOrderProposals,ArrayType(LongType,false),false), StructField(nodeId,LongType,false), StructField(dependentOnNodeIds,ArrayType(LongType,false),false)), obj#724941: org.apache.spark.sql.Row
(50) MapPartitions
Input [1]: [obj#724941]
Arguments: org.apache.spark.sql.internal.ToScalaUDF$$$Lambda/0x00000008021bcd18@5aa0a601, obj#724949: org.apache.spark.sql.Row
(51) SerializeFromObject [codegen id : 10]
Input [1]: [obj#724949]
Arguments: [assertnotnull(invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, orderProposalId), LongType, ObjectType(class java.lang.Long)).longValue())) AS orderProposalId#724957L, 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#724958, if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), LongType, ObjectType(class java.lang.Long)).longValue())), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object)), None) AS previousOrderProposals#724959, assertnotnull(invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, nodeId), LongType, ObjectType(class java.lang.Long)).longValue())) AS nodeId#724960L, if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), LongType, ObjectType(class java.lang.Long)).longValue())), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object)), None) AS dependentOnNodeIds#724961, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(5))) null else invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, clusterId), LongType, ObjectType(class java.lang.Long)).longValue()) AS clusterId#724962L, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(6))) null else if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), LongType, ObjectType(class java.lang.Long)).longValue()), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object)), None) AS unresolvedDependencies#724963]
(52) ResultQueryStage
Output [7]: [orderProposalId#724957L, plant#724958, previousOrderProposals#724959, nodeId#724960L, dependentOnNodeIds#724961, clusterId#724962L, unresolvedDependencies#724963]
Arguments: 10
(53) Filter
Input [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
Condition : ((size(productOrderSchedule#724794, true) > 0) AND isnotnull(productOrderSchedule#724794))
(54) Exchange
Input [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
Arguments: RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287104]
(55) Project
Output [6]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, CASE WHEN isnotnull(supplyingPlant#724792) THEN productGroup#724793 ELSE subrange#724791 END AS effectiveSubrange#724814]
Input [8]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, subrange#724791, supplyingPlant#724792, productGroup#724793, productOrderSchedule#724794]
(56) Exchange
Input [6]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814]
Arguments: hashpartitioning(coalesce(supplierGroup#724787, ), isnull(supplierGroup#724787), coalesce(supplier#724788, ), isnull(supplier#724788), coalesce(effectiveSubrange#724814, ), isnull(effectiveSubrange#724814), coalesce(plant#724789, ), isnull(plant#724789), coalesce(deliveryDateTime#724790, 1970-01-01 00:00:00), isnull(deliveryDateTime#724790), 25), ENSURE_REQUIREMENTS, [plan_id=287128]
(57) Sort
Input [6]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814]
Arguments: [coalesce(supplierGroup#724787, ) ASC NULLS FIRST, isnull(supplierGroup#724787) ASC NULLS FIRST, coalesce(supplier#724788, ) ASC NULLS FIRST, isnull(supplier#724788) ASC NULLS FIRST, coalesce(effectiveSubrange#724814, ) ASC NULLS FIRST, isnull(effectiveSubrange#724814) ASC NULLS FIRST, coalesce(plant#724789, ) ASC NULLS FIRST, isnull(plant#724789) ASC NULLS FIRST, coalesce(deliveryDateTime#724790, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(deliveryDateTime#724790) ASC NULLS FIRST], false, 0
(58) Exchange
Input [7]: [supplier#724795, subrange#724796, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801]
Arguments: RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287082]
(59) Filter
Input [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Condition : isnotnull(orderGroupingProfile#724806)
(60) Exchange
Input [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Arguments: RoundRobinPartitioning(25), REPARTITION_BY_NUM, [plan_id=287106]
(61) BroadcastExchange
Input [2]: [orderGroupingProfile#724806, orderGroupCriteria#724808]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false]),false), [plan_id=287123]
(62) BroadcastHashJoin
Left keys [1]: [orderGroupingProfile#724799]
Right keys [1]: [orderGroupingProfile#724806]
Join type: LeftOuter
Join condition: None
(63) Project
Output [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, subrange#724796 AS effectiveSubrange#724815]
Input [9]: [supplier#724795, subrange#724796, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupingProfile#724806, orderGroupCriteria#724808]
(64) Exchange
Input [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
Arguments: hashpartitioning(coalesce(supplierGroup#724800, ), isnull(supplierGroup#724800), coalesce(supplier#724795, ), isnull(supplier#724795), coalesce(effectiveSubrange#724815, ), isnull(effectiveSubrange#724815), coalesce(plant#724797, ), isnull(plant#724797), coalesce(deliveryDateTime#724798, 1970-01-01 00:00:00), isnull(deliveryDateTime#724798), 25), ENSURE_REQUIREMENTS, [plan_id=287129]
(65) Sort
Input [8]: [supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
Arguments: [coalesce(supplierGroup#724800, ) ASC NULLS FIRST, isnull(supplierGroup#724800) ASC NULLS FIRST, coalesce(supplier#724795, ) ASC NULLS FIRST, isnull(supplier#724795) ASC NULLS FIRST, coalesce(effectiveSubrange#724815, ) ASC NULLS FIRST, isnull(effectiveSubrange#724815) ASC NULLS FIRST, coalesce(plant#724797, ) ASC NULLS FIRST, isnull(plant#724797) ASC NULLS FIRST, coalesce(deliveryDateTime#724798, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(deliveryDateTime#724798) ASC NULLS FIRST], false, 0
(66) SortMergeJoin
Left keys [10]: [coalesce(supplierGroup#724787, ), isnull(supplierGroup#724787), coalesce(supplier#724788, ), isnull(supplier#724788), coalesce(effectiveSubrange#724814, ), isnull(effectiveSubrange#724814), coalesce(plant#724789, ), isnull(plant#724789), coalesce(deliveryDateTime#724790, 1970-01-01 00:00:00), isnull(deliveryDateTime#724790)]
Right keys [10]: [coalesce(supplierGroup#724800, ), isnull(supplierGroup#724800), coalesce(supplier#724795, ), isnull(supplier#724795), coalesce(effectiveSubrange#724815, ), isnull(effectiveSubrange#724815), coalesce(plant#724797, ), isnull(plant#724797), coalesce(deliveryDateTime#724798, 1970-01-01 00:00:00), isnull(deliveryDateTime#724798)]
Join type: LeftOuter
Join condition: None
(67) Project
Output [8]: [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, CASE WHEN isnull(orderGroupCriteria#724808) THEN [true,false,false,false,true,false,false,false] ELSE orderGroupCriteria#724808 END AS orderGroupCriteria#724827, orderGroupingProfile#724799, coalesce(supplierGroup#724787, supplier#724788) AS supplierOrGroup#724816, coalesce(locationGroup#724801, plant#724789) AS locationOrGroup#724817]
Input [14]: [supplierGroup#724787, supplier#724788, plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, supplier#724795, plant#724797, deliverydatetime#724798, ordergroupingprofile#724799, supplierGroup#724800, locationGroup#724801, orderGroupCriteria#724808, effectiveSubrange#724815]
(68) Project
Output [14]: [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, orderGroupCriteria#724827.supplierSubrange AS _extract_supplierSubrange#724964, orderGroupCriteria#724827.mrpController AS _extract_mrpController#724965, orderGroupCriteria#724827.purchasingOrg AS _extract_purchasingOrg#724966, orderGroupCriteria#724827.orderDate AS _extract_orderDate#724967, orderGroupCriteria#724827.deliveryDate AS _extract_deliveryDate#724968, orderGroupCriteria#724827.supplier AS _extract_supplier#724969, orderGroupCriteria#724827.purchasingGroup AS _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817]
Input [8]: [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, orderGroupCriteria#724827, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817]
(69) Generate
Input [14]: [plant#724789, deliveryDateTime#724790, productOrderSchedule#724794, effectiveSubrange#724814, _extract_supplierSubrange#724964, _extract_mrpController#724965, _extract_purchasingOrg#724966, _extract_orderDate#724967, _extract_deliveryDate#724968, _extract_supplier#724969, _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817]
Arguments: explode(productOrderSchedule#724794), [plant#724789, deliveryDateTime#724790, effectiveSubrange#724814, _extract_supplierSubrange#724964, _extract_mrpController#724965, _extract_purchasingOrg#724966, _extract_orderDate#724967, _extract_deliveryDate#724968, _extract_supplier#724969, _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817], false, [productOrderScheduleExploded#724839]
(70) Project
Output [5]: [plant#724789, productOrderScheduleExploded#724839.product AS product#724840, productOrderScheduleExploded#724839.orderDateTime AS orderDateTime#724841, productOrderScheduleExploded#724839.availabilityDateTime AS availabilityDateTime#724842, xxhash64(CASE WHEN (_extract_supplierSubrange#724964 <=> true) THEN effectiveSubrange#724814 END, orderGroupingProfile#724799, CASE WHEN (_extract_mrpController#724965 <=> true) THEN productOrderScheduleExploded#724839.mrpController END, CASE WHEN (_extract_purchasingOrg#724966 <=> true) THEN productOrderScheduleExploded#724839.purchasingOrg END, CASE WHEN (_extract_orderDate#724967 <=> true) THEN productOrderScheduleExploded#724839.orderDateTime END, CASE WHEN (_extract_deliveryDate#724968 <=> true) THEN deliveryDateTime#724790 END, CASE WHEN (_extract_supplier#724969 <=> true) THEN supplierOrGroup#724816 END, locationOrGroup#724817, CASE WHEN (_extract_purchasingGroup#724970 <=> true) THEN productOrderScheduleExploded#724839.purchasingGroup END, ((((((((CASE WHEN (isnull(effectiveSubrange#724814) AND (_extract_supplierSubrange#724964 <=> true)) THEN 1 ELSE 0 END + CASE WHEN isnull(orderGroupingProfile#724799) THEN 2 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.mrpController) AND (_extract_mrpController#724965 <=> true)) THEN 4 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.purchasingOrg) AND (_extract_purchasingOrg#724966 <=> true)) THEN 8 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.orderDateTime) AND (_extract_orderDate#724967 <=> true)) THEN 16 ELSE 0 END) + CASE WHEN (isnull(deliveryDateTime#724790) AND (_extract_deliveryDate#724968 <=> true)) THEN 32 ELSE 0 END) + CASE WHEN (isnull(supplierOrGroup#724816) AND (_extract_supplier#724969 <=> true)) THEN 64 ELSE 0 END) + CASE WHEN isnull(locationOrGroup#724817) THEN 128 ELSE 0 END) + CASE WHEN (isnull(productOrderScheduleExploded#724839.purchasingGroup) AND (_extract_purchasingGroup#724970 <=> true)) THEN 256 ELSE 0 END), 10000002108, 42) AS orderProposalId#724875L]
Input [14]: [plant#724789, deliveryDateTime#724790, effectiveSubrange#724814, _extract_supplierSubrange#724964, _extract_mrpController#724965, _extract_purchasingOrg#724966, _extract_orderDate#724967, _extract_deliveryDate#724968, _extract_supplier#724969, _extract_purchasingGroup#724970, orderGroupingProfile#724799, supplierOrGroup#724816, locationOrGroup#724817, productOrderScheduleExploded#724839]
(71) Exchange
Input [5]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L]
Arguments: hashpartitioning(product#724840, plant#724789, 25), ENSURE_REQUIREMENTS, [plan_id=287138]
(72) Sort
Input [5]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L]
Arguments: [product#724840 ASC NULLS FIRST, plant#724789 ASC NULLS FIRST, availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST], false, 0
(73) Window
Input [5]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L]
Arguments: [lag(orderProposalId#724875L, -1, null) windowspecdefinition(product#724840, plant#724789, availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST, specifiedwindowframe(RowFrame, -1, -1)) AS previousOrderProposal#724904L], [product#724840, plant#724789], [availabilityDateTime#724842 ASC NULLS FIRST, orderDateTime#724841 ASC NULLS FIRST, orderProposalId#724875L ASC NULLS FIRST]
(74) Project
Output [3]: [plant#724789, orderProposalId#724875L, previousOrderProposal#724904L]
Input [6]: [plant#724789, product#724840, orderDateTime#724841, availabilityDateTime#724842, orderProposalId#724875L, previousOrderProposal#724904L]
(75) ObjectHashAggregate
Input [3]: [plant#724789, orderProposalId#724875L, previousOrderProposal#724904L]
Keys [1]: [orderProposalId#724875L]
Functions [2]: [partial_min(plant#724789), partial_collect_set(previousOrderProposal#724904L, 0, 0)]
Aggregate Attributes [2]: [min#725037, buf#725038]
Results [3]: [orderProposalId#724875L, min#725039, buf#725040]
(76) Exchange
Input [3]: [orderProposalId#724875L, min#725039, buf#725040]
Arguments: hashpartitioning(orderProposalId#724875L, 25), ENSURE_REQUIREMENTS, [plan_id=287144]
(77) ObjectHashAggregate
Input [3]: [orderProposalId#724875L, min#725039, buf#725040]
Keys [1]: [orderProposalId#724875L]
Functions [2]: [min(plant#724789), collect_set(previousOrderProposal#724904L, 0, 0)]
Aggregate Attributes [2]: [min(plant#724789)#724927, collect_set(previousOrderProposal#724904L, 0, 0)#724928]
Results [4]: [orderProposalId#724875L, min(plant#724789)#724927 AS plant#724905, collect_set(previousOrderProposal#724904L, 0, 0)#724928 AS previousOrderProposals#724906, orderProposalId#724875L AS nodeId#724929L]
(78) Project
Output [5]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L, previousOrderProposals#724906 AS dependentOnNodeIds#724930]
Input [4]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L]
(79) Exchange
Input [5]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L, dependentOnNodeIds#724930]
Arguments: hashpartitioning(plant#724905, 25), REPARTITION_BY_COL, [plan_id=287147]
(80) DeserializeToObject
Input [5]: [orderProposalId#724875L, plant#724905, previousOrderProposals#724906, nodeId#724929L, dependentOnNodeIds#724930]
Arguments: createexternalrow(static_invoke(java.lang.Long.valueOf(orderProposalId#724875L)), invoke(plant#724905.toString()), mapobjects(lambdavariable(MapObject, LongType, false, -4), static_invoke(java.lang.Long.valueOf(lambdavariable(MapObject, LongType, false, -4))), previousOrderProposals#724906, Some(class scala.collection.mutable.ArraySeq)), static_invoke(java.lang.Long.valueOf(nodeId#724929L)), mapobjects(lambdavariable(MapObject, LongType, false, -5), static_invoke(java.lang.Long.valueOf(lambdavariable(MapObject, LongType, false, -5))), dependentOnNodeIds#724930, Some(class scala.collection.mutable.ArraySeq)), StructField(orderProposalId,LongType,false), StructField(plant,StringType,true), StructField(previousOrderProposals,ArrayType(LongType,false),false), StructField(nodeId,LongType,false), StructField(dependentOnNodeIds,ArrayType(LongType,false),false)), obj#724941: org.apache.spark.sql.Row
(81) MapPartitions
Input [1]: [obj#724941]
Arguments: org.apache.spark.sql.internal.ToScalaUDF$$$Lambda/0x00000008021bcd18@5aa0a601, obj#724949: org.apache.spark.sql.Row
(82) SerializeFromObject
Input [1]: [obj#724949]
Arguments: [assertnotnull(invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, orderProposalId), LongType, ObjectType(class java.lang.Long)).longValue())) AS orderProposalId#724957L, 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#724958, if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), LongType, ObjectType(class java.lang.Long)).longValue())), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, previousOrderProposals), ArrayType(LongType,false), ObjectType(class java.lang.Object)), None) AS previousOrderProposals#724959, assertnotnull(invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, nodeId), LongType, ObjectType(class java.lang.Long)).longValue())) AS nodeId#724960L, if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), LongType, ObjectType(class java.lang.Long)).longValue())), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, dependentOnNodeIds), ArrayType(LongType,false), ObjectType(class java.lang.Object)), None) AS dependentOnNodeIds#724961, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(5))) null else invoke(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, clusterId), LongType, ObjectType(class java.lang.Long)).longValue()) AS clusterId#724962L, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(6))) null else if (invoke(class [J.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), LongType, ObjectType(class java.lang.Long)).longValue()), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 6, unresolvedDependencies), ArrayType(LongType,true), ObjectType(class java.lang.Object)), None) AS unresolvedDependencies#724963]
(83) AdaptiveSparkPlan
Output [7]: [orderProposalId#724957L, plant#724958, previousOrderProposals#724959, nodeId#724960L, dependentOnNodeIds#724961, clusterId#724962L, unresolvedDependencies#724963]
Arguments: isFinalPlan=true
(84) TableCacheQueryStage
Output [1]: [unresolvedDependencies#724963]
Arguments: 0
(85) Filter [codegen id : 1]
Input [1]: [unresolvedDependencies#724963]
Condition : (size(unresolvedDependencies#724963, true) > 0)
(86) Project [codegen id : 1]
Output: []
Input [1]: [unresolvedDependencies#724963]
(87) CollectLimit
Input: []
Arguments: 1
(88) ResultQueryStage
Output: []
Arguments: 1
(89) Filter
Input [1]: [unresolvedDependencies#724963]
Condition : (size(unresolvedDependencies#724963, true) > 0)
(90) Project
Output: []
Input [1]: [unresolvedDependencies#724963]
(91) CollectLimit
Input: []
Arguments: 1
(92) AdaptiveSparkPlan
Output: []
Arguments: isFinalPlan=true