== 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@13027498, [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#995650, worklistShardItemId#995651L, version#995652, product#995653, plant#995654, periodStart#995655, periodEnd#995656, qty#995657], false
(7) RepartitionByExpression
Arguments: [product#995653, plant#995654], 37
(8) Project
Arguments: [shardId#995650, worklistShardItemId#995651L, version#995652, product#995653, plant#995654, qty#995657]
(9) LogicalRDD
Arguments: [shardId#995405, worklistShardItemId#995406L, qty#995407, demandChannel#995408, demandStream#995409, kpis#995410], false
(10) Project
Arguments: [shardId#995405 AS cachedShardId#995411, worklistShardItemId#995406L AS cachedWorklistShardItemId#995412L, qty#995407 AS cachedQty#995413, demandChannel#995408, demandStream#995409, kpis#995410 AS cachedKpis#995414]
(11) Join
Arguments: Inner, (((worklistShardItemId#995651L = cachedWorklistShardItemId#995412L) AND (shardId#995650 = cachedShardId#995411)) AND ((qty#995657 = cachedQty#995413) OR isnull(qty#995657)))
(12) Project
Arguments: [shardId#995650, worklistShardItemId#995651L, version#995652, product#995653, plant#995654]
(13) Deduplicate
Arguments: [plant#995654, shardId#995650, version#995652, worklistShardItemId#995651L, product#995653]
(14) LogicalRDD
Arguments: [shardId#995415, worklistShardItemId#995416L, qty#995417, demandChannel#995418, demandStream#995419, kpis#995420], false
(15) Project
Arguments: [shardId#995415 AS cachedShardId#995421, worklistShardItemId#995416L AS cachedWorklistShardItemId#995422L, qty#995417 AS cachedQty#995423, demandChannel#995418, demandStream#995419, kpis#995420 AS cachedKpis#995424]
(16) Join
Arguments: Inner, ((worklistShardItemId#995651L = cachedWorklistShardItemId#995422L) AND (shardId#995650 = cachedShardId#995421))
(17) Project
Arguments: [shardId#995650, worklistShardItemId#995651L, version#995652, product#995653, plant#995654, cachedQty#995423 AS qty#995425, demandChannel#995418, demandStream#995419, cachedKpis#995424 AS kpis#995426]
(18) Project
Arguments: [shardId#995650, worklistShardItemId#995651L, version#995652, product#995653, plant#995654, qty#995425]
(19) LogicalRDD
Arguments: [shardId#995632, worklistShardItemId#995633L, version#995634, product#995635, plant#995636, periodStart#995637, periodEnd#995638, qty#995639], false
(20) RepartitionByExpression
Arguments: [product#995635, plant#995636], 37
(21) Project
Arguments: [shardId#995632, worklistShardItemId#995633L, version#995634, product#995635, plant#995636, qty#995639]
(22) LogicalRDD
Arguments: [shardId#995640, worklistShardItemId#995641L, qty#995642, demandChannel#995643, demandStream#995644, kpis#995645], false
(23) Project
Arguments: [shardId#995640 AS cachedShardId#995646, worklistShardItemId#995641L AS cachedWorklistShardItemId#995647L, qty#995642 AS cachedQty#995648, demandChannel#995643, demandStream#995644, kpis#995645 AS cachedKpis#995649]
(24) Join
Arguments: Inner, (((worklistShardItemId#995633L = cachedWorklistShardItemId#995647L) AND (shardId#995632 = cachedShardId#995646)) AND isnull(qty#995639))
(25) Project
Arguments: [shardId#995632, worklistShardItemId#995633L, version#995634, product#995635, plant#995636, qty#995639]
(26) Project
Arguments: [shardId#995632, worklistShardItemId#995633L, version#995634, product#995635, plant#995636, qty#995639]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#943631 <=> shardId#995650) AND (worklistShardItemId#943632L <=> worklistShardItemId#995651L)) AND (version#943633 <=> version#995652)) AND (product#943634 <=> product#995653)) AND (plant#943635 <=> plant#995654)) AND (qty#943638 <=> qty#995425))
(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#995658]
(31) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, demandChannel#995658, cast(null as string) AS demandStream#995659]
(32) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, demandChannel#995658, demandStream#995659, array() AS kpis#995660]
(33) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, demandChannel#995658, demandStream#995659, kpis#995660, true AS isNewlyCalculated#995661]
(34) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#943633, product#943634, plant#943635, qty#943638, demandChannel#995658, demandStream#995659, cast(kpis#995660 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#995693, isNewlyCalculated#995661]
(35) LogicalRDD
Arguments: [shardId#995663, worklistShardItemId#995664L, version#995665, product#995666, plant#995667, periodStart#995668, periodEnd#995669, qty#995670], false
(36) RepartitionByExpression
Arguments: [product#995666, plant#995667], 37
(37) Project
Arguments: [shardId#995663, worklistShardItemId#995664L, version#995665, product#995666, plant#995667, qty#995670]
(38) LogicalRDD
Arguments: [shardId#995671, worklistShardItemId#995672L, qty#995673, demandChannel#995674, demandStream#995675, kpis#995676], false
(39) Project
Arguments: [shardId#995671 AS cachedShardId#995677, worklistShardItemId#995672L AS cachedWorklistShardItemId#995678L, qty#995673 AS cachedQty#995679, demandChannel#995674, demandStream#995675, kpis#995676 AS cachedKpis#995680]
(40) Join
Arguments: Inner, (((worklistShardItemId#995664L = cachedWorklistShardItemId#995678L) AND (shardId#995663 = cachedShardId#995677)) AND ((qty#995670 = cachedQty#995679) OR isnull(qty#995670)))
(41) Project
Arguments: [shardId#995663, worklistShardItemId#995664L, version#995665, product#995666, plant#995667]
(42) Deduplicate
Arguments: [plant#995667, shardId#995663, version#995665, worklistShardItemId#995664L, product#995666]
(43) LogicalRDD
Arguments: [shardId#995681, worklistShardItemId#995682L, qty#995683, demandChannel#995684, demandStream#995685, kpis#995686], false
(44) Project
Arguments: [shardId#995681 AS cachedShardId#995687, worklistShardItemId#995682L AS cachedWorklistShardItemId#995688L, qty#995683 AS cachedQty#995689, demandChannel#995684, demandStream#995685, kpis#995686 AS cachedKpis#995690]
(45) Join
Arguments: Inner, ((worklistShardItemId#995664L = cachedWorklistShardItemId#995688L) AND (shardId#995663 = cachedShardId#995687))
(46) Project
Arguments: [shardId#995663, worklistShardItemId#995664L, version#995665, product#995666, plant#995667, cachedQty#995689 AS qty#995691, demandChannel#995684, demandStream#995685, cachedKpis#995690 AS kpis#995692]
(47) Project
Arguments: [shardId#995663, worklistShardItemId#995664L, version#995665, product#995666, plant#995667, qty#995691, demandChannel#995684, demandStream#995685, kpis#995692, false AS isNewlyCalculated#995662]
(48) Project
Arguments: [shardId#995663, worklistShardItemId#995664L, version#995665, product#995666, plant#995667, qty#995691, demandChannel#995684, demandStream#995685, kpis#995692, isNewlyCalculated#995662]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#995661 <=> false)
(51) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, qty#943638, demandChannel#995658, demandStream#995659, kpis#995693]
(52) ExternalRDD
Arguments: [obj#998157]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79011), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79011), 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, 79011), 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, 79011), 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, 79011), 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, 79011), 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#998160, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79012), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79012), 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, 79013), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79013), 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, 79013), 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, 79013), 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, 79014), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79014), 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, 79014), 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, 79014), 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, 79014), 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, 79013), 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, 79012), 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, 79015), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79015), 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, 79015), 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, 79015), 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, 79015), 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, 79012), 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, 79012), 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, 79012), 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, 79016), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79016), 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, 79017), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79017), 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, 79017), 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, 79017), 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, 79017), 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, 79016), 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, 79016), 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, 79012), 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#998161]
(54) Generate
Arguments: explode(prodPlantResults#998161), false, [prodPlantResults#998168]
(55) Project
Arguments: [prodPlantResults#998168]
(56) Project
Arguments: [prodPlantResults#998168.productId AS product#998187, prodPlantResults#998168.plantId AS plant#998188, prodPlantResults#998168.kpiResults AS kpis#998189]
(57) Project
Arguments: [product#998187, plant#998188, kpis#998189, null AS qty#998193]
(58) Project
Arguments: [product#998187, plant#998188, kpis#998189, qty#998193, cast(null as string) AS demandChannel#998194]
(59) Project
Arguments: [product#998187, plant#998188, kpis#998189, qty#998193, demandChannel#998194, cast(null as string) AS demandStream#998195]
(60) Project
Arguments: [product#998187, plant#998188, kpis#998189, cast(qty#998193 as double) AS qty#998214, demandChannel#998194, demandStream#998195]
(61) ExternalRDD
Arguments: [obj#998210]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79011), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79011), 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, 79011), 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, 79011), 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, 79011), 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, 79011), 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#998211, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79012), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79012), 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, 79013), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79013), 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, 79013), 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, 79013), 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, 79014), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79014), 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, 79014), 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, 79014), 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, 79014), 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, 79013), 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, 79012), 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, 79015), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79015), 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, 79015), 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, 79015), 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, 79015), 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, 79012), 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, 79012), 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, 79012), 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, 79016), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79016), 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, 79017), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79017), 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, 79017), 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, 79017), 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, 79017), 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, 79016), 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, 79016), 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, 79012), 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#998212]
(63) Generate
Arguments: explode(prodPlantResults#998212), false, [prodPlantResults#998213]
(64) Project
Arguments: [prodPlantResults#998213]
(65) Generate
Arguments: explode(prodPlantResults#998213.quantityKpiResults), false, [quantityKpiResults#998180]
(66) Project
Arguments: [prodPlantResults#998213.productId AS product#998174, prodPlantResults#998213.plantId AS plant#998175, quantityKpiResults#998180]
(67) Project
Arguments: [product#998174, plant#998175, quantityKpiResults#998180, quantityKpiResults#998180.quantity AS qty#998181]
(68) Project
Arguments: [product#998174, plant#998175, quantityKpiResults#998180, qty#998181, cast(null as string) AS demandChannel#998183]
(69) Project
Arguments: [product#998174, plant#998175, quantityKpiResults#998180, qty#998181, demandChannel#998183, cast(null as string) AS demandStream#998184]
(70) Project
Arguments: [product#998174, plant#998175, quantityKpiResults#998180, qty#998181, demandChannel#998183, demandStream#998184, quantityKpiResults#998180.kpiResults AS kpis#998185]
(71) Project
Arguments: [product#998174, plant#998175, qty#998181, demandChannel#998183, demandStream#998184, kpis#998185]
(72) Project
Arguments: [product#998174, plant#998175, kpis#998185, qty#998181, demandChannel#998183, demandStream#998184]
(73) ExternalRDD
Arguments: [obj#998215]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79011), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79011), 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, 79011), 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, 79011), 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, 79011), 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, 79011), 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#998216, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79012), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79012), 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, 79013), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79013), 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, 79013), 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, 79013), 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, 79014), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79014), 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, 79014), 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, 79014), 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, 79014), 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, 79013), 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, 79012), 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, 79015), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79015), 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, 79015), 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, 79015), 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, 79015), 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, 79012), 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, 79012), 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, 79012), 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, 79016), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79016), 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, 79017), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 79017), 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, 79017), 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, 79017), 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, 79017), 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, 79016), 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, 79016), 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, 79012), 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#998217]
(75) Generate
Arguments: explode(prodPlantResults#998217), false, [prodPlantResults#998218]
(76) Project
Arguments: [prodPlantResults#998218]
(77) Generate
Arguments: explode(prodPlantResults#998218.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#998202]
(78) Project
Arguments: [prodPlantResults#998218.productId AS product#998196, prodPlantResults#998218.plantId AS plant#998197, demandChannelStreamKpiResults#998202]
(79) Project
Arguments: [product#998196, plant#998197, demandChannelStreamKpiResults#998202, null AS qty#998203]
(80) Project
Arguments: [product#998196, plant#998197, demandChannelStreamKpiResults#998202, qty#998203, demandChannelStreamKpiResults#998202.demandChannel AS demandChannel#998204]
(81) Project
Arguments: [product#998196, plant#998197, demandChannelStreamKpiResults#998202, qty#998203, demandChannel#998204, demandChannelStreamKpiResults#998202.demandStream AS demandStream#998206]
(82) Project
Arguments: [product#998196, plant#998197, demandChannelStreamKpiResults#998202, qty#998203, demandChannel#998204, demandStream#998206, demandChannelStreamKpiResults#998202.kpiResults AS kpis#998208]
(83) Project
Arguments: [product#998196, plant#998197, qty#998203, demandChannel#998204, demandStream#998206, kpis#998208]
(84) Project
Arguments: [product#998196, plant#998197, kpis#998208, qty#998203, demandChannel#998204, demandStream#998206]
(85) Project
Arguments: [product#998196, plant#998197, kpis#998208, cast(qty#998203 as double) AS qty#998219, demandChannel#998204, demandStream#998206]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#998187, plant#998188, transform(kpis#998189, lambdafunction(struct(label, lambda kpi#998224.label, dateTime, lambda kpi#998224.datetime, value, lambda kpi#998224.value), lambda kpi#998224, false)) AS kpis#998223, qty#998214, demandChannel#998194, demandStream#998195]
(88) Project
Arguments: [product#998187, plant#998188, qty#998214, demandChannel#998194, demandStream#998195, kpis#998223]
(89) LogicalRDD
Arguments: [shardId#999032, worklistShardItemId#999033L, version#999034, product#999035, plant#999036, periodStart#999037, periodEnd#999038, qty#999039], false
(90) RepartitionByExpression
Arguments: [product#999035, plant#999036], 37
(91) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, version#999034, product#999035, plant#999036, qty#999039]
(92) LogicalRDD
Arguments: [shardId#999040, worklistShardItemId#999041L, version#999042, product#999043, plant#999044, periodStart#999045, periodEnd#999046, qty#999047], false
(93) RepartitionByExpression
Arguments: [product#999043, plant#999044], 37
(94) Project
Arguments: [shardId#999040, worklistShardItemId#999041L, version#999042, product#999043, plant#999044, qty#999047]
(95) LogicalRDD
Arguments: [shardId#999048, worklistShardItemId#999049L, qty#999050, demandChannel#999051, demandStream#999052, kpis#999053], false
(96) Project
Arguments: [shardId#999048 AS cachedShardId#999054, worklistShardItemId#999049L AS cachedWorklistShardItemId#999055L, qty#999050 AS cachedQty#999056, demandChannel#999051, demandStream#999052, kpis#999053 AS cachedKpis#999057]
(97) Join
Arguments: Inner, (((worklistShardItemId#999041L = cachedWorklistShardItemId#999055L) AND (shardId#999040 = cachedShardId#999054)) AND ((qty#999047 = cachedQty#999056) OR isnull(qty#999047)))
(98) Project
Arguments: [shardId#999040, worklistShardItemId#999041L, version#999042, product#999043, plant#999044]
(99) Deduplicate
Arguments: [plant#999044, shardId#999040, version#999042, worklistShardItemId#999041L, product#999043]
(100) LogicalRDD
Arguments: [shardId#999058, worklistShardItemId#999059L, qty#999060, demandChannel#999061, demandStream#999062, kpis#999063], false
(101) Project
Arguments: [shardId#999058 AS cachedShardId#999064, worklistShardItemId#999059L AS cachedWorklistShardItemId#999065L, qty#999060 AS cachedQty#999066, demandChannel#999061, demandStream#999062, kpis#999063 AS cachedKpis#999067]
(102) Join
Arguments: Inner, ((worklistShardItemId#999041L = cachedWorklistShardItemId#999065L) AND (shardId#999040 = cachedShardId#999064))
(103) Project
Arguments: [shardId#999040, worklistShardItemId#999041L, version#999042, product#999043, plant#999044, cachedQty#999066 AS qty#999068, demandChannel#999061, demandStream#999062, cachedKpis#999067 AS kpis#999069]
(104) Project
Arguments: [shardId#999040, worklistShardItemId#999041L, version#999042, product#999043, plant#999044, qty#999068]
(105) LogicalRDD
Arguments: [shardId#999070, worklistShardItemId#999071L, version#999072, product#999073, plant#999074, periodStart#999075, periodEnd#999076, qty#999077], false
(106) RepartitionByExpression
Arguments: [product#999073, plant#999074], 37
(107) Project
Arguments: [shardId#999070, worklistShardItemId#999071L, version#999072, product#999073, plant#999074, qty#999077]
(108) LogicalRDD
Arguments: [shardId#999078, worklistShardItemId#999079L, qty#999080, demandChannel#999081, demandStream#999082, kpis#999083], false
(109) Project
Arguments: [shardId#999078 AS cachedShardId#999084, worklistShardItemId#999079L AS cachedWorklistShardItemId#999085L, qty#999080 AS cachedQty#999086, demandChannel#999081, demandStream#999082, kpis#999083 AS cachedKpis#999087]
(110) Join
Arguments: Inner, (((worklistShardItemId#999071L = cachedWorklistShardItemId#999085L) AND (shardId#999070 = cachedShardId#999084)) AND isnull(qty#999077))
(111) Project
Arguments: [shardId#999070, worklistShardItemId#999071L, version#999072, product#999073, plant#999074, qty#999077]
(112) Project
Arguments: [shardId#999070, worklistShardItemId#999071L, version#999072, product#999073, plant#999074, qty#999077]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#999032 <=> shardId#999040) AND (worklistShardItemId#999033L <=> worklistShardItemId#999041L)) AND (version#999034 <=> version#999042)) AND (product#999035 <=> product#999043)) AND (plant#999036 <=> plant#999044)) AND (qty#999039 <=> qty#999068))
(115) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, version#999034, product#999035, plant#999036, qty#999039]
(116) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, version#999034, product#999035, plant#999036, qty#999039, cast(null as string) AS demandChannel#999088]
(117) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, version#999034, product#999035, plant#999036, qty#999039, demandChannel#999088, cast(null as string) AS demandStream#999089]
(118) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, version#999034, product#999035, plant#999036, qty#999039, demandChannel#999088, demandStream#999089, array() AS kpis#999090]
(119) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, version#999034, product#999035, plant#999036, qty#999039, demandChannel#999088, demandStream#999089, kpis#999090, true AS isNewlyCalculated#999091]
(120) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, version#999034, product#999035, plant#999036, qty#999039, demandChannel#999088, demandStream#999089, cast(kpis#999090 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#999092, isNewlyCalculated#999091]
(121) LogicalRDD
Arguments: [shardId#999093, worklistShardItemId#999094L, version#999095, product#999096, plant#999097, periodStart#999098, periodEnd#999099, qty#999100], false
(122) RepartitionByExpression
Arguments: [product#999096, plant#999097], 37
(123) Project
Arguments: [shardId#999093, worklistShardItemId#999094L, version#999095, product#999096, plant#999097, qty#999100]
(124) LogicalRDD
Arguments: [shardId#999101, worklistShardItemId#999102L, qty#999103, demandChannel#999104, demandStream#999105, kpis#999106], false
(125) Project
Arguments: [shardId#999101 AS cachedShardId#999107, worklistShardItemId#999102L AS cachedWorklistShardItemId#999108L, qty#999103 AS cachedQty#999109, demandChannel#999104, demandStream#999105, kpis#999106 AS cachedKpis#999110]
(126) Join
Arguments: Inner, (((worklistShardItemId#999094L = cachedWorklistShardItemId#999108L) AND (shardId#999093 = cachedShardId#999107)) AND ((qty#999100 = cachedQty#999109) OR isnull(qty#999100)))
(127) Project
Arguments: [shardId#999093, worklistShardItemId#999094L, version#999095, product#999096, plant#999097]
(128) Deduplicate
Arguments: [plant#999097, shardId#999093, version#999095, worklistShardItemId#999094L, product#999096]
(129) LogicalRDD
Arguments: [shardId#999111, worklistShardItemId#999112L, qty#999113, demandChannel#999114, demandStream#999115, kpis#999116], false
(130) Project
Arguments: [shardId#999111 AS cachedShardId#999117, worklistShardItemId#999112L AS cachedWorklistShardItemId#999118L, qty#999113 AS cachedQty#999119, demandChannel#999114, demandStream#999115, kpis#999116 AS cachedKpis#999120]
(131) Join
Arguments: Inner, ((worklistShardItemId#999094L = cachedWorklistShardItemId#999118L) AND (shardId#999093 = cachedShardId#999117))
(132) Project
Arguments: [shardId#999093, worklistShardItemId#999094L, version#999095, product#999096, plant#999097, cachedQty#999119 AS qty#999121, demandChannel#999114, demandStream#999115, cachedKpis#999120 AS kpis#999122]
(133) Project
Arguments: [shardId#999093, worklistShardItemId#999094L, version#999095, product#999096, plant#999097, qty#999121, demandChannel#999114, demandStream#999115, kpis#999122, false AS isNewlyCalculated#999123]
(134) Project
Arguments: [shardId#999093, worklistShardItemId#999094L, version#999095, product#999096, plant#999097, qty#999121, demandChannel#999114, demandStream#999115, kpis#999122, isNewlyCalculated#999123]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#999091 <=> true)
(137) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, product#999035, plant#999036, qty#999039, kpis#999092]
(138) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, product#999035, plant#999036, qty#999039]
(139) Deduplicate
Arguments: [plant#999036, shardId#999032, qty#999039, worklistShardItemId#999033L, product#999035]
(140) Join
Arguments: Inner, ((product#998187 <=> product#999035) AND ((plant#998188 <=> plant#999036) AND ((qty#998214 <=> qty#999039) OR isnull(qty#999039))))
(141) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, qty#998214, demandChannel#998194, demandStream#998195, kpis#998223]
(142) Deduplicate
Arguments: [demandChannel#998194, shardId#999032, qty#998214, worklistShardItemId#999033L, demandStream#998195]
(143) Project
Arguments: [shardId#999032, worklistShardItemId#999033L, qty#998214, demandChannel#998194, demandStream#998195, kpis#998223]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126, product#999127, plant#999128, periodStart#999129, periodEnd#999130, qty#999131], false
(146) RepartitionByExpression
Arguments: [product#999127, plant#999128], 37
(147) Project
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126, product#999127, plant#999128, qty#999131]
(148) LogicalRDD
Arguments: [shardId#999132, worklistShardItemId#999133L, version#999134, product#999135, plant#999136, periodStart#999137, periodEnd#999138, qty#999139], false
(149) RepartitionByExpression
Arguments: [product#999135, plant#999136], 37
(150) Project
Arguments: [shardId#999132, worklistShardItemId#999133L, version#999134, product#999135, plant#999136, qty#999139]
(151) LogicalRDD
Arguments: [shardId#999140, worklistShardItemId#999141L, qty#999142, demandChannel#999143, demandStream#999144, kpis#999145], false
(152) Project
Arguments: [shardId#999140 AS cachedShardId#999146, worklistShardItemId#999141L AS cachedWorklistShardItemId#999147L, qty#999142 AS cachedQty#999148, demandChannel#999143, demandStream#999144, kpis#999145 AS cachedKpis#999149]
(153) Join
Arguments: Inner, (((worklistShardItemId#999133L = cachedWorklistShardItemId#999147L) AND (shardId#999132 = cachedShardId#999146)) AND ((qty#999139 = cachedQty#999148) OR isnull(qty#999139)))
(154) Project
Arguments: [shardId#999132, worklistShardItemId#999133L, version#999134, product#999135, plant#999136]
(155) Deduplicate
Arguments: [plant#999136, shardId#999132, version#999134, worklistShardItemId#999133L, product#999135]
(156) LogicalRDD
Arguments: [shardId#999150, worklistShardItemId#999151L, qty#999152, demandChannel#999153, demandStream#999154, kpis#999155], false
(157) Project
Arguments: [shardId#999150 AS cachedShardId#999156, worklistShardItemId#999151L AS cachedWorklistShardItemId#999157L, qty#999152 AS cachedQty#999158, demandChannel#999153, demandStream#999154, kpis#999155 AS cachedKpis#999159]
(158) Join
Arguments: Inner, ((worklistShardItemId#999133L = cachedWorklistShardItemId#999157L) AND (shardId#999132 = cachedShardId#999156))
(159) Project
Arguments: [shardId#999132, worklistShardItemId#999133L, version#999134, product#999135, plant#999136, cachedQty#999158 AS qty#999160, demandChannel#999153, demandStream#999154, cachedKpis#999159 AS kpis#999161]
(160) Project
Arguments: [shardId#999132, worklistShardItemId#999133L, version#999134, product#999135, plant#999136, qty#999160]
(161) LogicalRDD
Arguments: [shardId#999162, worklistShardItemId#999163L, version#999164, product#999165, plant#999166, periodStart#999167, periodEnd#999168, qty#999169], false
(162) RepartitionByExpression
Arguments: [product#999165, plant#999166], 37
(163) Project
Arguments: [shardId#999162, worklistShardItemId#999163L, version#999164, product#999165, plant#999166, qty#999169]
(164) LogicalRDD
Arguments: [shardId#999170, worklistShardItemId#999171L, qty#999172, demandChannel#999173, demandStream#999174, kpis#999175], false
(165) Project
Arguments: [shardId#999170 AS cachedShardId#999176, worklistShardItemId#999171L AS cachedWorklistShardItemId#999177L, qty#999172 AS cachedQty#999178, demandChannel#999173, demandStream#999174, kpis#999175 AS cachedKpis#999179]
(166) Join
Arguments: Inner, (((worklistShardItemId#999163L = cachedWorklistShardItemId#999177L) AND (shardId#999162 = cachedShardId#999176)) AND isnull(qty#999169))
(167) Project
Arguments: [shardId#999162, worklistShardItemId#999163L, version#999164, product#999165, plant#999166, qty#999169]
(168) Project
Arguments: [shardId#999162, worklistShardItemId#999163L, version#999164, product#999165, plant#999166, qty#999169]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#999124 <=> shardId#999132) AND (worklistShardItemId#999125L <=> worklistShardItemId#999133L)) AND (version#999126 <=> version#999134)) AND (product#999127 <=> product#999135)) AND (plant#999128 <=> plant#999136)) AND (qty#999131 <=> qty#999160))
(171) Project
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126, product#999127, plant#999128, qty#999131]
(172) Project
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126, product#999127, plant#999128, qty#999131, cast(null as string) AS demandChannel#999180]
(173) Project
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126, product#999127, plant#999128, qty#999131, demandChannel#999180, cast(null as string) AS demandStream#999181]
(174) Project
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126, product#999127, plant#999128, qty#999131, demandChannel#999180, demandStream#999181, array() AS kpis#999182]
(175) Project
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126, product#999127, plant#999128, qty#999131, demandChannel#999180, demandStream#999181, kpis#999182, true AS isNewlyCalculated#999183]
(176) Project
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126, product#999127, plant#999128, qty#999131, demandChannel#999180, demandStream#999181, cast(kpis#999182 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#999184, isNewlyCalculated#999183]
(177) LogicalRDD
Arguments: [shardId#999185, worklistShardItemId#999186L, version#999187, product#999188, plant#999189, periodStart#999190, periodEnd#999191, qty#999192], false
(178) RepartitionByExpression
Arguments: [product#999188, plant#999189], 37
(179) Project
Arguments: [shardId#999185, worklistShardItemId#999186L, version#999187, product#999188, plant#999189, qty#999192]
(180) LogicalRDD
Arguments: [shardId#999193, worklistShardItemId#999194L, qty#999195, demandChannel#999196, demandStream#999197, kpis#999198], false
(181) Project
Arguments: [shardId#999193 AS cachedShardId#999199, worklistShardItemId#999194L AS cachedWorklistShardItemId#999200L, qty#999195 AS cachedQty#999201, demandChannel#999196, demandStream#999197, kpis#999198 AS cachedKpis#999202]
(182) Join
Arguments: Inner, (((worklistShardItemId#999186L = cachedWorklistShardItemId#999200L) AND (shardId#999185 = cachedShardId#999199)) AND ((qty#999192 = cachedQty#999201) OR isnull(qty#999192)))
(183) Project
Arguments: [shardId#999185, worklistShardItemId#999186L, version#999187, product#999188, plant#999189]
(184) Deduplicate
Arguments: [plant#999189, shardId#999185, version#999187, worklistShardItemId#999186L, product#999188]
(185) LogicalRDD
Arguments: [shardId#999203, worklistShardItemId#999204L, qty#999205, demandChannel#999206, demandStream#999207, kpis#999208], false
(186) Project
Arguments: [shardId#999203 AS cachedShardId#999209, worklistShardItemId#999204L AS cachedWorklistShardItemId#999210L, qty#999205 AS cachedQty#999211, demandChannel#999206, demandStream#999207, kpis#999208 AS cachedKpis#999212]
(187) Join
Arguments: Inner, ((worklistShardItemId#999186L = cachedWorklistShardItemId#999210L) AND (shardId#999185 = cachedShardId#999209))
(188) Project
Arguments: [shardId#999185, worklistShardItemId#999186L, version#999187, product#999188, plant#999189, cachedQty#999211 AS qty#999213, demandChannel#999206, demandStream#999207, cachedKpis#999212 AS kpis#999214]
(189) Project
Arguments: [shardId#999185, worklistShardItemId#999186L, version#999187, product#999188, plant#999189, qty#999213, demandChannel#999206, demandStream#999207, kpis#999214, false AS isNewlyCalculated#999215]
(190) Project
Arguments: [shardId#999185, worklistShardItemId#999186L, version#999187, product#999188, plant#999189, qty#999213, demandChannel#999206, demandStream#999207, kpis#999214, isNewlyCalculated#999215]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#999124, worklistShardItemId#999125L, version#999126]
(193) Aggregate
Arguments: [shardId#999124, worklistShardItemId#999125L], [shardId#999124, worklistShardItemId#999125L, (max(version#999126) + 1) AS version#999027]
(194) Join
Arguments: Inner, ((shardId#943631 = shardId#999124) AND (worklistShardItemId#943632L = worklistShardItemId#999125L))
(195) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, qty#943638, demandChannel#995658, demandStream#995659, kpis#995693, version#999027]
(196) Project
Arguments: [shardId#943631, worklistShardItemId#943632L, version#999027, qty#943638, demandChannel#995658, demandStream#995659, kpis#995693]