== 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@3e40edb0, [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#1123113, worklistShardItemId#1123114L, version#1123115, product#1123116, plant#1123117, periodStart#1123118, periodEnd#1123119, qty#1123120], false
(7) RepartitionByExpression
Arguments: [product#1123116, plant#1123117], 37
(8) Project
Arguments: [shardId#1123113, worklistShardItemId#1123114L, version#1123115, product#1123116, plant#1123117, qty#1123120]
(9) LogicalRDD
Arguments: [shardId#1122868, worklistShardItemId#1122869L, qty#1122870, demandChannel#1122871, demandStream#1122872, kpis#1122873], false
(10) Project
Arguments: [shardId#1122868 AS cachedShardId#1122874, worklistShardItemId#1122869L AS cachedWorklistShardItemId#1122875L, qty#1122870 AS cachedQty#1122876, demandChannel#1122871, demandStream#1122872, kpis#1122873 AS cachedKpis#1122877]
(11) Join
Arguments: Inner, (((worklistShardItemId#1123114L = cachedWorklistShardItemId#1122875L) AND (shardId#1123113 = cachedShardId#1122874)) AND ((qty#1123120 = cachedQty#1122876) OR isnull(qty#1123120)))
(12) Project
Arguments: [shardId#1123113, worklistShardItemId#1123114L, version#1123115, product#1123116, plant#1123117]
(13) Deduplicate
Arguments: [plant#1123117, shardId#1123113, version#1123115, worklistShardItemId#1123114L, product#1123116]
(14) LogicalRDD
Arguments: [shardId#1122878, worklistShardItemId#1122879L, qty#1122880, demandChannel#1122881, demandStream#1122882, kpis#1122883], false
(15) Project
Arguments: [shardId#1122878 AS cachedShardId#1122884, worklistShardItemId#1122879L AS cachedWorklistShardItemId#1122885L, qty#1122880 AS cachedQty#1122886, demandChannel#1122881, demandStream#1122882, kpis#1122883 AS cachedKpis#1122887]
(16) Join
Arguments: Inner, ((worklistShardItemId#1123114L = cachedWorklistShardItemId#1122885L) AND (shardId#1123113 = cachedShardId#1122884))
(17) Project
Arguments: [shardId#1123113, worklistShardItemId#1123114L, version#1123115, product#1123116, plant#1123117, cachedQty#1122886 AS qty#1122888, demandChannel#1122881, demandStream#1122882, cachedKpis#1122887 AS kpis#1122889]
(18) Project
Arguments: [shardId#1123113, worklistShardItemId#1123114L, version#1123115, product#1123116, plant#1123117, qty#1122888]
(19) LogicalRDD
Arguments: [shardId#1123095, worklistShardItemId#1123096L, version#1123097, product#1123098, plant#1123099, periodStart#1123100, periodEnd#1123101, qty#1123102], false
(20) RepartitionByExpression
Arguments: [product#1123098, plant#1123099], 37
(21) Project
Arguments: [shardId#1123095, worklistShardItemId#1123096L, version#1123097, product#1123098, plant#1123099, qty#1123102]
(22) LogicalRDD
Arguments: [shardId#1123103, worklistShardItemId#1123104L, qty#1123105, demandChannel#1123106, demandStream#1123107, kpis#1123108], false
(23) Project
Arguments: [shardId#1123103 AS cachedShardId#1123109, worklistShardItemId#1123104L AS cachedWorklistShardItemId#1123110L, qty#1123105 AS cachedQty#1123111, demandChannel#1123106, demandStream#1123107, kpis#1123108 AS cachedKpis#1123112]
(24) Join
Arguments: Inner, (((worklistShardItemId#1123096L = cachedWorklistShardItemId#1123110L) AND (shardId#1123095 = cachedShardId#1123109)) AND isnull(qty#1123102))
(25) Project
Arguments: [shardId#1123095, worklistShardItemId#1123096L, version#1123097, product#1123098, plant#1123099, qty#1123102]
(26) Project
Arguments: [shardId#1123095, worklistShardItemId#1123096L, version#1123097, product#1123098, plant#1123099, qty#1123102]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1100457 <=> shardId#1123113) AND (worklistShardItemId#1100458L <=> worklistShardItemId#1123114L)) AND (version#1100459 <=> version#1123115)) AND (product#1100460 <=> product#1123116)) AND (plant#1100461 <=> plant#1123117)) AND (qty#1100464 <=> qty#1122888))
(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#1123121]
(31) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1123121, cast(null as string) AS demandStream#1123122]
(32) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1123121, demandStream#1123122, array() AS kpis#1123123]
(33) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1123121, demandStream#1123122, kpis#1123123, true AS isNewlyCalculated#1123124]
(34) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1123121, demandStream#1123122, cast(kpis#1123123 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1123156, isNewlyCalculated#1123124]
(35) LogicalRDD
Arguments: [shardId#1123126, worklistShardItemId#1123127L, version#1123128, product#1123129, plant#1123130, periodStart#1123131, periodEnd#1123132, qty#1123133], false
(36) RepartitionByExpression
Arguments: [product#1123129, plant#1123130], 37
(37) Project
Arguments: [shardId#1123126, worklistShardItemId#1123127L, version#1123128, product#1123129, plant#1123130, qty#1123133]
(38) LogicalRDD
Arguments: [shardId#1123134, worklistShardItemId#1123135L, qty#1123136, demandChannel#1123137, demandStream#1123138, kpis#1123139], false
(39) Project
Arguments: [shardId#1123134 AS cachedShardId#1123140, worklistShardItemId#1123135L AS cachedWorklistShardItemId#1123141L, qty#1123136 AS cachedQty#1123142, demandChannel#1123137, demandStream#1123138, kpis#1123139 AS cachedKpis#1123143]
(40) Join
Arguments: Inner, (((worklistShardItemId#1123127L = cachedWorklistShardItemId#1123141L) AND (shardId#1123126 = cachedShardId#1123140)) AND ((qty#1123133 = cachedQty#1123142) OR isnull(qty#1123133)))
(41) Project
Arguments: [shardId#1123126, worklistShardItemId#1123127L, version#1123128, product#1123129, plant#1123130]
(42) Deduplicate
Arguments: [plant#1123130, shardId#1123126, version#1123128, worklistShardItemId#1123127L, product#1123129]
(43) LogicalRDD
Arguments: [shardId#1123144, worklistShardItemId#1123145L, qty#1123146, demandChannel#1123147, demandStream#1123148, kpis#1123149], false
(44) Project
Arguments: [shardId#1123144 AS cachedShardId#1123150, worklistShardItemId#1123145L AS cachedWorklistShardItemId#1123151L, qty#1123146 AS cachedQty#1123152, demandChannel#1123147, demandStream#1123148, kpis#1123149 AS cachedKpis#1123153]
(45) Join
Arguments: Inner, ((worklistShardItemId#1123127L = cachedWorklistShardItemId#1123151L) AND (shardId#1123126 = cachedShardId#1123150))
(46) Project
Arguments: [shardId#1123126, worklistShardItemId#1123127L, version#1123128, product#1123129, plant#1123130, cachedQty#1123152 AS qty#1123154, demandChannel#1123147, demandStream#1123148, cachedKpis#1123153 AS kpis#1123155]
(47) Project
Arguments: [shardId#1123126, worklistShardItemId#1123127L, version#1123128, product#1123129, plant#1123130, qty#1123154, demandChannel#1123147, demandStream#1123148, kpis#1123155, false AS isNewlyCalculated#1123125]
(48) Project
Arguments: [shardId#1123126, worklistShardItemId#1123127L, version#1123128, product#1123129, plant#1123130, qty#1123154, demandChannel#1123147, demandStream#1123148, kpis#1123155, isNewlyCalculated#1123125]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1123124 <=> false)
(51) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1123121, demandStream#1123122, kpis#1123156]
(52) ExternalRDD
Arguments: [obj#1125620]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89115), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89115), 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, 89115), 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, 89115), 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, 89115), 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, 89115), 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#1125623, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89116), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89116), 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, 89117), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89117), 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, 89117), 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, 89117), 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, 89118), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89118), 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, 89118), 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, 89118), 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, 89118), 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, 89117), 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, 89116), 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, 89119), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89119), 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, 89119), 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, 89119), 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, 89119), 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, 89116), 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, 89116), 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, 89116), 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, 89120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89120), 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, 89121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89121), 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, 89121), 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, 89121), 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, 89121), 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, 89120), 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, 89120), 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, 89116), 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#1125624]
(54) Generate
Arguments: explode(prodPlantResults#1125624), false, [prodPlantResults#1125631]
(55) Project
Arguments: [prodPlantResults#1125631]
(56) Project
Arguments: [prodPlantResults#1125631.productId AS product#1125650, prodPlantResults#1125631.plantId AS plant#1125651, prodPlantResults#1125631.kpiResults AS kpis#1125652]
(57) Project
Arguments: [product#1125650, plant#1125651, kpis#1125652, null AS qty#1125656]
(58) Project
Arguments: [product#1125650, plant#1125651, kpis#1125652, qty#1125656, cast(null as string) AS demandChannel#1125657]
(59) Project
Arguments: [product#1125650, plant#1125651, kpis#1125652, qty#1125656, demandChannel#1125657, cast(null as string) AS demandStream#1125658]
(60) Project
Arguments: [product#1125650, plant#1125651, kpis#1125652, cast(qty#1125656 as double) AS qty#1125677, demandChannel#1125657, demandStream#1125658]
(61) ExternalRDD
Arguments: [obj#1125673]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89115), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89115), 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, 89115), 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, 89115), 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, 89115), 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, 89115), 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#1125674, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89116), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89116), 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, 89117), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89117), 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, 89117), 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, 89117), 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, 89118), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89118), 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, 89118), 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, 89118), 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, 89118), 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, 89117), 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, 89116), 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, 89119), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89119), 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, 89119), 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, 89119), 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, 89119), 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, 89116), 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, 89116), 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, 89116), 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, 89120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89120), 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, 89121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89121), 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, 89121), 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, 89121), 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, 89121), 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, 89120), 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, 89120), 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, 89116), 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#1125675]
(63) Generate
Arguments: explode(prodPlantResults#1125675), false, [prodPlantResults#1125676]
(64) Project
Arguments: [prodPlantResults#1125676]
(65) Generate
Arguments: explode(prodPlantResults#1125676.quantityKpiResults), false, [quantityKpiResults#1125643]
(66) Project
Arguments: [prodPlantResults#1125676.productId AS product#1125637, prodPlantResults#1125676.plantId AS plant#1125638, quantityKpiResults#1125643]
(67) Project
Arguments: [product#1125637, plant#1125638, quantityKpiResults#1125643, quantityKpiResults#1125643.quantity AS qty#1125644]
(68) Project
Arguments: [product#1125637, plant#1125638, quantityKpiResults#1125643, qty#1125644, cast(null as string) AS demandChannel#1125646]
(69) Project
Arguments: [product#1125637, plant#1125638, quantityKpiResults#1125643, qty#1125644, demandChannel#1125646, cast(null as string) AS demandStream#1125647]
(70) Project
Arguments: [product#1125637, plant#1125638, quantityKpiResults#1125643, qty#1125644, demandChannel#1125646, demandStream#1125647, quantityKpiResults#1125643.kpiResults AS kpis#1125648]
(71) Project
Arguments: [product#1125637, plant#1125638, qty#1125644, demandChannel#1125646, demandStream#1125647, kpis#1125648]
(72) Project
Arguments: [product#1125637, plant#1125638, kpis#1125648, qty#1125644, demandChannel#1125646, demandStream#1125647]
(73) ExternalRDD
Arguments: [obj#1125678]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89115), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89115), 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, 89115), 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, 89115), 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, 89115), 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, 89115), 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#1125679, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89116), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89116), 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, 89117), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89117), 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, 89117), 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, 89117), 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, 89118), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89118), 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, 89118), 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, 89118), 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, 89118), 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, 89117), 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, 89116), 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, 89119), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89119), 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, 89119), 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, 89119), 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, 89119), 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, 89116), 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, 89116), 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, 89116), 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, 89120), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89120), 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, 89121), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 89121), 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, 89121), 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, 89121), 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, 89121), 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, 89120), 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, 89120), 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, 89116), 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#1125680]
(75) Generate
Arguments: explode(prodPlantResults#1125680), false, [prodPlantResults#1125681]
(76) Project
Arguments: [prodPlantResults#1125681]
(77) Generate
Arguments: explode(prodPlantResults#1125681.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1125665]
(78) Project
Arguments: [prodPlantResults#1125681.productId AS product#1125659, prodPlantResults#1125681.plantId AS plant#1125660, demandChannelStreamKpiResults#1125665]
(79) Project
Arguments: [product#1125659, plant#1125660, demandChannelStreamKpiResults#1125665, null AS qty#1125666]
(80) Project
Arguments: [product#1125659, plant#1125660, demandChannelStreamKpiResults#1125665, qty#1125666, demandChannelStreamKpiResults#1125665.demandChannel AS demandChannel#1125667]
(81) Project
Arguments: [product#1125659, plant#1125660, demandChannelStreamKpiResults#1125665, qty#1125666, demandChannel#1125667, demandChannelStreamKpiResults#1125665.demandStream AS demandStream#1125669]
(82) Project
Arguments: [product#1125659, plant#1125660, demandChannelStreamKpiResults#1125665, qty#1125666, demandChannel#1125667, demandStream#1125669, demandChannelStreamKpiResults#1125665.kpiResults AS kpis#1125671]
(83) Project
Arguments: [product#1125659, plant#1125660, qty#1125666, demandChannel#1125667, demandStream#1125669, kpis#1125671]
(84) Project
Arguments: [product#1125659, plant#1125660, kpis#1125671, qty#1125666, demandChannel#1125667, demandStream#1125669]
(85) Project
Arguments: [product#1125659, plant#1125660, kpis#1125671, cast(qty#1125666 as double) AS qty#1125682, demandChannel#1125667, demandStream#1125669]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1125650, plant#1125651, transform(kpis#1125652, lambdafunction(struct(label, lambda kpi#1125687.label, dateTime, lambda kpi#1125687.datetime, value, lambda kpi#1125687.value), lambda kpi#1125687, false)) AS kpis#1125686, qty#1125677, demandChannel#1125657, demandStream#1125658]
(88) Project
Arguments: [product#1125650, plant#1125651, qty#1125677, demandChannel#1125657, demandStream#1125658, kpis#1125686]
(89) LogicalRDD
Arguments: [shardId#1126495, worklistShardItemId#1126496L, version#1126497, product#1126498, plant#1126499, periodStart#1126500, periodEnd#1126501, qty#1126502], false
(90) RepartitionByExpression
Arguments: [product#1126498, plant#1126499], 37
(91) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, version#1126497, product#1126498, plant#1126499, qty#1126502]
(92) LogicalRDD
Arguments: [shardId#1126503, worklistShardItemId#1126504L, version#1126505, product#1126506, plant#1126507, periodStart#1126508, periodEnd#1126509, qty#1126510], false
(93) RepartitionByExpression
Arguments: [product#1126506, plant#1126507], 37
(94) Project
Arguments: [shardId#1126503, worklistShardItemId#1126504L, version#1126505, product#1126506, plant#1126507, qty#1126510]
(95) LogicalRDD
Arguments: [shardId#1126511, worklistShardItemId#1126512L, qty#1126513, demandChannel#1126514, demandStream#1126515, kpis#1126516], false
(96) Project
Arguments: [shardId#1126511 AS cachedShardId#1126517, worklistShardItemId#1126512L AS cachedWorklistShardItemId#1126518L, qty#1126513 AS cachedQty#1126519, demandChannel#1126514, demandStream#1126515, kpis#1126516 AS cachedKpis#1126520]
(97) Join
Arguments: Inner, (((worklistShardItemId#1126504L = cachedWorklistShardItemId#1126518L) AND (shardId#1126503 = cachedShardId#1126517)) AND ((qty#1126510 = cachedQty#1126519) OR isnull(qty#1126510)))
(98) Project
Arguments: [shardId#1126503, worklistShardItemId#1126504L, version#1126505, product#1126506, plant#1126507]
(99) Deduplicate
Arguments: [plant#1126507, shardId#1126503, version#1126505, worklistShardItemId#1126504L, product#1126506]
(100) LogicalRDD
Arguments: [shardId#1126521, worklistShardItemId#1126522L, qty#1126523, demandChannel#1126524, demandStream#1126525, kpis#1126526], false
(101) Project
Arguments: [shardId#1126521 AS cachedShardId#1126527, worklistShardItemId#1126522L AS cachedWorklistShardItemId#1126528L, qty#1126523 AS cachedQty#1126529, demandChannel#1126524, demandStream#1126525, kpis#1126526 AS cachedKpis#1126530]
(102) Join
Arguments: Inner, ((worklistShardItemId#1126504L = cachedWorklistShardItemId#1126528L) AND (shardId#1126503 = cachedShardId#1126527))
(103) Project
Arguments: [shardId#1126503, worklistShardItemId#1126504L, version#1126505, product#1126506, plant#1126507, cachedQty#1126529 AS qty#1126531, demandChannel#1126524, demandStream#1126525, cachedKpis#1126530 AS kpis#1126532]
(104) Project
Arguments: [shardId#1126503, worklistShardItemId#1126504L, version#1126505, product#1126506, plant#1126507, qty#1126531]
(105) LogicalRDD
Arguments: [shardId#1126533, worklistShardItemId#1126534L, version#1126535, product#1126536, plant#1126537, periodStart#1126538, periodEnd#1126539, qty#1126540], false
(106) RepartitionByExpression
Arguments: [product#1126536, plant#1126537], 37
(107) Project
Arguments: [shardId#1126533, worklistShardItemId#1126534L, version#1126535, product#1126536, plant#1126537, qty#1126540]
(108) LogicalRDD
Arguments: [shardId#1126541, worklistShardItemId#1126542L, qty#1126543, demandChannel#1126544, demandStream#1126545, kpis#1126546], false
(109) Project
Arguments: [shardId#1126541 AS cachedShardId#1126547, worklistShardItemId#1126542L AS cachedWorklistShardItemId#1126548L, qty#1126543 AS cachedQty#1126549, demandChannel#1126544, demandStream#1126545, kpis#1126546 AS cachedKpis#1126550]
(110) Join
Arguments: Inner, (((worklistShardItemId#1126534L = cachedWorklistShardItemId#1126548L) AND (shardId#1126533 = cachedShardId#1126547)) AND isnull(qty#1126540))
(111) Project
Arguments: [shardId#1126533, worklistShardItemId#1126534L, version#1126535, product#1126536, plant#1126537, qty#1126540]
(112) Project
Arguments: [shardId#1126533, worklistShardItemId#1126534L, version#1126535, product#1126536, plant#1126537, qty#1126540]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1126495 <=> shardId#1126503) AND (worklistShardItemId#1126496L <=> worklistShardItemId#1126504L)) AND (version#1126497 <=> version#1126505)) AND (product#1126498 <=> product#1126506)) AND (plant#1126499 <=> plant#1126507)) AND (qty#1126502 <=> qty#1126531))
(115) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, version#1126497, product#1126498, plant#1126499, qty#1126502]
(116) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, version#1126497, product#1126498, plant#1126499, qty#1126502, cast(null as string) AS demandChannel#1126551]
(117) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, version#1126497, product#1126498, plant#1126499, qty#1126502, demandChannel#1126551, cast(null as string) AS demandStream#1126552]
(118) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, version#1126497, product#1126498, plant#1126499, qty#1126502, demandChannel#1126551, demandStream#1126552, array() AS kpis#1126553]
(119) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, version#1126497, product#1126498, plant#1126499, qty#1126502, demandChannel#1126551, demandStream#1126552, kpis#1126553, true AS isNewlyCalculated#1126554]
(120) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, version#1126497, product#1126498, plant#1126499, qty#1126502, demandChannel#1126551, demandStream#1126552, cast(kpis#1126553 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1126555, isNewlyCalculated#1126554]
(121) LogicalRDD
Arguments: [shardId#1126556, worklistShardItemId#1126557L, version#1126558, product#1126559, plant#1126560, periodStart#1126561, periodEnd#1126562, qty#1126563], false
(122) RepartitionByExpression
Arguments: [product#1126559, plant#1126560], 37
(123) Project
Arguments: [shardId#1126556, worklistShardItemId#1126557L, version#1126558, product#1126559, plant#1126560, qty#1126563]
(124) LogicalRDD
Arguments: [shardId#1126564, worklistShardItemId#1126565L, qty#1126566, demandChannel#1126567, demandStream#1126568, kpis#1126569], false
(125) Project
Arguments: [shardId#1126564 AS cachedShardId#1126570, worklistShardItemId#1126565L AS cachedWorklistShardItemId#1126571L, qty#1126566 AS cachedQty#1126572, demandChannel#1126567, demandStream#1126568, kpis#1126569 AS cachedKpis#1126573]
(126) Join
Arguments: Inner, (((worklistShardItemId#1126557L = cachedWorklistShardItemId#1126571L) AND (shardId#1126556 = cachedShardId#1126570)) AND ((qty#1126563 = cachedQty#1126572) OR isnull(qty#1126563)))
(127) Project
Arguments: [shardId#1126556, worklistShardItemId#1126557L, version#1126558, product#1126559, plant#1126560]
(128) Deduplicate
Arguments: [plant#1126560, shardId#1126556, version#1126558, worklistShardItemId#1126557L, product#1126559]
(129) LogicalRDD
Arguments: [shardId#1126574, worklistShardItemId#1126575L, qty#1126576, demandChannel#1126577, demandStream#1126578, kpis#1126579], false
(130) Project
Arguments: [shardId#1126574 AS cachedShardId#1126580, worklistShardItemId#1126575L AS cachedWorklistShardItemId#1126581L, qty#1126576 AS cachedQty#1126582, demandChannel#1126577, demandStream#1126578, kpis#1126579 AS cachedKpis#1126583]
(131) Join
Arguments: Inner, ((worklistShardItemId#1126557L = cachedWorklistShardItemId#1126581L) AND (shardId#1126556 = cachedShardId#1126580))
(132) Project
Arguments: [shardId#1126556, worklistShardItemId#1126557L, version#1126558, product#1126559, plant#1126560, cachedQty#1126582 AS qty#1126584, demandChannel#1126577, demandStream#1126578, cachedKpis#1126583 AS kpis#1126585]
(133) Project
Arguments: [shardId#1126556, worklistShardItemId#1126557L, version#1126558, product#1126559, plant#1126560, qty#1126584, demandChannel#1126577, demandStream#1126578, kpis#1126585, false AS isNewlyCalculated#1126586]
(134) Project
Arguments: [shardId#1126556, worklistShardItemId#1126557L, version#1126558, product#1126559, plant#1126560, qty#1126584, demandChannel#1126577, demandStream#1126578, kpis#1126585, isNewlyCalculated#1126586]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1126554 <=> true)
(137) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, product#1126498, plant#1126499, qty#1126502, kpis#1126555]
(138) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, product#1126498, plant#1126499, qty#1126502]
(139) Deduplicate
Arguments: [plant#1126499, shardId#1126495, qty#1126502, worklistShardItemId#1126496L, product#1126498]
(140) Join
Arguments: Inner, ((product#1125650 <=> product#1126498) AND ((plant#1125651 <=> plant#1126499) AND ((qty#1125677 <=> qty#1126502) OR isnull(qty#1126502))))
(141) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, qty#1125677, demandChannel#1125657, demandStream#1125658, kpis#1125686]
(142) Deduplicate
Arguments: [demandChannel#1125657, shardId#1126495, qty#1125677, worklistShardItemId#1126496L, demandStream#1125658]
(143) Project
Arguments: [shardId#1126495, worklistShardItemId#1126496L, qty#1125677, demandChannel#1125657, demandStream#1125658, kpis#1125686]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589, product#1126590, plant#1126591, periodStart#1126592, periodEnd#1126593, qty#1126594], false
(146) RepartitionByExpression
Arguments: [product#1126590, plant#1126591], 37
(147) Project
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589, product#1126590, plant#1126591, qty#1126594]
(148) LogicalRDD
Arguments: [shardId#1126595, worklistShardItemId#1126596L, version#1126597, product#1126598, plant#1126599, periodStart#1126600, periodEnd#1126601, qty#1126602], false
(149) RepartitionByExpression
Arguments: [product#1126598, plant#1126599], 37
(150) Project
Arguments: [shardId#1126595, worklistShardItemId#1126596L, version#1126597, product#1126598, plant#1126599, qty#1126602]
(151) LogicalRDD
Arguments: [shardId#1126603, worklistShardItemId#1126604L, qty#1126605, demandChannel#1126606, demandStream#1126607, kpis#1126608], false
(152) Project
Arguments: [shardId#1126603 AS cachedShardId#1126609, worklistShardItemId#1126604L AS cachedWorklistShardItemId#1126610L, qty#1126605 AS cachedQty#1126611, demandChannel#1126606, demandStream#1126607, kpis#1126608 AS cachedKpis#1126612]
(153) Join
Arguments: Inner, (((worklistShardItemId#1126596L = cachedWorklistShardItemId#1126610L) AND (shardId#1126595 = cachedShardId#1126609)) AND ((qty#1126602 = cachedQty#1126611) OR isnull(qty#1126602)))
(154) Project
Arguments: [shardId#1126595, worklistShardItemId#1126596L, version#1126597, product#1126598, plant#1126599]
(155) Deduplicate
Arguments: [plant#1126599, shardId#1126595, version#1126597, worklistShardItemId#1126596L, product#1126598]
(156) LogicalRDD
Arguments: [shardId#1126613, worklistShardItemId#1126614L, qty#1126615, demandChannel#1126616, demandStream#1126617, kpis#1126618], false
(157) Project
Arguments: [shardId#1126613 AS cachedShardId#1126619, worklistShardItemId#1126614L AS cachedWorklistShardItemId#1126620L, qty#1126615 AS cachedQty#1126621, demandChannel#1126616, demandStream#1126617, kpis#1126618 AS cachedKpis#1126622]
(158) Join
Arguments: Inner, ((worklistShardItemId#1126596L = cachedWorklistShardItemId#1126620L) AND (shardId#1126595 = cachedShardId#1126619))
(159) Project
Arguments: [shardId#1126595, worklistShardItemId#1126596L, version#1126597, product#1126598, plant#1126599, cachedQty#1126621 AS qty#1126623, demandChannel#1126616, demandStream#1126617, cachedKpis#1126622 AS kpis#1126624]
(160) Project
Arguments: [shardId#1126595, worklistShardItemId#1126596L, version#1126597, product#1126598, plant#1126599, qty#1126623]
(161) LogicalRDD
Arguments: [shardId#1126625, worklistShardItemId#1126626L, version#1126627, product#1126628, plant#1126629, periodStart#1126630, periodEnd#1126631, qty#1126632], false
(162) RepartitionByExpression
Arguments: [product#1126628, plant#1126629], 37
(163) Project
Arguments: [shardId#1126625, worklistShardItemId#1126626L, version#1126627, product#1126628, plant#1126629, qty#1126632]
(164) LogicalRDD
Arguments: [shardId#1126633, worklistShardItemId#1126634L, qty#1126635, demandChannel#1126636, demandStream#1126637, kpis#1126638], false
(165) Project
Arguments: [shardId#1126633 AS cachedShardId#1126639, worklistShardItemId#1126634L AS cachedWorklistShardItemId#1126640L, qty#1126635 AS cachedQty#1126641, demandChannel#1126636, demandStream#1126637, kpis#1126638 AS cachedKpis#1126642]
(166) Join
Arguments: Inner, (((worklistShardItemId#1126626L = cachedWorklistShardItemId#1126640L) AND (shardId#1126625 = cachedShardId#1126639)) AND isnull(qty#1126632))
(167) Project
Arguments: [shardId#1126625, worklistShardItemId#1126626L, version#1126627, product#1126628, plant#1126629, qty#1126632]
(168) Project
Arguments: [shardId#1126625, worklistShardItemId#1126626L, version#1126627, product#1126628, plant#1126629, qty#1126632]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1126587 <=> shardId#1126595) AND (worklistShardItemId#1126588L <=> worklistShardItemId#1126596L)) AND (version#1126589 <=> version#1126597)) AND (product#1126590 <=> product#1126598)) AND (plant#1126591 <=> plant#1126599)) AND (qty#1126594 <=> qty#1126623))
(171) Project
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589, product#1126590, plant#1126591, qty#1126594]
(172) Project
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589, product#1126590, plant#1126591, qty#1126594, cast(null as string) AS demandChannel#1126643]
(173) Project
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589, product#1126590, plant#1126591, qty#1126594, demandChannel#1126643, cast(null as string) AS demandStream#1126644]
(174) Project
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589, product#1126590, plant#1126591, qty#1126594, demandChannel#1126643, demandStream#1126644, array() AS kpis#1126645]
(175) Project
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589, product#1126590, plant#1126591, qty#1126594, demandChannel#1126643, demandStream#1126644, kpis#1126645, true AS isNewlyCalculated#1126646]
(176) Project
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589, product#1126590, plant#1126591, qty#1126594, demandChannel#1126643, demandStream#1126644, cast(kpis#1126645 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1126647, isNewlyCalculated#1126646]
(177) LogicalRDD
Arguments: [shardId#1126648, worklistShardItemId#1126649L, version#1126650, product#1126651, plant#1126652, periodStart#1126653, periodEnd#1126654, qty#1126655], false
(178) RepartitionByExpression
Arguments: [product#1126651, plant#1126652], 37
(179) Project
Arguments: [shardId#1126648, worklistShardItemId#1126649L, version#1126650, product#1126651, plant#1126652, qty#1126655]
(180) LogicalRDD
Arguments: [shardId#1126656, worklistShardItemId#1126657L, qty#1126658, demandChannel#1126659, demandStream#1126660, kpis#1126661], false
(181) Project
Arguments: [shardId#1126656 AS cachedShardId#1126662, worklistShardItemId#1126657L AS cachedWorklistShardItemId#1126663L, qty#1126658 AS cachedQty#1126664, demandChannel#1126659, demandStream#1126660, kpis#1126661 AS cachedKpis#1126665]
(182) Join
Arguments: Inner, (((worklistShardItemId#1126649L = cachedWorklistShardItemId#1126663L) AND (shardId#1126648 = cachedShardId#1126662)) AND ((qty#1126655 = cachedQty#1126664) OR isnull(qty#1126655)))
(183) Project
Arguments: [shardId#1126648, worklistShardItemId#1126649L, version#1126650, product#1126651, plant#1126652]
(184) Deduplicate
Arguments: [plant#1126652, shardId#1126648, version#1126650, worklistShardItemId#1126649L, product#1126651]
(185) LogicalRDD
Arguments: [shardId#1126666, worklistShardItemId#1126667L, qty#1126668, demandChannel#1126669, demandStream#1126670, kpis#1126671], false
(186) Project
Arguments: [shardId#1126666 AS cachedShardId#1126672, worklistShardItemId#1126667L AS cachedWorklistShardItemId#1126673L, qty#1126668 AS cachedQty#1126674, demandChannel#1126669, demandStream#1126670, kpis#1126671 AS cachedKpis#1126675]
(187) Join
Arguments: Inner, ((worklistShardItemId#1126649L = cachedWorklistShardItemId#1126673L) AND (shardId#1126648 = cachedShardId#1126672))
(188) Project
Arguments: [shardId#1126648, worklistShardItemId#1126649L, version#1126650, product#1126651, plant#1126652, cachedQty#1126674 AS qty#1126676, demandChannel#1126669, demandStream#1126670, cachedKpis#1126675 AS kpis#1126677]
(189) Project
Arguments: [shardId#1126648, worklistShardItemId#1126649L, version#1126650, product#1126651, plant#1126652, qty#1126676, demandChannel#1126669, demandStream#1126670, kpis#1126677, false AS isNewlyCalculated#1126678]
(190) Project
Arguments: [shardId#1126648, worklistShardItemId#1126649L, version#1126650, product#1126651, plant#1126652, qty#1126676, demandChannel#1126669, demandStream#1126670, kpis#1126677, isNewlyCalculated#1126678]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1126587, worklistShardItemId#1126588L, version#1126589]
(193) Aggregate
Arguments: [shardId#1126587, worklistShardItemId#1126588L], [shardId#1126587, worklistShardItemId#1126588L, (max(version#1126589) + 1) AS version#1126490]
(194) Join
Arguments: Inner, ((shardId#1100457 = shardId#1126587) AND (worklistShardItemId#1100458L = worklistShardItemId#1126588L))
(195) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1123121, demandStream#1123122, kpis#1123156, version#1126490]
(196) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1126490, qty#1100464, demandChannel#1123121, demandStream#1123122, kpis#1123156]