== 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@75ed2424, [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#1033971, worklistShardItemId#1033972L, version#1033973, product#1033974, plant#1033975, periodStart#1033976, periodEnd#1033977, qty#1033978], false
(7) RepartitionByExpression
Arguments: [product#1033974, plant#1033975], 37
(8) Project
Arguments: [shardId#1033971, worklistShardItemId#1033972L, version#1033973, product#1033974, plant#1033975, qty#1033978]
(9) LogicalRDD
Arguments: [shardId#1033726, worklistShardItemId#1033727L, qty#1033728, demandChannel#1033729, demandStream#1033730, kpis#1033731], false
(10) Project
Arguments: [shardId#1033726 AS cachedShardId#1033732, worklistShardItemId#1033727L AS cachedWorklistShardItemId#1033733L, qty#1033728 AS cachedQty#1033734, demandChannel#1033729, demandStream#1033730, kpis#1033731 AS cachedKpis#1033735]
(11) Join
Arguments: Inner, (((worklistShardItemId#1033972L = cachedWorklistShardItemId#1033733L) AND (shardId#1033971 = cachedShardId#1033732)) AND ((qty#1033978 = cachedQty#1033734) OR isnull(qty#1033978)))
(12) Project
Arguments: [shardId#1033971, worklistShardItemId#1033972L, version#1033973, product#1033974, plant#1033975]
(13) Deduplicate
Arguments: [plant#1033975, shardId#1033971, version#1033973, worklistShardItemId#1033972L, product#1033974]
(14) LogicalRDD
Arguments: [shardId#1033736, worklistShardItemId#1033737L, qty#1033738, demandChannel#1033739, demandStream#1033740, kpis#1033741], false
(15) Project
Arguments: [shardId#1033736 AS cachedShardId#1033742, worklistShardItemId#1033737L AS cachedWorklistShardItemId#1033743L, qty#1033738 AS cachedQty#1033744, demandChannel#1033739, demandStream#1033740, kpis#1033741 AS cachedKpis#1033745]
(16) Join
Arguments: Inner, ((worklistShardItemId#1033972L = cachedWorklistShardItemId#1033743L) AND (shardId#1033971 = cachedShardId#1033742))
(17) Project
Arguments: [shardId#1033971, worklistShardItemId#1033972L, version#1033973, product#1033974, plant#1033975, cachedQty#1033744 AS qty#1033746, demandChannel#1033739, demandStream#1033740, cachedKpis#1033745 AS kpis#1033747]
(18) Project
Arguments: [shardId#1033971, worklistShardItemId#1033972L, version#1033973, product#1033974, plant#1033975, qty#1033746]
(19) LogicalRDD
Arguments: [shardId#1033953, worklistShardItemId#1033954L, version#1033955, product#1033956, plant#1033957, periodStart#1033958, periodEnd#1033959, qty#1033960], false
(20) RepartitionByExpression
Arguments: [product#1033956, plant#1033957], 37
(21) Project
Arguments: [shardId#1033953, worklistShardItemId#1033954L, version#1033955, product#1033956, plant#1033957, qty#1033960]
(22) LogicalRDD
Arguments: [shardId#1033961, worklistShardItemId#1033962L, qty#1033963, demandChannel#1033964, demandStream#1033965, kpis#1033966], false
(23) Project
Arguments: [shardId#1033961 AS cachedShardId#1033967, worklistShardItemId#1033962L AS cachedWorklistShardItemId#1033968L, qty#1033963 AS cachedQty#1033969, demandChannel#1033964, demandStream#1033965, kpis#1033966 AS cachedKpis#1033970]
(24) Join
Arguments: Inner, (((worklistShardItemId#1033954L = cachedWorklistShardItemId#1033968L) AND (shardId#1033953 = cachedShardId#1033967)) AND isnull(qty#1033960))
(25) Project
Arguments: [shardId#1033953, worklistShardItemId#1033954L, version#1033955, product#1033956, plant#1033957, qty#1033960]
(26) Project
Arguments: [shardId#1033953, worklistShardItemId#1033954L, version#1033955, product#1033956, plant#1033957, qty#1033960]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1011815 <=> shardId#1033971) AND (worklistShardItemId#1011816L <=> worklistShardItemId#1033972L)) AND (version#1011817 <=> version#1033973)) AND (product#1011818 <=> product#1033974)) AND (plant#1011819 <=> plant#1033975)) AND (qty#1011822 <=> qty#1033746))
(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#1033979]
(31) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1033979, cast(null as string) AS demandStream#1033980]
(32) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1033979, demandStream#1033980, array() AS kpis#1033981]
(33) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1033979, demandStream#1033980, kpis#1033981, true AS isNewlyCalculated#1033982]
(34) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1033979, demandStream#1033980, cast(kpis#1033981 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1034014, isNewlyCalculated#1033982]
(35) LogicalRDD
Arguments: [shardId#1033984, worklistShardItemId#1033985L, version#1033986, product#1033987, plant#1033988, periodStart#1033989, periodEnd#1033990, qty#1033991], false
(36) RepartitionByExpression
Arguments: [product#1033987, plant#1033988], 37
(37) Project
Arguments: [shardId#1033984, worklistShardItemId#1033985L, version#1033986, product#1033987, plant#1033988, qty#1033991]
(38) LogicalRDD
Arguments: [shardId#1033992, worklistShardItemId#1033993L, qty#1033994, demandChannel#1033995, demandStream#1033996, kpis#1033997], false
(39) Project
Arguments: [shardId#1033992 AS cachedShardId#1033998, worklistShardItemId#1033993L AS cachedWorklistShardItemId#1033999L, qty#1033994 AS cachedQty#1034000, demandChannel#1033995, demandStream#1033996, kpis#1033997 AS cachedKpis#1034001]
(40) Join
Arguments: Inner, (((worklistShardItemId#1033985L = cachedWorklistShardItemId#1033999L) AND (shardId#1033984 = cachedShardId#1033998)) AND ((qty#1033991 = cachedQty#1034000) OR isnull(qty#1033991)))
(41) Project
Arguments: [shardId#1033984, worklistShardItemId#1033985L, version#1033986, product#1033987, plant#1033988]
(42) Deduplicate
Arguments: [plant#1033988, shardId#1033984, version#1033986, worklistShardItemId#1033985L, product#1033987]
(43) LogicalRDD
Arguments: [shardId#1034002, worklistShardItemId#1034003L, qty#1034004, demandChannel#1034005, demandStream#1034006, kpis#1034007], false
(44) Project
Arguments: [shardId#1034002 AS cachedShardId#1034008, worklistShardItemId#1034003L AS cachedWorklistShardItemId#1034009L, qty#1034004 AS cachedQty#1034010, demandChannel#1034005, demandStream#1034006, kpis#1034007 AS cachedKpis#1034011]
(45) Join
Arguments: Inner, ((worklistShardItemId#1033985L = cachedWorklistShardItemId#1034009L) AND (shardId#1033984 = cachedShardId#1034008))
(46) Project
Arguments: [shardId#1033984, worklistShardItemId#1033985L, version#1033986, product#1033987, plant#1033988, cachedQty#1034010 AS qty#1034012, demandChannel#1034005, demandStream#1034006, cachedKpis#1034011 AS kpis#1034013]
(47) Project
Arguments: [shardId#1033984, worklistShardItemId#1033985L, version#1033986, product#1033987, plant#1033988, qty#1034012, demandChannel#1034005, demandStream#1034006, kpis#1034013, false AS isNewlyCalculated#1033983]
(48) Project
Arguments: [shardId#1033984, worklistShardItemId#1033985L, version#1033986, product#1033987, plant#1033988, qty#1034012, demandChannel#1034005, demandStream#1034006, kpis#1034013, isNewlyCalculated#1033983]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1033982 <=> false)
(51) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1033979, demandStream#1033980, kpis#1034014]
(52) ExternalRDD
Arguments: [obj#1036478]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82452), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82452), 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, 82452), 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, 82452), 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, 82452), 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, 82452), 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#1036481, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82453), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82453), 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, 82454), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82454), 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, 82454), 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, 82454), 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, 82455), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82455), 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, 82455), 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, 82455), 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, 82455), 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, 82454), 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, 82453), 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, 82456), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82456), 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, 82456), 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, 82456), 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, 82456), 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, 82453), 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, 82453), 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, 82453), 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, 82457), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82457), 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, 82458), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82458), 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, 82458), 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, 82458), 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, 82458), 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, 82457), 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, 82457), 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, 82453), 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#1036482]
(54) Generate
Arguments: explode(prodPlantResults#1036482), false, [prodPlantResults#1036489]
(55) Project
Arguments: [prodPlantResults#1036489]
(56) Project
Arguments: [prodPlantResults#1036489.productId AS product#1036508, prodPlantResults#1036489.plantId AS plant#1036509, prodPlantResults#1036489.kpiResults AS kpis#1036510]
(57) Project
Arguments: [product#1036508, plant#1036509, kpis#1036510, null AS qty#1036514]
(58) Project
Arguments: [product#1036508, plant#1036509, kpis#1036510, qty#1036514, cast(null as string) AS demandChannel#1036515]
(59) Project
Arguments: [product#1036508, plant#1036509, kpis#1036510, qty#1036514, demandChannel#1036515, cast(null as string) AS demandStream#1036516]
(60) Project
Arguments: [product#1036508, plant#1036509, kpis#1036510, cast(qty#1036514 as double) AS qty#1036535, demandChannel#1036515, demandStream#1036516]
(61) ExternalRDD
Arguments: [obj#1036531]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82452), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82452), 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, 82452), 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, 82452), 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, 82452), 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, 82452), 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#1036532, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82453), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82453), 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, 82454), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82454), 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, 82454), 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, 82454), 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, 82455), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82455), 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, 82455), 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, 82455), 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, 82455), 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, 82454), 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, 82453), 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, 82456), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82456), 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, 82456), 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, 82456), 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, 82456), 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, 82453), 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, 82453), 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, 82453), 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, 82457), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82457), 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, 82458), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82458), 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, 82458), 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, 82458), 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, 82458), 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, 82457), 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, 82457), 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, 82453), 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#1036533]
(63) Generate
Arguments: explode(prodPlantResults#1036533), false, [prodPlantResults#1036534]
(64) Project
Arguments: [prodPlantResults#1036534]
(65) Generate
Arguments: explode(prodPlantResults#1036534.quantityKpiResults), false, [quantityKpiResults#1036501]
(66) Project
Arguments: [prodPlantResults#1036534.productId AS product#1036495, prodPlantResults#1036534.plantId AS plant#1036496, quantityKpiResults#1036501]
(67) Project
Arguments: [product#1036495, plant#1036496, quantityKpiResults#1036501, quantityKpiResults#1036501.quantity AS qty#1036502]
(68) Project
Arguments: [product#1036495, plant#1036496, quantityKpiResults#1036501, qty#1036502, cast(null as string) AS demandChannel#1036504]
(69) Project
Arguments: [product#1036495, plant#1036496, quantityKpiResults#1036501, qty#1036502, demandChannel#1036504, cast(null as string) AS demandStream#1036505]
(70) Project
Arguments: [product#1036495, plant#1036496, quantityKpiResults#1036501, qty#1036502, demandChannel#1036504, demandStream#1036505, quantityKpiResults#1036501.kpiResults AS kpis#1036506]
(71) Project
Arguments: [product#1036495, plant#1036496, qty#1036502, demandChannel#1036504, demandStream#1036505, kpis#1036506]
(72) Project
Arguments: [product#1036495, plant#1036496, kpis#1036506, qty#1036502, demandChannel#1036504, demandStream#1036505]
(73) ExternalRDD
Arguments: [obj#1036536]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82452), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82452), 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, 82452), 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, 82452), 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, 82452), 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, 82452), 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#1036537, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82453), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82453), 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, 82454), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82454), 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, 82454), 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, 82454), 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, 82455), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82455), 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, 82455), 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, 82455), 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, 82455), 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, 82454), 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, 82453), 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, 82456), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82456), 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, 82456), 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, 82456), 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, 82456), 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, 82453), 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, 82453), 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, 82453), 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, 82457), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82457), 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, 82458), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 82458), 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, 82458), 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, 82458), 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, 82458), 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, 82457), 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, 82457), 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, 82453), 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#1036538]
(75) Generate
Arguments: explode(prodPlantResults#1036538), false, [prodPlantResults#1036539]
(76) Project
Arguments: [prodPlantResults#1036539]
(77) Generate
Arguments: explode(prodPlantResults#1036539.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1036523]
(78) Project
Arguments: [prodPlantResults#1036539.productId AS product#1036517, prodPlantResults#1036539.plantId AS plant#1036518, demandChannelStreamKpiResults#1036523]
(79) Project
Arguments: [product#1036517, plant#1036518, demandChannelStreamKpiResults#1036523, null AS qty#1036524]
(80) Project
Arguments: [product#1036517, plant#1036518, demandChannelStreamKpiResults#1036523, qty#1036524, demandChannelStreamKpiResults#1036523.demandChannel AS demandChannel#1036525]
(81) Project
Arguments: [product#1036517, plant#1036518, demandChannelStreamKpiResults#1036523, qty#1036524, demandChannel#1036525, demandChannelStreamKpiResults#1036523.demandStream AS demandStream#1036527]
(82) Project
Arguments: [product#1036517, plant#1036518, demandChannelStreamKpiResults#1036523, qty#1036524, demandChannel#1036525, demandStream#1036527, demandChannelStreamKpiResults#1036523.kpiResults AS kpis#1036529]
(83) Project
Arguments: [product#1036517, plant#1036518, qty#1036524, demandChannel#1036525, demandStream#1036527, kpis#1036529]
(84) Project
Arguments: [product#1036517, plant#1036518, kpis#1036529, qty#1036524, demandChannel#1036525, demandStream#1036527]
(85) Project
Arguments: [product#1036517, plant#1036518, kpis#1036529, cast(qty#1036524 as double) AS qty#1036540, demandChannel#1036525, demandStream#1036527]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1036508, plant#1036509, transform(kpis#1036510, lambdafunction(struct(label, lambda kpi#1036545.label, dateTime, lambda kpi#1036545.datetime, value, lambda kpi#1036545.value), lambda kpi#1036545, false)) AS kpis#1036544, qty#1036535, demandChannel#1036515, demandStream#1036516]
(88) Project
Arguments: [product#1036508, plant#1036509, qty#1036535, demandChannel#1036515, demandStream#1036516, kpis#1036544]
(89) LogicalRDD
Arguments: [shardId#1037353, worklistShardItemId#1037354L, version#1037355, product#1037356, plant#1037357, periodStart#1037358, periodEnd#1037359, qty#1037360], false
(90) RepartitionByExpression
Arguments: [product#1037356, plant#1037357], 37
(91) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, version#1037355, product#1037356, plant#1037357, qty#1037360]
(92) LogicalRDD
Arguments: [shardId#1037361, worklistShardItemId#1037362L, version#1037363, product#1037364, plant#1037365, periodStart#1037366, periodEnd#1037367, qty#1037368], false
(93) RepartitionByExpression
Arguments: [product#1037364, plant#1037365], 37
(94) Project
Arguments: [shardId#1037361, worklistShardItemId#1037362L, version#1037363, product#1037364, plant#1037365, qty#1037368]
(95) LogicalRDD
Arguments: [shardId#1037369, worklistShardItemId#1037370L, qty#1037371, demandChannel#1037372, demandStream#1037373, kpis#1037374], false
(96) Project
Arguments: [shardId#1037369 AS cachedShardId#1037375, worklistShardItemId#1037370L AS cachedWorklistShardItemId#1037376L, qty#1037371 AS cachedQty#1037377, demandChannel#1037372, demandStream#1037373, kpis#1037374 AS cachedKpis#1037378]
(97) Join
Arguments: Inner, (((worklistShardItemId#1037362L = cachedWorklistShardItemId#1037376L) AND (shardId#1037361 = cachedShardId#1037375)) AND ((qty#1037368 = cachedQty#1037377) OR isnull(qty#1037368)))
(98) Project
Arguments: [shardId#1037361, worklistShardItemId#1037362L, version#1037363, product#1037364, plant#1037365]
(99) Deduplicate
Arguments: [plant#1037365, shardId#1037361, version#1037363, worklistShardItemId#1037362L, product#1037364]
(100) LogicalRDD
Arguments: [shardId#1037379, worklistShardItemId#1037380L, qty#1037381, demandChannel#1037382, demandStream#1037383, kpis#1037384], false
(101) Project
Arguments: [shardId#1037379 AS cachedShardId#1037385, worklistShardItemId#1037380L AS cachedWorklistShardItemId#1037386L, qty#1037381 AS cachedQty#1037387, demandChannel#1037382, demandStream#1037383, kpis#1037384 AS cachedKpis#1037388]
(102) Join
Arguments: Inner, ((worklistShardItemId#1037362L = cachedWorklistShardItemId#1037386L) AND (shardId#1037361 = cachedShardId#1037385))
(103) Project
Arguments: [shardId#1037361, worklistShardItemId#1037362L, version#1037363, product#1037364, plant#1037365, cachedQty#1037387 AS qty#1037389, demandChannel#1037382, demandStream#1037383, cachedKpis#1037388 AS kpis#1037390]
(104) Project
Arguments: [shardId#1037361, worklistShardItemId#1037362L, version#1037363, product#1037364, plant#1037365, qty#1037389]
(105) LogicalRDD
Arguments: [shardId#1037391, worklistShardItemId#1037392L, version#1037393, product#1037394, plant#1037395, periodStart#1037396, periodEnd#1037397, qty#1037398], false
(106) RepartitionByExpression
Arguments: [product#1037394, plant#1037395], 37
(107) Project
Arguments: [shardId#1037391, worklistShardItemId#1037392L, version#1037393, product#1037394, plant#1037395, qty#1037398]
(108) LogicalRDD
Arguments: [shardId#1037399, worklistShardItemId#1037400L, qty#1037401, demandChannel#1037402, demandStream#1037403, kpis#1037404], false
(109) Project
Arguments: [shardId#1037399 AS cachedShardId#1037405, worklistShardItemId#1037400L AS cachedWorklistShardItemId#1037406L, qty#1037401 AS cachedQty#1037407, demandChannel#1037402, demandStream#1037403, kpis#1037404 AS cachedKpis#1037408]
(110) Join
Arguments: Inner, (((worklistShardItemId#1037392L = cachedWorklistShardItemId#1037406L) AND (shardId#1037391 = cachedShardId#1037405)) AND isnull(qty#1037398))
(111) Project
Arguments: [shardId#1037391, worklistShardItemId#1037392L, version#1037393, product#1037394, plant#1037395, qty#1037398]
(112) Project
Arguments: [shardId#1037391, worklistShardItemId#1037392L, version#1037393, product#1037394, plant#1037395, qty#1037398]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1037353 <=> shardId#1037361) AND (worklistShardItemId#1037354L <=> worklistShardItemId#1037362L)) AND (version#1037355 <=> version#1037363)) AND (product#1037356 <=> product#1037364)) AND (plant#1037357 <=> plant#1037365)) AND (qty#1037360 <=> qty#1037389))
(115) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, version#1037355, product#1037356, plant#1037357, qty#1037360]
(116) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, version#1037355, product#1037356, plant#1037357, qty#1037360, cast(null as string) AS demandChannel#1037409]
(117) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, version#1037355, product#1037356, plant#1037357, qty#1037360, demandChannel#1037409, cast(null as string) AS demandStream#1037410]
(118) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, version#1037355, product#1037356, plant#1037357, qty#1037360, demandChannel#1037409, demandStream#1037410, array() AS kpis#1037411]
(119) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, version#1037355, product#1037356, plant#1037357, qty#1037360, demandChannel#1037409, demandStream#1037410, kpis#1037411, true AS isNewlyCalculated#1037412]
(120) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, version#1037355, product#1037356, plant#1037357, qty#1037360, demandChannel#1037409, demandStream#1037410, cast(kpis#1037411 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1037413, isNewlyCalculated#1037412]
(121) LogicalRDD
Arguments: [shardId#1037414, worklistShardItemId#1037415L, version#1037416, product#1037417, plant#1037418, periodStart#1037419, periodEnd#1037420, qty#1037421], false
(122) RepartitionByExpression
Arguments: [product#1037417, plant#1037418], 37
(123) Project
Arguments: [shardId#1037414, worklistShardItemId#1037415L, version#1037416, product#1037417, plant#1037418, qty#1037421]
(124) LogicalRDD
Arguments: [shardId#1037422, worklistShardItemId#1037423L, qty#1037424, demandChannel#1037425, demandStream#1037426, kpis#1037427], false
(125) Project
Arguments: [shardId#1037422 AS cachedShardId#1037428, worklistShardItemId#1037423L AS cachedWorklistShardItemId#1037429L, qty#1037424 AS cachedQty#1037430, demandChannel#1037425, demandStream#1037426, kpis#1037427 AS cachedKpis#1037431]
(126) Join
Arguments: Inner, (((worklistShardItemId#1037415L = cachedWorklistShardItemId#1037429L) AND (shardId#1037414 = cachedShardId#1037428)) AND ((qty#1037421 = cachedQty#1037430) OR isnull(qty#1037421)))
(127) Project
Arguments: [shardId#1037414, worklistShardItemId#1037415L, version#1037416, product#1037417, plant#1037418]
(128) Deduplicate
Arguments: [plant#1037418, shardId#1037414, version#1037416, worklistShardItemId#1037415L, product#1037417]
(129) LogicalRDD
Arguments: [shardId#1037432, worklistShardItemId#1037433L, qty#1037434, demandChannel#1037435, demandStream#1037436, kpis#1037437], false
(130) Project
Arguments: [shardId#1037432 AS cachedShardId#1037438, worklistShardItemId#1037433L AS cachedWorklistShardItemId#1037439L, qty#1037434 AS cachedQty#1037440, demandChannel#1037435, demandStream#1037436, kpis#1037437 AS cachedKpis#1037441]
(131) Join
Arguments: Inner, ((worklistShardItemId#1037415L = cachedWorklistShardItemId#1037439L) AND (shardId#1037414 = cachedShardId#1037438))
(132) Project
Arguments: [shardId#1037414, worklistShardItemId#1037415L, version#1037416, product#1037417, plant#1037418, cachedQty#1037440 AS qty#1037442, demandChannel#1037435, demandStream#1037436, cachedKpis#1037441 AS kpis#1037443]
(133) Project
Arguments: [shardId#1037414, worklistShardItemId#1037415L, version#1037416, product#1037417, plant#1037418, qty#1037442, demandChannel#1037435, demandStream#1037436, kpis#1037443, false AS isNewlyCalculated#1037444]
(134) Project
Arguments: [shardId#1037414, worklistShardItemId#1037415L, version#1037416, product#1037417, plant#1037418, qty#1037442, demandChannel#1037435, demandStream#1037436, kpis#1037443, isNewlyCalculated#1037444]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1037412 <=> true)
(137) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, product#1037356, plant#1037357, qty#1037360, kpis#1037413]
(138) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, product#1037356, plant#1037357, qty#1037360]
(139) Deduplicate
Arguments: [plant#1037357, shardId#1037353, qty#1037360, worklistShardItemId#1037354L, product#1037356]
(140) Join
Arguments: Inner, ((product#1036508 <=> product#1037356) AND ((plant#1036509 <=> plant#1037357) AND ((qty#1036535 <=> qty#1037360) OR isnull(qty#1037360))))
(141) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, qty#1036535, demandChannel#1036515, demandStream#1036516, kpis#1036544]
(142) Deduplicate
Arguments: [demandChannel#1036515, shardId#1037353, qty#1036535, worklistShardItemId#1037354L, demandStream#1036516]
(143) Project
Arguments: [shardId#1037353, worklistShardItemId#1037354L, qty#1036535, demandChannel#1036515, demandStream#1036516, kpis#1036544]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447, product#1037448, plant#1037449, periodStart#1037450, periodEnd#1037451, qty#1037452], false
(146) RepartitionByExpression
Arguments: [product#1037448, plant#1037449], 37
(147) Project
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447, product#1037448, plant#1037449, qty#1037452]
(148) LogicalRDD
Arguments: [shardId#1037453, worklistShardItemId#1037454L, version#1037455, product#1037456, plant#1037457, periodStart#1037458, periodEnd#1037459, qty#1037460], false
(149) RepartitionByExpression
Arguments: [product#1037456, plant#1037457], 37
(150) Project
Arguments: [shardId#1037453, worklistShardItemId#1037454L, version#1037455, product#1037456, plant#1037457, qty#1037460]
(151) LogicalRDD
Arguments: [shardId#1037461, worklistShardItemId#1037462L, qty#1037463, demandChannel#1037464, demandStream#1037465, kpis#1037466], false
(152) Project
Arguments: [shardId#1037461 AS cachedShardId#1037467, worklistShardItemId#1037462L AS cachedWorklistShardItemId#1037468L, qty#1037463 AS cachedQty#1037469, demandChannel#1037464, demandStream#1037465, kpis#1037466 AS cachedKpis#1037470]
(153) Join
Arguments: Inner, (((worklistShardItemId#1037454L = cachedWorklistShardItemId#1037468L) AND (shardId#1037453 = cachedShardId#1037467)) AND ((qty#1037460 = cachedQty#1037469) OR isnull(qty#1037460)))
(154) Project
Arguments: [shardId#1037453, worklistShardItemId#1037454L, version#1037455, product#1037456, plant#1037457]
(155) Deduplicate
Arguments: [plant#1037457, shardId#1037453, version#1037455, worklistShardItemId#1037454L, product#1037456]
(156) LogicalRDD
Arguments: [shardId#1037471, worklistShardItemId#1037472L, qty#1037473, demandChannel#1037474, demandStream#1037475, kpis#1037476], false
(157) Project
Arguments: [shardId#1037471 AS cachedShardId#1037477, worklistShardItemId#1037472L AS cachedWorklistShardItemId#1037478L, qty#1037473 AS cachedQty#1037479, demandChannel#1037474, demandStream#1037475, kpis#1037476 AS cachedKpis#1037480]
(158) Join
Arguments: Inner, ((worklistShardItemId#1037454L = cachedWorklistShardItemId#1037478L) AND (shardId#1037453 = cachedShardId#1037477))
(159) Project
Arguments: [shardId#1037453, worklistShardItemId#1037454L, version#1037455, product#1037456, plant#1037457, cachedQty#1037479 AS qty#1037481, demandChannel#1037474, demandStream#1037475, cachedKpis#1037480 AS kpis#1037482]
(160) Project
Arguments: [shardId#1037453, worklistShardItemId#1037454L, version#1037455, product#1037456, plant#1037457, qty#1037481]
(161) LogicalRDD
Arguments: [shardId#1037483, worklistShardItemId#1037484L, version#1037485, product#1037486, plant#1037487, periodStart#1037488, periodEnd#1037489, qty#1037490], false
(162) RepartitionByExpression
Arguments: [product#1037486, plant#1037487], 37
(163) Project
Arguments: [shardId#1037483, worklistShardItemId#1037484L, version#1037485, product#1037486, plant#1037487, qty#1037490]
(164) LogicalRDD
Arguments: [shardId#1037491, worklistShardItemId#1037492L, qty#1037493, demandChannel#1037494, demandStream#1037495, kpis#1037496], false
(165) Project
Arguments: [shardId#1037491 AS cachedShardId#1037497, worklistShardItemId#1037492L AS cachedWorklistShardItemId#1037498L, qty#1037493 AS cachedQty#1037499, demandChannel#1037494, demandStream#1037495, kpis#1037496 AS cachedKpis#1037500]
(166) Join
Arguments: Inner, (((worklistShardItemId#1037484L = cachedWorklistShardItemId#1037498L) AND (shardId#1037483 = cachedShardId#1037497)) AND isnull(qty#1037490))
(167) Project
Arguments: [shardId#1037483, worklistShardItemId#1037484L, version#1037485, product#1037486, plant#1037487, qty#1037490]
(168) Project
Arguments: [shardId#1037483, worklistShardItemId#1037484L, version#1037485, product#1037486, plant#1037487, qty#1037490]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1037445 <=> shardId#1037453) AND (worklistShardItemId#1037446L <=> worklistShardItemId#1037454L)) AND (version#1037447 <=> version#1037455)) AND (product#1037448 <=> product#1037456)) AND (plant#1037449 <=> plant#1037457)) AND (qty#1037452 <=> qty#1037481))
(171) Project
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447, product#1037448, plant#1037449, qty#1037452]
(172) Project
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447, product#1037448, plant#1037449, qty#1037452, cast(null as string) AS demandChannel#1037501]
(173) Project
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447, product#1037448, plant#1037449, qty#1037452, demandChannel#1037501, cast(null as string) AS demandStream#1037502]
(174) Project
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447, product#1037448, plant#1037449, qty#1037452, demandChannel#1037501, demandStream#1037502, array() AS kpis#1037503]
(175) Project
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447, product#1037448, plant#1037449, qty#1037452, demandChannel#1037501, demandStream#1037502, kpis#1037503, true AS isNewlyCalculated#1037504]
(176) Project
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447, product#1037448, plant#1037449, qty#1037452, demandChannel#1037501, demandStream#1037502, cast(kpis#1037503 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1037505, isNewlyCalculated#1037504]
(177) LogicalRDD
Arguments: [shardId#1037506, worklistShardItemId#1037507L, version#1037508, product#1037509, plant#1037510, periodStart#1037511, periodEnd#1037512, qty#1037513], false
(178) RepartitionByExpression
Arguments: [product#1037509, plant#1037510], 37
(179) Project
Arguments: [shardId#1037506, worklistShardItemId#1037507L, version#1037508, product#1037509, plant#1037510, qty#1037513]
(180) LogicalRDD
Arguments: [shardId#1037514, worklistShardItemId#1037515L, qty#1037516, demandChannel#1037517, demandStream#1037518, kpis#1037519], false
(181) Project
Arguments: [shardId#1037514 AS cachedShardId#1037520, worklistShardItemId#1037515L AS cachedWorklistShardItemId#1037521L, qty#1037516 AS cachedQty#1037522, demandChannel#1037517, demandStream#1037518, kpis#1037519 AS cachedKpis#1037523]
(182) Join
Arguments: Inner, (((worklistShardItemId#1037507L = cachedWorklistShardItemId#1037521L) AND (shardId#1037506 = cachedShardId#1037520)) AND ((qty#1037513 = cachedQty#1037522) OR isnull(qty#1037513)))
(183) Project
Arguments: [shardId#1037506, worklistShardItemId#1037507L, version#1037508, product#1037509, plant#1037510]
(184) Deduplicate
Arguments: [plant#1037510, shardId#1037506, version#1037508, worklistShardItemId#1037507L, product#1037509]
(185) LogicalRDD
Arguments: [shardId#1037524, worklistShardItemId#1037525L, qty#1037526, demandChannel#1037527, demandStream#1037528, kpis#1037529], false
(186) Project
Arguments: [shardId#1037524 AS cachedShardId#1037530, worklistShardItemId#1037525L AS cachedWorklistShardItemId#1037531L, qty#1037526 AS cachedQty#1037532, demandChannel#1037527, demandStream#1037528, kpis#1037529 AS cachedKpis#1037533]
(187) Join
Arguments: Inner, ((worklistShardItemId#1037507L = cachedWorklistShardItemId#1037531L) AND (shardId#1037506 = cachedShardId#1037530))
(188) Project
Arguments: [shardId#1037506, worklistShardItemId#1037507L, version#1037508, product#1037509, plant#1037510, cachedQty#1037532 AS qty#1037534, demandChannel#1037527, demandStream#1037528, cachedKpis#1037533 AS kpis#1037535]
(189) Project
Arguments: [shardId#1037506, worklistShardItemId#1037507L, version#1037508, product#1037509, plant#1037510, qty#1037534, demandChannel#1037527, demandStream#1037528, kpis#1037535, false AS isNewlyCalculated#1037536]
(190) Project
Arguments: [shardId#1037506, worklistShardItemId#1037507L, version#1037508, product#1037509, plant#1037510, qty#1037534, demandChannel#1037527, demandStream#1037528, kpis#1037535, isNewlyCalculated#1037536]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1037445, worklistShardItemId#1037446L, version#1037447]
(193) Aggregate
Arguments: [shardId#1037445, worklistShardItemId#1037446L], [shardId#1037445, worklistShardItemId#1037446L, (max(version#1037447) + 1) AS version#1037348]
(194) Join
Arguments: Inner, ((shardId#1011815 = shardId#1037445) AND (worklistShardItemId#1011816L = worklistShardItemId#1037446L))
(195) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1033979, demandStream#1033980, kpis#1034014, version#1037348]
(196) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1037348, qty#1011822, demandChannel#1033979, demandStream#1033980, kpis#1034014]