== 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@3b4005b9, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000350/stream-10000000350-1], Append
(3) LogicalRDD
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, periodStart#1100462, periodEnd#1100463, qty#1100464], false
(4) RepartitionByExpression
Arguments: [product#1100460, plant#1100461], 37
(5) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464]
(6) LogicalRDD
Arguments: [shardId#1162019, worklistShardItemId#1162020L, version#1162021, product#1162022, plant#1162023, periodStart#1162024, periodEnd#1162025, qty#1162026], false
(7) RepartitionByExpression
Arguments: [product#1162022, plant#1162023], 37
(8) Project
Arguments: [shardId#1162019, worklistShardItemId#1162020L, version#1162021, product#1162022, plant#1162023, qty#1162026]
(9) LogicalRDD
Arguments: [shardId#1161774, worklistShardItemId#1161775L, qty#1161776, demandChannel#1161777, demandStream#1161778, kpis#1161779], false
(10) Project
Arguments: [shardId#1161774 AS cachedShardId#1161780, worklistShardItemId#1161775L AS cachedWorklistShardItemId#1161781L, qty#1161776 AS cachedQty#1161782, demandChannel#1161777, demandStream#1161778, kpis#1161779 AS cachedKpis#1161783]
(11) Join
Arguments: Inner, (((worklistShardItemId#1162020L = cachedWorklistShardItemId#1161781L) AND (shardId#1162019 = cachedShardId#1161780)) AND ((qty#1162026 = cachedQty#1161782) OR isnull(qty#1162026)))
(12) Project
Arguments: [shardId#1162019, worklistShardItemId#1162020L, version#1162021, product#1162022, plant#1162023]
(13) Deduplicate
Arguments: [plant#1162023, shardId#1162019, version#1162021, worklistShardItemId#1162020L, product#1162022]
(14) LogicalRDD
Arguments: [shardId#1161784, worklistShardItemId#1161785L, qty#1161786, demandChannel#1161787, demandStream#1161788, kpis#1161789], false
(15) Project
Arguments: [shardId#1161784 AS cachedShardId#1161790, worklistShardItemId#1161785L AS cachedWorklistShardItemId#1161791L, qty#1161786 AS cachedQty#1161792, demandChannel#1161787, demandStream#1161788, kpis#1161789 AS cachedKpis#1161793]
(16) Join
Arguments: Inner, ((worklistShardItemId#1162020L = cachedWorklistShardItemId#1161791L) AND (shardId#1162019 = cachedShardId#1161790))
(17) Project
Arguments: [shardId#1162019, worklistShardItemId#1162020L, version#1162021, product#1162022, plant#1162023, cachedQty#1161792 AS qty#1161794, demandChannel#1161787, demandStream#1161788, cachedKpis#1161793 AS kpis#1161795]
(18) Project
Arguments: [shardId#1162019, worklistShardItemId#1162020L, version#1162021, product#1162022, plant#1162023, qty#1161794]
(19) LogicalRDD
Arguments: [shardId#1162001, worklistShardItemId#1162002L, version#1162003, product#1162004, plant#1162005, periodStart#1162006, periodEnd#1162007, qty#1162008], false
(20) RepartitionByExpression
Arguments: [product#1162004, plant#1162005], 37
(21) Project
Arguments: [shardId#1162001, worklistShardItemId#1162002L, version#1162003, product#1162004, plant#1162005, qty#1162008]
(22) LogicalRDD
Arguments: [shardId#1162009, worklistShardItemId#1162010L, qty#1162011, demandChannel#1162012, demandStream#1162013, kpis#1162014], false
(23) Project
Arguments: [shardId#1162009 AS cachedShardId#1162015, worklistShardItemId#1162010L AS cachedWorklistShardItemId#1162016L, qty#1162011 AS cachedQty#1162017, demandChannel#1162012, demandStream#1162013, kpis#1162014 AS cachedKpis#1162018]
(24) Join
Arguments: Inner, (((worklistShardItemId#1162002L = cachedWorklistShardItemId#1162016L) AND (shardId#1162001 = cachedShardId#1162015)) AND isnull(qty#1162008))
(25) Project
Arguments: [shardId#1162001, worklistShardItemId#1162002L, version#1162003, product#1162004, plant#1162005, qty#1162008]
(26) Project
Arguments: [shardId#1162001, worklistShardItemId#1162002L, version#1162003, product#1162004, plant#1162005, qty#1162008]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1100457 <=> shardId#1162019) AND (worklistShardItemId#1100458L <=> worklistShardItemId#1162020L)) AND (version#1100459 <=> version#1162021)) AND (product#1100460 <=> product#1162022)) AND (plant#1100461 <=> plant#1162023)) AND (qty#1100464 <=> qty#1161794))
(29) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464]
(30) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, cast(null as string) AS demandChannel#1162027]
(31) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1162027, cast(null as string) AS demandStream#1162028]
(32) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1162027, demandStream#1162028, array() AS kpis#1162029]
(33) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1162027, demandStream#1162028, kpis#1162029, true AS isNewlyCalculated#1162030]
(34) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1162027, demandStream#1162028, cast(kpis#1162029 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1162062, isNewlyCalculated#1162030]
(35) LogicalRDD
Arguments: [shardId#1162032, worklistShardItemId#1162033L, version#1162034, product#1162035, plant#1162036, periodStart#1162037, periodEnd#1162038, qty#1162039], false
(36) RepartitionByExpression
Arguments: [product#1162035, plant#1162036], 37
(37) Project
Arguments: [shardId#1162032, worklistShardItemId#1162033L, version#1162034, product#1162035, plant#1162036, qty#1162039]
(38) LogicalRDD
Arguments: [shardId#1162040, worklistShardItemId#1162041L, qty#1162042, demandChannel#1162043, demandStream#1162044, kpis#1162045], false
(39) Project
Arguments: [shardId#1162040 AS cachedShardId#1162046, worklistShardItemId#1162041L AS cachedWorklistShardItemId#1162047L, qty#1162042 AS cachedQty#1162048, demandChannel#1162043, demandStream#1162044, kpis#1162045 AS cachedKpis#1162049]
(40) Join
Arguments: Inner, (((worklistShardItemId#1162033L = cachedWorklistShardItemId#1162047L) AND (shardId#1162032 = cachedShardId#1162046)) AND ((qty#1162039 = cachedQty#1162048) OR isnull(qty#1162039)))
(41) Project
Arguments: [shardId#1162032, worklistShardItemId#1162033L, version#1162034, product#1162035, plant#1162036]
(42) Deduplicate
Arguments: [plant#1162036, shardId#1162032, version#1162034, worklistShardItemId#1162033L, product#1162035]
(43) LogicalRDD
Arguments: [shardId#1162050, worklistShardItemId#1162051L, qty#1162052, demandChannel#1162053, demandStream#1162054, kpis#1162055], false
(44) Project
Arguments: [shardId#1162050 AS cachedShardId#1162056, worklistShardItemId#1162051L AS cachedWorklistShardItemId#1162057L, qty#1162052 AS cachedQty#1162058, demandChannel#1162053, demandStream#1162054, kpis#1162055 AS cachedKpis#1162059]
(45) Join
Arguments: Inner, ((worklistShardItemId#1162033L = cachedWorklistShardItemId#1162057L) AND (shardId#1162032 = cachedShardId#1162056))
(46) Project
Arguments: [shardId#1162032, worklistShardItemId#1162033L, version#1162034, product#1162035, plant#1162036, cachedQty#1162058 AS qty#1162060, demandChannel#1162053, demandStream#1162054, cachedKpis#1162059 AS kpis#1162061]
(47) Project
Arguments: [shardId#1162032, worklistShardItemId#1162033L, version#1162034, product#1162035, plant#1162036, qty#1162060, demandChannel#1162053, demandStream#1162054, kpis#1162061, false AS isNewlyCalculated#1162031]
(48) Project
Arguments: [shardId#1162032, worklistShardItemId#1162033L, version#1162034, product#1162035, plant#1162036, qty#1162060, demandChannel#1162053, demandStream#1162054, kpis#1162061, isNewlyCalculated#1162031]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1162030 <=> false)
(51) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1162027, demandStream#1162028, kpis#1162062]
(52) ExternalRDD
Arguments: [obj#1164526]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91460), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91460), 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, 91460), 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, 91460), 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, 91460), 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, 91460), 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#1164529, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91461), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91461), 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, 91462), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91462), 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, 91462), 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, 91462), 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, 91463), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91463), 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, 91463), 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, 91463), 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, 91463), 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, 91462), 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, 91461), 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, 91464), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91464), 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, 91464), 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, 91464), 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, 91464), 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, 91461), 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, 91461), 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, 91461), 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, 91465), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91465), 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, 91466), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91466), 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, 91466), 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, 91466), 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, 91466), 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, 91465), 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, 91465), 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, 91461), 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#1164530]
(54) Generate
Arguments: explode(prodPlantResults#1164530), false, [prodPlantResults#1164537]
(55) Project
Arguments: [prodPlantResults#1164537]
(56) Project
Arguments: [prodPlantResults#1164537.productId AS product#1164556, prodPlantResults#1164537.plantId AS plant#1164557, prodPlantResults#1164537.kpiResults AS kpis#1164558]
(57) Project
Arguments: [product#1164556, plant#1164557, kpis#1164558, null AS qty#1164562]
(58) Project
Arguments: [product#1164556, plant#1164557, kpis#1164558, qty#1164562, cast(null as string) AS demandChannel#1164563]
(59) Project
Arguments: [product#1164556, plant#1164557, kpis#1164558, qty#1164562, demandChannel#1164563, cast(null as string) AS demandStream#1164564]
(60) Project
Arguments: [product#1164556, plant#1164557, kpis#1164558, cast(qty#1164562 as double) AS qty#1164583, demandChannel#1164563, demandStream#1164564]
(61) ExternalRDD
Arguments: [obj#1164579]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91460), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91460), 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, 91460), 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, 91460), 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, 91460), 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, 91460), 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#1164580, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91461), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91461), 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, 91462), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91462), 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, 91462), 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, 91462), 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, 91463), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91463), 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, 91463), 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, 91463), 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, 91463), 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, 91462), 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, 91461), 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, 91464), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91464), 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, 91464), 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, 91464), 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, 91464), 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, 91461), 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, 91461), 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, 91461), 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, 91465), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91465), 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, 91466), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91466), 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, 91466), 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, 91466), 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, 91466), 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, 91465), 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, 91465), 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, 91461), 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#1164581]
(63) Generate
Arguments: explode(prodPlantResults#1164581), false, [prodPlantResults#1164582]
(64) Project
Arguments: [prodPlantResults#1164582]
(65) Generate
Arguments: explode(prodPlantResults#1164582.quantityKpiResults), false, [quantityKpiResults#1164549]
(66) Project
Arguments: [prodPlantResults#1164582.productId AS product#1164543, prodPlantResults#1164582.plantId AS plant#1164544, quantityKpiResults#1164549]
(67) Project
Arguments: [product#1164543, plant#1164544, quantityKpiResults#1164549, quantityKpiResults#1164549.quantity AS qty#1164550]
(68) Project
Arguments: [product#1164543, plant#1164544, quantityKpiResults#1164549, qty#1164550, cast(null as string) AS demandChannel#1164552]
(69) Project
Arguments: [product#1164543, plant#1164544, quantityKpiResults#1164549, qty#1164550, demandChannel#1164552, cast(null as string) AS demandStream#1164553]
(70) Project
Arguments: [product#1164543, plant#1164544, quantityKpiResults#1164549, qty#1164550, demandChannel#1164552, demandStream#1164553, quantityKpiResults#1164549.kpiResults AS kpis#1164554]
(71) Project
Arguments: [product#1164543, plant#1164544, qty#1164550, demandChannel#1164552, demandStream#1164553, kpis#1164554]
(72) Project
Arguments: [product#1164543, plant#1164544, kpis#1164554, qty#1164550, demandChannel#1164552, demandStream#1164553]
(73) ExternalRDD
Arguments: [obj#1164584]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91460), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91460), 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, 91460), 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, 91460), 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, 91460), 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, 91460), 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#1164585, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91461), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91461), 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, 91462), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91462), 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, 91462), 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, 91462), 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, 91463), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91463), 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, 91463), 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, 91463), 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, 91463), 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, 91462), 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, 91461), 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, 91464), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91464), 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, 91464), 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, 91464), 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, 91464), 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, 91461), 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, 91461), 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, 91461), 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, 91465), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91465), 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, 91466), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 91466), 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, 91466), 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, 91466), 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, 91466), 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, 91465), 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, 91465), 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, 91461), 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#1164586]
(75) Generate
Arguments: explode(prodPlantResults#1164586), false, [prodPlantResults#1164587]
(76) Project
Arguments: [prodPlantResults#1164587]
(77) Generate
Arguments: explode(prodPlantResults#1164587.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1164571]
(78) Project
Arguments: [prodPlantResults#1164587.productId AS product#1164565, prodPlantResults#1164587.plantId AS plant#1164566, demandChannelStreamKpiResults#1164571]
(79) Project
Arguments: [product#1164565, plant#1164566, demandChannelStreamKpiResults#1164571, null AS qty#1164572]
(80) Project
Arguments: [product#1164565, plant#1164566, demandChannelStreamKpiResults#1164571, qty#1164572, demandChannelStreamKpiResults#1164571.demandChannel AS demandChannel#1164573]
(81) Project
Arguments: [product#1164565, plant#1164566, demandChannelStreamKpiResults#1164571, qty#1164572, demandChannel#1164573, demandChannelStreamKpiResults#1164571.demandStream AS demandStream#1164575]
(82) Project
Arguments: [product#1164565, plant#1164566, demandChannelStreamKpiResults#1164571, qty#1164572, demandChannel#1164573, demandStream#1164575, demandChannelStreamKpiResults#1164571.kpiResults AS kpis#1164577]
(83) Project
Arguments: [product#1164565, plant#1164566, qty#1164572, demandChannel#1164573, demandStream#1164575, kpis#1164577]
(84) Project
Arguments: [product#1164565, plant#1164566, kpis#1164577, qty#1164572, demandChannel#1164573, demandStream#1164575]
(85) Project
Arguments: [product#1164565, plant#1164566, kpis#1164577, cast(qty#1164572 as double) AS qty#1164588, demandChannel#1164573, demandStream#1164575]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1164556, plant#1164557, transform(kpis#1164558, lambdafunction(struct(label, lambda kpi#1164593.label, dateTime, lambda kpi#1164593.datetime, value, lambda kpi#1164593.value), lambda kpi#1164593, false)) AS kpis#1164592, qty#1164583, demandChannel#1164563, demandStream#1164564]
(88) Project
Arguments: [product#1164556, plant#1164557, qty#1164583, demandChannel#1164563, demandStream#1164564, kpis#1164592]
(89) LogicalRDD
Arguments: [shardId#1165401, worklistShardItemId#1165402L, version#1165403, product#1165404, plant#1165405, periodStart#1165406, periodEnd#1165407, qty#1165408], false
(90) RepartitionByExpression
Arguments: [product#1165404, plant#1165405], 37
(91) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, version#1165403, product#1165404, plant#1165405, qty#1165408]
(92) LogicalRDD
Arguments: [shardId#1165409, worklistShardItemId#1165410L, version#1165411, product#1165412, plant#1165413, periodStart#1165414, periodEnd#1165415, qty#1165416], false
(93) RepartitionByExpression
Arguments: [product#1165412, plant#1165413], 37
(94) Project
Arguments: [shardId#1165409, worklistShardItemId#1165410L, version#1165411, product#1165412, plant#1165413, qty#1165416]
(95) LogicalRDD
Arguments: [shardId#1165417, worklistShardItemId#1165418L, qty#1165419, demandChannel#1165420, demandStream#1165421, kpis#1165422], false
(96) Project
Arguments: [shardId#1165417 AS cachedShardId#1165423, worklistShardItemId#1165418L AS cachedWorklistShardItemId#1165424L, qty#1165419 AS cachedQty#1165425, demandChannel#1165420, demandStream#1165421, kpis#1165422 AS cachedKpis#1165426]
(97) Join
Arguments: Inner, (((worklistShardItemId#1165410L = cachedWorklistShardItemId#1165424L) AND (shardId#1165409 = cachedShardId#1165423)) AND ((qty#1165416 = cachedQty#1165425) OR isnull(qty#1165416)))
(98) Project
Arguments: [shardId#1165409, worklistShardItemId#1165410L, version#1165411, product#1165412, plant#1165413]
(99) Deduplicate
Arguments: [plant#1165413, shardId#1165409, version#1165411, worklistShardItemId#1165410L, product#1165412]
(100) LogicalRDD
Arguments: [shardId#1165427, worklistShardItemId#1165428L, qty#1165429, demandChannel#1165430, demandStream#1165431, kpis#1165432], false
(101) Project
Arguments: [shardId#1165427 AS cachedShardId#1165433, worklistShardItemId#1165428L AS cachedWorklistShardItemId#1165434L, qty#1165429 AS cachedQty#1165435, demandChannel#1165430, demandStream#1165431, kpis#1165432 AS cachedKpis#1165436]
(102) Join
Arguments: Inner, ((worklistShardItemId#1165410L = cachedWorklistShardItemId#1165434L) AND (shardId#1165409 = cachedShardId#1165433))
(103) Project
Arguments: [shardId#1165409, worklistShardItemId#1165410L, version#1165411, product#1165412, plant#1165413, cachedQty#1165435 AS qty#1165437, demandChannel#1165430, demandStream#1165431, cachedKpis#1165436 AS kpis#1165438]
(104) Project
Arguments: [shardId#1165409, worklistShardItemId#1165410L, version#1165411, product#1165412, plant#1165413, qty#1165437]
(105) LogicalRDD
Arguments: [shardId#1165439, worklistShardItemId#1165440L, version#1165441, product#1165442, plant#1165443, periodStart#1165444, periodEnd#1165445, qty#1165446], false
(106) RepartitionByExpression
Arguments: [product#1165442, plant#1165443], 37
(107) Project
Arguments: [shardId#1165439, worklistShardItemId#1165440L, version#1165441, product#1165442, plant#1165443, qty#1165446]
(108) LogicalRDD
Arguments: [shardId#1165447, worklistShardItemId#1165448L, qty#1165449, demandChannel#1165450, demandStream#1165451, kpis#1165452], false
(109) Project
Arguments: [shardId#1165447 AS cachedShardId#1165453, worklistShardItemId#1165448L AS cachedWorklistShardItemId#1165454L, qty#1165449 AS cachedQty#1165455, demandChannel#1165450, demandStream#1165451, kpis#1165452 AS cachedKpis#1165456]
(110) Join
Arguments: Inner, (((worklistShardItemId#1165440L = cachedWorklistShardItemId#1165454L) AND (shardId#1165439 = cachedShardId#1165453)) AND isnull(qty#1165446))
(111) Project
Arguments: [shardId#1165439, worklistShardItemId#1165440L, version#1165441, product#1165442, plant#1165443, qty#1165446]
(112) Project
Arguments: [shardId#1165439, worklistShardItemId#1165440L, version#1165441, product#1165442, plant#1165443, qty#1165446]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1165401 <=> shardId#1165409) AND (worklistShardItemId#1165402L <=> worklistShardItemId#1165410L)) AND (version#1165403 <=> version#1165411)) AND (product#1165404 <=> product#1165412)) AND (plant#1165405 <=> plant#1165413)) AND (qty#1165408 <=> qty#1165437))
(115) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, version#1165403, product#1165404, plant#1165405, qty#1165408]
(116) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, version#1165403, product#1165404, plant#1165405, qty#1165408, cast(null as string) AS demandChannel#1165457]
(117) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, version#1165403, product#1165404, plant#1165405, qty#1165408, demandChannel#1165457, cast(null as string) AS demandStream#1165458]
(118) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, version#1165403, product#1165404, plant#1165405, qty#1165408, demandChannel#1165457, demandStream#1165458, array() AS kpis#1165459]
(119) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, version#1165403, product#1165404, plant#1165405, qty#1165408, demandChannel#1165457, demandStream#1165458, kpis#1165459, true AS isNewlyCalculated#1165460]
(120) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, version#1165403, product#1165404, plant#1165405, qty#1165408, demandChannel#1165457, demandStream#1165458, cast(kpis#1165459 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1165461, isNewlyCalculated#1165460]
(121) LogicalRDD
Arguments: [shardId#1165462, worklistShardItemId#1165463L, version#1165464, product#1165465, plant#1165466, periodStart#1165467, periodEnd#1165468, qty#1165469], false
(122) RepartitionByExpression
Arguments: [product#1165465, plant#1165466], 37
(123) Project
Arguments: [shardId#1165462, worklistShardItemId#1165463L, version#1165464, product#1165465, plant#1165466, qty#1165469]
(124) LogicalRDD
Arguments: [shardId#1165470, worklistShardItemId#1165471L, qty#1165472, demandChannel#1165473, demandStream#1165474, kpis#1165475], false
(125) Project
Arguments: [shardId#1165470 AS cachedShardId#1165476, worklistShardItemId#1165471L AS cachedWorklistShardItemId#1165477L, qty#1165472 AS cachedQty#1165478, demandChannel#1165473, demandStream#1165474, kpis#1165475 AS cachedKpis#1165479]
(126) Join
Arguments: Inner, (((worklistShardItemId#1165463L = cachedWorklistShardItemId#1165477L) AND (shardId#1165462 = cachedShardId#1165476)) AND ((qty#1165469 = cachedQty#1165478) OR isnull(qty#1165469)))
(127) Project
Arguments: [shardId#1165462, worklistShardItemId#1165463L, version#1165464, product#1165465, plant#1165466]
(128) Deduplicate
Arguments: [plant#1165466, shardId#1165462, version#1165464, worklistShardItemId#1165463L, product#1165465]
(129) LogicalRDD
Arguments: [shardId#1165480, worklistShardItemId#1165481L, qty#1165482, demandChannel#1165483, demandStream#1165484, kpis#1165485], false
(130) Project
Arguments: [shardId#1165480 AS cachedShardId#1165486, worklistShardItemId#1165481L AS cachedWorklistShardItemId#1165487L, qty#1165482 AS cachedQty#1165488, demandChannel#1165483, demandStream#1165484, kpis#1165485 AS cachedKpis#1165489]
(131) Join
Arguments: Inner, ((worklistShardItemId#1165463L = cachedWorklistShardItemId#1165487L) AND (shardId#1165462 = cachedShardId#1165486))
(132) Project
Arguments: [shardId#1165462, worklistShardItemId#1165463L, version#1165464, product#1165465, plant#1165466, cachedQty#1165488 AS qty#1165490, demandChannel#1165483, demandStream#1165484, cachedKpis#1165489 AS kpis#1165491]
(133) Project
Arguments: [shardId#1165462, worklistShardItemId#1165463L, version#1165464, product#1165465, plant#1165466, qty#1165490, demandChannel#1165483, demandStream#1165484, kpis#1165491, false AS isNewlyCalculated#1165492]
(134) Project
Arguments: [shardId#1165462, worklistShardItemId#1165463L, version#1165464, product#1165465, plant#1165466, qty#1165490, demandChannel#1165483, demandStream#1165484, kpis#1165491, isNewlyCalculated#1165492]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1165460 <=> true)
(137) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, product#1165404, plant#1165405, qty#1165408, kpis#1165461]
(138) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, product#1165404, plant#1165405, qty#1165408]
(139) Deduplicate
Arguments: [plant#1165405, shardId#1165401, qty#1165408, worklistShardItemId#1165402L, product#1165404]
(140) Join
Arguments: Inner, ((product#1164556 <=> product#1165404) AND ((plant#1164557 <=> plant#1165405) AND ((qty#1164583 <=> qty#1165408) OR isnull(qty#1165408))))
(141) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, qty#1164583, demandChannel#1164563, demandStream#1164564, kpis#1164592]
(142) Deduplicate
Arguments: [demandChannel#1164563, shardId#1165401, qty#1164583, worklistShardItemId#1165402L, demandStream#1164564]
(143) Project
Arguments: [shardId#1165401, worklistShardItemId#1165402L, qty#1164583, demandChannel#1164563, demandStream#1164564, kpis#1164592]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495, product#1165496, plant#1165497, periodStart#1165498, periodEnd#1165499, qty#1165500], false
(146) RepartitionByExpression
Arguments: [product#1165496, plant#1165497], 37
(147) Project
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495, product#1165496, plant#1165497, qty#1165500]
(148) LogicalRDD
Arguments: [shardId#1165501, worklistShardItemId#1165502L, version#1165503, product#1165504, plant#1165505, periodStart#1165506, periodEnd#1165507, qty#1165508], false
(149) RepartitionByExpression
Arguments: [product#1165504, plant#1165505], 37
(150) Project
Arguments: [shardId#1165501, worklistShardItemId#1165502L, version#1165503, product#1165504, plant#1165505, qty#1165508]
(151) LogicalRDD
Arguments: [shardId#1165509, worklistShardItemId#1165510L, qty#1165511, demandChannel#1165512, demandStream#1165513, kpis#1165514], false
(152) Project
Arguments: [shardId#1165509 AS cachedShardId#1165515, worklistShardItemId#1165510L AS cachedWorklistShardItemId#1165516L, qty#1165511 AS cachedQty#1165517, demandChannel#1165512, demandStream#1165513, kpis#1165514 AS cachedKpis#1165518]
(153) Join
Arguments: Inner, (((worklistShardItemId#1165502L = cachedWorklistShardItemId#1165516L) AND (shardId#1165501 = cachedShardId#1165515)) AND ((qty#1165508 = cachedQty#1165517) OR isnull(qty#1165508)))
(154) Project
Arguments: [shardId#1165501, worklistShardItemId#1165502L, version#1165503, product#1165504, plant#1165505]
(155) Deduplicate
Arguments: [plant#1165505, shardId#1165501, version#1165503, worklistShardItemId#1165502L, product#1165504]
(156) LogicalRDD
Arguments: [shardId#1165519, worklistShardItemId#1165520L, qty#1165521, demandChannel#1165522, demandStream#1165523, kpis#1165524], false
(157) Project
Arguments: [shardId#1165519 AS cachedShardId#1165525, worklistShardItemId#1165520L AS cachedWorklistShardItemId#1165526L, qty#1165521 AS cachedQty#1165527, demandChannel#1165522, demandStream#1165523, kpis#1165524 AS cachedKpis#1165528]
(158) Join
Arguments: Inner, ((worklistShardItemId#1165502L = cachedWorklistShardItemId#1165526L) AND (shardId#1165501 = cachedShardId#1165525))
(159) Project
Arguments: [shardId#1165501, worklistShardItemId#1165502L, version#1165503, product#1165504, plant#1165505, cachedQty#1165527 AS qty#1165529, demandChannel#1165522, demandStream#1165523, cachedKpis#1165528 AS kpis#1165530]
(160) Project
Arguments: [shardId#1165501, worklistShardItemId#1165502L, version#1165503, product#1165504, plant#1165505, qty#1165529]
(161) LogicalRDD
Arguments: [shardId#1165531, worklistShardItemId#1165532L, version#1165533, product#1165534, plant#1165535, periodStart#1165536, periodEnd#1165537, qty#1165538], false
(162) RepartitionByExpression
Arguments: [product#1165534, plant#1165535], 37
(163) Project
Arguments: [shardId#1165531, worklistShardItemId#1165532L, version#1165533, product#1165534, plant#1165535, qty#1165538]
(164) LogicalRDD
Arguments: [shardId#1165539, worklistShardItemId#1165540L, qty#1165541, demandChannel#1165542, demandStream#1165543, kpis#1165544], false
(165) Project
Arguments: [shardId#1165539 AS cachedShardId#1165545, worklistShardItemId#1165540L AS cachedWorklistShardItemId#1165546L, qty#1165541 AS cachedQty#1165547, demandChannel#1165542, demandStream#1165543, kpis#1165544 AS cachedKpis#1165548]
(166) Join
Arguments: Inner, (((worklistShardItemId#1165532L = cachedWorklistShardItemId#1165546L) AND (shardId#1165531 = cachedShardId#1165545)) AND isnull(qty#1165538))
(167) Project
Arguments: [shardId#1165531, worklistShardItemId#1165532L, version#1165533, product#1165534, plant#1165535, qty#1165538]
(168) Project
Arguments: [shardId#1165531, worklistShardItemId#1165532L, version#1165533, product#1165534, plant#1165535, qty#1165538]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1165493 <=> shardId#1165501) AND (worklistShardItemId#1165494L <=> worklistShardItemId#1165502L)) AND (version#1165495 <=> version#1165503)) AND (product#1165496 <=> product#1165504)) AND (plant#1165497 <=> plant#1165505)) AND (qty#1165500 <=> qty#1165529))
(171) Project
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495, product#1165496, plant#1165497, qty#1165500]
(172) Project
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495, product#1165496, plant#1165497, qty#1165500, cast(null as string) AS demandChannel#1165549]
(173) Project
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495, product#1165496, plant#1165497, qty#1165500, demandChannel#1165549, cast(null as string) AS demandStream#1165550]
(174) Project
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495, product#1165496, plant#1165497, qty#1165500, demandChannel#1165549, demandStream#1165550, array() AS kpis#1165551]
(175) Project
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495, product#1165496, plant#1165497, qty#1165500, demandChannel#1165549, demandStream#1165550, kpis#1165551, true AS isNewlyCalculated#1165552]
(176) Project
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495, product#1165496, plant#1165497, qty#1165500, demandChannel#1165549, demandStream#1165550, cast(kpis#1165551 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1165553, isNewlyCalculated#1165552]
(177) LogicalRDD
Arguments: [shardId#1165554, worklistShardItemId#1165555L, version#1165556, product#1165557, plant#1165558, periodStart#1165559, periodEnd#1165560, qty#1165561], false
(178) RepartitionByExpression
Arguments: [product#1165557, plant#1165558], 37
(179) Project
Arguments: [shardId#1165554, worklistShardItemId#1165555L, version#1165556, product#1165557, plant#1165558, qty#1165561]
(180) LogicalRDD
Arguments: [shardId#1165562, worklistShardItemId#1165563L, qty#1165564, demandChannel#1165565, demandStream#1165566, kpis#1165567], false
(181) Project
Arguments: [shardId#1165562 AS cachedShardId#1165568, worklistShardItemId#1165563L AS cachedWorklistShardItemId#1165569L, qty#1165564 AS cachedQty#1165570, demandChannel#1165565, demandStream#1165566, kpis#1165567 AS cachedKpis#1165571]
(182) Join
Arguments: Inner, (((worklistShardItemId#1165555L = cachedWorklistShardItemId#1165569L) AND (shardId#1165554 = cachedShardId#1165568)) AND ((qty#1165561 = cachedQty#1165570) OR isnull(qty#1165561)))
(183) Project
Arguments: [shardId#1165554, worklistShardItemId#1165555L, version#1165556, product#1165557, plant#1165558]
(184) Deduplicate
Arguments: [plant#1165558, shardId#1165554, version#1165556, worklistShardItemId#1165555L, product#1165557]
(185) LogicalRDD
Arguments: [shardId#1165572, worklistShardItemId#1165573L, qty#1165574, demandChannel#1165575, demandStream#1165576, kpis#1165577], false
(186) Project
Arguments: [shardId#1165572 AS cachedShardId#1165578, worklistShardItemId#1165573L AS cachedWorklistShardItemId#1165579L, qty#1165574 AS cachedQty#1165580, demandChannel#1165575, demandStream#1165576, kpis#1165577 AS cachedKpis#1165581]
(187) Join
Arguments: Inner, ((worklistShardItemId#1165555L = cachedWorklistShardItemId#1165579L) AND (shardId#1165554 = cachedShardId#1165578))
(188) Project
Arguments: [shardId#1165554, worklistShardItemId#1165555L, version#1165556, product#1165557, plant#1165558, cachedQty#1165580 AS qty#1165582, demandChannel#1165575, demandStream#1165576, cachedKpis#1165581 AS kpis#1165583]
(189) Project
Arguments: [shardId#1165554, worklistShardItemId#1165555L, version#1165556, product#1165557, plant#1165558, qty#1165582, demandChannel#1165575, demandStream#1165576, kpis#1165583, false AS isNewlyCalculated#1165584]
(190) Project
Arguments: [shardId#1165554, worklistShardItemId#1165555L, version#1165556, product#1165557, plant#1165558, qty#1165582, demandChannel#1165575, demandStream#1165576, kpis#1165583, isNewlyCalculated#1165584]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1165493, worklistShardItemId#1165494L, version#1165495]
(193) Aggregate
Arguments: [shardId#1165493, worklistShardItemId#1165494L], [shardId#1165493, worklistShardItemId#1165494L, (max(version#1165495) + 1) AS version#1165396]
(194) Join
Arguments: Inner, ((shardId#1100457 = shardId#1165493) AND (worklistShardItemId#1100458L = worklistShardItemId#1165494L))
(195) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1162027, demandStream#1162028, kpis#1162062, version#1165396]
(196) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1165396, qty#1100464, demandChannel#1162027, demandStream#1162028, kpis#1162062]