== Physical Plan ==
Execute SaveIntoDataSourceCommand (1)
+- SaveIntoDataSourceCommand (2)
+- Project (196)
+- Project (195)
+- Join (194)
:- Union (144)
: :- Project (51)
: : +- Filter (50)
: : +- Union (49)
: : :- Project (34)
: : : +- Project (33)
: : : +- Project (32)
: : : +- Project (31)
: : : +- Project (30)
: : : +- Project (29)
: : : +- Join (28)
: : : :- Project (5)
: : : : +- RepartitionByExpression (4)
: : : : +- LogicalRDD (3)
: : : +- Union (27)
: : : :- Project (18)
: : : : +- Project (17)
: : : : +- Join (16)
: : : : :- Deduplicate (13)
: : : : : +- Project (12)
: : : : : +- Join (11)
: : : : : :- Project (8)
: : : : : : +- RepartitionByExpression (7)
: : : : : : +- LogicalRDD (6)
: : : : : +- Project (10)
: : : : : +- LogicalRDD (9)
: : : : +- Project (15)
: : : : +- LogicalRDD (14)
: : : +- Project (26)
: : : +- Project (25)
: : : +- Join (24)
: : : :- Project (21)
: : : : +- RepartitionByExpression (20)
: : : : +- LogicalRDD (19)
: : : +- Project (23)
: : : +- LogicalRDD (22)
: : +- Project (48)
: : +- Project (47)
: : +- Project (46)
: : +- Join (45)
: : :- Deduplicate (42)
: : : +- Project (41)
: : : +- Join (40)
: : : :- Project (37)
: : : : +- RepartitionByExpression (36)
: : : : +- LogicalRDD (35)
: : : +- Project (39)
: : : +- LogicalRDD (38)
: : +- Project (44)
: : +- LogicalRDD (43)
: +- Project (143)
: +- Deduplicate (142)
: +- Project (141)
: +- Join (140)
: :- Project (88)
: : +- Project (87)
: : +- Union (86)
: : :- Project (60)
: : : +- Project (59)
: : : +- Project (58)
: : : +- Project (57)
: : : +- Project (56)
: : : +- Project (55)
: : : +- Generate (54)
: : : +- SerializeFromObject (53)
: : : +- ExternalRDD (52)
: : :- Project (72)
: : : +- Project (71)
: : : +- Project (70)
: : : +- Project (69)
: : : +- Project (68)
: : : +- Project (67)
: : : +- Project (66)
: : : +- Generate (65)
: : : +- Project (64)
: : : +- Generate (63)
: : : +- SerializeFromObject (62)
: : : +- ExternalRDD (61)
: : +- Project (85)
: : +- Project (84)
: : +- Project (83)
: : +- Project (82)
: : +- Project (81)
: : +- Project (80)
: : +- Project (79)
: : +- Project (78)
: : +- Generate (77)
: : +- Project (76)
: : +- Generate (75)
: : +- SerializeFromObject (74)
: : +- ExternalRDD (73)
: +- Deduplicate (139)
: +- Project (138)
: +- Project (137)
: +- Filter (136)
: +- Union (135)
: :- Project (120)
: : +- Project (119)
: : +- Project (118)
: : +- Project (117)
: : +- Project (116)
: : +- Project (115)
: : +- Join (114)
: : :- Project (91)
: : : +- RepartitionByExpression (90)
: : : +- LogicalRDD (89)
: : +- Union (113)
: : :- Project (104)
: : : +- Project (103)
: : : +- Join (102)
: : : :- Deduplicate (99)
: : : : +- Project (98)
: : : : +- Join (97)
: : : : :- Project (94)
: : : : : +- RepartitionByExpression (93)
: : : : : +- LogicalRDD (92)
: : : : +- Project (96)
: : : : +- LogicalRDD (95)
: : : +- Project (101)
: : : +- LogicalRDD (100)
: : +- Project (112)
: : +- Project (111)
: : +- Join (110)
: : :- Project (107)
: : : +- RepartitionByExpression (106)
: : : +- LogicalRDD (105)
: : +- Project (109)
: : +- LogicalRDD (108)
: +- Project (134)
: +- Project (133)
: +- Project (132)
: +- Join (131)
: :- Deduplicate (128)
: : +- Project (127)
: : +- Join (126)
: : :- Project (123)
: : : +- RepartitionByExpression (122)
: : : +- LogicalRDD (121)
: : +- Project (125)
: : +- LogicalRDD (124)
: +- Project (130)
: +- LogicalRDD (129)
+- Aggregate (193)
+- Project (192)
+- Union (191)
:- Project (176)
: +- Project (175)
: +- Project (174)
: +- Project (173)
: +- Project (172)
: +- Project (171)
: +- Join (170)
: :- Project (147)
: : +- RepartitionByExpression (146)
: : +- LogicalRDD (145)
: +- Union (169)
: :- Project (160)
: : +- Project (159)
: : +- Join (158)
: : :- Deduplicate (155)
: : : +- Project (154)
: : : +- Join (153)
: : : :- Project (150)
: : : : +- RepartitionByExpression (149)
: : : : +- LogicalRDD (148)
: : : +- Project (152)
: : : +- LogicalRDD (151)
: : +- Project (157)
: : +- LogicalRDD (156)
: +- Project (168)
: +- Project (167)
: +- Join (166)
: :- Project (163)
: : +- RepartitionByExpression (162)
: : +- LogicalRDD (161)
: +- Project (165)
: +- LogicalRDD (164)
+- Project (190)
+- Project (189)
+- Project (188)
+- Join (187)
:- Deduplicate (184)
: +- Project (183)
: +- Join (182)
: :- Project (179)
: : +- RepartitionByExpression (178)
: : +- LogicalRDD (177)
: +- Project (181)
: +- LogicalRDD (180)
+- Project (186)
+- LogicalRDD (185)
(1) Execute SaveIntoDataSourceCommand
Output: []
(2) SaveIntoDataSourceCommand
Arguments: org.apache.spark.sql.delta.sources.DeltaDataSource@3efb962b, [path=hdlfs://770f0770-bd0c-456f-b83b-9649926e0857.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000678/stream-10000000678-1], Append
(3) LogicalRDD
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, periodStart#943636, periodEnd#943637, qty#943638], false
(4) RepartitionByExpression
Arguments: [product#943634, plant#943635], 37
(5) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638]
(6) LogicalRDD
Arguments: [shardId#1006766, worklistShardItemId#1006767L, version#1006768, product#1006769, plant#1006770, periodStart#1006771, periodEnd#1006772, qty#1006773], false
(7) RepartitionByExpression
Arguments: [product#1006769, plant#1006770], 37
(8) Project
Arguments: [shardId#1006766, worklistShardItemId#1006767L, version#1006768, product#1006769, plant#1006770, qty#1006773]
(9) LogicalRDD
Arguments: [shardId#1006521, worklistShardItemId#1006522L, qty#1006523, demandChannel#1006524, demandStream#1006525, kpis#1006526], false
(10) Project
Arguments: [shardId#1006521 AS cachedShardId#1006527, worklistShardItemId#1006522L AS cachedWorklistShardItemId#1006528L, qty#1006523 AS cachedQty#1006529, demandChannel#1006524, demandStream#1006525, kpis#1006526 AS cachedKpis#1006530]
(11) Join
Arguments: Inner, (((worklistShardItemId#1006767L = cachedWorklistShardItemId#1006528L) AND (shardId#1006766 = cachedShardId#1006527)) AND ((qty#1006773 = cachedQty#1006529) OR isnull(qty#1006773)))
(12) Project
Arguments: [shardId#1006766, worklistShardItemId#1006767L, version#1006768, product#1006769, plant#1006770]
(13) Deduplicate
Arguments: [plant#1006770, shardId#1006766, version#1006768, worklistShardItemId#1006767L, product#1006769]
(14) LogicalRDD
Arguments: [shardId#1006531, worklistShardItemId#1006532L, qty#1006533, demandChannel#1006534, demandStream#1006535, kpis#1006536], false
(15) Project
Arguments: [shardId#1006531 AS cachedShardId#1006537, worklistShardItemId#1006532L AS cachedWorklistShardItemId#1006538L, qty#1006533 AS cachedQty#1006539, demandChannel#1006534, demandStream#1006535, kpis#1006536 AS cachedKpis#1006540]
(16) Join
Arguments: Inner, ((worklistShardItemId#1006767L = cachedWorklistShardItemId#1006538L) AND (shardId#1006766 = cachedShardId#1006537))
(17) Project
Arguments: [shardId#1006766, worklistShardItemId#1006767L, version#1006768, product#1006769, plant#1006770, cachedQty#1006539 AS qty#1006541, demandChannel#1006534, demandStream#1006535, cachedKpis#1006540 AS kpis#1006542]
(18) Project
Arguments: [shardId#1006766, worklistShardItemId#1006767L, version#1006768, product#1006769, plant#1006770, qty#1006541]
(19) LogicalRDD
Arguments: [shardId#1006748, worklistShardItemId#1006749L, version#1006750, product#1006751, plant#1006752, periodStart#1006753, periodEnd#1006754, qty#1006755], false
(20) RepartitionByExpression
Arguments: [product#1006751, plant#1006752], 37
(21) Project
Arguments: [shardId#1006748, worklistShardItemId#1006749L, version#1006750, product#1006751, plant#1006752, qty#1006755]
(22) LogicalRDD
Arguments: [shardId#1006756, worklistShardItemId#1006757L, qty#1006758, demandChannel#1006759, demandStream#1006760, kpis#1006761], false
(23) Project
Arguments: [shardId#1006756 AS cachedShardId#1006762, worklistShardItemId#1006757L AS cachedWorklistShardItemId#1006763L, qty#1006758 AS cachedQty#1006764, demandChannel#1006759, demandStream#1006760, kpis#1006761 AS cachedKpis#1006765]
(24) Join
Arguments: Inner, (((worklistShardItemId#1006749L = cachedWorklistShardItemId#1006763L) AND (shardId#1006748 = cachedShardId#1006762)) AND isnull(qty#1006755))
(25) Project
Arguments: [shardId#1006748, worklistShardItemId#1006749L, version#1006750, product#1006751, plant#1006752, qty#1006755]
(26) Project
Arguments: [shardId#1006748, worklistShardItemId#1006749L, version#1006750, product#1006751, plant#1006752, qty#1006755]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#943631 <=> shardId#1006766) AND (worklistShardItemId#943632L <=> worklistShardItemId#1006767L)) AND (version#943633 <=> version#1006768)) AND (product#943634 <=> product#1006769)) AND (plant#943635 <=> plant#1006770)) AND (qty#943638 <=> qty#1006541))
(29) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638]
(30) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, cast(null as string) AS demandChannel#1006774]
(31) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, demandChannel#1006774, cast(null as string) AS demandStream#1006775]
(32) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, demandChannel#1006774, demandStream#1006775, array() AS kpis#1006776]
(33) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, demandChannel#1006774, demandStream#1006775, kpis#1006776, true AS isNewlyCalculated#1006777]
(34) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, demandChannel#1006774, demandStream#1006775, cast(kpis#1006776 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1006809, isNewlyCalculated#1006777]
(35) LogicalRDD
Arguments: [shardId#1006779, worklistShardItemId#1006780L, version#1006781, product#1006782, plant#1006783, periodStart#1006784, periodEnd#1006785, qty#1006786], false
(36) RepartitionByExpression
Arguments: [product#1006782, plant#1006783], 37
(37) Project
Arguments: [shardId#1006779, worklistShardItemId#1006780L, version#1006781, product#1006782, plant#1006783, qty#1006786]
(38) LogicalRDD
Arguments: [shardId#1006787, worklistShardItemId#1006788L, qty#1006789, demandChannel#1006790, demandStream#1006791, kpis#1006792], false
(39) Project
Arguments: [shardId#1006787 AS cachedShardId#1006793, worklistShardItemId#1006788L AS cachedWorklistShardItemId#1006794L, qty#1006789 AS cachedQty#1006795, demandChannel#1006790, demandStream#1006791, kpis#1006792 AS cachedKpis#1006796]
(40) Join
Arguments: Inner, (((worklistShardItemId#1006780L = cachedWorklistShardItemId#1006794L) AND (shardId#1006779 = cachedShardId#1006793)) AND ((qty#1006786 = cachedQty#1006795) OR isnull(qty#1006786)))
(41) Project
Arguments: [shardId#1006779, worklistShardItemId#1006780L, version#1006781, product#1006782, plant#1006783]
(42) Deduplicate
Arguments: [plant#1006783, shardId#1006779, version#1006781, worklistShardItemId#1006780L, product#1006782]
(43) LogicalRDD
Arguments: [shardId#1006797, worklistShardItemId#1006798L, qty#1006799, demandChannel#1006800, demandStream#1006801, kpis#1006802], false
(44) Project
Arguments: [shardId#1006797 AS cachedShardId#1006803, worklistShardItemId#1006798L AS cachedWorklistShardItemId#1006804L, qty#1006799 AS cachedQty#1006805, demandChannel#1006800, demandStream#1006801, kpis#1006802 AS cachedKpis#1006806]
(45) Join
Arguments: Inner, ((worklistShardItemId#1006780L = cachedWorklistShardItemId#1006804L) AND (shardId#1006779 = cachedShardId#1006803))
(46) Project
Arguments: [shardId#1006779, worklistShardItemId#1006780L, version#1006781, product#1006782, plant#1006783, cachedQty#1006805 AS qty#1006807, demandChannel#1006800, demandStream#1006801, cachedKpis#1006806 AS kpis#1006808]
(47) Project
Arguments: [shardId#1006779, worklistShardItemId#1006780L, version#1006781, product#1006782, plant#1006783, qty#1006807, demandChannel#1006800, demandStream#1006801, kpis#1006808, false AS isNewlyCalculated#1006778]
(48) Project
Arguments: [shardId#1006779, worklistShardItemId#1006780L, version#1006781, product#1006782, plant#1006783, qty#1006807, demandChannel#1006800, demandStream#1006801, kpis#1006808, isNewlyCalculated#1006778]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1006777 <=> false)
(51) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, qty#943638, demandChannel#1006774, demandStream#1006775, kpis#1006809]
(52) ExternalRDD
Arguments: [obj#1009273]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#1009276, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#1009277]
(54) Generate
Arguments: explode(prodPlantResults#1009277), false, [prodPlantResults#1009284]
(55) Project
Arguments: [prodPlantResults#1009284]
(56) Project
Arguments: [prodPlantResults#1009284.productId AS product#1009303, prodPlantResults#1009284.plantId AS plant#1009304, prodPlantResults#1009284.kpiResults AS kpis#1009305]
(57) Project
Arguments: [product#1009303, plant#1009304, kpis#1009305, null AS qty#1009309]
(58) Project
Arguments: [product#1009303, plant#1009304, kpis#1009305, qty#1009309, cast(null as string) AS demandChannel#1009310]
(59) Project
Arguments: [product#1009303, plant#1009304, kpis#1009305, qty#1009309, demandChannel#1009310, cast(null as string) AS demandStream#1009311]
(60) Project
Arguments: [product#1009303, plant#1009304, kpis#1009305, cast(qty#1009309 as double) AS qty#1009330, demandChannel#1009310, demandStream#1009311]
(61) ExternalRDD
Arguments: [obj#1009326]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#1009327, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#1009328]
(63) Generate
Arguments: explode(prodPlantResults#1009328), false, [prodPlantResults#1009329]
(64) Project
Arguments: [prodPlantResults#1009329]
(65) Generate
Arguments: explode(prodPlantResults#1009329.quantityKpiResults), false, [quantityKpiResults#1009296]
(66) Project
Arguments: [prodPlantResults#1009329.productId AS product#1009290, prodPlantResults#1009329.plantId AS plant#1009291, quantityKpiResults#1009296]
(67) Project
Arguments: [product#1009290, plant#1009291, quantityKpiResults#1009296, quantityKpiResults#1009296.quantity AS qty#1009297]
(68) Project
Arguments: [product#1009290, plant#1009291, quantityKpiResults#1009296, qty#1009297, cast(null as string) AS demandChannel#1009299]
(69) Project
Arguments: [product#1009290, plant#1009291, quantityKpiResults#1009296, qty#1009297, demandChannel#1009299, cast(null as string) AS demandStream#1009300]
(70) Project
Arguments: [product#1009290, plant#1009291, quantityKpiResults#1009296, qty#1009297, demandChannel#1009299, demandStream#1009300, quantityKpiResults#1009296.kpiResults AS kpis#1009301]
(71) Project
Arguments: [product#1009290, plant#1009291, qty#1009297, demandChannel#1009299, demandStream#1009300, kpis#1009301]
(72) Project
Arguments: [product#1009290, plant#1009291, kpis#1009301, qty#1009297, demandChannel#1009299, demandStream#1009300]
(73) ExternalRDD
Arguments: [obj#1009331]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement)))) null else named_struct(measuredUnit, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getMeasuredUnit()))), numberOfCalls, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getNumberOfCalls()), parent, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getParent()))), runtime, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79681), StructField(measuredUnit,StringType,true), StructField(numberOfCalls,LongType,false), StructField(parent,StringType,true), StructField(runtime,LongType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.PerformanceMeasurement))).getRuntime())), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getPerformanceMeasurements()), None) AS performanceMeasurements#1009332, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult)))) null else named_struct(demandChannelStreamKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult)))) null else named_struct(demandChannel, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandChannel()))), demandStream, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getDemandStream()))), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79684), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79683), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.DemandChannelStreamKpiResult))).getKpiResults()), None)), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getDemandChannelStreamKpiResults()), None), kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79685), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getKpiResults()), None), plantId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getPlantId()))), productId, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getProductId()))), quantityKpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult)))) null else named_struct(kpiResults, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult)))) null else named_struct(datetime, static_invoke(DateTimeUtils.fromJavaTimestamp(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getDatetime()))), label, static_invoke(UTF8String.fromString(invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getLabel()))), value, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79687), StructField(datetime,TimestampType,true), StructField(label,StringType,true), StructField(value,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiResult))).getValue())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getKpiResults()), None), quantity, invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79686), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(quantity,DoubleType,false), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.QuantityKpiResult))).getQuantity())), invoke(knownnotnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79682), StructField(demandChannelStreamKpiResults,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true)),true),true), StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true), StructField(plantId,StringType,true), StructField(productId,StringType,true), StructField(quantityKpiResults,ArrayType(StructType(StructField(kpiResults,ArrayType(StructType(StructField(datetime,TimestampType,true),StructField(label,StringType,true),StructField(value,DoubleType,false)),true),true),StructField(quantity,DoubleType,false)),true),true), ObjectType(class com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.ProdPlantKpiCalculationResult))).getQuantityKpiResults()), None)), invoke(knownnotnull(assertnotnull(input[0, com.sap.s4hana.eureka.business.crporderquantitykpicalculation.dto.KpiCalculationResult, true])).getProdPlantResults()), None) AS prodPlantResults#1009333]
(75) Generate
Arguments: explode(prodPlantResults#1009333), false, [prodPlantResults#1009334]
(76) Project
Arguments: [prodPlantResults#1009334]
(77) Generate
Arguments: explode(prodPlantResults#1009334.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1009318]
(78) Project
Arguments: [prodPlantResults#1009334.productId AS product#1009312, prodPlantResults#1009334.plantId AS plant#1009313, demandChannelStreamKpiResults#1009318]
(79) Project
Arguments: [product#1009312, plant#1009313, demandChannelStreamKpiResults#1009318, null AS qty#1009319]
(80) Project
Arguments: [product#1009312, plant#1009313, demandChannelStreamKpiResults#1009318, qty#1009319, demandChannelStreamKpiResults#1009318.demandChannel AS demandChannel#1009320]
(81) Project
Arguments: [product#1009312, plant#1009313, demandChannelStreamKpiResults#1009318, qty#1009319, demandChannel#1009320, demandChannelStreamKpiResults#1009318.demandStream AS demandStream#1009322]
(82) Project
Arguments: [product#1009312, plant#1009313, demandChannelStreamKpiResults#1009318, qty#1009319, demandChannel#1009320, demandStream#1009322, demandChannelStreamKpiResults#1009318.kpiResults AS kpis#1009324]
(83) Project
Arguments: [product#1009312, plant#1009313, qty#1009319, demandChannel#1009320, demandStream#1009322, kpis#1009324]
(84) Project
Arguments: [product#1009312, plant#1009313, kpis#1009324, qty#1009319, demandChannel#1009320, demandStream#1009322]
(85) Project
Arguments: [product#1009312, plant#1009313, kpis#1009324, cast(qty#1009319 as double) AS qty#1009335, demandChannel#1009320, demandStream#1009322]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1009303, plant#1009304, transform(kpis#1009305, lambdafunction(struct(label, lambda kpi#1009340.label, dateTime, lambda kpi#1009340.datetime, value, lambda kpi#1009340.value), lambda kpi#1009340, false)) AS kpis#1009339, qty#1009330, demandChannel#1009310, demandStream#1009311]
(88) Project
Arguments: [product#1009303, plant#1009304, qty#1009330, demandChannel#1009310, demandStream#1009311, kpis#1009339]
(89) LogicalRDD
Arguments: [shardId#1010148, worklistShardItemId#1010149L, version#1010150, product#1010151, plant#1010152, periodStart#1010153, periodEnd#1010154, qty#1010155], false
(90) RepartitionByExpression
Arguments: [product#1010151, plant#1010152], 37
(91) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, version#1010150, product#1010151, plant#1010152, qty#1010155]
(92) LogicalRDD
Arguments: [shardId#1010156, worklistShardItemId#1010157L, version#1010158, product#1010159, plant#1010160, periodStart#1010161, periodEnd#1010162, qty#1010163], false
(93) RepartitionByExpression
Arguments: [product#1010159, plant#1010160], 37
(94) Project
Arguments: [shardId#1010156, worklistShardItemId#1010157L, version#1010158, product#1010159, plant#1010160, qty#1010163]
(95) LogicalRDD
Arguments: [shardId#1010164, worklistShardItemId#1010165L, qty#1010166, demandChannel#1010167, demandStream#1010168, kpis#1010169], false
(96) Project
Arguments: [shardId#1010164 AS cachedShardId#1010170, worklistShardItemId#1010165L AS cachedWorklistShardItemId#1010171L, qty#1010166 AS cachedQty#1010172, demandChannel#1010167, demandStream#1010168, kpis#1010169 AS cachedKpis#1010173]
(97) Join
Arguments: Inner, (((worklistShardItemId#1010157L = cachedWorklistShardItemId#1010171L) AND (shardId#1010156 = cachedShardId#1010170)) AND ((qty#1010163 = cachedQty#1010172) OR isnull(qty#1010163)))
(98) Project
Arguments: [shardId#1010156, worklistShardItemId#1010157L, version#1010158, product#1010159, plant#1010160]
(99) Deduplicate
Arguments: [plant#1010160, shardId#1010156, version#1010158, worklistShardItemId#1010157L, product#1010159]
(100) LogicalRDD
Arguments: [shardId#1010174, worklistShardItemId#1010175L, qty#1010176, demandChannel#1010177, demandStream#1010178, kpis#1010179], false
(101) Project
Arguments: [shardId#1010174 AS cachedShardId#1010180, worklistShardItemId#1010175L AS cachedWorklistShardItemId#1010181L, qty#1010176 AS cachedQty#1010182, demandChannel#1010177, demandStream#1010178, kpis#1010179 AS cachedKpis#1010183]
(102) Join
Arguments: Inner, ((worklistShardItemId#1010157L = cachedWorklistShardItemId#1010181L) AND (shardId#1010156 = cachedShardId#1010180))
(103) Project
Arguments: [shardId#1010156, worklistShardItemId#1010157L, version#1010158, product#1010159, plant#1010160, cachedQty#1010182 AS qty#1010184, demandChannel#1010177, demandStream#1010178, cachedKpis#1010183 AS kpis#1010185]
(104) Project
Arguments: [shardId#1010156, worklistShardItemId#1010157L, version#1010158, product#1010159, plant#1010160, qty#1010184]
(105) LogicalRDD
Arguments: [shardId#1010186, worklistShardItemId#1010187L, version#1010188, product#1010189, plant#1010190, periodStart#1010191, periodEnd#1010192, qty#1010193], false
(106) RepartitionByExpression
Arguments: [product#1010189, plant#1010190], 37
(107) Project
Arguments: [shardId#1010186, worklistShardItemId#1010187L, version#1010188, product#1010189, plant#1010190, qty#1010193]
(108) LogicalRDD
Arguments: [shardId#1010194, worklistShardItemId#1010195L, qty#1010196, demandChannel#1010197, demandStream#1010198, kpis#1010199], false
(109) Project
Arguments: [shardId#1010194 AS cachedShardId#1010200, worklistShardItemId#1010195L AS cachedWorklistShardItemId#1010201L, qty#1010196 AS cachedQty#1010202, demandChannel#1010197, demandStream#1010198, kpis#1010199 AS cachedKpis#1010203]
(110) Join
Arguments: Inner, (((worklistShardItemId#1010187L = cachedWorklistShardItemId#1010201L) AND (shardId#1010186 = cachedShardId#1010200)) AND isnull(qty#1010193))
(111) Project
Arguments: [shardId#1010186, worklistShardItemId#1010187L, version#1010188, product#1010189, plant#1010190, qty#1010193]
(112) Project
Arguments: [shardId#1010186, worklistShardItemId#1010187L, version#1010188, product#1010189, plant#1010190, qty#1010193]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1010148 <=> shardId#1010156) AND (worklistShardItemId#1010149L <=> worklistShardItemId#1010157L)) AND (version#1010150 <=> version#1010158)) AND (product#1010151 <=> product#1010159)) AND (plant#1010152 <=> plant#1010160)) AND (qty#1010155 <=> qty#1010184))
(115) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, version#1010150, product#1010151, plant#1010152, qty#1010155]
(116) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, version#1010150, product#1010151, plant#1010152, qty#1010155, cast(null as string) AS demandChannel#1010204]
(117) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, version#1010150, product#1010151, plant#1010152, qty#1010155, demandChannel#1010204, cast(null as string) AS demandStream#1010205]
(118) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, version#1010150, product#1010151, plant#1010152, qty#1010155, demandChannel#1010204, demandStream#1010205, array() AS kpis#1010206]
(119) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, version#1010150, product#1010151, plant#1010152, qty#1010155, demandChannel#1010204, demandStream#1010205, kpis#1010206, true AS isNewlyCalculated#1010207]
(120) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, version#1010150, product#1010151, plant#1010152, qty#1010155, demandChannel#1010204, demandStream#1010205, cast(kpis#1010206 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1010208, isNewlyCalculated#1010207]
(121) LogicalRDD
Arguments: [shardId#1010209, worklistShardItemId#1010210L, version#1010211, product#1010212, plant#1010213, periodStart#1010214, periodEnd#1010215, qty#1010216], false
(122) RepartitionByExpression
Arguments: [product#1010212, plant#1010213], 37
(123) Project
Arguments: [shardId#1010209, worklistShardItemId#1010210L, version#1010211, product#1010212, plant#1010213, qty#1010216]
(124) LogicalRDD
Arguments: [shardId#1010217, worklistShardItemId#1010218L, qty#1010219, demandChannel#1010220, demandStream#1010221, kpis#1010222], false
(125) Project
Arguments: [shardId#1010217 AS cachedShardId#1010223, worklistShardItemId#1010218L AS cachedWorklistShardItemId#1010224L, qty#1010219 AS cachedQty#1010225, demandChannel#1010220, demandStream#1010221, kpis#1010222 AS cachedKpis#1010226]
(126) Join
Arguments: Inner, (((worklistShardItemId#1010210L = cachedWorklistShardItemId#1010224L) AND (shardId#1010209 = cachedShardId#1010223)) AND ((qty#1010216 = cachedQty#1010225) OR isnull(qty#1010216)))
(127) Project
Arguments: [shardId#1010209, worklistShardItemId#1010210L, version#1010211, product#1010212, plant#1010213]
(128) Deduplicate
Arguments: [plant#1010213, shardId#1010209, version#1010211, worklistShardItemId#1010210L, product#1010212]
(129) LogicalRDD
Arguments: [shardId#1010227, worklistShardItemId#1010228L, qty#1010229, demandChannel#1010230, demandStream#1010231, kpis#1010232], false
(130) Project
Arguments: [shardId#1010227 AS cachedShardId#1010233, worklistShardItemId#1010228L AS cachedWorklistShardItemId#1010234L, qty#1010229 AS cachedQty#1010235, demandChannel#1010230, demandStream#1010231, kpis#1010232 AS cachedKpis#1010236]
(131) Join
Arguments: Inner, ((worklistShardItemId#1010210L = cachedWorklistShardItemId#1010234L) AND (shardId#1010209 = cachedShardId#1010233))
(132) Project
Arguments: [shardId#1010209, worklistShardItemId#1010210L, version#1010211, product#1010212, plant#1010213, cachedQty#1010235 AS qty#1010237, demandChannel#1010230, demandStream#1010231, cachedKpis#1010236 AS kpis#1010238]
(133) Project
Arguments: [shardId#1010209, worklistShardItemId#1010210L, version#1010211, product#1010212, plant#1010213, qty#1010237, demandChannel#1010230, demandStream#1010231, kpis#1010238, false AS isNewlyCalculated#1010239]
(134) Project
Arguments: [shardId#1010209, worklistShardItemId#1010210L, version#1010211, product#1010212, plant#1010213, qty#1010237, demandChannel#1010230, demandStream#1010231, kpis#1010238, isNewlyCalculated#1010239]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1010207 <=> true)
(137) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, product#1010151, plant#1010152, qty#1010155, kpis#1010208]
(138) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, product#1010151, plant#1010152, qty#1010155]
(139) Deduplicate
Arguments: [plant#1010152, shardId#1010148, qty#1010155, worklistShardItemId#1010149L, product#1010151]
(140) Join
Arguments: Inner, ((product#1009303 <=> product#1010151) AND ((plant#1009304 <=> plant#1010152) AND ((qty#1009330 <=> qty#1010155) OR isnull(qty#1010155))))
(141) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, qty#1009330, demandChannel#1009310, demandStream#1009311, kpis#1009339]
(142) Deduplicate
Arguments: [demandChannel#1009310, shardId#1010148, qty#1009330, worklistShardItemId#1010149L, demandStream#1009311]
(143) Project
Arguments: [shardId#1010148, worklistShardItemId#1010149L, qty#1009330, demandChannel#1009310, demandStream#1009311, kpis#1009339]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242, product#1010243, plant#1010244, periodStart#1010245, periodEnd#1010246, qty#1010247], false
(146) RepartitionByExpression
Arguments: [product#1010243, plant#1010244], 37
(147) Project
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242, product#1010243, plant#1010244, qty#1010247]
(148) LogicalRDD
Arguments: [shardId#1010248, worklistShardItemId#1010249L, version#1010250, product#1010251, plant#1010252, periodStart#1010253, periodEnd#1010254, qty#1010255], false
(149) RepartitionByExpression
Arguments: [product#1010251, plant#1010252], 37
(150) Project
Arguments: [shardId#1010248, worklistShardItemId#1010249L, version#1010250, product#1010251, plant#1010252, qty#1010255]
(151) LogicalRDD
Arguments: [shardId#1010256, worklistShardItemId#1010257L, qty#1010258, demandChannel#1010259, demandStream#1010260, kpis#1010261], false
(152) Project
Arguments: [shardId#1010256 AS cachedShardId#1010262, worklistShardItemId#1010257L AS cachedWorklistShardItemId#1010263L, qty#1010258 AS cachedQty#1010264, demandChannel#1010259, demandStream#1010260, kpis#1010261 AS cachedKpis#1010265]
(153) Join
Arguments: Inner, (((worklistShardItemId#1010249L = cachedWorklistShardItemId#1010263L) AND (shardId#1010248 = cachedShardId#1010262)) AND ((qty#1010255 = cachedQty#1010264) OR isnull(qty#1010255)))
(154) Project
Arguments: [shardId#1010248, worklistShardItemId#1010249L, version#1010250, product#1010251, plant#1010252]
(155) Deduplicate
Arguments: [plant#1010252, shardId#1010248, version#1010250, worklistShardItemId#1010249L, product#1010251]
(156) LogicalRDD
Arguments: [shardId#1010266, worklistShardItemId#1010267L, qty#1010268, demandChannel#1010269, demandStream#1010270, kpis#1010271], false
(157) Project
Arguments: [shardId#1010266 AS cachedShardId#1010272, worklistShardItemId#1010267L AS cachedWorklistShardItemId#1010273L, qty#1010268 AS cachedQty#1010274, demandChannel#1010269, demandStream#1010270, kpis#1010271 AS cachedKpis#1010275]
(158) Join
Arguments: Inner, ((worklistShardItemId#1010249L = cachedWorklistShardItemId#1010273L) AND (shardId#1010248 = cachedShardId#1010272))
(159) Project
Arguments: [shardId#1010248, worklistShardItemId#1010249L, version#1010250, product#1010251, plant#1010252, cachedQty#1010274 AS qty#1010276, demandChannel#1010269, demandStream#1010270, cachedKpis#1010275 AS kpis#1010277]
(160) Project
Arguments: [shardId#1010248, worklistShardItemId#1010249L, version#1010250, product#1010251, plant#1010252, qty#1010276]
(161) LogicalRDD
Arguments: [shardId#1010278, worklistShardItemId#1010279L, version#1010280, product#1010281, plant#1010282, periodStart#1010283, periodEnd#1010284, qty#1010285], false
(162) RepartitionByExpression
Arguments: [product#1010281, plant#1010282], 37
(163) Project
Arguments: [shardId#1010278, worklistShardItemId#1010279L, version#1010280, product#1010281, plant#1010282, qty#1010285]
(164) LogicalRDD
Arguments: [shardId#1010286, worklistShardItemId#1010287L, qty#1010288, demandChannel#1010289, demandStream#1010290, kpis#1010291], false
(165) Project
Arguments: [shardId#1010286 AS cachedShardId#1010292, worklistShardItemId#1010287L AS cachedWorklistShardItemId#1010293L, qty#1010288 AS cachedQty#1010294, demandChannel#1010289, demandStream#1010290, kpis#1010291 AS cachedKpis#1010295]
(166) Join
Arguments: Inner, (((worklistShardItemId#1010279L = cachedWorklistShardItemId#1010293L) AND (shardId#1010278 = cachedShardId#1010292)) AND isnull(qty#1010285))
(167) Project
Arguments: [shardId#1010278, worklistShardItemId#1010279L, version#1010280, product#1010281, plant#1010282, qty#1010285]
(168) Project
Arguments: [shardId#1010278, worklistShardItemId#1010279L, version#1010280, product#1010281, plant#1010282, qty#1010285]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1010240 <=> shardId#1010248) AND (worklistShardItemId#1010241L <=> worklistShardItemId#1010249L)) AND (version#1010242 <=> version#1010250)) AND (product#1010243 <=> product#1010251)) AND (plant#1010244 <=> plant#1010252)) AND (qty#1010247 <=> qty#1010276))
(171) Project
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242, product#1010243, plant#1010244, qty#1010247]
(172) Project
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242, product#1010243, plant#1010244, qty#1010247, cast(null as string) AS demandChannel#1010296]
(173) Project
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242, product#1010243, plant#1010244, qty#1010247, demandChannel#1010296, cast(null as string) AS demandStream#1010297]
(174) Project
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242, product#1010243, plant#1010244, qty#1010247, demandChannel#1010296, demandStream#1010297, array() AS kpis#1010298]
(175) Project
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242, product#1010243, plant#1010244, qty#1010247, demandChannel#1010296, demandStream#1010297, kpis#1010298, true AS isNewlyCalculated#1010299]
(176) Project
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242, product#1010243, plant#1010244, qty#1010247, demandChannel#1010296, demandStream#1010297, cast(kpis#1010298 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1010300, isNewlyCalculated#1010299]
(177) LogicalRDD
Arguments: [shardId#1010301, worklistShardItemId#1010302L, version#1010303, product#1010304, plant#1010305, periodStart#1010306, periodEnd#1010307, qty#1010308], false
(178) RepartitionByExpression
Arguments: [product#1010304, plant#1010305], 37
(179) Project
Arguments: [shardId#1010301, worklistShardItemId#1010302L, version#1010303, product#1010304, plant#1010305, qty#1010308]
(180) LogicalRDD
Arguments: [shardId#1010309, worklistShardItemId#1010310L, qty#1010311, demandChannel#1010312, demandStream#1010313, kpis#1010314], false
(181) Project
Arguments: [shardId#1010309 AS cachedShardId#1010315, worklistShardItemId#1010310L AS cachedWorklistShardItemId#1010316L, qty#1010311 AS cachedQty#1010317, demandChannel#1010312, demandStream#1010313, kpis#1010314 AS cachedKpis#1010318]
(182) Join
Arguments: Inner, (((worklistShardItemId#1010302L = cachedWorklistShardItemId#1010316L) AND (shardId#1010301 = cachedShardId#1010315)) AND ((qty#1010308 = cachedQty#1010317) OR isnull(qty#1010308)))
(183) Project
Arguments: [shardId#1010301, worklistShardItemId#1010302L, version#1010303, product#1010304, plant#1010305]
(184) Deduplicate
Arguments: [plant#1010305, shardId#1010301, version#1010303, worklistShardItemId#1010302L, product#1010304]
(185) LogicalRDD
Arguments: [shardId#1010319, worklistShardItemId#1010320L, qty#1010321, demandChannel#1010322, demandStream#1010323, kpis#1010324], false
(186) Project
Arguments: [shardId#1010319 AS cachedShardId#1010325, worklistShardItemId#1010320L AS cachedWorklistShardItemId#1010326L, qty#1010321 AS cachedQty#1010327, demandChannel#1010322, demandStream#1010323, kpis#1010324 AS cachedKpis#1010328]
(187) Join
Arguments: Inner, ((worklistShardItemId#1010302L = cachedWorklistShardItemId#1010326L) AND (shardId#1010301 = cachedShardId#1010325))
(188) Project
Arguments: [shardId#1010301, worklistShardItemId#1010302L, version#1010303, product#1010304, plant#1010305, cachedQty#1010327 AS qty#1010329, demandChannel#1010322, demandStream#1010323, cachedKpis#1010328 AS kpis#1010330]
(189) Project
Arguments: [shardId#1010301, worklistShardItemId#1010302L, version#1010303, product#1010304, plant#1010305, qty#1010329, demandChannel#1010322, demandStream#1010323, kpis#1010330, false AS isNewlyCalculated#1010331]
(190) Project
Arguments: [shardId#1010301, worklistShardItemId#1010302L, version#1010303, product#1010304, plant#1010305, qty#1010329, demandChannel#1010322, demandStream#1010323, kpis#1010330, isNewlyCalculated#1010331]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1010240, worklistShardItemId#1010241L, version#1010242]
(193) Aggregate
Arguments: [shardId#1010240, worklistShardItemId#1010241L], [shardId#1010240, worklistShardItemId#1010241L, (max(version#1010242) + 1) AS version#1010143]
(194) Join
Arguments: Inner, ((shardId#943631 = shardId#1010240) AND (worklistShardItemId#943632L = worklistShardItemId#1010241L))
(195) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, qty#943638, demandChannel#1006774, demandStream#1006775, kpis#1006809, version#1010143]
(196) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#1010143, qty#943638, demandChannel#1006774, demandStream#1006775, kpis#1006809]