== 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@5761fd3a, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000350/stream-10000000350-1], Append
(3) LogicalRDD
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, periodStart#1100462, periodEnd#1100463, qty#1100464], false
(4) RepartitionByExpression
Arguments: [product#1100460, plant#1100461], 37
(5) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464]
(6) LogicalRDD
Arguments: [shardId#1145345, worklistShardItemId#1145346L, version#1145347, product#1145348, plant#1145349, periodStart#1145350, periodEnd#1145351, qty#1145352], false
(7) RepartitionByExpression
Arguments: [product#1145348, plant#1145349], 37
(8) Project
Arguments: [shardId#1145345, worklistShardItemId#1145346L, version#1145347, product#1145348, plant#1145349, qty#1145352]
(9) LogicalRDD
Arguments: [shardId#1145100, worklistShardItemId#1145101L, qty#1145102, demandChannel#1145103, demandStream#1145104, kpis#1145105], false
(10) Project
Arguments: [shardId#1145100 AS cachedShardId#1145106, worklistShardItemId#1145101L AS cachedWorklistShardItemId#1145107L, qty#1145102 AS cachedQty#1145108, demandChannel#1145103, demandStream#1145104, kpis#1145105 AS cachedKpis#1145109]
(11) Join
Arguments: Inner, (((worklistShardItemId#1145346L = cachedWorklistShardItemId#1145107L) AND (shardId#1145345 = cachedShardId#1145106)) AND ((qty#1145352 = cachedQty#1145108) OR isnull(qty#1145352)))
(12) Project
Arguments: [shardId#1145345, worklistShardItemId#1145346L, version#1145347, product#1145348, plant#1145349]
(13) Deduplicate
Arguments: [plant#1145349, shardId#1145345, version#1145347, worklistShardItemId#1145346L, product#1145348]
(14) LogicalRDD
Arguments: [shardId#1145110, worklistShardItemId#1145111L, qty#1145112, demandChannel#1145113, demandStream#1145114, kpis#1145115], false
(15) Project
Arguments: [shardId#1145110 AS cachedShardId#1145116, worklistShardItemId#1145111L AS cachedWorklistShardItemId#1145117L, qty#1145112 AS cachedQty#1145118, demandChannel#1145113, demandStream#1145114, kpis#1145115 AS cachedKpis#1145119]
(16) Join
Arguments: Inner, ((worklistShardItemId#1145346L = cachedWorklistShardItemId#1145117L) AND (shardId#1145345 = cachedShardId#1145116))
(17) Project
Arguments: [shardId#1145345, worklistShardItemId#1145346L, version#1145347, product#1145348, plant#1145349, cachedQty#1145118 AS qty#1145120, demandChannel#1145113, demandStream#1145114, cachedKpis#1145119 AS kpis#1145121]
(18) Project
Arguments: [shardId#1145345, worklistShardItemId#1145346L, version#1145347, product#1145348, plant#1145349, qty#1145120]
(19) LogicalRDD
Arguments: [shardId#1145327, worklistShardItemId#1145328L, version#1145329, product#1145330, plant#1145331, periodStart#1145332, periodEnd#1145333, qty#1145334], false
(20) RepartitionByExpression
Arguments: [product#1145330, plant#1145331], 37
(21) Project
Arguments: [shardId#1145327, worklistShardItemId#1145328L, version#1145329, product#1145330, plant#1145331, qty#1145334]
(22) LogicalRDD
Arguments: [shardId#1145335, worklistShardItemId#1145336L, qty#1145337, demandChannel#1145338, demandStream#1145339, kpis#1145340], false
(23) Project
Arguments: [shardId#1145335 AS cachedShardId#1145341, worklistShardItemId#1145336L AS cachedWorklistShardItemId#1145342L, qty#1145337 AS cachedQty#1145343, demandChannel#1145338, demandStream#1145339, kpis#1145340 AS cachedKpis#1145344]
(24) Join
Arguments: Inner, (((worklistShardItemId#1145328L = cachedWorklistShardItemId#1145342L) AND (shardId#1145327 = cachedShardId#1145341)) AND isnull(qty#1145334))
(25) Project
Arguments: [shardId#1145327, worklistShardItemId#1145328L, version#1145329, product#1145330, plant#1145331, qty#1145334]
(26) Project
Arguments: [shardId#1145327, worklistShardItemId#1145328L, version#1145329, product#1145330, plant#1145331, qty#1145334]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1100457 <=> shardId#1145345) AND (worklistShardItemId#1100458L <=> worklistShardItemId#1145346L)) AND (version#1100459 <=> version#1145347)) AND (product#1100460 <=> product#1145348)) AND (plant#1100461 <=> plant#1145349)) AND (qty#1100464 <=> qty#1145120))
(29) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464]
(30) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, cast(null as string) AS demandChannel#1145353]
(31) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1145353, cast(null as string) AS demandStream#1145354]
(32) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1145353, demandStream#1145354, array() AS kpis#1145355]
(33) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1145353, demandStream#1145354, kpis#1145355, true AS isNewlyCalculated#1145356]
(34) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1145353, demandStream#1145354, cast(kpis#1145355 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1145388, isNewlyCalculated#1145356]
(35) LogicalRDD
Arguments: [shardId#1145358, worklistShardItemId#1145359L, version#1145360, product#1145361, plant#1145362, periodStart#1145363, periodEnd#1145364, qty#1145365], false
(36) RepartitionByExpression
Arguments: [product#1145361, plant#1145362], 37
(37) Project
Arguments: [shardId#1145358, worklistShardItemId#1145359L, version#1145360, product#1145361, plant#1145362, qty#1145365]
(38) LogicalRDD
Arguments: [shardId#1145366, worklistShardItemId#1145367L, qty#1145368, demandChannel#1145369, demandStream#1145370, kpis#1145371], false
(39) Project
Arguments: [shardId#1145366 AS cachedShardId#1145372, worklistShardItemId#1145367L AS cachedWorklistShardItemId#1145373L, qty#1145368 AS cachedQty#1145374, demandChannel#1145369, demandStream#1145370, kpis#1145371 AS cachedKpis#1145375]
(40) Join
Arguments: Inner, (((worklistShardItemId#1145359L = cachedWorklistShardItemId#1145373L) AND (shardId#1145358 = cachedShardId#1145372)) AND ((qty#1145365 = cachedQty#1145374) OR isnull(qty#1145365)))
(41) Project
Arguments: [shardId#1145358, worklistShardItemId#1145359L, version#1145360, product#1145361, plant#1145362]
(42) Deduplicate
Arguments: [plant#1145362, shardId#1145358, version#1145360, worklistShardItemId#1145359L, product#1145361]
(43) LogicalRDD
Arguments: [shardId#1145376, worklistShardItemId#1145377L, qty#1145378, demandChannel#1145379, demandStream#1145380, kpis#1145381], false
(44) Project
Arguments: [shardId#1145376 AS cachedShardId#1145382, worklistShardItemId#1145377L AS cachedWorklistShardItemId#1145383L, qty#1145378 AS cachedQty#1145384, demandChannel#1145379, demandStream#1145380, kpis#1145381 AS cachedKpis#1145385]
(45) Join
Arguments: Inner, ((worklistShardItemId#1145359L = cachedWorklistShardItemId#1145383L) AND (shardId#1145358 = cachedShardId#1145382))
(46) Project
Arguments: [shardId#1145358, worklistShardItemId#1145359L, version#1145360, product#1145361, plant#1145362, cachedQty#1145384 AS qty#1145386, demandChannel#1145379, demandStream#1145380, cachedKpis#1145385 AS kpis#1145387]
(47) Project
Arguments: [shardId#1145358, worklistShardItemId#1145359L, version#1145360, product#1145361, plant#1145362, qty#1145386, demandChannel#1145379, demandStream#1145380, kpis#1145387, false AS isNewlyCalculated#1145357]
(48) Project
Arguments: [shardId#1145358, worklistShardItemId#1145359L, version#1145360, product#1145361, plant#1145362, qty#1145386, demandChannel#1145379, demandStream#1145380, kpis#1145387, isNewlyCalculated#1145357]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1145356 <=> false)
(51) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1145353, demandStream#1145354, kpis#1145388]
(52) ExternalRDD
Arguments: [obj#1147852]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90455), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90455), 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, 90455), 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, 90455), 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, 90455), 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, 90455), 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#1147855, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90456), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90456), 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, 90457), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90457), 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, 90457), 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, 90457), 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, 90458), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90458), 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, 90458), 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, 90458), 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, 90458), 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, 90457), 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, 90456), 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, 90459), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90459), 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, 90459), 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, 90459), 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, 90459), 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, 90456), 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, 90456), 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, 90456), 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, 90460), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90460), 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, 90461), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90461), 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, 90461), 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, 90461), 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, 90461), 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, 90460), 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, 90460), 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, 90456), 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#1147856]
(54) Generate
Arguments: explode(prodPlantResults#1147856), false, [prodPlantResults#1147863]
(55) Project
Arguments: [prodPlantResults#1147863]
(56) Project
Arguments: [prodPlantResults#1147863.productId AS product#1147882, prodPlantResults#1147863.plantId AS plant#1147883, prodPlantResults#1147863.kpiResults AS kpis#1147884]
(57) Project
Arguments: [product#1147882, plant#1147883, kpis#1147884, null AS qty#1147888]
(58) Project
Arguments: [product#1147882, plant#1147883, kpis#1147884, qty#1147888, cast(null as string) AS demandChannel#1147889]
(59) Project
Arguments: [product#1147882, plant#1147883, kpis#1147884, qty#1147888, demandChannel#1147889, cast(null as string) AS demandStream#1147890]
(60) Project
Arguments: [product#1147882, plant#1147883, kpis#1147884, cast(qty#1147888 as double) AS qty#1147909, demandChannel#1147889, demandStream#1147890]
(61) ExternalRDD
Arguments: [obj#1147905]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90455), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90455), 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, 90455), 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, 90455), 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, 90455), 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, 90455), 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#1147906, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90456), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90456), 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, 90457), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90457), 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, 90457), 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, 90457), 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, 90458), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90458), 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, 90458), 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, 90458), 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, 90458), 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, 90457), 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, 90456), 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, 90459), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90459), 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, 90459), 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, 90459), 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, 90459), 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, 90456), 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, 90456), 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, 90456), 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, 90460), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90460), 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, 90461), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90461), 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, 90461), 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, 90461), 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, 90461), 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, 90460), 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, 90460), 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, 90456), 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#1147907]
(63) Generate
Arguments: explode(prodPlantResults#1147907), false, [prodPlantResults#1147908]
(64) Project
Arguments: [prodPlantResults#1147908]
(65) Generate
Arguments: explode(prodPlantResults#1147908.quantityKpiResults), false, [quantityKpiResults#1147875]
(66) Project
Arguments: [prodPlantResults#1147908.productId AS product#1147869, prodPlantResults#1147908.plantId AS plant#1147870, quantityKpiResults#1147875]
(67) Project
Arguments: [product#1147869, plant#1147870, quantityKpiResults#1147875, quantityKpiResults#1147875.quantity AS qty#1147876]
(68) Project
Arguments: [product#1147869, plant#1147870, quantityKpiResults#1147875, qty#1147876, cast(null as string) AS demandChannel#1147878]
(69) Project
Arguments: [product#1147869, plant#1147870, quantityKpiResults#1147875, qty#1147876, demandChannel#1147878, cast(null as string) AS demandStream#1147879]
(70) Project
Arguments: [product#1147869, plant#1147870, quantityKpiResults#1147875, qty#1147876, demandChannel#1147878, demandStream#1147879, quantityKpiResults#1147875.kpiResults AS kpis#1147880]
(71) Project
Arguments: [product#1147869, plant#1147870, qty#1147876, demandChannel#1147878, demandStream#1147879, kpis#1147880]
(72) Project
Arguments: [product#1147869, plant#1147870, kpis#1147880, qty#1147876, demandChannel#1147878, demandStream#1147879]
(73) ExternalRDD
Arguments: [obj#1147910]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90455), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90455), 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, 90455), 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, 90455), 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, 90455), 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, 90455), 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#1147911, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90456), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90456), 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, 90457), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90457), 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, 90457), 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, 90457), 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, 90458), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90458), 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, 90458), 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, 90458), 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, 90458), 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, 90457), 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, 90456), 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, 90459), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90459), 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, 90459), 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, 90459), 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, 90459), 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, 90456), 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, 90456), 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, 90456), 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, 90460), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90460), 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, 90461), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90461), 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, 90461), 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, 90461), 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, 90461), 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, 90460), 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, 90460), 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, 90456), 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#1147912]
(75) Generate
Arguments: explode(prodPlantResults#1147912), false, [prodPlantResults#1147913]
(76) Project
Arguments: [prodPlantResults#1147913]
(77) Generate
Arguments: explode(prodPlantResults#1147913.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1147897]
(78) Project
Arguments: [prodPlantResults#1147913.productId AS product#1147891, prodPlantResults#1147913.plantId AS plant#1147892, demandChannelStreamKpiResults#1147897]
(79) Project
Arguments: [product#1147891, plant#1147892, demandChannelStreamKpiResults#1147897, null AS qty#1147898]
(80) Project
Arguments: [product#1147891, plant#1147892, demandChannelStreamKpiResults#1147897, qty#1147898, demandChannelStreamKpiResults#1147897.demandChannel AS demandChannel#1147899]
(81) Project
Arguments: [product#1147891, plant#1147892, demandChannelStreamKpiResults#1147897, qty#1147898, demandChannel#1147899, demandChannelStreamKpiResults#1147897.demandStream AS demandStream#1147901]
(82) Project
Arguments: [product#1147891, plant#1147892, demandChannelStreamKpiResults#1147897, qty#1147898, demandChannel#1147899, demandStream#1147901, demandChannelStreamKpiResults#1147897.kpiResults AS kpis#1147903]
(83) Project
Arguments: [product#1147891, plant#1147892, qty#1147898, demandChannel#1147899, demandStream#1147901, kpis#1147903]
(84) Project
Arguments: [product#1147891, plant#1147892, kpis#1147903, qty#1147898, demandChannel#1147899, demandStream#1147901]
(85) Project
Arguments: [product#1147891, plant#1147892, kpis#1147903, cast(qty#1147898 as double) AS qty#1147914, demandChannel#1147899, demandStream#1147901]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1147882, plant#1147883, transform(kpis#1147884, lambdafunction(struct(label, lambda kpi#1147919.label, dateTime, lambda kpi#1147919.datetime, value, lambda kpi#1147919.value), lambda kpi#1147919, false)) AS kpis#1147918, qty#1147909, demandChannel#1147889, demandStream#1147890]
(88) Project
Arguments: [product#1147882, plant#1147883, qty#1147909, demandChannel#1147889, demandStream#1147890, kpis#1147918]
(89) LogicalRDD
Arguments: [shardId#1148727, worklistShardItemId#1148728L, version#1148729, product#1148730, plant#1148731, periodStart#1148732, periodEnd#1148733, qty#1148734], false
(90) RepartitionByExpression
Arguments: [product#1148730, plant#1148731], 37
(91) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, version#1148729, product#1148730, plant#1148731, qty#1148734]
(92) LogicalRDD
Arguments: [shardId#1148735, worklistShardItemId#1148736L, version#1148737, product#1148738, plant#1148739, periodStart#1148740, periodEnd#1148741, qty#1148742], false
(93) RepartitionByExpression
Arguments: [product#1148738, plant#1148739], 37
(94) Project
Arguments: [shardId#1148735, worklistShardItemId#1148736L, version#1148737, product#1148738, plant#1148739, qty#1148742]
(95) LogicalRDD
Arguments: [shardId#1148743, worklistShardItemId#1148744L, qty#1148745, demandChannel#1148746, demandStream#1148747, kpis#1148748], false
(96) Project
Arguments: [shardId#1148743 AS cachedShardId#1148749, worklistShardItemId#1148744L AS cachedWorklistShardItemId#1148750L, qty#1148745 AS cachedQty#1148751, demandChannel#1148746, demandStream#1148747, kpis#1148748 AS cachedKpis#1148752]
(97) Join
Arguments: Inner, (((worklistShardItemId#1148736L = cachedWorklistShardItemId#1148750L) AND (shardId#1148735 = cachedShardId#1148749)) AND ((qty#1148742 = cachedQty#1148751) OR isnull(qty#1148742)))
(98) Project
Arguments: [shardId#1148735, worklistShardItemId#1148736L, version#1148737, product#1148738, plant#1148739]
(99) Deduplicate
Arguments: [plant#1148739, shardId#1148735, version#1148737, worklistShardItemId#1148736L, product#1148738]
(100) LogicalRDD
Arguments: [shardId#1148753, worklistShardItemId#1148754L, qty#1148755, demandChannel#1148756, demandStream#1148757, kpis#1148758], false
(101) Project
Arguments: [shardId#1148753 AS cachedShardId#1148759, worklistShardItemId#1148754L AS cachedWorklistShardItemId#1148760L, qty#1148755 AS cachedQty#1148761, demandChannel#1148756, demandStream#1148757, kpis#1148758 AS cachedKpis#1148762]
(102) Join
Arguments: Inner, ((worklistShardItemId#1148736L = cachedWorklistShardItemId#1148760L) AND (shardId#1148735 = cachedShardId#1148759))
(103) Project
Arguments: [shardId#1148735, worklistShardItemId#1148736L, version#1148737, product#1148738, plant#1148739, cachedQty#1148761 AS qty#1148763, demandChannel#1148756, demandStream#1148757, cachedKpis#1148762 AS kpis#1148764]
(104) Project
Arguments: [shardId#1148735, worklistShardItemId#1148736L, version#1148737, product#1148738, plant#1148739, qty#1148763]
(105) LogicalRDD
Arguments: [shardId#1148765, worklistShardItemId#1148766L, version#1148767, product#1148768, plant#1148769, periodStart#1148770, periodEnd#1148771, qty#1148772], false
(106) RepartitionByExpression
Arguments: [product#1148768, plant#1148769], 37
(107) Project
Arguments: [shardId#1148765, worklistShardItemId#1148766L, version#1148767, product#1148768, plant#1148769, qty#1148772]
(108) LogicalRDD
Arguments: [shardId#1148773, worklistShardItemId#1148774L, qty#1148775, demandChannel#1148776, demandStream#1148777, kpis#1148778], false
(109) Project
Arguments: [shardId#1148773 AS cachedShardId#1148779, worklistShardItemId#1148774L AS cachedWorklistShardItemId#1148780L, qty#1148775 AS cachedQty#1148781, demandChannel#1148776, demandStream#1148777, kpis#1148778 AS cachedKpis#1148782]
(110) Join
Arguments: Inner, (((worklistShardItemId#1148766L = cachedWorklistShardItemId#1148780L) AND (shardId#1148765 = cachedShardId#1148779)) AND isnull(qty#1148772))
(111) Project
Arguments: [shardId#1148765, worklistShardItemId#1148766L, version#1148767, product#1148768, plant#1148769, qty#1148772]
(112) Project
Arguments: [shardId#1148765, worklistShardItemId#1148766L, version#1148767, product#1148768, plant#1148769, qty#1148772]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1148727 <=> shardId#1148735) AND (worklistShardItemId#1148728L <=> worklistShardItemId#1148736L)) AND (version#1148729 <=> version#1148737)) AND (product#1148730 <=> product#1148738)) AND (plant#1148731 <=> plant#1148739)) AND (qty#1148734 <=> qty#1148763))
(115) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, version#1148729, product#1148730, plant#1148731, qty#1148734]
(116) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, version#1148729, product#1148730, plant#1148731, qty#1148734, cast(null as string) AS demandChannel#1148783]
(117) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, version#1148729, product#1148730, plant#1148731, qty#1148734, demandChannel#1148783, cast(null as string) AS demandStream#1148784]
(118) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, version#1148729, product#1148730, plant#1148731, qty#1148734, demandChannel#1148783, demandStream#1148784, array() AS kpis#1148785]
(119) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, version#1148729, product#1148730, plant#1148731, qty#1148734, demandChannel#1148783, demandStream#1148784, kpis#1148785, true AS isNewlyCalculated#1148786]
(120) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, version#1148729, product#1148730, plant#1148731, qty#1148734, demandChannel#1148783, demandStream#1148784, cast(kpis#1148785 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1148787, isNewlyCalculated#1148786]
(121) LogicalRDD
Arguments: [shardId#1148788, worklistShardItemId#1148789L, version#1148790, product#1148791, plant#1148792, periodStart#1148793, periodEnd#1148794, qty#1148795], false
(122) RepartitionByExpression
Arguments: [product#1148791, plant#1148792], 37
(123) Project
Arguments: [shardId#1148788, worklistShardItemId#1148789L, version#1148790, product#1148791, plant#1148792, qty#1148795]
(124) LogicalRDD
Arguments: [shardId#1148796, worklistShardItemId#1148797L, qty#1148798, demandChannel#1148799, demandStream#1148800, kpis#1148801], false
(125) Project
Arguments: [shardId#1148796 AS cachedShardId#1148802, worklistShardItemId#1148797L AS cachedWorklistShardItemId#1148803L, qty#1148798 AS cachedQty#1148804, demandChannel#1148799, demandStream#1148800, kpis#1148801 AS cachedKpis#1148805]
(126) Join
Arguments: Inner, (((worklistShardItemId#1148789L = cachedWorklistShardItemId#1148803L) AND (shardId#1148788 = cachedShardId#1148802)) AND ((qty#1148795 = cachedQty#1148804) OR isnull(qty#1148795)))
(127) Project
Arguments: [shardId#1148788, worklistShardItemId#1148789L, version#1148790, product#1148791, plant#1148792]
(128) Deduplicate
Arguments: [plant#1148792, shardId#1148788, version#1148790, worklistShardItemId#1148789L, product#1148791]
(129) LogicalRDD
Arguments: [shardId#1148806, worklistShardItemId#1148807L, qty#1148808, demandChannel#1148809, demandStream#1148810, kpis#1148811], false
(130) Project
Arguments: [shardId#1148806 AS cachedShardId#1148812, worklistShardItemId#1148807L AS cachedWorklistShardItemId#1148813L, qty#1148808 AS cachedQty#1148814, demandChannel#1148809, demandStream#1148810, kpis#1148811 AS cachedKpis#1148815]
(131) Join
Arguments: Inner, ((worklistShardItemId#1148789L = cachedWorklistShardItemId#1148813L) AND (shardId#1148788 = cachedShardId#1148812))
(132) Project
Arguments: [shardId#1148788, worklistShardItemId#1148789L, version#1148790, product#1148791, plant#1148792, cachedQty#1148814 AS qty#1148816, demandChannel#1148809, demandStream#1148810, cachedKpis#1148815 AS kpis#1148817]
(133) Project
Arguments: [shardId#1148788, worklistShardItemId#1148789L, version#1148790, product#1148791, plant#1148792, qty#1148816, demandChannel#1148809, demandStream#1148810, kpis#1148817, false AS isNewlyCalculated#1148818]
(134) Project
Arguments: [shardId#1148788, worklistShardItemId#1148789L, version#1148790, product#1148791, plant#1148792, qty#1148816, demandChannel#1148809, demandStream#1148810, kpis#1148817, isNewlyCalculated#1148818]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1148786 <=> true)
(137) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, product#1148730, plant#1148731, qty#1148734, kpis#1148787]
(138) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, product#1148730, plant#1148731, qty#1148734]
(139) Deduplicate
Arguments: [plant#1148731, shardId#1148727, qty#1148734, worklistShardItemId#1148728L, product#1148730]
(140) Join
Arguments: Inner, ((product#1147882 <=> product#1148730) AND ((plant#1147883 <=> plant#1148731) AND ((qty#1147909 <=> qty#1148734) OR isnull(qty#1148734))))
(141) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, qty#1147909, demandChannel#1147889, demandStream#1147890, kpis#1147918]
(142) Deduplicate
Arguments: [demandChannel#1147889, shardId#1148727, qty#1147909, worklistShardItemId#1148728L, demandStream#1147890]
(143) Project
Arguments: [shardId#1148727, worklistShardItemId#1148728L, qty#1147909, demandChannel#1147889, demandStream#1147890, kpis#1147918]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821, product#1148822, plant#1148823, periodStart#1148824, periodEnd#1148825, qty#1148826], false
(146) RepartitionByExpression
Arguments: [product#1148822, plant#1148823], 37
(147) Project
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821, product#1148822, plant#1148823, qty#1148826]
(148) LogicalRDD
Arguments: [shardId#1148827, worklistShardItemId#1148828L, version#1148829, product#1148830, plant#1148831, periodStart#1148832, periodEnd#1148833, qty#1148834], false
(149) RepartitionByExpression
Arguments: [product#1148830, plant#1148831], 37
(150) Project
Arguments: [shardId#1148827, worklistShardItemId#1148828L, version#1148829, product#1148830, plant#1148831, qty#1148834]
(151) LogicalRDD
Arguments: [shardId#1148835, worklistShardItemId#1148836L, qty#1148837, demandChannel#1148838, demandStream#1148839, kpis#1148840], false
(152) Project
Arguments: [shardId#1148835 AS cachedShardId#1148841, worklistShardItemId#1148836L AS cachedWorklistShardItemId#1148842L, qty#1148837 AS cachedQty#1148843, demandChannel#1148838, demandStream#1148839, kpis#1148840 AS cachedKpis#1148844]
(153) Join
Arguments: Inner, (((worklistShardItemId#1148828L = cachedWorklistShardItemId#1148842L) AND (shardId#1148827 = cachedShardId#1148841)) AND ((qty#1148834 = cachedQty#1148843) OR isnull(qty#1148834)))
(154) Project
Arguments: [shardId#1148827, worklistShardItemId#1148828L, version#1148829, product#1148830, plant#1148831]
(155) Deduplicate
Arguments: [plant#1148831, shardId#1148827, version#1148829, worklistShardItemId#1148828L, product#1148830]
(156) LogicalRDD
Arguments: [shardId#1148845, worklistShardItemId#1148846L, qty#1148847, demandChannel#1148848, demandStream#1148849, kpis#1148850], false
(157) Project
Arguments: [shardId#1148845 AS cachedShardId#1148851, worklistShardItemId#1148846L AS cachedWorklistShardItemId#1148852L, qty#1148847 AS cachedQty#1148853, demandChannel#1148848, demandStream#1148849, kpis#1148850 AS cachedKpis#1148854]
(158) Join
Arguments: Inner, ((worklistShardItemId#1148828L = cachedWorklistShardItemId#1148852L) AND (shardId#1148827 = cachedShardId#1148851))
(159) Project
Arguments: [shardId#1148827, worklistShardItemId#1148828L, version#1148829, product#1148830, plant#1148831, cachedQty#1148853 AS qty#1148855, demandChannel#1148848, demandStream#1148849, cachedKpis#1148854 AS kpis#1148856]
(160) Project
Arguments: [shardId#1148827, worklistShardItemId#1148828L, version#1148829, product#1148830, plant#1148831, qty#1148855]
(161) LogicalRDD
Arguments: [shardId#1148857, worklistShardItemId#1148858L, version#1148859, product#1148860, plant#1148861, periodStart#1148862, periodEnd#1148863, qty#1148864], false
(162) RepartitionByExpression
Arguments: [product#1148860, plant#1148861], 37
(163) Project
Arguments: [shardId#1148857, worklistShardItemId#1148858L, version#1148859, product#1148860, plant#1148861, qty#1148864]
(164) LogicalRDD
Arguments: [shardId#1148865, worklistShardItemId#1148866L, qty#1148867, demandChannel#1148868, demandStream#1148869, kpis#1148870], false
(165) Project
Arguments: [shardId#1148865 AS cachedShardId#1148871, worklistShardItemId#1148866L AS cachedWorklistShardItemId#1148872L, qty#1148867 AS cachedQty#1148873, demandChannel#1148868, demandStream#1148869, kpis#1148870 AS cachedKpis#1148874]
(166) Join
Arguments: Inner, (((worklistShardItemId#1148858L = cachedWorklistShardItemId#1148872L) AND (shardId#1148857 = cachedShardId#1148871)) AND isnull(qty#1148864))
(167) Project
Arguments: [shardId#1148857, worklistShardItemId#1148858L, version#1148859, product#1148860, plant#1148861, qty#1148864]
(168) Project
Arguments: [shardId#1148857, worklistShardItemId#1148858L, version#1148859, product#1148860, plant#1148861, qty#1148864]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1148819 <=> shardId#1148827) AND (worklistShardItemId#1148820L <=> worklistShardItemId#1148828L)) AND (version#1148821 <=> version#1148829)) AND (product#1148822 <=> product#1148830)) AND (plant#1148823 <=> plant#1148831)) AND (qty#1148826 <=> qty#1148855))
(171) Project
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821, product#1148822, plant#1148823, qty#1148826]
(172) Project
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821, product#1148822, plant#1148823, qty#1148826, cast(null as string) AS demandChannel#1148875]
(173) Project
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821, product#1148822, plant#1148823, qty#1148826, demandChannel#1148875, cast(null as string) AS demandStream#1148876]
(174) Project
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821, product#1148822, plant#1148823, qty#1148826, demandChannel#1148875, demandStream#1148876, array() AS kpis#1148877]
(175) Project
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821, product#1148822, plant#1148823, qty#1148826, demandChannel#1148875, demandStream#1148876, kpis#1148877, true AS isNewlyCalculated#1148878]
(176) Project
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821, product#1148822, plant#1148823, qty#1148826, demandChannel#1148875, demandStream#1148876, cast(kpis#1148877 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1148879, isNewlyCalculated#1148878]
(177) LogicalRDD
Arguments: [shardId#1148880, worklistShardItemId#1148881L, version#1148882, product#1148883, plant#1148884, periodStart#1148885, periodEnd#1148886, qty#1148887], false
(178) RepartitionByExpression
Arguments: [product#1148883, plant#1148884], 37
(179) Project
Arguments: [shardId#1148880, worklistShardItemId#1148881L, version#1148882, product#1148883, plant#1148884, qty#1148887]
(180) LogicalRDD
Arguments: [shardId#1148888, worklistShardItemId#1148889L, qty#1148890, demandChannel#1148891, demandStream#1148892, kpis#1148893], false
(181) Project
Arguments: [shardId#1148888 AS cachedShardId#1148894, worklistShardItemId#1148889L AS cachedWorklistShardItemId#1148895L, qty#1148890 AS cachedQty#1148896, demandChannel#1148891, demandStream#1148892, kpis#1148893 AS cachedKpis#1148897]
(182) Join
Arguments: Inner, (((worklistShardItemId#1148881L = cachedWorklistShardItemId#1148895L) AND (shardId#1148880 = cachedShardId#1148894)) AND ((qty#1148887 = cachedQty#1148896) OR isnull(qty#1148887)))
(183) Project
Arguments: [shardId#1148880, worklistShardItemId#1148881L, version#1148882, product#1148883, plant#1148884]
(184) Deduplicate
Arguments: [plant#1148884, shardId#1148880, version#1148882, worklistShardItemId#1148881L, product#1148883]
(185) LogicalRDD
Arguments: [shardId#1148898, worklistShardItemId#1148899L, qty#1148900, demandChannel#1148901, demandStream#1148902, kpis#1148903], false
(186) Project
Arguments: [shardId#1148898 AS cachedShardId#1148904, worklistShardItemId#1148899L AS cachedWorklistShardItemId#1148905L, qty#1148900 AS cachedQty#1148906, demandChannel#1148901, demandStream#1148902, kpis#1148903 AS cachedKpis#1148907]
(187) Join
Arguments: Inner, ((worklistShardItemId#1148881L = cachedWorklistShardItemId#1148905L) AND (shardId#1148880 = cachedShardId#1148904))
(188) Project
Arguments: [shardId#1148880, worklistShardItemId#1148881L, version#1148882, product#1148883, plant#1148884, cachedQty#1148906 AS qty#1148908, demandChannel#1148901, demandStream#1148902, cachedKpis#1148907 AS kpis#1148909]
(189) Project
Arguments: [shardId#1148880, worklistShardItemId#1148881L, version#1148882, product#1148883, plant#1148884, qty#1148908, demandChannel#1148901, demandStream#1148902, kpis#1148909, false AS isNewlyCalculated#1148910]
(190) Project
Arguments: [shardId#1148880, worklistShardItemId#1148881L, version#1148882, product#1148883, plant#1148884, qty#1148908, demandChannel#1148901, demandStream#1148902, kpis#1148909, isNewlyCalculated#1148910]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1148819, worklistShardItemId#1148820L, version#1148821]
(193) Aggregate
Arguments: [shardId#1148819, worklistShardItemId#1148820L], [shardId#1148819, worklistShardItemId#1148820L, (max(version#1148821) + 1) AS version#1148722]
(194) Join
Arguments: Inner, ((shardId#1100457 = shardId#1148819) AND (worklistShardItemId#1100458L = worklistShardItemId#1148820L))
(195) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1145353, demandStream#1145354, kpis#1145388, version#1148722]
(196) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1148722, qty#1100464, demandChannel#1145353, demandStream#1145354, kpis#1145388]