== 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@2701e92, [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#1067319, worklistShardItemId#1067320L, version#1067321, product#1067322, plant#1067323, periodStart#1067324, periodEnd#1067325, qty#1067326], false
(7) RepartitionByExpression
Arguments: [product#1067322, plant#1067323], 37
(8) Project
Arguments: [shardId#1067319, worklistShardItemId#1067320L, version#1067321, product#1067322, plant#1067323, qty#1067326]
(9) LogicalRDD
Arguments: [shardId#1067074, worklistShardItemId#1067075L, qty#1067076, demandChannel#1067077, demandStream#1067078, kpis#1067079], false
(10) Project
Arguments: [shardId#1067074 AS cachedShardId#1067080, worklistShardItemId#1067075L AS cachedWorklistShardItemId#1067081L, qty#1067076 AS cachedQty#1067082, demandChannel#1067077, demandStream#1067078, kpis#1067079 AS cachedKpis#1067083]
(11) Join
Arguments: Inner, (((worklistShardItemId#1067320L = cachedWorklistShardItemId#1067081L) AND (shardId#1067319 = cachedShardId#1067080)) AND ((qty#1067326 = cachedQty#1067082) OR isnull(qty#1067326)))
(12) Project
Arguments: [shardId#1067319, worklistShardItemId#1067320L, version#1067321, product#1067322, plant#1067323]
(13) Deduplicate
Arguments: [plant#1067323, shardId#1067319, version#1067321, worklistShardItemId#1067320L, product#1067322]
(14) LogicalRDD
Arguments: [shardId#1067084, worklistShardItemId#1067085L, qty#1067086, demandChannel#1067087, demandStream#1067088, kpis#1067089], false
(15) Project
Arguments: [shardId#1067084 AS cachedShardId#1067090, worklistShardItemId#1067085L AS cachedWorklistShardItemId#1067091L, qty#1067086 AS cachedQty#1067092, demandChannel#1067087, demandStream#1067088, kpis#1067089 AS cachedKpis#1067093]
(16) Join
Arguments: Inner, ((worklistShardItemId#1067320L = cachedWorklistShardItemId#1067091L) AND (shardId#1067319 = cachedShardId#1067090))
(17) Project
Arguments: [shardId#1067319, worklistShardItemId#1067320L, version#1067321, product#1067322, plant#1067323, cachedQty#1067092 AS qty#1067094, demandChannel#1067087, demandStream#1067088, cachedKpis#1067093 AS kpis#1067095]
(18) Project
Arguments: [shardId#1067319, worklistShardItemId#1067320L, version#1067321, product#1067322, plant#1067323, qty#1067094]
(19) LogicalRDD
Arguments: [shardId#1067301, worklistShardItemId#1067302L, version#1067303, product#1067304, plant#1067305, periodStart#1067306, periodEnd#1067307, qty#1067308], false
(20) RepartitionByExpression
Arguments: [product#1067304, plant#1067305], 37
(21) Project
Arguments: [shardId#1067301, worklistShardItemId#1067302L, version#1067303, product#1067304, plant#1067305, qty#1067308]
(22) LogicalRDD
Arguments: [shardId#1067309, worklistShardItemId#1067310L, qty#1067311, demandChannel#1067312, demandStream#1067313, kpis#1067314], false
(23) Project
Arguments: [shardId#1067309 AS cachedShardId#1067315, worklistShardItemId#1067310L AS cachedWorklistShardItemId#1067316L, qty#1067311 AS cachedQty#1067317, demandChannel#1067312, demandStream#1067313, kpis#1067314 AS cachedKpis#1067318]
(24) Join
Arguments: Inner, (((worklistShardItemId#1067302L = cachedWorklistShardItemId#1067316L) AND (shardId#1067301 = cachedShardId#1067315)) AND isnull(qty#1067308))
(25) Project
Arguments: [shardId#1067301, worklistShardItemId#1067302L, version#1067303, product#1067304, plant#1067305, qty#1067308]
(26) Project
Arguments: [shardId#1067301, worklistShardItemId#1067302L, version#1067303, product#1067304, plant#1067305, qty#1067308]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1011815 <=> shardId#1067319) AND (worklistShardItemId#1011816L <=> worklistShardItemId#1067320L)) AND (version#1011817 <=> version#1067321)) AND (product#1011818 <=> product#1067322)) AND (plant#1011819 <=> plant#1067323)) AND (qty#1011822 <=> qty#1067094))
(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#1067327]
(31) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1067327, cast(null as string) AS demandStream#1067328]
(32) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1067327, demandStream#1067328, array() AS kpis#1067329]
(33) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1067327, demandStream#1067328, kpis#1067329, true AS isNewlyCalculated#1067330]
(34) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1067327, demandStream#1067328, cast(kpis#1067329 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1067362, isNewlyCalculated#1067330]
(35) LogicalRDD
Arguments: [shardId#1067332, worklistShardItemId#1067333L, version#1067334, product#1067335, plant#1067336, periodStart#1067337, periodEnd#1067338, qty#1067339], false
(36) RepartitionByExpression
Arguments: [product#1067335, plant#1067336], 37
(37) Project
Arguments: [shardId#1067332, worklistShardItemId#1067333L, version#1067334, product#1067335, plant#1067336, qty#1067339]
(38) LogicalRDD
Arguments: [shardId#1067340, worklistShardItemId#1067341L, qty#1067342, demandChannel#1067343, demandStream#1067344, kpis#1067345], false
(39) Project
Arguments: [shardId#1067340 AS cachedShardId#1067346, worklistShardItemId#1067341L AS cachedWorklistShardItemId#1067347L, qty#1067342 AS cachedQty#1067348, demandChannel#1067343, demandStream#1067344, kpis#1067345 AS cachedKpis#1067349]
(40) Join
Arguments: Inner, (((worklistShardItemId#1067333L = cachedWorklistShardItemId#1067347L) AND (shardId#1067332 = cachedShardId#1067346)) AND ((qty#1067339 = cachedQty#1067348) OR isnull(qty#1067339)))
(41) Project
Arguments: [shardId#1067332, worklistShardItemId#1067333L, version#1067334, product#1067335, plant#1067336]
(42) Deduplicate
Arguments: [plant#1067336, shardId#1067332, version#1067334, worklistShardItemId#1067333L, product#1067335]
(43) LogicalRDD
Arguments: [shardId#1067350, worklistShardItemId#1067351L, qty#1067352, demandChannel#1067353, demandStream#1067354, kpis#1067355], false
(44) Project
Arguments: [shardId#1067350 AS cachedShardId#1067356, worklistShardItemId#1067351L AS cachedWorklistShardItemId#1067357L, qty#1067352 AS cachedQty#1067358, demandChannel#1067353, demandStream#1067354, kpis#1067355 AS cachedKpis#1067359]
(45) Join
Arguments: Inner, ((worklistShardItemId#1067333L = cachedWorklistShardItemId#1067357L) AND (shardId#1067332 = cachedShardId#1067356))
(46) Project
Arguments: [shardId#1067332, worklistShardItemId#1067333L, version#1067334, product#1067335, plant#1067336, cachedQty#1067358 AS qty#1067360, demandChannel#1067353, demandStream#1067354, cachedKpis#1067359 AS kpis#1067361]
(47) Project
Arguments: [shardId#1067332, worklistShardItemId#1067333L, version#1067334, product#1067335, plant#1067336, qty#1067360, demandChannel#1067353, demandStream#1067354, kpis#1067361, false AS isNewlyCalculated#1067331]
(48) Project
Arguments: [shardId#1067332, worklistShardItemId#1067333L, version#1067334, product#1067335, plant#1067336, qty#1067360, demandChannel#1067353, demandStream#1067354, kpis#1067361, isNewlyCalculated#1067331]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1067330 <=> false)
(51) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1067327, demandStream#1067328, kpis#1067362]
(52) ExternalRDD
Arguments: [obj#1069826]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84462), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84462), 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, 84462), 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, 84462), 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, 84462), 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, 84462), 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#1069829, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84463), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84463), 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, 84464), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84464), 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, 84464), 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, 84464), 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, 84465), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84465), 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, 84465), 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, 84465), 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, 84465), 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, 84464), 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, 84463), 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, 84466), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84466), 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, 84466), 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, 84466), 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, 84466), 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, 84463), 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, 84463), 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, 84463), 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, 84467), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84467), 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, 84468), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84468), 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, 84468), 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, 84468), 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, 84468), 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, 84467), 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, 84467), 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, 84463), 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#1069830]
(54) Generate
Arguments: explode(prodPlantResults#1069830), false, [prodPlantResults#1069837]
(55) Project
Arguments: [prodPlantResults#1069837]
(56) Project
Arguments: [prodPlantResults#1069837.productId AS product#1069856, prodPlantResults#1069837.plantId AS plant#1069857, prodPlantResults#1069837.kpiResults AS kpis#1069858]
(57) Project
Arguments: [product#1069856, plant#1069857, kpis#1069858, null AS qty#1069862]
(58) Project
Arguments: [product#1069856, plant#1069857, kpis#1069858, qty#1069862, cast(null as string) AS demandChannel#1069863]
(59) Project
Arguments: [product#1069856, plant#1069857, kpis#1069858, qty#1069862, demandChannel#1069863, cast(null as string) AS demandStream#1069864]
(60) Project
Arguments: [product#1069856, plant#1069857, kpis#1069858, cast(qty#1069862 as double) AS qty#1069883, demandChannel#1069863, demandStream#1069864]
(61) ExternalRDD
Arguments: [obj#1069879]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84462), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84462), 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, 84462), 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, 84462), 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, 84462), 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, 84462), 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#1069880, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84463), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84463), 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, 84464), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84464), 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, 84464), 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, 84464), 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, 84465), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84465), 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, 84465), 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, 84465), 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, 84465), 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, 84464), 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, 84463), 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, 84466), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84466), 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, 84466), 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, 84466), 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, 84466), 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, 84463), 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, 84463), 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, 84463), 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, 84467), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84467), 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, 84468), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84468), 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, 84468), 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, 84468), 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, 84468), 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, 84467), 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, 84467), 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, 84463), 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#1069881]
(63) Generate
Arguments: explode(prodPlantResults#1069881), false, [prodPlantResults#1069882]
(64) Project
Arguments: [prodPlantResults#1069882]
(65) Generate
Arguments: explode(prodPlantResults#1069882.quantityKpiResults), false, [quantityKpiResults#1069849]
(66) Project
Arguments: [prodPlantResults#1069882.productId AS product#1069843, prodPlantResults#1069882.plantId AS plant#1069844, quantityKpiResults#1069849]
(67) Project
Arguments: [product#1069843, plant#1069844, quantityKpiResults#1069849, quantityKpiResults#1069849.quantity AS qty#1069850]
(68) Project
Arguments: [product#1069843, plant#1069844, quantityKpiResults#1069849, qty#1069850, cast(null as string) AS demandChannel#1069852]
(69) Project
Arguments: [product#1069843, plant#1069844, quantityKpiResults#1069849, qty#1069850, demandChannel#1069852, cast(null as string) AS demandStream#1069853]
(70) Project
Arguments: [product#1069843, plant#1069844, quantityKpiResults#1069849, qty#1069850, demandChannel#1069852, demandStream#1069853, quantityKpiResults#1069849.kpiResults AS kpis#1069854]
(71) Project
Arguments: [product#1069843, plant#1069844, qty#1069850, demandChannel#1069852, demandStream#1069853, kpis#1069854]
(72) Project
Arguments: [product#1069843, plant#1069844, kpis#1069854, qty#1069850, demandChannel#1069852, demandStream#1069853]
(73) ExternalRDD
Arguments: [obj#1069884]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84462), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84462), 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, 84462), 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, 84462), 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, 84462), 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, 84462), 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#1069885, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84463), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84463), 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, 84464), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84464), 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, 84464), 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, 84464), 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, 84465), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84465), 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, 84465), 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, 84465), 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, 84465), 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, 84464), 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, 84463), 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, 84466), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84466), 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, 84466), 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, 84466), 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, 84466), 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, 84463), 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, 84463), 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, 84463), 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, 84467), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84467), 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, 84468), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84468), 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, 84468), 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, 84468), 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, 84468), 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, 84467), 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, 84467), 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, 84463), 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#1069886]
(75) Generate
Arguments: explode(prodPlantResults#1069886), false, [prodPlantResults#1069887]
(76) Project
Arguments: [prodPlantResults#1069887]
(77) Generate
Arguments: explode(prodPlantResults#1069887.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1069871]
(78) Project
Arguments: [prodPlantResults#1069887.productId AS product#1069865, prodPlantResults#1069887.plantId AS plant#1069866, demandChannelStreamKpiResults#1069871]
(79) Project
Arguments: [product#1069865, plant#1069866, demandChannelStreamKpiResults#1069871, null AS qty#1069872]
(80) Project
Arguments: [product#1069865, plant#1069866, demandChannelStreamKpiResults#1069871, qty#1069872, demandChannelStreamKpiResults#1069871.demandChannel AS demandChannel#1069873]
(81) Project
Arguments: [product#1069865, plant#1069866, demandChannelStreamKpiResults#1069871, qty#1069872, demandChannel#1069873, demandChannelStreamKpiResults#1069871.demandStream AS demandStream#1069875]
(82) Project
Arguments: [product#1069865, plant#1069866, demandChannelStreamKpiResults#1069871, qty#1069872, demandChannel#1069873, demandStream#1069875, demandChannelStreamKpiResults#1069871.kpiResults AS kpis#1069877]
(83) Project
Arguments: [product#1069865, plant#1069866, qty#1069872, demandChannel#1069873, demandStream#1069875, kpis#1069877]
(84) Project
Arguments: [product#1069865, plant#1069866, kpis#1069877, qty#1069872, demandChannel#1069873, demandStream#1069875]
(85) Project
Arguments: [product#1069865, plant#1069866, kpis#1069877, cast(qty#1069872 as double) AS qty#1069888, demandChannel#1069873, demandStream#1069875]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1069856, plant#1069857, transform(kpis#1069858, lambdafunction(struct(label, lambda kpi#1069893.label, dateTime, lambda kpi#1069893.datetime, value, lambda kpi#1069893.value), lambda kpi#1069893, false)) AS kpis#1069892, qty#1069883, demandChannel#1069863, demandStream#1069864]
(88) Project
Arguments: [product#1069856, plant#1069857, qty#1069883, demandChannel#1069863, demandStream#1069864, kpis#1069892]
(89) LogicalRDD
Arguments: [shardId#1070701, worklistShardItemId#1070702L, version#1070703, product#1070704, plant#1070705, periodStart#1070706, periodEnd#1070707, qty#1070708], false
(90) RepartitionByExpression
Arguments: [product#1070704, plant#1070705], 37
(91) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, version#1070703, product#1070704, plant#1070705, qty#1070708]
(92) LogicalRDD
Arguments: [shardId#1070709, worklistShardItemId#1070710L, version#1070711, product#1070712, plant#1070713, periodStart#1070714, periodEnd#1070715, qty#1070716], false
(93) RepartitionByExpression
Arguments: [product#1070712, plant#1070713], 37
(94) Project
Arguments: [shardId#1070709, worklistShardItemId#1070710L, version#1070711, product#1070712, plant#1070713, qty#1070716]
(95) LogicalRDD
Arguments: [shardId#1070717, worklistShardItemId#1070718L, qty#1070719, demandChannel#1070720, demandStream#1070721, kpis#1070722], false
(96) Project
Arguments: [shardId#1070717 AS cachedShardId#1070723, worklistShardItemId#1070718L AS cachedWorklistShardItemId#1070724L, qty#1070719 AS cachedQty#1070725, demandChannel#1070720, demandStream#1070721, kpis#1070722 AS cachedKpis#1070726]
(97) Join
Arguments: Inner, (((worklistShardItemId#1070710L = cachedWorklistShardItemId#1070724L) AND (shardId#1070709 = cachedShardId#1070723)) AND ((qty#1070716 = cachedQty#1070725) OR isnull(qty#1070716)))
(98) Project
Arguments: [shardId#1070709, worklistShardItemId#1070710L, version#1070711, product#1070712, plant#1070713]
(99) Deduplicate
Arguments: [plant#1070713, shardId#1070709, version#1070711, worklistShardItemId#1070710L, product#1070712]
(100) LogicalRDD
Arguments: [shardId#1070727, worklistShardItemId#1070728L, qty#1070729, demandChannel#1070730, demandStream#1070731, kpis#1070732], false
(101) Project
Arguments: [shardId#1070727 AS cachedShardId#1070733, worklistShardItemId#1070728L AS cachedWorklistShardItemId#1070734L, qty#1070729 AS cachedQty#1070735, demandChannel#1070730, demandStream#1070731, kpis#1070732 AS cachedKpis#1070736]
(102) Join
Arguments: Inner, ((worklistShardItemId#1070710L = cachedWorklistShardItemId#1070734L) AND (shardId#1070709 = cachedShardId#1070733))
(103) Project
Arguments: [shardId#1070709, worklistShardItemId#1070710L, version#1070711, product#1070712, plant#1070713, cachedQty#1070735 AS qty#1070737, demandChannel#1070730, demandStream#1070731, cachedKpis#1070736 AS kpis#1070738]
(104) Project
Arguments: [shardId#1070709, worklistShardItemId#1070710L, version#1070711, product#1070712, plant#1070713, qty#1070737]
(105) LogicalRDD
Arguments: [shardId#1070739, worklistShardItemId#1070740L, version#1070741, product#1070742, plant#1070743, periodStart#1070744, periodEnd#1070745, qty#1070746], false
(106) RepartitionByExpression
Arguments: [product#1070742, plant#1070743], 37
(107) Project
Arguments: [shardId#1070739, worklistShardItemId#1070740L, version#1070741, product#1070742, plant#1070743, qty#1070746]
(108) LogicalRDD
Arguments: [shardId#1070747, worklistShardItemId#1070748L, qty#1070749, demandChannel#1070750, demandStream#1070751, kpis#1070752], false
(109) Project
Arguments: [shardId#1070747 AS cachedShardId#1070753, worklistShardItemId#1070748L AS cachedWorklistShardItemId#1070754L, qty#1070749 AS cachedQty#1070755, demandChannel#1070750, demandStream#1070751, kpis#1070752 AS cachedKpis#1070756]
(110) Join
Arguments: Inner, (((worklistShardItemId#1070740L = cachedWorklistShardItemId#1070754L) AND (shardId#1070739 = cachedShardId#1070753)) AND isnull(qty#1070746))
(111) Project
Arguments: [shardId#1070739, worklistShardItemId#1070740L, version#1070741, product#1070742, plant#1070743, qty#1070746]
(112) Project
Arguments: [shardId#1070739, worklistShardItemId#1070740L, version#1070741, product#1070742, plant#1070743, qty#1070746]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1070701 <=> shardId#1070709) AND (worklistShardItemId#1070702L <=> worklistShardItemId#1070710L)) AND (version#1070703 <=> version#1070711)) AND (product#1070704 <=> product#1070712)) AND (plant#1070705 <=> plant#1070713)) AND (qty#1070708 <=> qty#1070737))
(115) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, version#1070703, product#1070704, plant#1070705, qty#1070708]
(116) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, version#1070703, product#1070704, plant#1070705, qty#1070708, cast(null as string) AS demandChannel#1070757]
(117) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, version#1070703, product#1070704, plant#1070705, qty#1070708, demandChannel#1070757, cast(null as string) AS demandStream#1070758]
(118) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, version#1070703, product#1070704, plant#1070705, qty#1070708, demandChannel#1070757, demandStream#1070758, array() AS kpis#1070759]
(119) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, version#1070703, product#1070704, plant#1070705, qty#1070708, demandChannel#1070757, demandStream#1070758, kpis#1070759, true AS isNewlyCalculated#1070760]
(120) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, version#1070703, product#1070704, plant#1070705, qty#1070708, demandChannel#1070757, demandStream#1070758, cast(kpis#1070759 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1070761, isNewlyCalculated#1070760]
(121) LogicalRDD
Arguments: [shardId#1070762, worklistShardItemId#1070763L, version#1070764, product#1070765, plant#1070766, periodStart#1070767, periodEnd#1070768, qty#1070769], false
(122) RepartitionByExpression
Arguments: [product#1070765, plant#1070766], 37
(123) Project
Arguments: [shardId#1070762, worklistShardItemId#1070763L, version#1070764, product#1070765, plant#1070766, qty#1070769]
(124) LogicalRDD
Arguments: [shardId#1070770, worklistShardItemId#1070771L, qty#1070772, demandChannel#1070773, demandStream#1070774, kpis#1070775], false
(125) Project
Arguments: [shardId#1070770 AS cachedShardId#1070776, worklistShardItemId#1070771L AS cachedWorklistShardItemId#1070777L, qty#1070772 AS cachedQty#1070778, demandChannel#1070773, demandStream#1070774, kpis#1070775 AS cachedKpis#1070779]
(126) Join
Arguments: Inner, (((worklistShardItemId#1070763L = cachedWorklistShardItemId#1070777L) AND (shardId#1070762 = cachedShardId#1070776)) AND ((qty#1070769 = cachedQty#1070778) OR isnull(qty#1070769)))
(127) Project
Arguments: [shardId#1070762, worklistShardItemId#1070763L, version#1070764, product#1070765, plant#1070766]
(128) Deduplicate
Arguments: [plant#1070766, shardId#1070762, version#1070764, worklistShardItemId#1070763L, product#1070765]
(129) LogicalRDD
Arguments: [shardId#1070780, worklistShardItemId#1070781L, qty#1070782, demandChannel#1070783, demandStream#1070784, kpis#1070785], false
(130) Project
Arguments: [shardId#1070780 AS cachedShardId#1070786, worklistShardItemId#1070781L AS cachedWorklistShardItemId#1070787L, qty#1070782 AS cachedQty#1070788, demandChannel#1070783, demandStream#1070784, kpis#1070785 AS cachedKpis#1070789]
(131) Join
Arguments: Inner, ((worklistShardItemId#1070763L = cachedWorklistShardItemId#1070787L) AND (shardId#1070762 = cachedShardId#1070786))
(132) Project
Arguments: [shardId#1070762, worklistShardItemId#1070763L, version#1070764, product#1070765, plant#1070766, cachedQty#1070788 AS qty#1070790, demandChannel#1070783, demandStream#1070784, cachedKpis#1070789 AS kpis#1070791]
(133) Project
Arguments: [shardId#1070762, worklistShardItemId#1070763L, version#1070764, product#1070765, plant#1070766, qty#1070790, demandChannel#1070783, demandStream#1070784, kpis#1070791, false AS isNewlyCalculated#1070792]
(134) Project
Arguments: [shardId#1070762, worklistShardItemId#1070763L, version#1070764, product#1070765, plant#1070766, qty#1070790, demandChannel#1070783, demandStream#1070784, kpis#1070791, isNewlyCalculated#1070792]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1070760 <=> true)
(137) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, product#1070704, plant#1070705, qty#1070708, kpis#1070761]
(138) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, product#1070704, plant#1070705, qty#1070708]
(139) Deduplicate
Arguments: [plant#1070705, shardId#1070701, qty#1070708, worklistShardItemId#1070702L, product#1070704]
(140) Join
Arguments: Inner, ((product#1069856 <=> product#1070704) AND ((plant#1069857 <=> plant#1070705) AND ((qty#1069883 <=> qty#1070708) OR isnull(qty#1070708))))
(141) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, qty#1069883, demandChannel#1069863, demandStream#1069864, kpis#1069892]
(142) Deduplicate
Arguments: [demandChannel#1069863, shardId#1070701, qty#1069883, worklistShardItemId#1070702L, demandStream#1069864]
(143) Project
Arguments: [shardId#1070701, worklistShardItemId#1070702L, qty#1069883, demandChannel#1069863, demandStream#1069864, kpis#1069892]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795, product#1070796, plant#1070797, periodStart#1070798, periodEnd#1070799, qty#1070800], false
(146) RepartitionByExpression
Arguments: [product#1070796, plant#1070797], 37
(147) Project
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795, product#1070796, plant#1070797, qty#1070800]
(148) LogicalRDD
Arguments: [shardId#1070801, worklistShardItemId#1070802L, version#1070803, product#1070804, plant#1070805, periodStart#1070806, periodEnd#1070807, qty#1070808], false
(149) RepartitionByExpression
Arguments: [product#1070804, plant#1070805], 37
(150) Project
Arguments: [shardId#1070801, worklistShardItemId#1070802L, version#1070803, product#1070804, plant#1070805, qty#1070808]
(151) LogicalRDD
Arguments: [shardId#1070809, worklistShardItemId#1070810L, qty#1070811, demandChannel#1070812, demandStream#1070813, kpis#1070814], false
(152) Project
Arguments: [shardId#1070809 AS cachedShardId#1070815, worklistShardItemId#1070810L AS cachedWorklistShardItemId#1070816L, qty#1070811 AS cachedQty#1070817, demandChannel#1070812, demandStream#1070813, kpis#1070814 AS cachedKpis#1070818]
(153) Join
Arguments: Inner, (((worklistShardItemId#1070802L = cachedWorklistShardItemId#1070816L) AND (shardId#1070801 = cachedShardId#1070815)) AND ((qty#1070808 = cachedQty#1070817) OR isnull(qty#1070808)))
(154) Project
Arguments: [shardId#1070801, worklistShardItemId#1070802L, version#1070803, product#1070804, plant#1070805]
(155) Deduplicate
Arguments: [plant#1070805, shardId#1070801, version#1070803, worklistShardItemId#1070802L, product#1070804]
(156) LogicalRDD
Arguments: [shardId#1070819, worklistShardItemId#1070820L, qty#1070821, demandChannel#1070822, demandStream#1070823, kpis#1070824], false
(157) Project
Arguments: [shardId#1070819 AS cachedShardId#1070825, worklistShardItemId#1070820L AS cachedWorklistShardItemId#1070826L, qty#1070821 AS cachedQty#1070827, demandChannel#1070822, demandStream#1070823, kpis#1070824 AS cachedKpis#1070828]
(158) Join
Arguments: Inner, ((worklistShardItemId#1070802L = cachedWorklistShardItemId#1070826L) AND (shardId#1070801 = cachedShardId#1070825))
(159) Project
Arguments: [shardId#1070801, worklistShardItemId#1070802L, version#1070803, product#1070804, plant#1070805, cachedQty#1070827 AS qty#1070829, demandChannel#1070822, demandStream#1070823, cachedKpis#1070828 AS kpis#1070830]
(160) Project
Arguments: [shardId#1070801, worklistShardItemId#1070802L, version#1070803, product#1070804, plant#1070805, qty#1070829]
(161) LogicalRDD
Arguments: [shardId#1070831, worklistShardItemId#1070832L, version#1070833, product#1070834, plant#1070835, periodStart#1070836, periodEnd#1070837, qty#1070838], false
(162) RepartitionByExpression
Arguments: [product#1070834, plant#1070835], 37
(163) Project
Arguments: [shardId#1070831, worklistShardItemId#1070832L, version#1070833, product#1070834, plant#1070835, qty#1070838]
(164) LogicalRDD
Arguments: [shardId#1070839, worklistShardItemId#1070840L, qty#1070841, demandChannel#1070842, demandStream#1070843, kpis#1070844], false
(165) Project
Arguments: [shardId#1070839 AS cachedShardId#1070845, worklistShardItemId#1070840L AS cachedWorklistShardItemId#1070846L, qty#1070841 AS cachedQty#1070847, demandChannel#1070842, demandStream#1070843, kpis#1070844 AS cachedKpis#1070848]
(166) Join
Arguments: Inner, (((worklistShardItemId#1070832L = cachedWorklistShardItemId#1070846L) AND (shardId#1070831 = cachedShardId#1070845)) AND isnull(qty#1070838))
(167) Project
Arguments: [shardId#1070831, worklistShardItemId#1070832L, version#1070833, product#1070834, plant#1070835, qty#1070838]
(168) Project
Arguments: [shardId#1070831, worklistShardItemId#1070832L, version#1070833, product#1070834, plant#1070835, qty#1070838]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1070793 <=> shardId#1070801) AND (worklistShardItemId#1070794L <=> worklistShardItemId#1070802L)) AND (version#1070795 <=> version#1070803)) AND (product#1070796 <=> product#1070804)) AND (plant#1070797 <=> plant#1070805)) AND (qty#1070800 <=> qty#1070829))
(171) Project
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795, product#1070796, plant#1070797, qty#1070800]
(172) Project
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795, product#1070796, plant#1070797, qty#1070800, cast(null as string) AS demandChannel#1070849]
(173) Project
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795, product#1070796, plant#1070797, qty#1070800, demandChannel#1070849, cast(null as string) AS demandStream#1070850]
(174) Project
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795, product#1070796, plant#1070797, qty#1070800, demandChannel#1070849, demandStream#1070850, array() AS kpis#1070851]
(175) Project
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795, product#1070796, plant#1070797, qty#1070800, demandChannel#1070849, demandStream#1070850, kpis#1070851, true AS isNewlyCalculated#1070852]
(176) Project
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795, product#1070796, plant#1070797, qty#1070800, demandChannel#1070849, demandStream#1070850, cast(kpis#1070851 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1070853, isNewlyCalculated#1070852]
(177) LogicalRDD
Arguments: [shardId#1070854, worklistShardItemId#1070855L, version#1070856, product#1070857, plant#1070858, periodStart#1070859, periodEnd#1070860, qty#1070861], false
(178) RepartitionByExpression
Arguments: [product#1070857, plant#1070858], 37
(179) Project
Arguments: [shardId#1070854, worklistShardItemId#1070855L, version#1070856, product#1070857, plant#1070858, qty#1070861]
(180) LogicalRDD
Arguments: [shardId#1070862, worklistShardItemId#1070863L, qty#1070864, demandChannel#1070865, demandStream#1070866, kpis#1070867], false
(181) Project
Arguments: [shardId#1070862 AS cachedShardId#1070868, worklistShardItemId#1070863L AS cachedWorklistShardItemId#1070869L, qty#1070864 AS cachedQty#1070870, demandChannel#1070865, demandStream#1070866, kpis#1070867 AS cachedKpis#1070871]
(182) Join
Arguments: Inner, (((worklistShardItemId#1070855L = cachedWorklistShardItemId#1070869L) AND (shardId#1070854 = cachedShardId#1070868)) AND ((qty#1070861 = cachedQty#1070870) OR isnull(qty#1070861)))
(183) Project
Arguments: [shardId#1070854, worklistShardItemId#1070855L, version#1070856, product#1070857, plant#1070858]
(184) Deduplicate
Arguments: [plant#1070858, shardId#1070854, version#1070856, worklistShardItemId#1070855L, product#1070857]
(185) LogicalRDD
Arguments: [shardId#1070872, worklistShardItemId#1070873L, qty#1070874, demandChannel#1070875, demandStream#1070876, kpis#1070877], false
(186) Project
Arguments: [shardId#1070872 AS cachedShardId#1070878, worklistShardItemId#1070873L AS cachedWorklistShardItemId#1070879L, qty#1070874 AS cachedQty#1070880, demandChannel#1070875, demandStream#1070876, kpis#1070877 AS cachedKpis#1070881]
(187) Join
Arguments: Inner, ((worklistShardItemId#1070855L = cachedWorklistShardItemId#1070879L) AND (shardId#1070854 = cachedShardId#1070878))
(188) Project
Arguments: [shardId#1070854, worklistShardItemId#1070855L, version#1070856, product#1070857, plant#1070858, cachedQty#1070880 AS qty#1070882, demandChannel#1070875, demandStream#1070876, cachedKpis#1070881 AS kpis#1070883]
(189) Project
Arguments: [shardId#1070854, worklistShardItemId#1070855L, version#1070856, product#1070857, plant#1070858, qty#1070882, demandChannel#1070875, demandStream#1070876, kpis#1070883, false AS isNewlyCalculated#1070884]
(190) Project
Arguments: [shardId#1070854, worklistShardItemId#1070855L, version#1070856, product#1070857, plant#1070858, qty#1070882, demandChannel#1070875, demandStream#1070876, kpis#1070883, isNewlyCalculated#1070884]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1070793, worklistShardItemId#1070794L, version#1070795]
(193) Aggregate
Arguments: [shardId#1070793, worklistShardItemId#1070794L], [shardId#1070793, worklistShardItemId#1070794L, (max(version#1070795) + 1) AS version#1070696]
(194) Join
Arguments: Inner, ((shardId#1011815 = shardId#1070793) AND (worklistShardItemId#1011816L = worklistShardItemId#1070794L))
(195) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1067327, demandStream#1067328, kpis#1067362, version#1070696]
(196) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1070696, qty#1011822, demandChannel#1067327, demandStream#1067328, kpis#1067362]