== 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@2b5f8286, [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#1061761, worklistShardItemId#1061762L, version#1061763, product#1061764, plant#1061765, periodStart#1061766, periodEnd#1061767, qty#1061768], false
(7) RepartitionByExpression
Arguments: [product#1061764, plant#1061765], 37
(8) Project
Arguments: [shardId#1061761, worklistShardItemId#1061762L, version#1061763, product#1061764, plant#1061765, qty#1061768]
(9) LogicalRDD
Arguments: [shardId#1061516, worklistShardItemId#1061517L, qty#1061518, demandChannel#1061519, demandStream#1061520, kpis#1061521], false
(10) Project
Arguments: [shardId#1061516 AS cachedShardId#1061522, worklistShardItemId#1061517L AS cachedWorklistShardItemId#1061523L, qty#1061518 AS cachedQty#1061524, demandChannel#1061519, demandStream#1061520, kpis#1061521 AS cachedKpis#1061525]
(11) Join
Arguments: Inner, (((worklistShardItemId#1061762L = cachedWorklistShardItemId#1061523L) AND (shardId#1061761 = cachedShardId#1061522)) AND ((qty#1061768 = cachedQty#1061524) OR isnull(qty#1061768)))
(12) Project
Arguments: [shardId#1061761, worklistShardItemId#1061762L, version#1061763, product#1061764, plant#1061765]
(13) Deduplicate
Arguments: [plant#1061765, shardId#1061761, version#1061763, worklistShardItemId#1061762L, product#1061764]
(14) LogicalRDD
Arguments: [shardId#1061526, worklistShardItemId#1061527L, qty#1061528, demandChannel#1061529, demandStream#1061530, kpis#1061531], false
(15) Project
Arguments: [shardId#1061526 AS cachedShardId#1061532, worklistShardItemId#1061527L AS cachedWorklistShardItemId#1061533L, qty#1061528 AS cachedQty#1061534, demandChannel#1061529, demandStream#1061530, kpis#1061531 AS cachedKpis#1061535]
(16) Join
Arguments: Inner, ((worklistShardItemId#1061762L = cachedWorklistShardItemId#1061533L) AND (shardId#1061761 = cachedShardId#1061532))
(17) Project
Arguments: [shardId#1061761, worklistShardItemId#1061762L, version#1061763, product#1061764, plant#1061765, cachedQty#1061534 AS qty#1061536, demandChannel#1061529, demandStream#1061530, cachedKpis#1061535 AS kpis#1061537]
(18) Project
Arguments: [shardId#1061761, worklistShardItemId#1061762L, version#1061763, product#1061764, plant#1061765, qty#1061536]
(19) LogicalRDD
Arguments: [shardId#1061743, worklistShardItemId#1061744L, version#1061745, product#1061746, plant#1061747, periodStart#1061748, periodEnd#1061749, qty#1061750], false
(20) RepartitionByExpression
Arguments: [product#1061746, plant#1061747], 37
(21) Project
Arguments: [shardId#1061743, worklistShardItemId#1061744L, version#1061745, product#1061746, plant#1061747, qty#1061750]
(22) LogicalRDD
Arguments: [shardId#1061751, worklistShardItemId#1061752L, qty#1061753, demandChannel#1061754, demandStream#1061755, kpis#1061756], false
(23) Project
Arguments: [shardId#1061751 AS cachedShardId#1061757, worklistShardItemId#1061752L AS cachedWorklistShardItemId#1061758L, qty#1061753 AS cachedQty#1061759, demandChannel#1061754, demandStream#1061755, kpis#1061756 AS cachedKpis#1061760]
(24) Join
Arguments: Inner, (((worklistShardItemId#1061744L = cachedWorklistShardItemId#1061758L) AND (shardId#1061743 = cachedShardId#1061757)) AND isnull(qty#1061750))
(25) Project
Arguments: [shardId#1061743, worklistShardItemId#1061744L, version#1061745, product#1061746, plant#1061747, qty#1061750]
(26) Project
Arguments: [shardId#1061743, worklistShardItemId#1061744L, version#1061745, product#1061746, plant#1061747, qty#1061750]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1011815 <=> shardId#1061761) AND (worklistShardItemId#1011816L <=> worklistShardItemId#1061762L)) AND (version#1011817 <=> version#1061763)) AND (product#1011818 <=> product#1061764)) AND (plant#1011819 <=> plant#1061765)) AND (qty#1011822 <=> qty#1061536))
(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#1061769]
(31) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1061769, cast(null as string) AS demandStream#1061770]
(32) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1061769, demandStream#1061770, array() AS kpis#1061771]
(33) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1061769, demandStream#1061770, kpis#1061771, true AS isNewlyCalculated#1061772]
(34) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1061769, demandStream#1061770, cast(kpis#1061771 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1061804, isNewlyCalculated#1061772]
(35) LogicalRDD
Arguments: [shardId#1061774, worklistShardItemId#1061775L, version#1061776, product#1061777, plant#1061778, periodStart#1061779, periodEnd#1061780, qty#1061781], false
(36) RepartitionByExpression
Arguments: [product#1061777, plant#1061778], 37
(37) Project
Arguments: [shardId#1061774, worklistShardItemId#1061775L, version#1061776, product#1061777, plant#1061778, qty#1061781]
(38) LogicalRDD
Arguments: [shardId#1061782, worklistShardItemId#1061783L, qty#1061784, demandChannel#1061785, demandStream#1061786, kpis#1061787], false
(39) Project
Arguments: [shardId#1061782 AS cachedShardId#1061788, worklistShardItemId#1061783L AS cachedWorklistShardItemId#1061789L, qty#1061784 AS cachedQty#1061790, demandChannel#1061785, demandStream#1061786, kpis#1061787 AS cachedKpis#1061791]
(40) Join
Arguments: Inner, (((worklistShardItemId#1061775L = cachedWorklistShardItemId#1061789L) AND (shardId#1061774 = cachedShardId#1061788)) AND ((qty#1061781 = cachedQty#1061790) OR isnull(qty#1061781)))
(41) Project
Arguments: [shardId#1061774, worklistShardItemId#1061775L, version#1061776, product#1061777, plant#1061778]
(42) Deduplicate
Arguments: [plant#1061778, shardId#1061774, version#1061776, worklistShardItemId#1061775L, product#1061777]
(43) LogicalRDD
Arguments: [shardId#1061792, worklistShardItemId#1061793L, qty#1061794, demandChannel#1061795, demandStream#1061796, kpis#1061797], false
(44) Project
Arguments: [shardId#1061792 AS cachedShardId#1061798, worklistShardItemId#1061793L AS cachedWorklistShardItemId#1061799L, qty#1061794 AS cachedQty#1061800, demandChannel#1061795, demandStream#1061796, kpis#1061797 AS cachedKpis#1061801]
(45) Join
Arguments: Inner, ((worklistShardItemId#1061775L = cachedWorklistShardItemId#1061799L) AND (shardId#1061774 = cachedShardId#1061798))
(46) Project
Arguments: [shardId#1061774, worklistShardItemId#1061775L, version#1061776, product#1061777, plant#1061778, cachedQty#1061800 AS qty#1061802, demandChannel#1061795, demandStream#1061796, cachedKpis#1061801 AS kpis#1061803]
(47) Project
Arguments: [shardId#1061774, worklistShardItemId#1061775L, version#1061776, product#1061777, plant#1061778, qty#1061802, demandChannel#1061795, demandStream#1061796, kpis#1061803, false AS isNewlyCalculated#1061773]
(48) Project
Arguments: [shardId#1061774, worklistShardItemId#1061775L, version#1061776, product#1061777, plant#1061778, qty#1061802, demandChannel#1061795, demandStream#1061796, kpis#1061803, isNewlyCalculated#1061773]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1061772 <=> false)
(51) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1061769, demandStream#1061770, kpis#1061804]
(52) ExternalRDD
Arguments: [obj#1064268]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84127), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84127), 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, 84127), 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, 84127), 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, 84127), 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, 84127), 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#1064271, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84128), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84128), 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, 84129), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84129), 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, 84129), 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, 84129), 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, 84130), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84130), 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, 84130), 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, 84130), 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, 84130), 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, 84129), 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, 84128), 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, 84131), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84131), 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, 84131), 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, 84131), 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, 84131), 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, 84128), 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, 84128), 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, 84128), 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, 84132), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84132), 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, 84133), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84133), 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, 84133), 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, 84133), 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, 84133), 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, 84132), 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, 84132), 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, 84128), 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#1064272]
(54) Generate
Arguments: explode(prodPlantResults#1064272), false, [prodPlantResults#1064279]
(55) Project
Arguments: [prodPlantResults#1064279]
(56) Project
Arguments: [prodPlantResults#1064279.productId AS product#1064298, prodPlantResults#1064279.plantId AS plant#1064299, prodPlantResults#1064279.kpiResults AS kpis#1064300]
(57) Project
Arguments: [product#1064298, plant#1064299, kpis#1064300, null AS qty#1064304]
(58) Project
Arguments: [product#1064298, plant#1064299, kpis#1064300, qty#1064304, cast(null as string) AS demandChannel#1064305]
(59) Project
Arguments: [product#1064298, plant#1064299, kpis#1064300, qty#1064304, demandChannel#1064305, cast(null as string) AS demandStream#1064306]
(60) Project
Arguments: [product#1064298, plant#1064299, kpis#1064300, cast(qty#1064304 as double) AS qty#1064325, demandChannel#1064305, demandStream#1064306]
(61) ExternalRDD
Arguments: [obj#1064321]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84127), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84127), 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, 84127), 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, 84127), 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, 84127), 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, 84127), 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#1064322, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84128), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84128), 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, 84129), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84129), 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, 84129), 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, 84129), 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, 84130), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84130), 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, 84130), 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, 84130), 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, 84130), 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, 84129), 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, 84128), 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, 84131), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84131), 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, 84131), 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, 84131), 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, 84131), 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, 84128), 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, 84128), 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, 84128), 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, 84132), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84132), 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, 84133), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84133), 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, 84133), 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, 84133), 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, 84133), 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, 84132), 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, 84132), 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, 84128), 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#1064323]
(63) Generate
Arguments: explode(prodPlantResults#1064323), false, [prodPlantResults#1064324]
(64) Project
Arguments: [prodPlantResults#1064324]
(65) Generate
Arguments: explode(prodPlantResults#1064324.quantityKpiResults), false, [quantityKpiResults#1064291]
(66) Project
Arguments: [prodPlantResults#1064324.productId AS product#1064285, prodPlantResults#1064324.plantId AS plant#1064286, quantityKpiResults#1064291]
(67) Project
Arguments: [product#1064285, plant#1064286, quantityKpiResults#1064291, quantityKpiResults#1064291.quantity AS qty#1064292]
(68) Project
Arguments: [product#1064285, plant#1064286, quantityKpiResults#1064291, qty#1064292, cast(null as string) AS demandChannel#1064294]
(69) Project
Arguments: [product#1064285, plant#1064286, quantityKpiResults#1064291, qty#1064292, demandChannel#1064294, cast(null as string) AS demandStream#1064295]
(70) Project
Arguments: [product#1064285, plant#1064286, quantityKpiResults#1064291, qty#1064292, demandChannel#1064294, demandStream#1064295, quantityKpiResults#1064291.kpiResults AS kpis#1064296]
(71) Project
Arguments: [product#1064285, plant#1064286, qty#1064292, demandChannel#1064294, demandStream#1064295, kpis#1064296]
(72) Project
Arguments: [product#1064285, plant#1064286, kpis#1064296, qty#1064292, demandChannel#1064294, demandStream#1064295]
(73) ExternalRDD
Arguments: [obj#1064326]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84127), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84127), 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, 84127), 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, 84127), 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, 84127), 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, 84127), 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#1064327, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84128), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84128), 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, 84129), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84129), 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, 84129), 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, 84129), 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, 84130), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84130), 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, 84130), 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, 84130), 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, 84130), 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, 84129), 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, 84128), 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, 84131), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84131), 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, 84131), 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, 84131), 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, 84131), 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, 84128), 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, 84128), 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, 84128), 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, 84132), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84132), 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, 84133), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 84133), 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, 84133), 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, 84133), 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, 84133), 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, 84132), 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, 84132), 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, 84128), 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#1064328]
(75) Generate
Arguments: explode(prodPlantResults#1064328), false, [prodPlantResults#1064329]
(76) Project
Arguments: [prodPlantResults#1064329]
(77) Generate
Arguments: explode(prodPlantResults#1064329.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1064313]
(78) Project
Arguments: [prodPlantResults#1064329.productId AS product#1064307, prodPlantResults#1064329.plantId AS plant#1064308, demandChannelStreamKpiResults#1064313]
(79) Project
Arguments: [product#1064307, plant#1064308, demandChannelStreamKpiResults#1064313, null AS qty#1064314]
(80) Project
Arguments: [product#1064307, plant#1064308, demandChannelStreamKpiResults#1064313, qty#1064314, demandChannelStreamKpiResults#1064313.demandChannel AS demandChannel#1064315]
(81) Project
Arguments: [product#1064307, plant#1064308, demandChannelStreamKpiResults#1064313, qty#1064314, demandChannel#1064315, demandChannelStreamKpiResults#1064313.demandStream AS demandStream#1064317]
(82) Project
Arguments: [product#1064307, plant#1064308, demandChannelStreamKpiResults#1064313, qty#1064314, demandChannel#1064315, demandStream#1064317, demandChannelStreamKpiResults#1064313.kpiResults AS kpis#1064319]
(83) Project
Arguments: [product#1064307, plant#1064308, qty#1064314, demandChannel#1064315, demandStream#1064317, kpis#1064319]
(84) Project
Arguments: [product#1064307, plant#1064308, kpis#1064319, qty#1064314, demandChannel#1064315, demandStream#1064317]
(85) Project
Arguments: [product#1064307, plant#1064308, kpis#1064319, cast(qty#1064314 as double) AS qty#1064330, demandChannel#1064315, demandStream#1064317]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1064298, plant#1064299, transform(kpis#1064300, lambdafunction(struct(label, lambda kpi#1064335.label, dateTime, lambda kpi#1064335.datetime, value, lambda kpi#1064335.value), lambda kpi#1064335, false)) AS kpis#1064334, qty#1064325, demandChannel#1064305, demandStream#1064306]
(88) Project
Arguments: [product#1064298, plant#1064299, qty#1064325, demandChannel#1064305, demandStream#1064306, kpis#1064334]
(89) LogicalRDD
Arguments: [shardId#1065143, worklistShardItemId#1065144L, version#1065145, product#1065146, plant#1065147, periodStart#1065148, periodEnd#1065149, qty#1065150], false
(90) RepartitionByExpression
Arguments: [product#1065146, plant#1065147], 37
(91) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, version#1065145, product#1065146, plant#1065147, qty#1065150]
(92) LogicalRDD
Arguments: [shardId#1065151, worklistShardItemId#1065152L, version#1065153, product#1065154, plant#1065155, periodStart#1065156, periodEnd#1065157, qty#1065158], false
(93) RepartitionByExpression
Arguments: [product#1065154, plant#1065155], 37
(94) Project
Arguments: [shardId#1065151, worklistShardItemId#1065152L, version#1065153, product#1065154, plant#1065155, qty#1065158]
(95) LogicalRDD
Arguments: [shardId#1065159, worklistShardItemId#1065160L, qty#1065161, demandChannel#1065162, demandStream#1065163, kpis#1065164], false
(96) Project
Arguments: [shardId#1065159 AS cachedShardId#1065165, worklistShardItemId#1065160L AS cachedWorklistShardItemId#1065166L, qty#1065161 AS cachedQty#1065167, demandChannel#1065162, demandStream#1065163, kpis#1065164 AS cachedKpis#1065168]
(97) Join
Arguments: Inner, (((worklistShardItemId#1065152L = cachedWorklistShardItemId#1065166L) AND (shardId#1065151 = cachedShardId#1065165)) AND ((qty#1065158 = cachedQty#1065167) OR isnull(qty#1065158)))
(98) Project
Arguments: [shardId#1065151, worklistShardItemId#1065152L, version#1065153, product#1065154, plant#1065155]
(99) Deduplicate
Arguments: [plant#1065155, shardId#1065151, version#1065153, worklistShardItemId#1065152L, product#1065154]
(100) LogicalRDD
Arguments: [shardId#1065169, worklistShardItemId#1065170L, qty#1065171, demandChannel#1065172, demandStream#1065173, kpis#1065174], false
(101) Project
Arguments: [shardId#1065169 AS cachedShardId#1065175, worklistShardItemId#1065170L AS cachedWorklistShardItemId#1065176L, qty#1065171 AS cachedQty#1065177, demandChannel#1065172, demandStream#1065173, kpis#1065174 AS cachedKpis#1065178]
(102) Join
Arguments: Inner, ((worklistShardItemId#1065152L = cachedWorklistShardItemId#1065176L) AND (shardId#1065151 = cachedShardId#1065175))
(103) Project
Arguments: [shardId#1065151, worklistShardItemId#1065152L, version#1065153, product#1065154, plant#1065155, cachedQty#1065177 AS qty#1065179, demandChannel#1065172, demandStream#1065173, cachedKpis#1065178 AS kpis#1065180]
(104) Project
Arguments: [shardId#1065151, worklistShardItemId#1065152L, version#1065153, product#1065154, plant#1065155, qty#1065179]
(105) LogicalRDD
Arguments: [shardId#1065181, worklistShardItemId#1065182L, version#1065183, product#1065184, plant#1065185, periodStart#1065186, periodEnd#1065187, qty#1065188], false
(106) RepartitionByExpression
Arguments: [product#1065184, plant#1065185], 37
(107) Project
Arguments: [shardId#1065181, worklistShardItemId#1065182L, version#1065183, product#1065184, plant#1065185, qty#1065188]
(108) LogicalRDD
Arguments: [shardId#1065189, worklistShardItemId#1065190L, qty#1065191, demandChannel#1065192, demandStream#1065193, kpis#1065194], false
(109) Project
Arguments: [shardId#1065189 AS cachedShardId#1065195, worklistShardItemId#1065190L AS cachedWorklistShardItemId#1065196L, qty#1065191 AS cachedQty#1065197, demandChannel#1065192, demandStream#1065193, kpis#1065194 AS cachedKpis#1065198]
(110) Join
Arguments: Inner, (((worklistShardItemId#1065182L = cachedWorklistShardItemId#1065196L) AND (shardId#1065181 = cachedShardId#1065195)) AND isnull(qty#1065188))
(111) Project
Arguments: [shardId#1065181, worklistShardItemId#1065182L, version#1065183, product#1065184, plant#1065185, qty#1065188]
(112) Project
Arguments: [shardId#1065181, worklistShardItemId#1065182L, version#1065183, product#1065184, plant#1065185, qty#1065188]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1065143 <=> shardId#1065151) AND (worklistShardItemId#1065144L <=> worklistShardItemId#1065152L)) AND (version#1065145 <=> version#1065153)) AND (product#1065146 <=> product#1065154)) AND (plant#1065147 <=> plant#1065155)) AND (qty#1065150 <=> qty#1065179))
(115) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, version#1065145, product#1065146, plant#1065147, qty#1065150]
(116) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, version#1065145, product#1065146, plant#1065147, qty#1065150, cast(null as string) AS demandChannel#1065199]
(117) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, version#1065145, product#1065146, plant#1065147, qty#1065150, demandChannel#1065199, cast(null as string) AS demandStream#1065200]
(118) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, version#1065145, product#1065146, plant#1065147, qty#1065150, demandChannel#1065199, demandStream#1065200, array() AS kpis#1065201]
(119) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, version#1065145, product#1065146, plant#1065147, qty#1065150, demandChannel#1065199, demandStream#1065200, kpis#1065201, true AS isNewlyCalculated#1065202]
(120) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, version#1065145, product#1065146, plant#1065147, qty#1065150, demandChannel#1065199, demandStream#1065200, cast(kpis#1065201 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1065203, isNewlyCalculated#1065202]
(121) LogicalRDD
Arguments: [shardId#1065204, worklistShardItemId#1065205L, version#1065206, product#1065207, plant#1065208, periodStart#1065209, periodEnd#1065210, qty#1065211], false
(122) RepartitionByExpression
Arguments: [product#1065207, plant#1065208], 37
(123) Project
Arguments: [shardId#1065204, worklistShardItemId#1065205L, version#1065206, product#1065207, plant#1065208, qty#1065211]
(124) LogicalRDD
Arguments: [shardId#1065212, worklistShardItemId#1065213L, qty#1065214, demandChannel#1065215, demandStream#1065216, kpis#1065217], false
(125) Project
Arguments: [shardId#1065212 AS cachedShardId#1065218, worklistShardItemId#1065213L AS cachedWorklistShardItemId#1065219L, qty#1065214 AS cachedQty#1065220, demandChannel#1065215, demandStream#1065216, kpis#1065217 AS cachedKpis#1065221]
(126) Join
Arguments: Inner, (((worklistShardItemId#1065205L = cachedWorklistShardItemId#1065219L) AND (shardId#1065204 = cachedShardId#1065218)) AND ((qty#1065211 = cachedQty#1065220) OR isnull(qty#1065211)))
(127) Project
Arguments: [shardId#1065204, worklistShardItemId#1065205L, version#1065206, product#1065207, plant#1065208]
(128) Deduplicate
Arguments: [plant#1065208, shardId#1065204, version#1065206, worklistShardItemId#1065205L, product#1065207]
(129) LogicalRDD
Arguments: [shardId#1065222, worklistShardItemId#1065223L, qty#1065224, demandChannel#1065225, demandStream#1065226, kpis#1065227], false
(130) Project
Arguments: [shardId#1065222 AS cachedShardId#1065228, worklistShardItemId#1065223L AS cachedWorklistShardItemId#1065229L, qty#1065224 AS cachedQty#1065230, demandChannel#1065225, demandStream#1065226, kpis#1065227 AS cachedKpis#1065231]
(131) Join
Arguments: Inner, ((worklistShardItemId#1065205L = cachedWorklistShardItemId#1065229L) AND (shardId#1065204 = cachedShardId#1065228))
(132) Project
Arguments: [shardId#1065204, worklistShardItemId#1065205L, version#1065206, product#1065207, plant#1065208, cachedQty#1065230 AS qty#1065232, demandChannel#1065225, demandStream#1065226, cachedKpis#1065231 AS kpis#1065233]
(133) Project
Arguments: [shardId#1065204, worklistShardItemId#1065205L, version#1065206, product#1065207, plant#1065208, qty#1065232, demandChannel#1065225, demandStream#1065226, kpis#1065233, false AS isNewlyCalculated#1065234]
(134) Project
Arguments: [shardId#1065204, worklistShardItemId#1065205L, version#1065206, product#1065207, plant#1065208, qty#1065232, demandChannel#1065225, demandStream#1065226, kpis#1065233, isNewlyCalculated#1065234]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1065202 <=> true)
(137) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, product#1065146, plant#1065147, qty#1065150, kpis#1065203]
(138) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, product#1065146, plant#1065147, qty#1065150]
(139) Deduplicate
Arguments: [plant#1065147, shardId#1065143, qty#1065150, worklistShardItemId#1065144L, product#1065146]
(140) Join
Arguments: Inner, ((product#1064298 <=> product#1065146) AND ((plant#1064299 <=> plant#1065147) AND ((qty#1064325 <=> qty#1065150) OR isnull(qty#1065150))))
(141) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, qty#1064325, demandChannel#1064305, demandStream#1064306, kpis#1064334]
(142) Deduplicate
Arguments: [demandChannel#1064305, shardId#1065143, qty#1064325, worklistShardItemId#1065144L, demandStream#1064306]
(143) Project
Arguments: [shardId#1065143, worklistShardItemId#1065144L, qty#1064325, demandChannel#1064305, demandStream#1064306, kpis#1064334]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237, product#1065238, plant#1065239, periodStart#1065240, periodEnd#1065241, qty#1065242], false
(146) RepartitionByExpression
Arguments: [product#1065238, plant#1065239], 37
(147) Project
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237, product#1065238, plant#1065239, qty#1065242]
(148) LogicalRDD
Arguments: [shardId#1065243, worklistShardItemId#1065244L, version#1065245, product#1065246, plant#1065247, periodStart#1065248, periodEnd#1065249, qty#1065250], false
(149) RepartitionByExpression
Arguments: [product#1065246, plant#1065247], 37
(150) Project
Arguments: [shardId#1065243, worklistShardItemId#1065244L, version#1065245, product#1065246, plant#1065247, qty#1065250]
(151) LogicalRDD
Arguments: [shardId#1065251, worklistShardItemId#1065252L, qty#1065253, demandChannel#1065254, demandStream#1065255, kpis#1065256], false
(152) Project
Arguments: [shardId#1065251 AS cachedShardId#1065257, worklistShardItemId#1065252L AS cachedWorklistShardItemId#1065258L, qty#1065253 AS cachedQty#1065259, demandChannel#1065254, demandStream#1065255, kpis#1065256 AS cachedKpis#1065260]
(153) Join
Arguments: Inner, (((worklistShardItemId#1065244L = cachedWorklistShardItemId#1065258L) AND (shardId#1065243 = cachedShardId#1065257)) AND ((qty#1065250 = cachedQty#1065259) OR isnull(qty#1065250)))
(154) Project
Arguments: [shardId#1065243, worklistShardItemId#1065244L, version#1065245, product#1065246, plant#1065247]
(155) Deduplicate
Arguments: [plant#1065247, shardId#1065243, version#1065245, worklistShardItemId#1065244L, product#1065246]
(156) LogicalRDD
Arguments: [shardId#1065261, worklistShardItemId#1065262L, qty#1065263, demandChannel#1065264, demandStream#1065265, kpis#1065266], false
(157) Project
Arguments: [shardId#1065261 AS cachedShardId#1065267, worklistShardItemId#1065262L AS cachedWorklistShardItemId#1065268L, qty#1065263 AS cachedQty#1065269, demandChannel#1065264, demandStream#1065265, kpis#1065266 AS cachedKpis#1065270]
(158) Join
Arguments: Inner, ((worklistShardItemId#1065244L = cachedWorklistShardItemId#1065268L) AND (shardId#1065243 = cachedShardId#1065267))
(159) Project
Arguments: [shardId#1065243, worklistShardItemId#1065244L, version#1065245, product#1065246, plant#1065247, cachedQty#1065269 AS qty#1065271, demandChannel#1065264, demandStream#1065265, cachedKpis#1065270 AS kpis#1065272]
(160) Project
Arguments: [shardId#1065243, worklistShardItemId#1065244L, version#1065245, product#1065246, plant#1065247, qty#1065271]
(161) LogicalRDD
Arguments: [shardId#1065273, worklistShardItemId#1065274L, version#1065275, product#1065276, plant#1065277, periodStart#1065278, periodEnd#1065279, qty#1065280], false
(162) RepartitionByExpression
Arguments: [product#1065276, plant#1065277], 37
(163) Project
Arguments: [shardId#1065273, worklistShardItemId#1065274L, version#1065275, product#1065276, plant#1065277, qty#1065280]
(164) LogicalRDD
Arguments: [shardId#1065281, worklistShardItemId#1065282L, qty#1065283, demandChannel#1065284, demandStream#1065285, kpis#1065286], false
(165) Project
Arguments: [shardId#1065281 AS cachedShardId#1065287, worklistShardItemId#1065282L AS cachedWorklistShardItemId#1065288L, qty#1065283 AS cachedQty#1065289, demandChannel#1065284, demandStream#1065285, kpis#1065286 AS cachedKpis#1065290]
(166) Join
Arguments: Inner, (((worklistShardItemId#1065274L = cachedWorklistShardItemId#1065288L) AND (shardId#1065273 = cachedShardId#1065287)) AND isnull(qty#1065280))
(167) Project
Arguments: [shardId#1065273, worklistShardItemId#1065274L, version#1065275, product#1065276, plant#1065277, qty#1065280]
(168) Project
Arguments: [shardId#1065273, worklistShardItemId#1065274L, version#1065275, product#1065276, plant#1065277, qty#1065280]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1065235 <=> shardId#1065243) AND (worklistShardItemId#1065236L <=> worklistShardItemId#1065244L)) AND (version#1065237 <=> version#1065245)) AND (product#1065238 <=> product#1065246)) AND (plant#1065239 <=> plant#1065247)) AND (qty#1065242 <=> qty#1065271))
(171) Project
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237, product#1065238, plant#1065239, qty#1065242]
(172) Project
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237, product#1065238, plant#1065239, qty#1065242, cast(null as string) AS demandChannel#1065291]
(173) Project
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237, product#1065238, plant#1065239, qty#1065242, demandChannel#1065291, cast(null as string) AS demandStream#1065292]
(174) Project
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237, product#1065238, plant#1065239, qty#1065242, demandChannel#1065291, demandStream#1065292, array() AS kpis#1065293]
(175) Project
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237, product#1065238, plant#1065239, qty#1065242, demandChannel#1065291, demandStream#1065292, kpis#1065293, true AS isNewlyCalculated#1065294]
(176) Project
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237, product#1065238, plant#1065239, qty#1065242, demandChannel#1065291, demandStream#1065292, cast(kpis#1065293 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1065295, isNewlyCalculated#1065294]
(177) LogicalRDD
Arguments: [shardId#1065296, worklistShardItemId#1065297L, version#1065298, product#1065299, plant#1065300, periodStart#1065301, periodEnd#1065302, qty#1065303], false
(178) RepartitionByExpression
Arguments: [product#1065299, plant#1065300], 37
(179) Project
Arguments: [shardId#1065296, worklistShardItemId#1065297L, version#1065298, product#1065299, plant#1065300, qty#1065303]
(180) LogicalRDD
Arguments: [shardId#1065304, worklistShardItemId#1065305L, qty#1065306, demandChannel#1065307, demandStream#1065308, kpis#1065309], false
(181) Project
Arguments: [shardId#1065304 AS cachedShardId#1065310, worklistShardItemId#1065305L AS cachedWorklistShardItemId#1065311L, qty#1065306 AS cachedQty#1065312, demandChannel#1065307, demandStream#1065308, kpis#1065309 AS cachedKpis#1065313]
(182) Join
Arguments: Inner, (((worklistShardItemId#1065297L = cachedWorklistShardItemId#1065311L) AND (shardId#1065296 = cachedShardId#1065310)) AND ((qty#1065303 = cachedQty#1065312) OR isnull(qty#1065303)))
(183) Project
Arguments: [shardId#1065296, worklistShardItemId#1065297L, version#1065298, product#1065299, plant#1065300]
(184) Deduplicate
Arguments: [plant#1065300, shardId#1065296, version#1065298, worklistShardItemId#1065297L, product#1065299]
(185) LogicalRDD
Arguments: [shardId#1065314, worklistShardItemId#1065315L, qty#1065316, demandChannel#1065317, demandStream#1065318, kpis#1065319], false
(186) Project
Arguments: [shardId#1065314 AS cachedShardId#1065320, worklistShardItemId#1065315L AS cachedWorklistShardItemId#1065321L, qty#1065316 AS cachedQty#1065322, demandChannel#1065317, demandStream#1065318, kpis#1065319 AS cachedKpis#1065323]
(187) Join
Arguments: Inner, ((worklistShardItemId#1065297L = cachedWorklistShardItemId#1065321L) AND (shardId#1065296 = cachedShardId#1065320))
(188) Project
Arguments: [shardId#1065296, worklistShardItemId#1065297L, version#1065298, product#1065299, plant#1065300, cachedQty#1065322 AS qty#1065324, demandChannel#1065317, demandStream#1065318, cachedKpis#1065323 AS kpis#1065325]
(189) Project
Arguments: [shardId#1065296, worklistShardItemId#1065297L, version#1065298, product#1065299, plant#1065300, qty#1065324, demandChannel#1065317, demandStream#1065318, kpis#1065325, false AS isNewlyCalculated#1065326]
(190) Project
Arguments: [shardId#1065296, worklistShardItemId#1065297L, version#1065298, product#1065299, plant#1065300, qty#1065324, demandChannel#1065317, demandStream#1065318, kpis#1065325, isNewlyCalculated#1065326]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1065235, worklistShardItemId#1065236L, version#1065237]
(193) Aggregate
Arguments: [shardId#1065235, worklistShardItemId#1065236L], [shardId#1065235, worklistShardItemId#1065236L, (max(version#1065237) + 1) AS version#1065138]
(194) Join
Arguments: Inner, ((shardId#1011815 = shardId#1065235) AND (worklistShardItemId#1011816L = worklistShardItemId#1065236L))
(195) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1061769, demandStream#1061770, kpis#1061804, version#1065138]
(196) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1065138, qty#1011822, demandChannel#1061769, demandStream#1061770, kpis#1061804]