== 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@2483d38, [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#1084292, worklistShardItemId#1084293L, version#1084294, product#1084295, plant#1084296, periodStart#1084297, periodEnd#1084298, qty#1084299], false
(7) RepartitionByExpression
Arguments: [product#1084295, plant#1084296], 37
(8) Project
Arguments: [shardId#1084292, worklistShardItemId#1084293L, version#1084294, product#1084295, plant#1084296, qty#1084299]
(9) LogicalRDD
Arguments: [shardId#1084047, worklistShardItemId#1084048L, qty#1084049, demandChannel#1084050, demandStream#1084051, kpis#1084052], false
(10) Project
Arguments: [shardId#1084047 AS cachedShardId#1084053, worklistShardItemId#1084048L AS cachedWorklistShardItemId#1084054L, qty#1084049 AS cachedQty#1084055, demandChannel#1084050, demandStream#1084051, kpis#1084052 AS cachedKpis#1084056]
(11) Join
Arguments: Inner, (((worklistShardItemId#1084293L = cachedWorklistShardItemId#1084054L) AND (shardId#1084292 = cachedShardId#1084053)) AND ((qty#1084299 = cachedQty#1084055) OR isnull(qty#1084299)))
(12) Project
Arguments: [shardId#1084292, worklistShardItemId#1084293L, version#1084294, product#1084295, plant#1084296]
(13) Deduplicate
Arguments: [plant#1084296, shardId#1084292, version#1084294, worklistShardItemId#1084293L, product#1084295]
(14) LogicalRDD
Arguments: [shardId#1084057, worklistShardItemId#1084058L, qty#1084059, demandChannel#1084060, demandStream#1084061, kpis#1084062], false
(15) Project
Arguments: [shardId#1084057 AS cachedShardId#1084063, worklistShardItemId#1084058L AS cachedWorklistShardItemId#1084064L, qty#1084059 AS cachedQty#1084065, demandChannel#1084060, demandStream#1084061, kpis#1084062 AS cachedKpis#1084066]
(16) Join
Arguments: Inner, ((worklistShardItemId#1084293L = cachedWorklistShardItemId#1084064L) AND (shardId#1084292 = cachedShardId#1084063))
(17) Project
Arguments: [shardId#1084292, worklistShardItemId#1084293L, version#1084294, product#1084295, plant#1084296, cachedQty#1084065 AS qty#1084067, demandChannel#1084060, demandStream#1084061, cachedKpis#1084066 AS kpis#1084068]
(18) Project
Arguments: [shardId#1084292, worklistShardItemId#1084293L, version#1084294, product#1084295, plant#1084296, qty#1084067]
(19) LogicalRDD
Arguments: [shardId#1084274, worklistShardItemId#1084275L, version#1084276, product#1084277, plant#1084278, periodStart#1084279, periodEnd#1084280, qty#1084281], false
(20) RepartitionByExpression
Arguments: [product#1084277, plant#1084278], 37
(21) Project
Arguments: [shardId#1084274, worklistShardItemId#1084275L, version#1084276, product#1084277, plant#1084278, qty#1084281]
(22) LogicalRDD
Arguments: [shardId#1084282, worklistShardItemId#1084283L, qty#1084284, demandChannel#1084285, demandStream#1084286, kpis#1084287], false
(23) Project
Arguments: [shardId#1084282 AS cachedShardId#1084288, worklistShardItemId#1084283L AS cachedWorklistShardItemId#1084289L, qty#1084284 AS cachedQty#1084290, demandChannel#1084285, demandStream#1084286, kpis#1084287 AS cachedKpis#1084291]
(24) Join
Arguments: Inner, (((worklistShardItemId#1084275L = cachedWorklistShardItemId#1084289L) AND (shardId#1084274 = cachedShardId#1084288)) AND isnull(qty#1084281))
(25) Project
Arguments: [shardId#1084274, worklistShardItemId#1084275L, version#1084276, product#1084277, plant#1084278, qty#1084281]
(26) Project
Arguments: [shardId#1084274, worklistShardItemId#1084275L, version#1084276, product#1084277, plant#1084278, qty#1084281]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1011815 <=> shardId#1084292) AND (worklistShardItemId#1011816L <=> worklistShardItemId#1084293L)) AND (version#1011817 <=> version#1084294)) AND (product#1011818 <=> product#1084295)) AND (plant#1011819 <=> plant#1084296)) AND (qty#1011822 <=> qty#1084067))
(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#1084300]
(31) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1084300, cast(null as string) AS demandStream#1084301]
(32) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1084300, demandStream#1084301, array() AS kpis#1084302]
(33) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1084300, demandStream#1084301, kpis#1084302, true AS isNewlyCalculated#1084303]
(34) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1084300, demandStream#1084301, cast(kpis#1084302 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1084335, isNewlyCalculated#1084303]
(35) LogicalRDD
Arguments: [shardId#1084305, worklistShardItemId#1084306L, version#1084307, product#1084308, plant#1084309, periodStart#1084310, periodEnd#1084311, qty#1084312], false
(36) RepartitionByExpression
Arguments: [product#1084308, plant#1084309], 37
(37) Project
Arguments: [shardId#1084305, worklistShardItemId#1084306L, version#1084307, product#1084308, plant#1084309, qty#1084312]
(38) LogicalRDD
Arguments: [shardId#1084313, worklistShardItemId#1084314L, qty#1084315, demandChannel#1084316, demandStream#1084317, kpis#1084318], false
(39) Project
Arguments: [shardId#1084313 AS cachedShardId#1084319, worklistShardItemId#1084314L AS cachedWorklistShardItemId#1084320L, qty#1084315 AS cachedQty#1084321, demandChannel#1084316, demandStream#1084317, kpis#1084318 AS cachedKpis#1084322]
(40) Join
Arguments: Inner, (((worklistShardItemId#1084306L = cachedWorklistShardItemId#1084320L) AND (shardId#1084305 = cachedShardId#1084319)) AND ((qty#1084312 = cachedQty#1084321) OR isnull(qty#1084312)))
(41) Project
Arguments: [shardId#1084305, worklistShardItemId#1084306L, version#1084307, product#1084308, plant#1084309]
(42) Deduplicate
Arguments: [plant#1084309, shardId#1084305, version#1084307, worklistShardItemId#1084306L, product#1084308]
(43) LogicalRDD
Arguments: [shardId#1084323, worklistShardItemId#1084324L, qty#1084325, demandChannel#1084326, demandStream#1084327, kpis#1084328], false
(44) Project
Arguments: [shardId#1084323 AS cachedShardId#1084329, worklistShardItemId#1084324L AS cachedWorklistShardItemId#1084330L, qty#1084325 AS cachedQty#1084331, demandChannel#1084326, demandStream#1084327, kpis#1084328 AS cachedKpis#1084332]
(45) Join
Arguments: Inner, ((worklistShardItemId#1084306L = cachedWorklistShardItemId#1084330L) AND (shardId#1084305 = cachedShardId#1084329))
(46) Project
Arguments: [shardId#1084305, worklistShardItemId#1084306L, version#1084307, product#1084308, plant#1084309, cachedQty#1084331 AS qty#1084333, demandChannel#1084326, demandStream#1084327, cachedKpis#1084332 AS kpis#1084334]
(47) Project
Arguments: [shardId#1084305, worklistShardItemId#1084306L, version#1084307, product#1084308, plant#1084309, qty#1084333, demandChannel#1084326, demandStream#1084327, kpis#1084334, false AS isNewlyCalculated#1084304]
(48) Project
Arguments: [shardId#1084305, worklistShardItemId#1084306L, version#1084307, product#1084308, plant#1084309, qty#1084333, demandChannel#1084326, demandStream#1084327, kpis#1084334, isNewlyCalculated#1084304]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1084303 <=> false)
(51) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1084300, demandStream#1084301, kpis#1084335]
(52) ExternalRDD
Arguments: [obj#1086799]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85667), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85667), 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, 85667), 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, 85667), 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, 85667), 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, 85667), 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#1086802, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85668), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85668), 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, 85669), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85669), 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, 85669), 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, 85669), 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, 85670), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85670), 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, 85670), 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, 85670), 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, 85670), 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, 85669), 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, 85668), 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, 85671), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85671), 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, 85671), 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, 85671), 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, 85671), 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, 85668), 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, 85668), 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, 85668), 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, 85672), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85672), 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, 85673), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85673), 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, 85673), 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, 85673), 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, 85673), 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, 85672), 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, 85672), 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, 85668), 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#1086803]
(54) Generate
Arguments: explode(prodPlantResults#1086803), false, [prodPlantResults#1086810]
(55) Project
Arguments: [prodPlantResults#1086810]
(56) Project
Arguments: [prodPlantResults#1086810.productId AS product#1086829, prodPlantResults#1086810.plantId AS plant#1086830, prodPlantResults#1086810.kpiResults AS kpis#1086831]
(57) Project
Arguments: [product#1086829, plant#1086830, kpis#1086831, null AS qty#1086835]
(58) Project
Arguments: [product#1086829, plant#1086830, kpis#1086831, qty#1086835, cast(null as string) AS demandChannel#1086836]
(59) Project
Arguments: [product#1086829, plant#1086830, kpis#1086831, qty#1086835, demandChannel#1086836, cast(null as string) AS demandStream#1086837]
(60) Project
Arguments: [product#1086829, plant#1086830, kpis#1086831, cast(qty#1086835 as double) AS qty#1086856, demandChannel#1086836, demandStream#1086837]
(61) ExternalRDD
Arguments: [obj#1086852]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85667), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85667), 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, 85667), 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, 85667), 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, 85667), 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, 85667), 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#1086853, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85668), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85668), 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, 85669), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85669), 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, 85669), 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, 85669), 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, 85670), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85670), 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, 85670), 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, 85670), 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, 85670), 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, 85669), 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, 85668), 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, 85671), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85671), 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, 85671), 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, 85671), 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, 85671), 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, 85668), 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, 85668), 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, 85668), 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, 85672), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85672), 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, 85673), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85673), 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, 85673), 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, 85673), 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, 85673), 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, 85672), 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, 85672), 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, 85668), 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#1086854]
(63) Generate
Arguments: explode(prodPlantResults#1086854), false, [prodPlantResults#1086855]
(64) Project
Arguments: [prodPlantResults#1086855]
(65) Generate
Arguments: explode(prodPlantResults#1086855.quantityKpiResults), false, [quantityKpiResults#1086822]
(66) Project
Arguments: [prodPlantResults#1086855.productId AS product#1086816, prodPlantResults#1086855.plantId AS plant#1086817, quantityKpiResults#1086822]
(67) Project
Arguments: [product#1086816, plant#1086817, quantityKpiResults#1086822, quantityKpiResults#1086822.quantity AS qty#1086823]
(68) Project
Arguments: [product#1086816, plant#1086817, quantityKpiResults#1086822, qty#1086823, cast(null as string) AS demandChannel#1086825]
(69) Project
Arguments: [product#1086816, plant#1086817, quantityKpiResults#1086822, qty#1086823, demandChannel#1086825, cast(null as string) AS demandStream#1086826]
(70) Project
Arguments: [product#1086816, plant#1086817, quantityKpiResults#1086822, qty#1086823, demandChannel#1086825, demandStream#1086826, quantityKpiResults#1086822.kpiResults AS kpis#1086827]
(71) Project
Arguments: [product#1086816, plant#1086817, qty#1086823, demandChannel#1086825, demandStream#1086826, kpis#1086827]
(72) Project
Arguments: [product#1086816, plant#1086817, kpis#1086827, qty#1086823, demandChannel#1086825, demandStream#1086826]
(73) ExternalRDD
Arguments: [obj#1086857]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85667), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85667), 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, 85667), 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, 85667), 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, 85667), 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, 85667), 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#1086858, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85668), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85668), 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, 85669), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85669), 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, 85669), 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, 85669), 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, 85670), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85670), 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, 85670), 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, 85670), 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, 85670), 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, 85669), 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, 85668), 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, 85671), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85671), 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, 85671), 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, 85671), 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, 85671), 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, 85668), 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, 85668), 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, 85668), 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, 85672), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85672), 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, 85673), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 85673), 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, 85673), 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, 85673), 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, 85673), 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, 85672), 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, 85672), 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, 85668), 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#1086859]
(75) Generate
Arguments: explode(prodPlantResults#1086859), false, [prodPlantResults#1086860]
(76) Project
Arguments: [prodPlantResults#1086860]
(77) Generate
Arguments: explode(prodPlantResults#1086860.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1086844]
(78) Project
Arguments: [prodPlantResults#1086860.productId AS product#1086838, prodPlantResults#1086860.plantId AS plant#1086839, demandChannelStreamKpiResults#1086844]
(79) Project
Arguments: [product#1086838, plant#1086839, demandChannelStreamKpiResults#1086844, null AS qty#1086845]
(80) Project
Arguments: [product#1086838, plant#1086839, demandChannelStreamKpiResults#1086844, qty#1086845, demandChannelStreamKpiResults#1086844.demandChannel AS demandChannel#1086846]
(81) Project
Arguments: [product#1086838, plant#1086839, demandChannelStreamKpiResults#1086844, qty#1086845, demandChannel#1086846, demandChannelStreamKpiResults#1086844.demandStream AS demandStream#1086848]
(82) Project
Arguments: [product#1086838, plant#1086839, demandChannelStreamKpiResults#1086844, qty#1086845, demandChannel#1086846, demandStream#1086848, demandChannelStreamKpiResults#1086844.kpiResults AS kpis#1086850]
(83) Project
Arguments: [product#1086838, plant#1086839, qty#1086845, demandChannel#1086846, demandStream#1086848, kpis#1086850]
(84) Project
Arguments: [product#1086838, plant#1086839, kpis#1086850, qty#1086845, demandChannel#1086846, demandStream#1086848]
(85) Project
Arguments: [product#1086838, plant#1086839, kpis#1086850, cast(qty#1086845 as double) AS qty#1086861, demandChannel#1086846, demandStream#1086848]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1086829, plant#1086830, transform(kpis#1086831, lambdafunction(struct(label, lambda kpi#1086866.label, dateTime, lambda kpi#1086866.datetime, value, lambda kpi#1086866.value), lambda kpi#1086866, false)) AS kpis#1086865, qty#1086856, demandChannel#1086836, demandStream#1086837]
(88) Project
Arguments: [product#1086829, plant#1086830, qty#1086856, demandChannel#1086836, demandStream#1086837, kpis#1086865]
(89) LogicalRDD
Arguments: [shardId#1087674, worklistShardItemId#1087675L, version#1087676, product#1087677, plant#1087678, periodStart#1087679, periodEnd#1087680, qty#1087681], false
(90) RepartitionByExpression
Arguments: [product#1087677, plant#1087678], 37
(91) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, version#1087676, product#1087677, plant#1087678, qty#1087681]
(92) LogicalRDD
Arguments: [shardId#1087682, worklistShardItemId#1087683L, version#1087684, product#1087685, plant#1087686, periodStart#1087687, periodEnd#1087688, qty#1087689], false
(93) RepartitionByExpression
Arguments: [product#1087685, plant#1087686], 37
(94) Project
Arguments: [shardId#1087682, worklistShardItemId#1087683L, version#1087684, product#1087685, plant#1087686, qty#1087689]
(95) LogicalRDD
Arguments: [shardId#1087690, worklistShardItemId#1087691L, qty#1087692, demandChannel#1087693, demandStream#1087694, kpis#1087695], false
(96) Project
Arguments: [shardId#1087690 AS cachedShardId#1087696, worklistShardItemId#1087691L AS cachedWorklistShardItemId#1087697L, qty#1087692 AS cachedQty#1087698, demandChannel#1087693, demandStream#1087694, kpis#1087695 AS cachedKpis#1087699]
(97) Join
Arguments: Inner, (((worklistShardItemId#1087683L = cachedWorklistShardItemId#1087697L) AND (shardId#1087682 = cachedShardId#1087696)) AND ((qty#1087689 = cachedQty#1087698) OR isnull(qty#1087689)))
(98) Project
Arguments: [shardId#1087682, worklistShardItemId#1087683L, version#1087684, product#1087685, plant#1087686]
(99) Deduplicate
Arguments: [plant#1087686, shardId#1087682, version#1087684, worklistShardItemId#1087683L, product#1087685]
(100) LogicalRDD
Arguments: [shardId#1087700, worklistShardItemId#1087701L, qty#1087702, demandChannel#1087703, demandStream#1087704, kpis#1087705], false
(101) Project
Arguments: [shardId#1087700 AS cachedShardId#1087706, worklistShardItemId#1087701L AS cachedWorklistShardItemId#1087707L, qty#1087702 AS cachedQty#1087708, demandChannel#1087703, demandStream#1087704, kpis#1087705 AS cachedKpis#1087709]
(102) Join
Arguments: Inner, ((worklistShardItemId#1087683L = cachedWorklistShardItemId#1087707L) AND (shardId#1087682 = cachedShardId#1087706))
(103) Project
Arguments: [shardId#1087682, worklistShardItemId#1087683L, version#1087684, product#1087685, plant#1087686, cachedQty#1087708 AS qty#1087710, demandChannel#1087703, demandStream#1087704, cachedKpis#1087709 AS kpis#1087711]
(104) Project
Arguments: [shardId#1087682, worklistShardItemId#1087683L, version#1087684, product#1087685, plant#1087686, qty#1087710]
(105) LogicalRDD
Arguments: [shardId#1087712, worklistShardItemId#1087713L, version#1087714, product#1087715, plant#1087716, periodStart#1087717, periodEnd#1087718, qty#1087719], false
(106) RepartitionByExpression
Arguments: [product#1087715, plant#1087716], 37
(107) Project
Arguments: [shardId#1087712, worklistShardItemId#1087713L, version#1087714, product#1087715, plant#1087716, qty#1087719]
(108) LogicalRDD
Arguments: [shardId#1087720, worklistShardItemId#1087721L, qty#1087722, demandChannel#1087723, demandStream#1087724, kpis#1087725], false
(109) Project
Arguments: [shardId#1087720 AS cachedShardId#1087726, worklistShardItemId#1087721L AS cachedWorklistShardItemId#1087727L, qty#1087722 AS cachedQty#1087728, demandChannel#1087723, demandStream#1087724, kpis#1087725 AS cachedKpis#1087729]
(110) Join
Arguments: Inner, (((worklistShardItemId#1087713L = cachedWorklistShardItemId#1087727L) AND (shardId#1087712 = cachedShardId#1087726)) AND isnull(qty#1087719))
(111) Project
Arguments: [shardId#1087712, worklistShardItemId#1087713L, version#1087714, product#1087715, plant#1087716, qty#1087719]
(112) Project
Arguments: [shardId#1087712, worklistShardItemId#1087713L, version#1087714, product#1087715, plant#1087716, qty#1087719]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1087674 <=> shardId#1087682) AND (worklistShardItemId#1087675L <=> worklistShardItemId#1087683L)) AND (version#1087676 <=> version#1087684)) AND (product#1087677 <=> product#1087685)) AND (plant#1087678 <=> plant#1087686)) AND (qty#1087681 <=> qty#1087710))
(115) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, version#1087676, product#1087677, plant#1087678, qty#1087681]
(116) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, version#1087676, product#1087677, plant#1087678, qty#1087681, cast(null as string) AS demandChannel#1087730]
(117) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, version#1087676, product#1087677, plant#1087678, qty#1087681, demandChannel#1087730, cast(null as string) AS demandStream#1087731]
(118) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, version#1087676, product#1087677, plant#1087678, qty#1087681, demandChannel#1087730, demandStream#1087731, array() AS kpis#1087732]
(119) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, version#1087676, product#1087677, plant#1087678, qty#1087681, demandChannel#1087730, demandStream#1087731, kpis#1087732, true AS isNewlyCalculated#1087733]
(120) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, version#1087676, product#1087677, plant#1087678, qty#1087681, demandChannel#1087730, demandStream#1087731, cast(kpis#1087732 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1087734, isNewlyCalculated#1087733]
(121) LogicalRDD
Arguments: [shardId#1087735, worklistShardItemId#1087736L, version#1087737, product#1087738, plant#1087739, periodStart#1087740, periodEnd#1087741, qty#1087742], false
(122) RepartitionByExpression
Arguments: [product#1087738, plant#1087739], 37
(123) Project
Arguments: [shardId#1087735, worklistShardItemId#1087736L, version#1087737, product#1087738, plant#1087739, qty#1087742]
(124) LogicalRDD
Arguments: [shardId#1087743, worklistShardItemId#1087744L, qty#1087745, demandChannel#1087746, demandStream#1087747, kpis#1087748], false
(125) Project
Arguments: [shardId#1087743 AS cachedShardId#1087749, worklistShardItemId#1087744L AS cachedWorklistShardItemId#1087750L, qty#1087745 AS cachedQty#1087751, demandChannel#1087746, demandStream#1087747, kpis#1087748 AS cachedKpis#1087752]
(126) Join
Arguments: Inner, (((worklistShardItemId#1087736L = cachedWorklistShardItemId#1087750L) AND (shardId#1087735 = cachedShardId#1087749)) AND ((qty#1087742 = cachedQty#1087751) OR isnull(qty#1087742)))
(127) Project
Arguments: [shardId#1087735, worklistShardItemId#1087736L, version#1087737, product#1087738, plant#1087739]
(128) Deduplicate
Arguments: [plant#1087739, shardId#1087735, version#1087737, worklistShardItemId#1087736L, product#1087738]
(129) LogicalRDD
Arguments: [shardId#1087753, worklistShardItemId#1087754L, qty#1087755, demandChannel#1087756, demandStream#1087757, kpis#1087758], false
(130) Project
Arguments: [shardId#1087753 AS cachedShardId#1087759, worklistShardItemId#1087754L AS cachedWorklistShardItemId#1087760L, qty#1087755 AS cachedQty#1087761, demandChannel#1087756, demandStream#1087757, kpis#1087758 AS cachedKpis#1087762]
(131) Join
Arguments: Inner, ((worklistShardItemId#1087736L = cachedWorklistShardItemId#1087760L) AND (shardId#1087735 = cachedShardId#1087759))
(132) Project
Arguments: [shardId#1087735, worklistShardItemId#1087736L, version#1087737, product#1087738, plant#1087739, cachedQty#1087761 AS qty#1087763, demandChannel#1087756, demandStream#1087757, cachedKpis#1087762 AS kpis#1087764]
(133) Project
Arguments: [shardId#1087735, worklistShardItemId#1087736L, version#1087737, product#1087738, plant#1087739, qty#1087763, demandChannel#1087756, demandStream#1087757, kpis#1087764, false AS isNewlyCalculated#1087765]
(134) Project
Arguments: [shardId#1087735, worklistShardItemId#1087736L, version#1087737, product#1087738, plant#1087739, qty#1087763, demandChannel#1087756, demandStream#1087757, kpis#1087764, isNewlyCalculated#1087765]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1087733 <=> true)
(137) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, product#1087677, plant#1087678, qty#1087681, kpis#1087734]
(138) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, product#1087677, plant#1087678, qty#1087681]
(139) Deduplicate
Arguments: [plant#1087678, shardId#1087674, qty#1087681, worklistShardItemId#1087675L, product#1087677]
(140) Join
Arguments: Inner, ((product#1086829 <=> product#1087677) AND ((plant#1086830 <=> plant#1087678) AND ((qty#1086856 <=> qty#1087681) OR isnull(qty#1087681))))
(141) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, qty#1086856, demandChannel#1086836, demandStream#1086837, kpis#1086865]
(142) Deduplicate
Arguments: [demandChannel#1086836, shardId#1087674, qty#1086856, worklistShardItemId#1087675L, demandStream#1086837]
(143) Project
Arguments: [shardId#1087674, worklistShardItemId#1087675L, qty#1086856, demandChannel#1086836, demandStream#1086837, kpis#1086865]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768, product#1087769, plant#1087770, periodStart#1087771, periodEnd#1087772, qty#1087773], false
(146) RepartitionByExpression
Arguments: [product#1087769, plant#1087770], 37
(147) Project
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768, product#1087769, plant#1087770, qty#1087773]
(148) LogicalRDD
Arguments: [shardId#1087774, worklistShardItemId#1087775L, version#1087776, product#1087777, plant#1087778, periodStart#1087779, periodEnd#1087780, qty#1087781], false
(149) RepartitionByExpression
Arguments: [product#1087777, plant#1087778], 37
(150) Project
Arguments: [shardId#1087774, worklistShardItemId#1087775L, version#1087776, product#1087777, plant#1087778, qty#1087781]
(151) LogicalRDD
Arguments: [shardId#1087782, worklistShardItemId#1087783L, qty#1087784, demandChannel#1087785, demandStream#1087786, kpis#1087787], false
(152) Project
Arguments: [shardId#1087782 AS cachedShardId#1087788, worklistShardItemId#1087783L AS cachedWorklistShardItemId#1087789L, qty#1087784 AS cachedQty#1087790, demandChannel#1087785, demandStream#1087786, kpis#1087787 AS cachedKpis#1087791]
(153) Join
Arguments: Inner, (((worklistShardItemId#1087775L = cachedWorklistShardItemId#1087789L) AND (shardId#1087774 = cachedShardId#1087788)) AND ((qty#1087781 = cachedQty#1087790) OR isnull(qty#1087781)))
(154) Project
Arguments: [shardId#1087774, worklistShardItemId#1087775L, version#1087776, product#1087777, plant#1087778]
(155) Deduplicate
Arguments: [plant#1087778, shardId#1087774, version#1087776, worklistShardItemId#1087775L, product#1087777]
(156) LogicalRDD
Arguments: [shardId#1087792, worklistShardItemId#1087793L, qty#1087794, demandChannel#1087795, demandStream#1087796, kpis#1087797], false
(157) Project
Arguments: [shardId#1087792 AS cachedShardId#1087798, worklistShardItemId#1087793L AS cachedWorklistShardItemId#1087799L, qty#1087794 AS cachedQty#1087800, demandChannel#1087795, demandStream#1087796, kpis#1087797 AS cachedKpis#1087801]
(158) Join
Arguments: Inner, ((worklistShardItemId#1087775L = cachedWorklistShardItemId#1087799L) AND (shardId#1087774 = cachedShardId#1087798))
(159) Project
Arguments: [shardId#1087774, worklistShardItemId#1087775L, version#1087776, product#1087777, plant#1087778, cachedQty#1087800 AS qty#1087802, demandChannel#1087795, demandStream#1087796, cachedKpis#1087801 AS kpis#1087803]
(160) Project
Arguments: [shardId#1087774, worklistShardItemId#1087775L, version#1087776, product#1087777, plant#1087778, qty#1087802]
(161) LogicalRDD
Arguments: [shardId#1087804, worklistShardItemId#1087805L, version#1087806, product#1087807, plant#1087808, periodStart#1087809, periodEnd#1087810, qty#1087811], false
(162) RepartitionByExpression
Arguments: [product#1087807, plant#1087808], 37
(163) Project
Arguments: [shardId#1087804, worklistShardItemId#1087805L, version#1087806, product#1087807, plant#1087808, qty#1087811]
(164) LogicalRDD
Arguments: [shardId#1087812, worklistShardItemId#1087813L, qty#1087814, demandChannel#1087815, demandStream#1087816, kpis#1087817], false
(165) Project
Arguments: [shardId#1087812 AS cachedShardId#1087818, worklistShardItemId#1087813L AS cachedWorklistShardItemId#1087819L, qty#1087814 AS cachedQty#1087820, demandChannel#1087815, demandStream#1087816, kpis#1087817 AS cachedKpis#1087821]
(166) Join
Arguments: Inner, (((worklistShardItemId#1087805L = cachedWorklistShardItemId#1087819L) AND (shardId#1087804 = cachedShardId#1087818)) AND isnull(qty#1087811))
(167) Project
Arguments: [shardId#1087804, worklistShardItemId#1087805L, version#1087806, product#1087807, plant#1087808, qty#1087811]
(168) Project
Arguments: [shardId#1087804, worklistShardItemId#1087805L, version#1087806, product#1087807, plant#1087808, qty#1087811]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1087766 <=> shardId#1087774) AND (worklistShardItemId#1087767L <=> worklistShardItemId#1087775L)) AND (version#1087768 <=> version#1087776)) AND (product#1087769 <=> product#1087777)) AND (plant#1087770 <=> plant#1087778)) AND (qty#1087773 <=> qty#1087802))
(171) Project
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768, product#1087769, plant#1087770, qty#1087773]
(172) Project
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768, product#1087769, plant#1087770, qty#1087773, cast(null as string) AS demandChannel#1087822]
(173) Project
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768, product#1087769, plant#1087770, qty#1087773, demandChannel#1087822, cast(null as string) AS demandStream#1087823]
(174) Project
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768, product#1087769, plant#1087770, qty#1087773, demandChannel#1087822, demandStream#1087823, array() AS kpis#1087824]
(175) Project
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768, product#1087769, plant#1087770, qty#1087773, demandChannel#1087822, demandStream#1087823, kpis#1087824, true AS isNewlyCalculated#1087825]
(176) Project
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768, product#1087769, plant#1087770, qty#1087773, demandChannel#1087822, demandStream#1087823, cast(kpis#1087824 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1087826, isNewlyCalculated#1087825]
(177) LogicalRDD
Arguments: [shardId#1087827, worklistShardItemId#1087828L, version#1087829, product#1087830, plant#1087831, periodStart#1087832, periodEnd#1087833, qty#1087834], false
(178) RepartitionByExpression
Arguments: [product#1087830, plant#1087831], 37
(179) Project
Arguments: [shardId#1087827, worklistShardItemId#1087828L, version#1087829, product#1087830, plant#1087831, qty#1087834]
(180) LogicalRDD
Arguments: [shardId#1087835, worklistShardItemId#1087836L, qty#1087837, demandChannel#1087838, demandStream#1087839, kpis#1087840], false
(181) Project
Arguments: [shardId#1087835 AS cachedShardId#1087841, worklistShardItemId#1087836L AS cachedWorklistShardItemId#1087842L, qty#1087837 AS cachedQty#1087843, demandChannel#1087838, demandStream#1087839, kpis#1087840 AS cachedKpis#1087844]
(182) Join
Arguments: Inner, (((worklistShardItemId#1087828L = cachedWorklistShardItemId#1087842L) AND (shardId#1087827 = cachedShardId#1087841)) AND ((qty#1087834 = cachedQty#1087843) OR isnull(qty#1087834)))
(183) Project
Arguments: [shardId#1087827, worklistShardItemId#1087828L, version#1087829, product#1087830, plant#1087831]
(184) Deduplicate
Arguments: [plant#1087831, shardId#1087827, version#1087829, worklistShardItemId#1087828L, product#1087830]
(185) LogicalRDD
Arguments: [shardId#1087845, worklistShardItemId#1087846L, qty#1087847, demandChannel#1087848, demandStream#1087849, kpis#1087850], false
(186) Project
Arguments: [shardId#1087845 AS cachedShardId#1087851, worklistShardItemId#1087846L AS cachedWorklistShardItemId#1087852L, qty#1087847 AS cachedQty#1087853, demandChannel#1087848, demandStream#1087849, kpis#1087850 AS cachedKpis#1087854]
(187) Join
Arguments: Inner, ((worklistShardItemId#1087828L = cachedWorklistShardItemId#1087852L) AND (shardId#1087827 = cachedShardId#1087851))
(188) Project
Arguments: [shardId#1087827, worklistShardItemId#1087828L, version#1087829, product#1087830, plant#1087831, cachedQty#1087853 AS qty#1087855, demandChannel#1087848, demandStream#1087849, cachedKpis#1087854 AS kpis#1087856]
(189) Project
Arguments: [shardId#1087827, worklistShardItemId#1087828L, version#1087829, product#1087830, plant#1087831, qty#1087855, demandChannel#1087848, demandStream#1087849, kpis#1087856, false AS isNewlyCalculated#1087857]
(190) Project
Arguments: [shardId#1087827, worklistShardItemId#1087828L, version#1087829, product#1087830, plant#1087831, qty#1087855, demandChannel#1087848, demandStream#1087849, kpis#1087856, isNewlyCalculated#1087857]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1087766, worklistShardItemId#1087767L, version#1087768]
(193) Aggregate
Arguments: [shardId#1087766, worklistShardItemId#1087767L], [shardId#1087766, worklistShardItemId#1087767L, (max(version#1087768) + 1) AS version#1087669]
(194) Join
Arguments: Inner, ((shardId#1011815 = shardId#1087766) AND (worklistShardItemId#1011816L = worklistShardItemId#1087767L))
(195) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1084300, demandStream#1084301, kpis#1084335, version#1087669]
(196) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1087669, qty#1011822, demandChannel#1084300, demandStream#1084301, kpis#1084335]