== 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@393c673a, [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#1045087, worklistShardItemId#1045088L, version#1045089, product#1045090, plant#1045091, periodStart#1045092, periodEnd#1045093, qty#1045094], false
(7) RepartitionByExpression
Arguments: [product#1045090, plant#1045091], 37
(8) Project
Arguments: [shardId#1045087, worklistShardItemId#1045088L, version#1045089, product#1045090, plant#1045091, qty#1045094]
(9) LogicalRDD
Arguments: [shardId#1044842, worklistShardItemId#1044843L, qty#1044844, demandChannel#1044845, demandStream#1044846, kpis#1044847], false
(10) Project
Arguments: [shardId#1044842 AS cachedShardId#1044848, worklistShardItemId#1044843L AS cachedWorklistShardItemId#1044849L, qty#1044844 AS cachedQty#1044850, demandChannel#1044845, demandStream#1044846, kpis#1044847 AS cachedKpis#1044851]
(11) Join
Arguments: Inner, (((worklistShardItemId#1045088L = cachedWorklistShardItemId#1044849L) AND (shardId#1045087 = cachedShardId#1044848)) AND ((qty#1045094 = cachedQty#1044850) OR isnull(qty#1045094)))
(12) Project
Arguments: [shardId#1045087, worklistShardItemId#1045088L, version#1045089, product#1045090, plant#1045091]
(13) Deduplicate
Arguments: [plant#1045091, shardId#1045087, version#1045089, worklistShardItemId#1045088L, product#1045090]
(14) LogicalRDD
Arguments: [shardId#1044852, worklistShardItemId#1044853L, qty#1044854, demandChannel#1044855, demandStream#1044856, kpis#1044857], false
(15) Project
Arguments: [shardId#1044852 AS cachedShardId#1044858, worklistShardItemId#1044853L AS cachedWorklistShardItemId#1044859L, qty#1044854 AS cachedQty#1044860, demandChannel#1044855, demandStream#1044856, kpis#1044857 AS cachedKpis#1044861]
(16) Join
Arguments: Inner, ((worklistShardItemId#1045088L = cachedWorklistShardItemId#1044859L) AND (shardId#1045087 = cachedShardId#1044858))
(17) Project
Arguments: [shardId#1045087, worklistShardItemId#1045088L, version#1045089, product#1045090, plant#1045091, cachedQty#1044860 AS qty#1044862, demandChannel#1044855, demandStream#1044856, cachedKpis#1044861 AS kpis#1044863]
(18) Project
Arguments: [shardId#1045087, worklistShardItemId#1045088L, version#1045089, product#1045090, plant#1045091, qty#1044862]
(19) LogicalRDD
Arguments: [shardId#1045069, worklistShardItemId#1045070L, version#1045071, product#1045072, plant#1045073, periodStart#1045074, periodEnd#1045075, qty#1045076], false
(20) RepartitionByExpression
Arguments: [product#1045072, plant#1045073], 37
(21) Project
Arguments: [shardId#1045069, worklistShardItemId#1045070L, version#1045071, product#1045072, plant#1045073, qty#1045076]
(22) LogicalRDD
Arguments: [shardId#1045077, worklistShardItemId#1045078L, qty#1045079, demandChannel#1045080, demandStream#1045081, kpis#1045082], false
(23) Project
Arguments: [shardId#1045077 AS cachedShardId#1045083, worklistShardItemId#1045078L AS cachedWorklistShardItemId#1045084L, qty#1045079 AS cachedQty#1045085, demandChannel#1045080, demandStream#1045081, kpis#1045082 AS cachedKpis#1045086]
(24) Join
Arguments: Inner, (((worklistShardItemId#1045070L = cachedWorklistShardItemId#1045084L) AND (shardId#1045069 = cachedShardId#1045083)) AND isnull(qty#1045076))
(25) Project
Arguments: [shardId#1045069, worklistShardItemId#1045070L, version#1045071, product#1045072, plant#1045073, qty#1045076]
(26) Project
Arguments: [shardId#1045069, worklistShardItemId#1045070L, version#1045071, product#1045072, plant#1045073, qty#1045076]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1011815 <=> shardId#1045087) AND (worklistShardItemId#1011816L <=> worklistShardItemId#1045088L)) AND (version#1011817 <=> version#1045089)) AND (product#1011818 <=> product#1045090)) AND (plant#1011819 <=> plant#1045091)) AND (qty#1011822 <=> qty#1044862))
(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#1045095]
(31) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1045095, cast(null as string) AS demandStream#1045096]
(32) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1045095, demandStream#1045096, array() AS kpis#1045097]
(33) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1045095, demandStream#1045096, kpis#1045097, true AS isNewlyCalculated#1045098]
(34) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1045095, demandStream#1045096, cast(kpis#1045097 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1045130, isNewlyCalculated#1045098]
(35) LogicalRDD
Arguments: [shardId#1045100, worklistShardItemId#1045101L, version#1045102, product#1045103, plant#1045104, periodStart#1045105, periodEnd#1045106, qty#1045107], false
(36) RepartitionByExpression
Arguments: [product#1045103, plant#1045104], 37
(37) Project
Arguments: [shardId#1045100, worklistShardItemId#1045101L, version#1045102, product#1045103, plant#1045104, qty#1045107]
(38) LogicalRDD
Arguments: [shardId#1045108, worklistShardItemId#1045109L, qty#1045110, demandChannel#1045111, demandStream#1045112, kpis#1045113], false
(39) Project
Arguments: [shardId#1045108 AS cachedShardId#1045114, worklistShardItemId#1045109L AS cachedWorklistShardItemId#1045115L, qty#1045110 AS cachedQty#1045116, demandChannel#1045111, demandStream#1045112, kpis#1045113 AS cachedKpis#1045117]
(40) Join
Arguments: Inner, (((worklistShardItemId#1045101L = cachedWorklistShardItemId#1045115L) AND (shardId#1045100 = cachedShardId#1045114)) AND ((qty#1045107 = cachedQty#1045116) OR isnull(qty#1045107)))
(41) Project
Arguments: [shardId#1045100, worklistShardItemId#1045101L, version#1045102, product#1045103, plant#1045104]
(42) Deduplicate
Arguments: [plant#1045104, shardId#1045100, version#1045102, worklistShardItemId#1045101L, product#1045103]
(43) LogicalRDD
Arguments: [shardId#1045118, worklistShardItemId#1045119L, qty#1045120, demandChannel#1045121, demandStream#1045122, kpis#1045123], false
(44) Project
Arguments: [shardId#1045118 AS cachedShardId#1045124, worklistShardItemId#1045119L AS cachedWorklistShardItemId#1045125L, qty#1045120 AS cachedQty#1045126, demandChannel#1045121, demandStream#1045122, kpis#1045123 AS cachedKpis#1045127]
(45) Join
Arguments: Inner, ((worklistShardItemId#1045101L = cachedWorklistShardItemId#1045125L) AND (shardId#1045100 = cachedShardId#1045124))
(46) Project
Arguments: [shardId#1045100, worklistShardItemId#1045101L, version#1045102, product#1045103, plant#1045104, cachedQty#1045126 AS qty#1045128, demandChannel#1045121, demandStream#1045122, cachedKpis#1045127 AS kpis#1045129]
(47) Project
Arguments: [shardId#1045100, worklistShardItemId#1045101L, version#1045102, product#1045103, plant#1045104, qty#1045128, demandChannel#1045121, demandStream#1045122, kpis#1045129, false AS isNewlyCalculated#1045099]
(48) Project
Arguments: [shardId#1045100, worklistShardItemId#1045101L, version#1045102, product#1045103, plant#1045104, qty#1045128, demandChannel#1045121, demandStream#1045122, kpis#1045129, isNewlyCalculated#1045099]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1045098 <=> false)
(51) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1045095, demandStream#1045096, kpis#1045130]
(52) ExternalRDD
Arguments: [obj#1047594]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83122), 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, 83122), 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, 83122), 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, 83122), 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, 83122), 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#1047597, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83123), 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, 83124), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83124), 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, 83124), 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, 83124), 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, 83125), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83125), 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, 83125), 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, 83125), 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, 83125), 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, 83124), 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, 83123), 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, 83126), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83126), 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, 83126), 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, 83126), 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, 83126), 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, 83123), 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, 83123), 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, 83123), 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, 83127), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83127), 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, 83128), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83128), 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, 83128), 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, 83128), 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, 83128), 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, 83127), 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, 83127), 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, 83123), 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#1047598]
(54) Generate
Arguments: explode(prodPlantResults#1047598), false, [prodPlantResults#1047605]
(55) Project
Arguments: [prodPlantResults#1047605]
(56) Project
Arguments: [prodPlantResults#1047605.productId AS product#1047624, prodPlantResults#1047605.plantId AS plant#1047625, prodPlantResults#1047605.kpiResults AS kpis#1047626]
(57) Project
Arguments: [product#1047624, plant#1047625, kpis#1047626, null AS qty#1047630]
(58) Project
Arguments: [product#1047624, plant#1047625, kpis#1047626, qty#1047630, cast(null as string) AS demandChannel#1047631]
(59) Project
Arguments: [product#1047624, plant#1047625, kpis#1047626, qty#1047630, demandChannel#1047631, cast(null as string) AS demandStream#1047632]
(60) Project
Arguments: [product#1047624, plant#1047625, kpis#1047626, cast(qty#1047630 as double) AS qty#1047651, demandChannel#1047631, demandStream#1047632]
(61) ExternalRDD
Arguments: [obj#1047647]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83122), 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, 83122), 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, 83122), 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, 83122), 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, 83122), 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#1047648, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83123), 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, 83124), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83124), 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, 83124), 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, 83124), 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, 83125), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83125), 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, 83125), 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, 83125), 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, 83125), 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, 83124), 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, 83123), 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, 83126), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83126), 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, 83126), 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, 83126), 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, 83126), 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, 83123), 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, 83123), 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, 83123), 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, 83127), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83127), 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, 83128), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83128), 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, 83128), 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, 83128), 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, 83128), 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, 83127), 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, 83127), 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, 83123), 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#1047649]
(63) Generate
Arguments: explode(prodPlantResults#1047649), false, [prodPlantResults#1047650]
(64) Project
Arguments: [prodPlantResults#1047650]
(65) Generate
Arguments: explode(prodPlantResults#1047650.quantityKpiResults), false, [quantityKpiResults#1047617]
(66) Project
Arguments: [prodPlantResults#1047650.productId AS product#1047611, prodPlantResults#1047650.plantId AS plant#1047612, quantityKpiResults#1047617]
(67) Project
Arguments: [product#1047611, plant#1047612, quantityKpiResults#1047617, quantityKpiResults#1047617.quantity AS qty#1047618]
(68) Project
Arguments: [product#1047611, plant#1047612, quantityKpiResults#1047617, qty#1047618, cast(null as string) AS demandChannel#1047620]
(69) Project
Arguments: [product#1047611, plant#1047612, quantityKpiResults#1047617, qty#1047618, demandChannel#1047620, cast(null as string) AS demandStream#1047621]
(70) Project
Arguments: [product#1047611, plant#1047612, quantityKpiResults#1047617, qty#1047618, demandChannel#1047620, demandStream#1047621, quantityKpiResults#1047617.kpiResults AS kpis#1047622]
(71) Project
Arguments: [product#1047611, plant#1047612, qty#1047618, demandChannel#1047620, demandStream#1047621, kpis#1047622]
(72) Project
Arguments: [product#1047611, plant#1047612, kpis#1047622, qty#1047618, demandChannel#1047620, demandStream#1047621]
(73) ExternalRDD
Arguments: [obj#1047652]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83122), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83122), 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, 83122), 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, 83122), 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, 83122), 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, 83122), 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#1047653, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83123), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83123), 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, 83124), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83124), 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, 83124), 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, 83124), 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, 83125), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83125), 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, 83125), 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, 83125), 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, 83125), 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, 83124), 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, 83123), 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, 83126), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83126), 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, 83126), 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, 83126), 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, 83126), 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, 83123), 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, 83123), 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, 83123), 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, 83127), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83127), 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, 83128), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 83128), 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, 83128), 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, 83128), 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, 83128), 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, 83127), 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, 83127), 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, 83123), 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#1047654]
(75) Generate
Arguments: explode(prodPlantResults#1047654), false, [prodPlantResults#1047655]
(76) Project
Arguments: [prodPlantResults#1047655]
(77) Generate
Arguments: explode(prodPlantResults#1047655.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1047639]
(78) Project
Arguments: [prodPlantResults#1047655.productId AS product#1047633, prodPlantResults#1047655.plantId AS plant#1047634, demandChannelStreamKpiResults#1047639]
(79) Project
Arguments: [product#1047633, plant#1047634, demandChannelStreamKpiResults#1047639, null AS qty#1047640]
(80) Project
Arguments: [product#1047633, plant#1047634, demandChannelStreamKpiResults#1047639, qty#1047640, demandChannelStreamKpiResults#1047639.demandChannel AS demandChannel#1047641]
(81) Project
Arguments: [product#1047633, plant#1047634, demandChannelStreamKpiResults#1047639, qty#1047640, demandChannel#1047641, demandChannelStreamKpiResults#1047639.demandStream AS demandStream#1047643]
(82) Project
Arguments: [product#1047633, plant#1047634, demandChannelStreamKpiResults#1047639, qty#1047640, demandChannel#1047641, demandStream#1047643, demandChannelStreamKpiResults#1047639.kpiResults AS kpis#1047645]
(83) Project
Arguments: [product#1047633, plant#1047634, qty#1047640, demandChannel#1047641, demandStream#1047643, kpis#1047645]
(84) Project
Arguments: [product#1047633, plant#1047634, kpis#1047645, qty#1047640, demandChannel#1047641, demandStream#1047643]
(85) Project
Arguments: [product#1047633, plant#1047634, kpis#1047645, cast(qty#1047640 as double) AS qty#1047656, demandChannel#1047641, demandStream#1047643]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1047624, plant#1047625, transform(kpis#1047626, lambdafunction(struct(label, lambda kpi#1047661.label, dateTime, lambda kpi#1047661.datetime, value, lambda kpi#1047661.value), lambda kpi#1047661, false)) AS kpis#1047660, qty#1047651, demandChannel#1047631, demandStream#1047632]
(88) Project
Arguments: [product#1047624, plant#1047625, qty#1047651, demandChannel#1047631, demandStream#1047632, kpis#1047660]
(89) LogicalRDD
Arguments: [shardId#1048469, worklistShardItemId#1048470L, version#1048471, product#1048472, plant#1048473, periodStart#1048474, periodEnd#1048475, qty#1048476], false
(90) RepartitionByExpression
Arguments: [product#1048472, plant#1048473], 37
(91) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, version#1048471, product#1048472, plant#1048473, qty#1048476]
(92) LogicalRDD
Arguments: [shardId#1048477, worklistShardItemId#1048478L, version#1048479, product#1048480, plant#1048481, periodStart#1048482, periodEnd#1048483, qty#1048484], false
(93) RepartitionByExpression
Arguments: [product#1048480, plant#1048481], 37
(94) Project
Arguments: [shardId#1048477, worklistShardItemId#1048478L, version#1048479, product#1048480, plant#1048481, qty#1048484]
(95) LogicalRDD
Arguments: [shardId#1048485, worklistShardItemId#1048486L, qty#1048487, demandChannel#1048488, demandStream#1048489, kpis#1048490], false
(96) Project
Arguments: [shardId#1048485 AS cachedShardId#1048491, worklistShardItemId#1048486L AS cachedWorklistShardItemId#1048492L, qty#1048487 AS cachedQty#1048493, demandChannel#1048488, demandStream#1048489, kpis#1048490 AS cachedKpis#1048494]
(97) Join
Arguments: Inner, (((worklistShardItemId#1048478L = cachedWorklistShardItemId#1048492L) AND (shardId#1048477 = cachedShardId#1048491)) AND ((qty#1048484 = cachedQty#1048493) OR isnull(qty#1048484)))
(98) Project
Arguments: [shardId#1048477, worklistShardItemId#1048478L, version#1048479, product#1048480, plant#1048481]
(99) Deduplicate
Arguments: [plant#1048481, shardId#1048477, version#1048479, worklistShardItemId#1048478L, product#1048480]
(100) LogicalRDD
Arguments: [shardId#1048495, worklistShardItemId#1048496L, qty#1048497, demandChannel#1048498, demandStream#1048499, kpis#1048500], false
(101) Project
Arguments: [shardId#1048495 AS cachedShardId#1048501, worklistShardItemId#1048496L AS cachedWorklistShardItemId#1048502L, qty#1048497 AS cachedQty#1048503, demandChannel#1048498, demandStream#1048499, kpis#1048500 AS cachedKpis#1048504]
(102) Join
Arguments: Inner, ((worklistShardItemId#1048478L = cachedWorklistShardItemId#1048502L) AND (shardId#1048477 = cachedShardId#1048501))
(103) Project
Arguments: [shardId#1048477, worklistShardItemId#1048478L, version#1048479, product#1048480, plant#1048481, cachedQty#1048503 AS qty#1048505, demandChannel#1048498, demandStream#1048499, cachedKpis#1048504 AS kpis#1048506]
(104) Project
Arguments: [shardId#1048477, worklistShardItemId#1048478L, version#1048479, product#1048480, plant#1048481, qty#1048505]
(105) LogicalRDD
Arguments: [shardId#1048507, worklistShardItemId#1048508L, version#1048509, product#1048510, plant#1048511, periodStart#1048512, periodEnd#1048513, qty#1048514], false
(106) RepartitionByExpression
Arguments: [product#1048510, plant#1048511], 37
(107) Project
Arguments: [shardId#1048507, worklistShardItemId#1048508L, version#1048509, product#1048510, plant#1048511, qty#1048514]
(108) LogicalRDD
Arguments: [shardId#1048515, worklistShardItemId#1048516L, qty#1048517, demandChannel#1048518, demandStream#1048519, kpis#1048520], false
(109) Project
Arguments: [shardId#1048515 AS cachedShardId#1048521, worklistShardItemId#1048516L AS cachedWorklistShardItemId#1048522L, qty#1048517 AS cachedQty#1048523, demandChannel#1048518, demandStream#1048519, kpis#1048520 AS cachedKpis#1048524]
(110) Join
Arguments: Inner, (((worklistShardItemId#1048508L = cachedWorklistShardItemId#1048522L) AND (shardId#1048507 = cachedShardId#1048521)) AND isnull(qty#1048514))
(111) Project
Arguments: [shardId#1048507, worklistShardItemId#1048508L, version#1048509, product#1048510, plant#1048511, qty#1048514]
(112) Project
Arguments: [shardId#1048507, worklistShardItemId#1048508L, version#1048509, product#1048510, plant#1048511, qty#1048514]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1048469 <=> shardId#1048477) AND (worklistShardItemId#1048470L <=> worklistShardItemId#1048478L)) AND (version#1048471 <=> version#1048479)) AND (product#1048472 <=> product#1048480)) AND (plant#1048473 <=> plant#1048481)) AND (qty#1048476 <=> qty#1048505))
(115) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, version#1048471, product#1048472, plant#1048473, qty#1048476]
(116) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, version#1048471, product#1048472, plant#1048473, qty#1048476, cast(null as string) AS demandChannel#1048525]
(117) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, version#1048471, product#1048472, plant#1048473, qty#1048476, demandChannel#1048525, cast(null as string) AS demandStream#1048526]
(118) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, version#1048471, product#1048472, plant#1048473, qty#1048476, demandChannel#1048525, demandStream#1048526, array() AS kpis#1048527]
(119) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, version#1048471, product#1048472, plant#1048473, qty#1048476, demandChannel#1048525, demandStream#1048526, kpis#1048527, true AS isNewlyCalculated#1048528]
(120) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, version#1048471, product#1048472, plant#1048473, qty#1048476, demandChannel#1048525, demandStream#1048526, cast(kpis#1048527 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1048529, isNewlyCalculated#1048528]
(121) LogicalRDD
Arguments: [shardId#1048530, worklistShardItemId#1048531L, version#1048532, product#1048533, plant#1048534, periodStart#1048535, periodEnd#1048536, qty#1048537], false
(122) RepartitionByExpression
Arguments: [product#1048533, plant#1048534], 37
(123) Project
Arguments: [shardId#1048530, worklistShardItemId#1048531L, version#1048532, product#1048533, plant#1048534, qty#1048537]
(124) LogicalRDD
Arguments: [shardId#1048538, worklistShardItemId#1048539L, qty#1048540, demandChannel#1048541, demandStream#1048542, kpis#1048543], false
(125) Project
Arguments: [shardId#1048538 AS cachedShardId#1048544, worklistShardItemId#1048539L AS cachedWorklistShardItemId#1048545L, qty#1048540 AS cachedQty#1048546, demandChannel#1048541, demandStream#1048542, kpis#1048543 AS cachedKpis#1048547]
(126) Join
Arguments: Inner, (((worklistShardItemId#1048531L = cachedWorklistShardItemId#1048545L) AND (shardId#1048530 = cachedShardId#1048544)) AND ((qty#1048537 = cachedQty#1048546) OR isnull(qty#1048537)))
(127) Project
Arguments: [shardId#1048530, worklistShardItemId#1048531L, version#1048532, product#1048533, plant#1048534]
(128) Deduplicate
Arguments: [plant#1048534, shardId#1048530, version#1048532, worklistShardItemId#1048531L, product#1048533]
(129) LogicalRDD
Arguments: [shardId#1048548, worklistShardItemId#1048549L, qty#1048550, demandChannel#1048551, demandStream#1048552, kpis#1048553], false
(130) Project
Arguments: [shardId#1048548 AS cachedShardId#1048554, worklistShardItemId#1048549L AS cachedWorklistShardItemId#1048555L, qty#1048550 AS cachedQty#1048556, demandChannel#1048551, demandStream#1048552, kpis#1048553 AS cachedKpis#1048557]
(131) Join
Arguments: Inner, ((worklistShardItemId#1048531L = cachedWorklistShardItemId#1048555L) AND (shardId#1048530 = cachedShardId#1048554))
(132) Project
Arguments: [shardId#1048530, worklistShardItemId#1048531L, version#1048532, product#1048533, plant#1048534, cachedQty#1048556 AS qty#1048558, demandChannel#1048551, demandStream#1048552, cachedKpis#1048557 AS kpis#1048559]
(133) Project
Arguments: [shardId#1048530, worklistShardItemId#1048531L, version#1048532, product#1048533, plant#1048534, qty#1048558, demandChannel#1048551, demandStream#1048552, kpis#1048559, false AS isNewlyCalculated#1048560]
(134) Project
Arguments: [shardId#1048530, worklistShardItemId#1048531L, version#1048532, product#1048533, plant#1048534, qty#1048558, demandChannel#1048551, demandStream#1048552, kpis#1048559, isNewlyCalculated#1048560]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1048528 <=> true)
(137) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, product#1048472, plant#1048473, qty#1048476, kpis#1048529]
(138) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, product#1048472, plant#1048473, qty#1048476]
(139) Deduplicate
Arguments: [plant#1048473, shardId#1048469, qty#1048476, worklistShardItemId#1048470L, product#1048472]
(140) Join
Arguments: Inner, ((product#1047624 <=> product#1048472) AND ((plant#1047625 <=> plant#1048473) AND ((qty#1047651 <=> qty#1048476) OR isnull(qty#1048476))))
(141) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, qty#1047651, demandChannel#1047631, demandStream#1047632, kpis#1047660]
(142) Deduplicate
Arguments: [demandChannel#1047631, shardId#1048469, qty#1047651, worklistShardItemId#1048470L, demandStream#1047632]
(143) Project
Arguments: [shardId#1048469, worklistShardItemId#1048470L, qty#1047651, demandChannel#1047631, demandStream#1047632, kpis#1047660]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563, product#1048564, plant#1048565, periodStart#1048566, periodEnd#1048567, qty#1048568], false
(146) RepartitionByExpression
Arguments: [product#1048564, plant#1048565], 37
(147) Project
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563, product#1048564, plant#1048565, qty#1048568]
(148) LogicalRDD
Arguments: [shardId#1048569, worklistShardItemId#1048570L, version#1048571, product#1048572, plant#1048573, periodStart#1048574, periodEnd#1048575, qty#1048576], false
(149) RepartitionByExpression
Arguments: [product#1048572, plant#1048573], 37
(150) Project
Arguments: [shardId#1048569, worklistShardItemId#1048570L, version#1048571, product#1048572, plant#1048573, qty#1048576]
(151) LogicalRDD
Arguments: [shardId#1048577, worklistShardItemId#1048578L, qty#1048579, demandChannel#1048580, demandStream#1048581, kpis#1048582], false
(152) Project
Arguments: [shardId#1048577 AS cachedShardId#1048583, worklistShardItemId#1048578L AS cachedWorklistShardItemId#1048584L, qty#1048579 AS cachedQty#1048585, demandChannel#1048580, demandStream#1048581, kpis#1048582 AS cachedKpis#1048586]
(153) Join
Arguments: Inner, (((worklistShardItemId#1048570L = cachedWorklistShardItemId#1048584L) AND (shardId#1048569 = cachedShardId#1048583)) AND ((qty#1048576 = cachedQty#1048585) OR isnull(qty#1048576)))
(154) Project
Arguments: [shardId#1048569, worklistShardItemId#1048570L, version#1048571, product#1048572, plant#1048573]
(155) Deduplicate
Arguments: [plant#1048573, shardId#1048569, version#1048571, worklistShardItemId#1048570L, product#1048572]
(156) LogicalRDD
Arguments: [shardId#1048587, worklistShardItemId#1048588L, qty#1048589, demandChannel#1048590, demandStream#1048591, kpis#1048592], false
(157) Project
Arguments: [shardId#1048587 AS cachedShardId#1048593, worklistShardItemId#1048588L AS cachedWorklistShardItemId#1048594L, qty#1048589 AS cachedQty#1048595, demandChannel#1048590, demandStream#1048591, kpis#1048592 AS cachedKpis#1048596]
(158) Join
Arguments: Inner, ((worklistShardItemId#1048570L = cachedWorklistShardItemId#1048594L) AND (shardId#1048569 = cachedShardId#1048593))
(159) Project
Arguments: [shardId#1048569, worklistShardItemId#1048570L, version#1048571, product#1048572, plant#1048573, cachedQty#1048595 AS qty#1048597, demandChannel#1048590, demandStream#1048591, cachedKpis#1048596 AS kpis#1048598]
(160) Project
Arguments: [shardId#1048569, worklistShardItemId#1048570L, version#1048571, product#1048572, plant#1048573, qty#1048597]
(161) LogicalRDD
Arguments: [shardId#1048599, worklistShardItemId#1048600L, version#1048601, product#1048602, plant#1048603, periodStart#1048604, periodEnd#1048605, qty#1048606], false
(162) RepartitionByExpression
Arguments: [product#1048602, plant#1048603], 37
(163) Project
Arguments: [shardId#1048599, worklistShardItemId#1048600L, version#1048601, product#1048602, plant#1048603, qty#1048606]
(164) LogicalRDD
Arguments: [shardId#1048607, worklistShardItemId#1048608L, qty#1048609, demandChannel#1048610, demandStream#1048611, kpis#1048612], false
(165) Project
Arguments: [shardId#1048607 AS cachedShardId#1048613, worklistShardItemId#1048608L AS cachedWorklistShardItemId#1048614L, qty#1048609 AS cachedQty#1048615, demandChannel#1048610, demandStream#1048611, kpis#1048612 AS cachedKpis#1048616]
(166) Join
Arguments: Inner, (((worklistShardItemId#1048600L = cachedWorklistShardItemId#1048614L) AND (shardId#1048599 = cachedShardId#1048613)) AND isnull(qty#1048606))
(167) Project
Arguments: [shardId#1048599, worklistShardItemId#1048600L, version#1048601, product#1048602, plant#1048603, qty#1048606]
(168) Project
Arguments: [shardId#1048599, worklistShardItemId#1048600L, version#1048601, product#1048602, plant#1048603, qty#1048606]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1048561 <=> shardId#1048569) AND (worklistShardItemId#1048562L <=> worklistShardItemId#1048570L)) AND (version#1048563 <=> version#1048571)) AND (product#1048564 <=> product#1048572)) AND (plant#1048565 <=> plant#1048573)) AND (qty#1048568 <=> qty#1048597))
(171) Project
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563, product#1048564, plant#1048565, qty#1048568]
(172) Project
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563, product#1048564, plant#1048565, qty#1048568, cast(null as string) AS demandChannel#1048617]
(173) Project
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563, product#1048564, plant#1048565, qty#1048568, demandChannel#1048617, cast(null as string) AS demandStream#1048618]
(174) Project
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563, product#1048564, plant#1048565, qty#1048568, demandChannel#1048617, demandStream#1048618, array() AS kpis#1048619]
(175) Project
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563, product#1048564, plant#1048565, qty#1048568, demandChannel#1048617, demandStream#1048618, kpis#1048619, true AS isNewlyCalculated#1048620]
(176) Project
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563, product#1048564, plant#1048565, qty#1048568, demandChannel#1048617, demandStream#1048618, cast(kpis#1048619 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1048621, isNewlyCalculated#1048620]
(177) LogicalRDD
Arguments: [shardId#1048622, worklistShardItemId#1048623L, version#1048624, product#1048625, plant#1048626, periodStart#1048627, periodEnd#1048628, qty#1048629], false
(178) RepartitionByExpression
Arguments: [product#1048625, plant#1048626], 37
(179) Project
Arguments: [shardId#1048622, worklistShardItemId#1048623L, version#1048624, product#1048625, plant#1048626, qty#1048629]
(180) LogicalRDD
Arguments: [shardId#1048630, worklistShardItemId#1048631L, qty#1048632, demandChannel#1048633, demandStream#1048634, kpis#1048635], false
(181) Project
Arguments: [shardId#1048630 AS cachedShardId#1048636, worklistShardItemId#1048631L AS cachedWorklistShardItemId#1048637L, qty#1048632 AS cachedQty#1048638, demandChannel#1048633, demandStream#1048634, kpis#1048635 AS cachedKpis#1048639]
(182) Join
Arguments: Inner, (((worklistShardItemId#1048623L = cachedWorklistShardItemId#1048637L) AND (shardId#1048622 = cachedShardId#1048636)) AND ((qty#1048629 = cachedQty#1048638) OR isnull(qty#1048629)))
(183) Project
Arguments: [shardId#1048622, worklistShardItemId#1048623L, version#1048624, product#1048625, plant#1048626]
(184) Deduplicate
Arguments: [plant#1048626, shardId#1048622, version#1048624, worklistShardItemId#1048623L, product#1048625]
(185) LogicalRDD
Arguments: [shardId#1048640, worklistShardItemId#1048641L, qty#1048642, demandChannel#1048643, demandStream#1048644, kpis#1048645], false
(186) Project
Arguments: [shardId#1048640 AS cachedShardId#1048646, worklistShardItemId#1048641L AS cachedWorklistShardItemId#1048647L, qty#1048642 AS cachedQty#1048648, demandChannel#1048643, demandStream#1048644, kpis#1048645 AS cachedKpis#1048649]
(187) Join
Arguments: Inner, ((worklistShardItemId#1048623L = cachedWorklistShardItemId#1048647L) AND (shardId#1048622 = cachedShardId#1048646))
(188) Project
Arguments: [shardId#1048622, worklistShardItemId#1048623L, version#1048624, product#1048625, plant#1048626, cachedQty#1048648 AS qty#1048650, demandChannel#1048643, demandStream#1048644, cachedKpis#1048649 AS kpis#1048651]
(189) Project
Arguments: [shardId#1048622, worklistShardItemId#1048623L, version#1048624, product#1048625, plant#1048626, qty#1048650, demandChannel#1048643, demandStream#1048644, kpis#1048651, false AS isNewlyCalculated#1048652]
(190) Project
Arguments: [shardId#1048622, worklistShardItemId#1048623L, version#1048624, product#1048625, plant#1048626, qty#1048650, demandChannel#1048643, demandStream#1048644, kpis#1048651, isNewlyCalculated#1048652]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1048561, worklistShardItemId#1048562L, version#1048563]
(193) Aggregate
Arguments: [shardId#1048561, worklistShardItemId#1048562L], [shardId#1048561, worklistShardItemId#1048562L, (max(version#1048563) + 1) AS version#1048464]
(194) Join
Arguments: Inner, ((shardId#1011815 = shardId#1048561) AND (worklistShardItemId#1011816L = worklistShardItemId#1048562L))
(195) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1045095, demandStream#1045096, kpis#1045130, version#1048464]
(196) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1048464, qty#1011822, demandChannel#1045095, demandStream#1045096, kpis#1045130]