== 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@4a1f71a1, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000349/stream-10000000349-1], Append
(3) LogicalRDD
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, periodStart#1011820, periodEnd#1011821, qty#1011822], false
(4) RepartitionByExpression
Arguments: [product#1011818, plant#1011819], 37
(5) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822]
(6) LogicalRDD
Arguments: [shardId#1028413, worklistShardItemId#1028414L, version#1028415, product#1028416, plant#1028417, periodStart#1028418, periodEnd#1028419, qty#1028420], false
(7) RepartitionByExpression
Arguments: [product#1028416, plant#1028417], 37
(8) Project
Arguments: [shardId#1028413, worklistShardItemId#1028414L, version#1028415, product#1028416, plant#1028417, qty#1028420]
(9) LogicalRDD
Arguments: [shardId#1028168, worklistShardItemId#1028169L, qty#1028170, demandChannel#1028171, demandStream#1028172, kpis#1028173], false
(10) Project
Arguments: [shardId#1028168 AS cachedShardId#1028174, worklistShardItemId#1028169L AS cachedWorklistShardItemId#1028175L, qty#1028170 AS cachedQty#1028176, demandChannel#1028171, demandStream#1028172, kpis#1028173 AS cachedKpis#1028177]
(11) Join
Arguments: Inner, (((worklistShardItemId#1028414L = cachedWorklistShardItemId#1028175L) AND (shardId#1028413 = cachedShardId#1028174)) AND ((qty#1028420 = cachedQty#1028176) OR isnull(qty#1028420)))
(12) Project
Arguments: [shardId#1028413, worklistShardItemId#1028414L, version#1028415, product#1028416, plant#1028417]
(13) Deduplicate
Arguments: [plant#1028417, shardId#1028413, version#1028415, worklistShardItemId#1028414L, product#1028416]
(14) LogicalRDD
Arguments: [shardId#1028178, worklistShardItemId#1028179L, qty#1028180, demandChannel#1028181, demandStream#1028182, kpis#1028183], false
(15) Project
Arguments: [shardId#1028178 AS cachedShardId#1028184, worklistShardItemId#1028179L AS cachedWorklistShardItemId#1028185L, qty#1028180 AS cachedQty#1028186, demandChannel#1028181, demandStream#1028182, kpis#1028183 AS cachedKpis#1028187]
(16) Join
Arguments: Inner, ((worklistShardItemId#1028414L = cachedWorklistShardItemId#1028185L) AND (shardId#1028413 = cachedShardId#1028184))
(17) Project
Arguments: [shardId#1028413, worklistShardItemId#1028414L, version#1028415, product#1028416, plant#1028417, cachedQty#1028186 AS qty#1028188, demandChannel#1028181, demandStream#1028182, cachedKpis#1028187 AS kpis#1028189]
(18) Project
Arguments: [shardId#1028413, worklistShardItemId#1028414L, version#1028415, product#1028416, plant#1028417, qty#1028188]
(19) LogicalRDD
Arguments: [shardId#1028395, worklistShardItemId#1028396L, version#1028397, product#1028398, plant#1028399, periodStart#1028400, periodEnd#1028401, qty#1028402], false
(20) RepartitionByExpression
Arguments: [product#1028398, plant#1028399], 37
(21) Project
Arguments: [shardId#1028395, worklistShardItemId#1028396L, version#1028397, product#1028398, plant#1028399, qty#1028402]
(22) LogicalRDD
Arguments: [shardId#1028403, worklistShardItemId#1028404L, qty#1028405, demandChannel#1028406, demandStream#1028407, kpis#1028408], false
(23) Project
Arguments: [shardId#1028403 AS cachedShardId#1028409, worklistShardItemId#1028404L AS cachedWorklistShardItemId#1028410L, qty#1028405 AS cachedQty#1028411, demandChannel#1028406, demandStream#1028407, kpis#1028408 AS cachedKpis#1028412]
(24) Join
Arguments: Inner, (((worklistShardItemId#1028396L = cachedWorklistShardItemId#1028410L) AND (shardId#1028395 = cachedShardId#1028409)) AND isnull(qty#1028402))
(25) Project
Arguments: [shardId#1028395, worklistShardItemId#1028396L, version#1028397, product#1028398, plant#1028399, qty#1028402]
(26) Project
Arguments: [shardId#1028395, worklistShardItemId#1028396L, version#1028397, product#1028398, plant#1028399, qty#1028402]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1011815 <=> shardId#1028413) AND (worklistShardItemId#1011816L <=> worklistShardItemId#1028414L)) AND (version#1011817 <=> version#1028415)) AND (product#1011818 <=> product#1028416)) AND (plant#1011819 <=> plant#1028417)) AND (qty#1011822 <=> qty#1028188))
(29) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822]
(30) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, cast(null as string) AS demandChannel#1028421]
(31) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1028421, cast(null as string) AS demandStream#1028422]
(32) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1028421, demandStream#1028422, array() AS kpis#1028423]
(33) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1028421, demandStream#1028422, kpis#1028423, true AS isNewlyCalculated#1028424]
(34) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1028421, demandStream#1028422, cast(kpis#1028423 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1028456, isNewlyCalculated#1028424]
(35) LogicalRDD
Arguments: [shardId#1028426, worklistShardItemId#1028427L, version#1028428, product#1028429, plant#1028430, periodStart#1028431, periodEnd#1028432, qty#1028433], false
(36) RepartitionByExpression
Arguments: [product#1028429, plant#1028430], 37
(37) Project
Arguments: [shardId#1028426, worklistShardItemId#1028427L, version#1028428, product#1028429, plant#1028430, qty#1028433]
(38) LogicalRDD
Arguments: [shardId#1028434, worklistShardItemId#1028435L, qty#1028436, demandChannel#1028437, demandStream#1028438, kpis#1028439], false
(39) Project
Arguments: [shardId#1028434 AS cachedShardId#1028440, worklistShardItemId#1028435L AS cachedWorklistShardItemId#1028441L, qty#1028436 AS cachedQty#1028442, demandChannel#1028437, demandStream#1028438, kpis#1028439 AS cachedKpis#1028443]
(40) Join
Arguments: Inner, (((worklistShardItemId#1028427L = cachedWorklistShardItemId#1028441L) AND (shardId#1028426 = cachedShardId#1028440)) AND ((qty#1028433 = cachedQty#1028442) OR isnull(qty#1028433)))
(41) Project
Arguments: [shardId#1028426, worklistShardItemId#1028427L, version#1028428, product#1028429, plant#1028430]
(42) Deduplicate
Arguments: [plant#1028430, shardId#1028426, version#1028428, worklistShardItemId#1028427L, product#1028429]
(43) LogicalRDD
Arguments: [shardId#1028444, worklistShardItemId#1028445L, qty#1028446, demandChannel#1028447, demandStream#1028448, kpis#1028449], false
(44) Project
Arguments: [shardId#1028444 AS cachedShardId#1028450, worklistShardItemId#1028445L AS cachedWorklistShardItemId#1028451L, qty#1028446 AS cachedQty#1028452, demandChannel#1028447, demandStream#1028448, kpis#1028449 AS cachedKpis#1028453]
(45) Join
Arguments: Inner, ((worklistShardItemId#1028427L = cachedWorklistShardItemId#1028451L) AND (shardId#1028426 = cachedShardId#1028450))
(46) Project
Arguments: [shardId#1028426, worklistShardItemId#1028427L, version#1028428, product#1028429, plant#1028430, cachedQty#1028452 AS qty#1028454, demandChannel#1028447, demandStream#1028448, cachedKpis#1028453 AS kpis#1028455]
(47) Project
Arguments: [shardId#1028426, worklistShardItemId#1028427L, version#1028428, product#1028429, plant#1028430, qty#1028454, demandChannel#1028447, demandStream#1028448, kpis#1028455, false AS isNewlyCalculated#1028425]
(48) Project
Arguments: [shardId#1028426, worklistShardItemId#1028427L, version#1028428, product#1028429, plant#1028430, qty#1028454, demandChannel#1028447, demandStream#1028448, kpis#1028455, isNewlyCalculated#1028425]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1028424 <=> false)
(51) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1028421, demandStream#1028422, kpis#1028456]
(52) ExternalRDD
Arguments: [obj#1030920]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82117), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82117), 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, 82117), 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, 82117), 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, 82117), 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, 82117), 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#1030923, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82118), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82118), 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, 82119), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82119), 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, 82119), 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, 82119), 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, 82120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82120), 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, 82120), 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, 82120), 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, 82120), 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, 82119), 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, 82118), 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, 82121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82121), 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, 82121), 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, 82121), 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, 82121), 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, 82118), 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, 82118), 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, 82118), 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, 82122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82122), 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, 82123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82123), 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, 82123), 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, 82123), 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, 82123), 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, 82122), 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, 82122), 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, 82118), 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#1030924]
(54) Generate
Arguments: explode(prodPlantResults#1030924), false, [prodPlantResults#1030931]
(55) Project
Arguments: [prodPlantResults#1030931]
(56) Project
Arguments: [prodPlantResults#1030931.productId AS product#1030950, prodPlantResults#1030931.plantId AS plant#1030951, prodPlantResults#1030931.kpiResults AS kpis#1030952]
(57) Project
Arguments: [product#1030950, plant#1030951, kpis#1030952, null AS qty#1030956]
(58) Project
Arguments: [product#1030950, plant#1030951, kpis#1030952, qty#1030956, cast(null as string) AS demandChannel#1030957]
(59) Project
Arguments: [product#1030950, plant#1030951, kpis#1030952, qty#1030956, demandChannel#1030957, cast(null as string) AS demandStream#1030958]
(60) Project
Arguments: [product#1030950, plant#1030951, kpis#1030952, cast(qty#1030956 as double) AS qty#1030977, demandChannel#1030957, demandStream#1030958]
(61) ExternalRDD
Arguments: [obj#1030973]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82117), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82117), 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, 82117), 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, 82117), 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, 82117), 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, 82117), 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#1030974, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82118), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82118), 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, 82119), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82119), 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, 82119), 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, 82119), 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, 82120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82120), 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, 82120), 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, 82120), 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, 82120), 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, 82119), 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, 82118), 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, 82121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82121), 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, 82121), 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, 82121), 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, 82121), 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, 82118), 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, 82118), 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, 82118), 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, 82122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82122), 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, 82123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82123), 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, 82123), 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, 82123), 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, 82123), 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, 82122), 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, 82122), 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, 82118), 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#1030975]
(63) Generate
Arguments: explode(prodPlantResults#1030975), false, [prodPlantResults#1030976]
(64) Project
Arguments: [prodPlantResults#1030976]
(65) Generate
Arguments: explode(prodPlantResults#1030976.quantityKpiResults), false, [quantityKpiResults#1030943]
(66) Project
Arguments: [prodPlantResults#1030976.productId AS product#1030937, prodPlantResults#1030976.plantId AS plant#1030938, quantityKpiResults#1030943]
(67) Project
Arguments: [product#1030937, plant#1030938, quantityKpiResults#1030943, quantityKpiResults#1030943.quantity AS qty#1030944]
(68) Project
Arguments: [product#1030937, plant#1030938, quantityKpiResults#1030943, qty#1030944, cast(null as string) AS demandChannel#1030946]
(69) Project
Arguments: [product#1030937, plant#1030938, quantityKpiResults#1030943, qty#1030944, demandChannel#1030946, cast(null as string) AS demandStream#1030947]
(70) Project
Arguments: [product#1030937, plant#1030938, quantityKpiResults#1030943, qty#1030944, demandChannel#1030946, demandStream#1030947, quantityKpiResults#1030943.kpiResults AS kpis#1030948]
(71) Project
Arguments: [product#1030937, plant#1030938, qty#1030944, demandChannel#1030946, demandStream#1030947, kpis#1030948]
(72) Project
Arguments: [product#1030937, plant#1030938, kpis#1030948, qty#1030944, demandChannel#1030946, demandStream#1030947]
(73) ExternalRDD
Arguments: [obj#1030978]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82117), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82117), 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, 82117), 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, 82117), 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, 82117), 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, 82117), 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#1030979, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82118), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82118), 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, 82119), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82119), 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, 82119), 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, 82119), 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, 82120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82120), 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, 82120), 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, 82120), 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, 82120), 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, 82119), 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, 82118), 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, 82121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82121), 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, 82121), 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, 82121), 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, 82121), 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, 82118), 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, 82118), 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, 82118), 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, 82122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82122), 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, 82123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82123), 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, 82123), 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, 82123), 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, 82123), 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, 82122), 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, 82122), 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, 82118), 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#1030980]
(75) Generate
Arguments: explode(prodPlantResults#1030980), false, [prodPlantResults#1030981]
(76) Project
Arguments: [prodPlantResults#1030981]
(77) Generate
Arguments: explode(prodPlantResults#1030981.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1030965]
(78) Project
Arguments: [prodPlantResults#1030981.productId AS product#1030959, prodPlantResults#1030981.plantId AS plant#1030960, demandChannelStreamKpiResults#1030965]
(79) Project
Arguments: [product#1030959, plant#1030960, demandChannelStreamKpiResults#1030965, null AS qty#1030966]
(80) Project
Arguments: [product#1030959, plant#1030960, demandChannelStreamKpiResults#1030965, qty#1030966, demandChannelStreamKpiResults#1030965.demandChannel AS demandChannel#1030967]
(81) Project
Arguments: [product#1030959, plant#1030960, demandChannelStreamKpiResults#1030965, qty#1030966, demandChannel#1030967, demandChannelStreamKpiResults#1030965.demandStream AS demandStream#1030969]
(82) Project
Arguments: [product#1030959, plant#1030960, demandChannelStreamKpiResults#1030965, qty#1030966, demandChannel#1030967, demandStream#1030969, demandChannelStreamKpiResults#1030965.kpiResults AS kpis#1030971]
(83) Project
Arguments: [product#1030959, plant#1030960, qty#1030966, demandChannel#1030967, demandStream#1030969, kpis#1030971]
(84) Project
Arguments: [product#1030959, plant#1030960, kpis#1030971, qty#1030966, demandChannel#1030967, demandStream#1030969]
(85) Project
Arguments: [product#1030959, plant#1030960, kpis#1030971, cast(qty#1030966 as double) AS qty#1030982, demandChannel#1030967, demandStream#1030969]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1030950, plant#1030951, transform(kpis#1030952, lambdafunction(struct(label, lambda kpi#1030987.label, dateTime, lambda kpi#1030987.datetime, value, lambda kpi#1030987.value), lambda kpi#1030987, false)) AS kpis#1030986, qty#1030977, demandChannel#1030957, demandStream#1030958]
(88) Project
Arguments: [product#1030950, plant#1030951, qty#1030977, demandChannel#1030957, demandStream#1030958, kpis#1030986]
(89) LogicalRDD
Arguments: [shardId#1031795, worklistShardItemId#1031796L, version#1031797, product#1031798, plant#1031799, periodStart#1031800, periodEnd#1031801, qty#1031802], false
(90) RepartitionByExpression
Arguments: [product#1031798, plant#1031799], 37
(91) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, version#1031797, product#1031798, plant#1031799, qty#1031802]
(92) LogicalRDD
Arguments: [shardId#1031803, worklistShardItemId#1031804L, version#1031805, product#1031806, plant#1031807, periodStart#1031808, periodEnd#1031809, qty#1031810], false
(93) RepartitionByExpression
Arguments: [product#1031806, plant#1031807], 37
(94) Project
Arguments: [shardId#1031803, worklistShardItemId#1031804L, version#1031805, product#1031806, plant#1031807, qty#1031810]
(95) LogicalRDD
Arguments: [shardId#1031811, worklistShardItemId#1031812L, qty#1031813, demandChannel#1031814, demandStream#1031815, kpis#1031816], false
(96) Project
Arguments: [shardId#1031811 AS cachedShardId#1031817, worklistShardItemId#1031812L AS cachedWorklistShardItemId#1031818L, qty#1031813 AS cachedQty#1031819, demandChannel#1031814, demandStream#1031815, kpis#1031816 AS cachedKpis#1031820]
(97) Join
Arguments: Inner, (((worklistShardItemId#1031804L = cachedWorklistShardItemId#1031818L) AND (shardId#1031803 = cachedShardId#1031817)) AND ((qty#1031810 = cachedQty#1031819) OR isnull(qty#1031810)))
(98) Project
Arguments: [shardId#1031803, worklistShardItemId#1031804L, version#1031805, product#1031806, plant#1031807]
(99) Deduplicate
Arguments: [plant#1031807, shardId#1031803, version#1031805, worklistShardItemId#1031804L, product#1031806]
(100) LogicalRDD
Arguments: [shardId#1031821, worklistShardItemId#1031822L, qty#1031823, demandChannel#1031824, demandStream#1031825, kpis#1031826], false
(101) Project
Arguments: [shardId#1031821 AS cachedShardId#1031827, worklistShardItemId#1031822L AS cachedWorklistShardItemId#1031828L, qty#1031823 AS cachedQty#1031829, demandChannel#1031824, demandStream#1031825, kpis#1031826 AS cachedKpis#1031830]
(102) Join
Arguments: Inner, ((worklistShardItemId#1031804L = cachedWorklistShardItemId#1031828L) AND (shardId#1031803 = cachedShardId#1031827))
(103) Project
Arguments: [shardId#1031803, worklistShardItemId#1031804L, version#1031805, product#1031806, plant#1031807, cachedQty#1031829 AS qty#1031831, demandChannel#1031824, demandStream#1031825, cachedKpis#1031830 AS kpis#1031832]
(104) Project
Arguments: [shardId#1031803, worklistShardItemId#1031804L, version#1031805, product#1031806, plant#1031807, qty#1031831]
(105) LogicalRDD
Arguments: [shardId#1031833, worklistShardItemId#1031834L, version#1031835, product#1031836, plant#1031837, periodStart#1031838, periodEnd#1031839, qty#1031840], false
(106) RepartitionByExpression
Arguments: [product#1031836, plant#1031837], 37
(107) Project
Arguments: [shardId#1031833, worklistShardItemId#1031834L, version#1031835, product#1031836, plant#1031837, qty#1031840]
(108) LogicalRDD
Arguments: [shardId#1031841, worklistShardItemId#1031842L, qty#1031843, demandChannel#1031844, demandStream#1031845, kpis#1031846], false
(109) Project
Arguments: [shardId#1031841 AS cachedShardId#1031847, worklistShardItemId#1031842L AS cachedWorklistShardItemId#1031848L, qty#1031843 AS cachedQty#1031849, demandChannel#1031844, demandStream#1031845, kpis#1031846 AS cachedKpis#1031850]
(110) Join
Arguments: Inner, (((worklistShardItemId#1031834L = cachedWorklistShardItemId#1031848L) AND (shardId#1031833 = cachedShardId#1031847)) AND isnull(qty#1031840))
(111) Project
Arguments: [shardId#1031833, worklistShardItemId#1031834L, version#1031835, product#1031836, plant#1031837, qty#1031840]
(112) Project
Arguments: [shardId#1031833, worklistShardItemId#1031834L, version#1031835, product#1031836, plant#1031837, qty#1031840]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1031795 <=> shardId#1031803) AND (worklistShardItemId#1031796L <=> worklistShardItemId#1031804L)) AND (version#1031797 <=> version#1031805)) AND (product#1031798 <=> product#1031806)) AND (plant#1031799 <=> plant#1031807)) AND (qty#1031802 <=> qty#1031831))
(115) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, version#1031797, product#1031798, plant#1031799, qty#1031802]
(116) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, version#1031797, product#1031798, plant#1031799, qty#1031802, cast(null as string) AS demandChannel#1031851]
(117) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, version#1031797, product#1031798, plant#1031799, qty#1031802, demandChannel#1031851, cast(null as string) AS demandStream#1031852]
(118) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, version#1031797, product#1031798, plant#1031799, qty#1031802, demandChannel#1031851, demandStream#1031852, array() AS kpis#1031853]
(119) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, version#1031797, product#1031798, plant#1031799, qty#1031802, demandChannel#1031851, demandStream#1031852, kpis#1031853, true AS isNewlyCalculated#1031854]
(120) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, version#1031797, product#1031798, plant#1031799, qty#1031802, demandChannel#1031851, demandStream#1031852, cast(kpis#1031853 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1031855, isNewlyCalculated#1031854]
(121) LogicalRDD
Arguments: [shardId#1031856, worklistShardItemId#1031857L, version#1031858, product#1031859, plant#1031860, periodStart#1031861, periodEnd#1031862, qty#1031863], false
(122) RepartitionByExpression
Arguments: [product#1031859, plant#1031860], 37
(123) Project
Arguments: [shardId#1031856, worklistShardItemId#1031857L, version#1031858, product#1031859, plant#1031860, qty#1031863]
(124) LogicalRDD
Arguments: [shardId#1031864, worklistShardItemId#1031865L, qty#1031866, demandChannel#1031867, demandStream#1031868, kpis#1031869], false
(125) Project
Arguments: [shardId#1031864 AS cachedShardId#1031870, worklistShardItemId#1031865L AS cachedWorklistShardItemId#1031871L, qty#1031866 AS cachedQty#1031872, demandChannel#1031867, demandStream#1031868, kpis#1031869 AS cachedKpis#1031873]
(126) Join
Arguments: Inner, (((worklistShardItemId#1031857L = cachedWorklistShardItemId#1031871L) AND (shardId#1031856 = cachedShardId#1031870)) AND ((qty#1031863 = cachedQty#1031872) OR isnull(qty#1031863)))
(127) Project
Arguments: [shardId#1031856, worklistShardItemId#1031857L, version#1031858, product#1031859, plant#1031860]
(128) Deduplicate
Arguments: [plant#1031860, shardId#1031856, version#1031858, worklistShardItemId#1031857L, product#1031859]
(129) LogicalRDD
Arguments: [shardId#1031874, worklistShardItemId#1031875L, qty#1031876, demandChannel#1031877, demandStream#1031878, kpis#1031879], false
(130) Project
Arguments: [shardId#1031874 AS cachedShardId#1031880, worklistShardItemId#1031875L AS cachedWorklistShardItemId#1031881L, qty#1031876 AS cachedQty#1031882, demandChannel#1031877, demandStream#1031878, kpis#1031879 AS cachedKpis#1031883]
(131) Join
Arguments: Inner, ((worklistShardItemId#1031857L = cachedWorklistShardItemId#1031881L) AND (shardId#1031856 = cachedShardId#1031880))
(132) Project
Arguments: [shardId#1031856, worklistShardItemId#1031857L, version#1031858, product#1031859, plant#1031860, cachedQty#1031882 AS qty#1031884, demandChannel#1031877, demandStream#1031878, cachedKpis#1031883 AS kpis#1031885]
(133) Project
Arguments: [shardId#1031856, worklistShardItemId#1031857L, version#1031858, product#1031859, plant#1031860, qty#1031884, demandChannel#1031877, demandStream#1031878, kpis#1031885, false AS isNewlyCalculated#1031886]
(134) Project
Arguments: [shardId#1031856, worklistShardItemId#1031857L, version#1031858, product#1031859, plant#1031860, qty#1031884, demandChannel#1031877, demandStream#1031878, kpis#1031885, isNewlyCalculated#1031886]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1031854 <=> true)
(137) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, product#1031798, plant#1031799, qty#1031802, kpis#1031855]
(138) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, product#1031798, plant#1031799, qty#1031802]
(139) Deduplicate
Arguments: [plant#1031799, shardId#1031795, qty#1031802, worklistShardItemId#1031796L, product#1031798]
(140) Join
Arguments: Inner, ((product#1030950 <=> product#1031798) AND ((plant#1030951 <=> plant#1031799) AND ((qty#1030977 <=> qty#1031802) OR isnull(qty#1031802))))
(141) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, qty#1030977, demandChannel#1030957, demandStream#1030958, kpis#1030986]
(142) Deduplicate
Arguments: [demandChannel#1030957, shardId#1031795, qty#1030977, worklistShardItemId#1031796L, demandStream#1030958]
(143) Project
Arguments: [shardId#1031795, worklistShardItemId#1031796L, qty#1030977, demandChannel#1030957, demandStream#1030958, kpis#1030986]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889, product#1031890, plant#1031891, periodStart#1031892, periodEnd#1031893, qty#1031894], false
(146) RepartitionByExpression
Arguments: [product#1031890, plant#1031891], 37
(147) Project
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889, product#1031890, plant#1031891, qty#1031894]
(148) LogicalRDD
Arguments: [shardId#1031895, worklistShardItemId#1031896L, version#1031897, product#1031898, plant#1031899, periodStart#1031900, periodEnd#1031901, qty#1031902], false
(149) RepartitionByExpression
Arguments: [product#1031898, plant#1031899], 37
(150) Project
Arguments: [shardId#1031895, worklistShardItemId#1031896L, version#1031897, product#1031898, plant#1031899, qty#1031902]
(151) LogicalRDD
Arguments: [shardId#1031903, worklistShardItemId#1031904L, qty#1031905, demandChannel#1031906, demandStream#1031907, kpis#1031908], false
(152) Project
Arguments: [shardId#1031903 AS cachedShardId#1031909, worklistShardItemId#1031904L AS cachedWorklistShardItemId#1031910L, qty#1031905 AS cachedQty#1031911, demandChannel#1031906, demandStream#1031907, kpis#1031908 AS cachedKpis#1031912]
(153) Join
Arguments: Inner, (((worklistShardItemId#1031896L = cachedWorklistShardItemId#1031910L) AND (shardId#1031895 = cachedShardId#1031909)) AND ((qty#1031902 = cachedQty#1031911) OR isnull(qty#1031902)))
(154) Project
Arguments: [shardId#1031895, worklistShardItemId#1031896L, version#1031897, product#1031898, plant#1031899]
(155) Deduplicate
Arguments: [plant#1031899, shardId#1031895, version#1031897, worklistShardItemId#1031896L, product#1031898]
(156) LogicalRDD
Arguments: [shardId#1031913, worklistShardItemId#1031914L, qty#1031915, demandChannel#1031916, demandStream#1031917, kpis#1031918], false
(157) Project
Arguments: [shardId#1031913 AS cachedShardId#1031919, worklistShardItemId#1031914L AS cachedWorklistShardItemId#1031920L, qty#1031915 AS cachedQty#1031921, demandChannel#1031916, demandStream#1031917, kpis#1031918 AS cachedKpis#1031922]
(158) Join
Arguments: Inner, ((worklistShardItemId#1031896L = cachedWorklistShardItemId#1031920L) AND (shardId#1031895 = cachedShardId#1031919))
(159) Project
Arguments: [shardId#1031895, worklistShardItemId#1031896L, version#1031897, product#1031898, plant#1031899, cachedQty#1031921 AS qty#1031923, demandChannel#1031916, demandStream#1031917, cachedKpis#1031922 AS kpis#1031924]
(160) Project
Arguments: [shardId#1031895, worklistShardItemId#1031896L, version#1031897, product#1031898, plant#1031899, qty#1031923]
(161) LogicalRDD
Arguments: [shardId#1031925, worklistShardItemId#1031926L, version#1031927, product#1031928, plant#1031929, periodStart#1031930, periodEnd#1031931, qty#1031932], false
(162) RepartitionByExpression
Arguments: [product#1031928, plant#1031929], 37
(163) Project
Arguments: [shardId#1031925, worklistShardItemId#1031926L, version#1031927, product#1031928, plant#1031929, qty#1031932]
(164) LogicalRDD
Arguments: [shardId#1031933, worklistShardItemId#1031934L, qty#1031935, demandChannel#1031936, demandStream#1031937, kpis#1031938], false
(165) Project
Arguments: [shardId#1031933 AS cachedShardId#1031939, worklistShardItemId#1031934L AS cachedWorklistShardItemId#1031940L, qty#1031935 AS cachedQty#1031941, demandChannel#1031936, demandStream#1031937, kpis#1031938 AS cachedKpis#1031942]
(166) Join
Arguments: Inner, (((worklistShardItemId#1031926L = cachedWorklistShardItemId#1031940L) AND (shardId#1031925 = cachedShardId#1031939)) AND isnull(qty#1031932))
(167) Project
Arguments: [shardId#1031925, worklistShardItemId#1031926L, version#1031927, product#1031928, plant#1031929, qty#1031932]
(168) Project
Arguments: [shardId#1031925, worklistShardItemId#1031926L, version#1031927, product#1031928, plant#1031929, qty#1031932]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1031887 <=> shardId#1031895) AND (worklistShardItemId#1031888L <=> worklistShardItemId#1031896L)) AND (version#1031889 <=> version#1031897)) AND (product#1031890 <=> product#1031898)) AND (plant#1031891 <=> plant#1031899)) AND (qty#1031894 <=> qty#1031923))
(171) Project
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889, product#1031890, plant#1031891, qty#1031894]
(172) Project
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889, product#1031890, plant#1031891, qty#1031894, cast(null as string) AS demandChannel#1031943]
(173) Project
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889, product#1031890, plant#1031891, qty#1031894, demandChannel#1031943, cast(null as string) AS demandStream#1031944]
(174) Project
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889, product#1031890, plant#1031891, qty#1031894, demandChannel#1031943, demandStream#1031944, array() AS kpis#1031945]
(175) Project
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889, product#1031890, plant#1031891, qty#1031894, demandChannel#1031943, demandStream#1031944, kpis#1031945, true AS isNewlyCalculated#1031946]
(176) Project
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889, product#1031890, plant#1031891, qty#1031894, demandChannel#1031943, demandStream#1031944, cast(kpis#1031945 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1031947, isNewlyCalculated#1031946]
(177) LogicalRDD
Arguments: [shardId#1031948, worklistShardItemId#1031949L, version#1031950, product#1031951, plant#1031952, periodStart#1031953, periodEnd#1031954, qty#1031955], false
(178) RepartitionByExpression
Arguments: [product#1031951, plant#1031952], 37
(179) Project
Arguments: [shardId#1031948, worklistShardItemId#1031949L, version#1031950, product#1031951, plant#1031952, qty#1031955]
(180) LogicalRDD
Arguments: [shardId#1031956, worklistShardItemId#1031957L, qty#1031958, demandChannel#1031959, demandStream#1031960, kpis#1031961], false
(181) Project
Arguments: [shardId#1031956 AS cachedShardId#1031962, worklistShardItemId#1031957L AS cachedWorklistShardItemId#1031963L, qty#1031958 AS cachedQty#1031964, demandChannel#1031959, demandStream#1031960, kpis#1031961 AS cachedKpis#1031965]
(182) Join
Arguments: Inner, (((worklistShardItemId#1031949L = cachedWorklistShardItemId#1031963L) AND (shardId#1031948 = cachedShardId#1031962)) AND ((qty#1031955 = cachedQty#1031964) OR isnull(qty#1031955)))
(183) Project
Arguments: [shardId#1031948, worklistShardItemId#1031949L, version#1031950, product#1031951, plant#1031952]
(184) Deduplicate
Arguments: [plant#1031952, shardId#1031948, version#1031950, worklistShardItemId#1031949L, product#1031951]
(185) LogicalRDD
Arguments: [shardId#1031966, worklistShardItemId#1031967L, qty#1031968, demandChannel#1031969, demandStream#1031970, kpis#1031971], false
(186) Project
Arguments: [shardId#1031966 AS cachedShardId#1031972, worklistShardItemId#1031967L AS cachedWorklistShardItemId#1031973L, qty#1031968 AS cachedQty#1031974, demandChannel#1031969, demandStream#1031970, kpis#1031971 AS cachedKpis#1031975]
(187) Join
Arguments: Inner, ((worklistShardItemId#1031949L = cachedWorklistShardItemId#1031973L) AND (shardId#1031948 = cachedShardId#1031972))
(188) Project
Arguments: [shardId#1031948, worklistShardItemId#1031949L, version#1031950, product#1031951, plant#1031952, cachedQty#1031974 AS qty#1031976, demandChannel#1031969, demandStream#1031970, cachedKpis#1031975 AS kpis#1031977]
(189) Project
Arguments: [shardId#1031948, worklistShardItemId#1031949L, version#1031950, product#1031951, plant#1031952, qty#1031976, demandChannel#1031969, demandStream#1031970, kpis#1031977, false AS isNewlyCalculated#1031978]
(190) Project
Arguments: [shardId#1031948, worklistShardItemId#1031949L, version#1031950, product#1031951, plant#1031952, qty#1031976, demandChannel#1031969, demandStream#1031970, kpis#1031977, isNewlyCalculated#1031978]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1031887, worklistShardItemId#1031888L, version#1031889]
(193) Aggregate
Arguments: [shardId#1031887, worklistShardItemId#1031888L], [shardId#1031887, worklistShardItemId#1031888L, (max(version#1031889) + 1) AS version#1031790]
(194) Join
Arguments: Inner, ((shardId#1011815 = shardId#1031887) AND (worklistShardItemId#1011816L = worklistShardItemId#1031888L))
(195) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1028421, demandStream#1028422, kpis#1028456, version#1031790]
(196) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1031790, qty#1011822, demandChannel#1028421, demandStream#1028422, kpis#1028456]