== 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@7e31c239, [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#1095408, worklistShardItemId#1095409L, version#1095410, product#1095411, plant#1095412, periodStart#1095413, periodEnd#1095414, qty#1095415], false
(7) RepartitionByExpression
Arguments: [product#1095411, plant#1095412], 37
(8) Project
Arguments: [shardId#1095408, worklistShardItemId#1095409L, version#1095410, product#1095411, plant#1095412, qty#1095415]
(9) LogicalRDD
Arguments: [shardId#1095163, worklistShardItemId#1095164L, qty#1095165, demandChannel#1095166, demandStream#1095167, kpis#1095168], false
(10) Project
Arguments: [shardId#1095163 AS cachedShardId#1095169, worklistShardItemId#1095164L AS cachedWorklistShardItemId#1095170L, qty#1095165 AS cachedQty#1095171, demandChannel#1095166, demandStream#1095167, kpis#1095168 AS cachedKpis#1095172]
(11) Join
Arguments: Inner, (((worklistShardItemId#1095409L = cachedWorklistShardItemId#1095170L) AND (shardId#1095408 = cachedShardId#1095169)) AND ((qty#1095415 = cachedQty#1095171) OR isnull(qty#1095415)))
(12) Project
Arguments: [shardId#1095408, worklistShardItemId#1095409L, version#1095410, product#1095411, plant#1095412]
(13) Deduplicate
Arguments: [plant#1095412, shardId#1095408, version#1095410, worklistShardItemId#1095409L, product#1095411]
(14) LogicalRDD
Arguments: [shardId#1095173, worklistShardItemId#1095174L, qty#1095175, demandChannel#1095176, demandStream#1095177, kpis#1095178], false
(15) Project
Arguments: [shardId#1095173 AS cachedShardId#1095179, worklistShardItemId#1095174L AS cachedWorklistShardItemId#1095180L, qty#1095175 AS cachedQty#1095181, demandChannel#1095176, demandStream#1095177, kpis#1095178 AS cachedKpis#1095182]
(16) Join
Arguments: Inner, ((worklistShardItemId#1095409L = cachedWorklistShardItemId#1095180L) AND (shardId#1095408 = cachedShardId#1095179))
(17) Project
Arguments: [shardId#1095408, worklistShardItemId#1095409L, version#1095410, product#1095411, plant#1095412, cachedQty#1095181 AS qty#1095183, demandChannel#1095176, demandStream#1095177, cachedKpis#1095182 AS kpis#1095184]
(18) Project
Arguments: [shardId#1095408, worklistShardItemId#1095409L, version#1095410, product#1095411, plant#1095412, qty#1095183]
(19) LogicalRDD
Arguments: [shardId#1095390, worklistShardItemId#1095391L, version#1095392, product#1095393, plant#1095394, periodStart#1095395, periodEnd#1095396, qty#1095397], false
(20) RepartitionByExpression
Arguments: [product#1095393, plant#1095394], 37
(21) Project
Arguments: [shardId#1095390, worklistShardItemId#1095391L, version#1095392, product#1095393, plant#1095394, qty#1095397]
(22) LogicalRDD
Arguments: [shardId#1095398, worklistShardItemId#1095399L, qty#1095400, demandChannel#1095401, demandStream#1095402, kpis#1095403], false
(23) Project
Arguments: [shardId#1095398 AS cachedShardId#1095404, worklistShardItemId#1095399L AS cachedWorklistShardItemId#1095405L, qty#1095400 AS cachedQty#1095406, demandChannel#1095401, demandStream#1095402, kpis#1095403 AS cachedKpis#1095407]
(24) Join
Arguments: Inner, (((worklistShardItemId#1095391L = cachedWorklistShardItemId#1095405L) AND (shardId#1095390 = cachedShardId#1095404)) AND isnull(qty#1095397))
(25) Project
Arguments: [shardId#1095390, worklistShardItemId#1095391L, version#1095392, product#1095393, plant#1095394, qty#1095397]
(26) Project
Arguments: [shardId#1095390, worklistShardItemId#1095391L, version#1095392, product#1095393, plant#1095394, qty#1095397]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1011815 <=> shardId#1095408) AND (worklistShardItemId#1011816L <=> worklistShardItemId#1095409L)) AND (version#1011817 <=> version#1095410)) AND (product#1011818 <=> product#1095411)) AND (plant#1011819 <=> plant#1095412)) AND (qty#1011822 <=> qty#1095183))
(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#1095416]
(31) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1095416, cast(null as string) AS demandStream#1095417]
(32) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1095416, demandStream#1095417, array() AS kpis#1095418]
(33) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1095416, demandStream#1095417, kpis#1095418, true AS isNewlyCalculated#1095419]
(34) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1095416, demandStream#1095417, cast(kpis#1095418 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1095451, isNewlyCalculated#1095419]
(35) LogicalRDD
Arguments: [shardId#1095421, worklistShardItemId#1095422L, version#1095423, product#1095424, plant#1095425, periodStart#1095426, periodEnd#1095427, qty#1095428], false
(36) RepartitionByExpression
Arguments: [product#1095424, plant#1095425], 37
(37) Project
Arguments: [shardId#1095421, worklistShardItemId#1095422L, version#1095423, product#1095424, plant#1095425, qty#1095428]
(38) LogicalRDD
Arguments: [shardId#1095429, worklistShardItemId#1095430L, qty#1095431, demandChannel#1095432, demandStream#1095433, kpis#1095434], false
(39) Project
Arguments: [shardId#1095429 AS cachedShardId#1095435, worklistShardItemId#1095430L AS cachedWorklistShardItemId#1095436L, qty#1095431 AS cachedQty#1095437, demandChannel#1095432, demandStream#1095433, kpis#1095434 AS cachedKpis#1095438]
(40) Join
Arguments: Inner, (((worklistShardItemId#1095422L = cachedWorklistShardItemId#1095436L) AND (shardId#1095421 = cachedShardId#1095435)) AND ((qty#1095428 = cachedQty#1095437) OR isnull(qty#1095428)))
(41) Project
Arguments: [shardId#1095421, worklistShardItemId#1095422L, version#1095423, product#1095424, plant#1095425]
(42) Deduplicate
Arguments: [plant#1095425, shardId#1095421, version#1095423, worklistShardItemId#1095422L, product#1095424]
(43) LogicalRDD
Arguments: [shardId#1095439, worklistShardItemId#1095440L, qty#1095441, demandChannel#1095442, demandStream#1095443, kpis#1095444], false
(44) Project
Arguments: [shardId#1095439 AS cachedShardId#1095445, worklistShardItemId#1095440L AS cachedWorklistShardItemId#1095446L, qty#1095441 AS cachedQty#1095447, demandChannel#1095442, demandStream#1095443, kpis#1095444 AS cachedKpis#1095448]
(45) Join
Arguments: Inner, ((worklistShardItemId#1095422L = cachedWorklistShardItemId#1095446L) AND (shardId#1095421 = cachedShardId#1095445))
(46) Project
Arguments: [shardId#1095421, worklistShardItemId#1095422L, version#1095423, product#1095424, plant#1095425, cachedQty#1095447 AS qty#1095449, demandChannel#1095442, demandStream#1095443, cachedKpis#1095448 AS kpis#1095450]
(47) Project
Arguments: [shardId#1095421, worklistShardItemId#1095422L, version#1095423, product#1095424, plant#1095425, qty#1095449, demandChannel#1095442, demandStream#1095443, kpis#1095450, false AS isNewlyCalculated#1095420]
(48) Project
Arguments: [shardId#1095421, worklistShardItemId#1095422L, version#1095423, product#1095424, plant#1095425, qty#1095449, demandChannel#1095442, demandStream#1095443, kpis#1095450, isNewlyCalculated#1095420]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1095419 <=> false)
(51) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1095416, demandStream#1095417, kpis#1095451]
(52) ExternalRDD
Arguments: [obj#1097915]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86337), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86337), 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, 86337), 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, 86337), 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, 86337), 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, 86337), 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#1097918, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86338), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86338), 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, 86339), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86339), 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, 86339), 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, 86339), 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, 86340), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86340), 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, 86340), 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, 86340), 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, 86340), 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, 86339), 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, 86338), 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, 86341), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86341), 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, 86341), 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, 86341), 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, 86341), 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, 86338), 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, 86338), 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, 86338), 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, 86342), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86342), 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, 86343), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86343), 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, 86343), 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, 86343), 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, 86343), 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, 86342), 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, 86342), 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, 86338), 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#1097919]
(54) Generate
Arguments: explode(prodPlantResults#1097919), false, [prodPlantResults#1097926]
(55) Project
Arguments: [prodPlantResults#1097926]
(56) Project
Arguments: [prodPlantResults#1097926.productId AS product#1097945, prodPlantResults#1097926.plantId AS plant#1097946, prodPlantResults#1097926.kpiResults AS kpis#1097947]
(57) Project
Arguments: [product#1097945, plant#1097946, kpis#1097947, null AS qty#1097951]
(58) Project
Arguments: [product#1097945, plant#1097946, kpis#1097947, qty#1097951, cast(null as string) AS demandChannel#1097952]
(59) Project
Arguments: [product#1097945, plant#1097946, kpis#1097947, qty#1097951, demandChannel#1097952, cast(null as string) AS demandStream#1097953]
(60) Project
Arguments: [product#1097945, plant#1097946, kpis#1097947, cast(qty#1097951 as double) AS qty#1097972, demandChannel#1097952, demandStream#1097953]
(61) ExternalRDD
Arguments: [obj#1097968]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86337), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86337), 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, 86337), 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, 86337), 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, 86337), 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, 86337), 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#1097969, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86338), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86338), 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, 86339), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86339), 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, 86339), 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, 86339), 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, 86340), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86340), 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, 86340), 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, 86340), 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, 86340), 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, 86339), 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, 86338), 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, 86341), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86341), 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, 86341), 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, 86341), 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, 86341), 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, 86338), 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, 86338), 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, 86338), 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, 86342), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86342), 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, 86343), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86343), 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, 86343), 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, 86343), 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, 86343), 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, 86342), 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, 86342), 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, 86338), 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#1097970]
(63) Generate
Arguments: explode(prodPlantResults#1097970), false, [prodPlantResults#1097971]
(64) Project
Arguments: [prodPlantResults#1097971]
(65) Generate
Arguments: explode(prodPlantResults#1097971.quantityKpiResults), false, [quantityKpiResults#1097938]
(66) Project
Arguments: [prodPlantResults#1097971.productId AS product#1097932, prodPlantResults#1097971.plantId AS plant#1097933, quantityKpiResults#1097938]
(67) Project
Arguments: [product#1097932, plant#1097933, quantityKpiResults#1097938, quantityKpiResults#1097938.quantity AS qty#1097939]
(68) Project
Arguments: [product#1097932, plant#1097933, quantityKpiResults#1097938, qty#1097939, cast(null as string) AS demandChannel#1097941]
(69) Project
Arguments: [product#1097932, plant#1097933, quantityKpiResults#1097938, qty#1097939, demandChannel#1097941, cast(null as string) AS demandStream#1097942]
(70) Project
Arguments: [product#1097932, plant#1097933, quantityKpiResults#1097938, qty#1097939, demandChannel#1097941, demandStream#1097942, quantityKpiResults#1097938.kpiResults AS kpis#1097943]
(71) Project
Arguments: [product#1097932, plant#1097933, qty#1097939, demandChannel#1097941, demandStream#1097942, kpis#1097943]
(72) Project
Arguments: [product#1097932, plant#1097933, kpis#1097943, qty#1097939, demandChannel#1097941, demandStream#1097942]
(73) ExternalRDD
Arguments: [obj#1097973]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86337), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86337), 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, 86337), 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, 86337), 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, 86337), 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, 86337), 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#1097974, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86338), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86338), 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, 86339), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86339), 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, 86339), 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, 86339), 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, 86340), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86340), 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, 86340), 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, 86340), 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, 86340), 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, 86339), 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, 86338), 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, 86341), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86341), 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, 86341), 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, 86341), 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, 86341), 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, 86338), 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, 86338), 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, 86338), 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, 86342), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86342), 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, 86343), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86343), 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, 86343), 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, 86343), 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, 86343), 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, 86342), 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, 86342), 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, 86338), 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#1097975]
(75) Generate
Arguments: explode(prodPlantResults#1097975), false, [prodPlantResults#1097976]
(76) Project
Arguments: [prodPlantResults#1097976]
(77) Generate
Arguments: explode(prodPlantResults#1097976.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1097960]
(78) Project
Arguments: [prodPlantResults#1097976.productId AS product#1097954, prodPlantResults#1097976.plantId AS plant#1097955, demandChannelStreamKpiResults#1097960]
(79) Project
Arguments: [product#1097954, plant#1097955, demandChannelStreamKpiResults#1097960, null AS qty#1097961]
(80) Project
Arguments: [product#1097954, plant#1097955, demandChannelStreamKpiResults#1097960, qty#1097961, demandChannelStreamKpiResults#1097960.demandChannel AS demandChannel#1097962]
(81) Project
Arguments: [product#1097954, plant#1097955, demandChannelStreamKpiResults#1097960, qty#1097961, demandChannel#1097962, demandChannelStreamKpiResults#1097960.demandStream AS demandStream#1097964]
(82) Project
Arguments: [product#1097954, plant#1097955, demandChannelStreamKpiResults#1097960, qty#1097961, demandChannel#1097962, demandStream#1097964, demandChannelStreamKpiResults#1097960.kpiResults AS kpis#1097966]
(83) Project
Arguments: [product#1097954, plant#1097955, qty#1097961, demandChannel#1097962, demandStream#1097964, kpis#1097966]
(84) Project
Arguments: [product#1097954, plant#1097955, kpis#1097966, qty#1097961, demandChannel#1097962, demandStream#1097964]
(85) Project
Arguments: [product#1097954, plant#1097955, kpis#1097966, cast(qty#1097961 as double) AS qty#1097977, demandChannel#1097962, demandStream#1097964]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1097945, plant#1097946, transform(kpis#1097947, lambdafunction(struct(label, lambda kpi#1097982.label, dateTime, lambda kpi#1097982.datetime, value, lambda kpi#1097982.value), lambda kpi#1097982, false)) AS kpis#1097981, qty#1097972, demandChannel#1097952, demandStream#1097953]
(88) Project
Arguments: [product#1097945, plant#1097946, qty#1097972, demandChannel#1097952, demandStream#1097953, kpis#1097981]
(89) LogicalRDD
Arguments: [shardId#1098790, worklistShardItemId#1098791L, version#1098792, product#1098793, plant#1098794, periodStart#1098795, periodEnd#1098796, qty#1098797], false
(90) RepartitionByExpression
Arguments: [product#1098793, plant#1098794], 37
(91) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, version#1098792, product#1098793, plant#1098794, qty#1098797]
(92) LogicalRDD
Arguments: [shardId#1098798, worklistShardItemId#1098799L, version#1098800, product#1098801, plant#1098802, periodStart#1098803, periodEnd#1098804, qty#1098805], false
(93) RepartitionByExpression
Arguments: [product#1098801, plant#1098802], 37
(94) Project
Arguments: [shardId#1098798, worklistShardItemId#1098799L, version#1098800, product#1098801, plant#1098802, qty#1098805]
(95) LogicalRDD
Arguments: [shardId#1098806, worklistShardItemId#1098807L, qty#1098808, demandChannel#1098809, demandStream#1098810, kpis#1098811], false
(96) Project
Arguments: [shardId#1098806 AS cachedShardId#1098812, worklistShardItemId#1098807L AS cachedWorklistShardItemId#1098813L, qty#1098808 AS cachedQty#1098814, demandChannel#1098809, demandStream#1098810, kpis#1098811 AS cachedKpis#1098815]
(97) Join
Arguments: Inner, (((worklistShardItemId#1098799L = cachedWorklistShardItemId#1098813L) AND (shardId#1098798 = cachedShardId#1098812)) AND ((qty#1098805 = cachedQty#1098814) OR isnull(qty#1098805)))
(98) Project
Arguments: [shardId#1098798, worklistShardItemId#1098799L, version#1098800, product#1098801, plant#1098802]
(99) Deduplicate
Arguments: [plant#1098802, shardId#1098798, version#1098800, worklistShardItemId#1098799L, product#1098801]
(100) LogicalRDD
Arguments: [shardId#1098816, worklistShardItemId#1098817L, qty#1098818, demandChannel#1098819, demandStream#1098820, kpis#1098821], false
(101) Project
Arguments: [shardId#1098816 AS cachedShardId#1098822, worklistShardItemId#1098817L AS cachedWorklistShardItemId#1098823L, qty#1098818 AS cachedQty#1098824, demandChannel#1098819, demandStream#1098820, kpis#1098821 AS cachedKpis#1098825]
(102) Join
Arguments: Inner, ((worklistShardItemId#1098799L = cachedWorklistShardItemId#1098823L) AND (shardId#1098798 = cachedShardId#1098822))
(103) Project
Arguments: [shardId#1098798, worklistShardItemId#1098799L, version#1098800, product#1098801, plant#1098802, cachedQty#1098824 AS qty#1098826, demandChannel#1098819, demandStream#1098820, cachedKpis#1098825 AS kpis#1098827]
(104) Project
Arguments: [shardId#1098798, worklistShardItemId#1098799L, version#1098800, product#1098801, plant#1098802, qty#1098826]
(105) LogicalRDD
Arguments: [shardId#1098828, worklistShardItemId#1098829L, version#1098830, product#1098831, plant#1098832, periodStart#1098833, periodEnd#1098834, qty#1098835], false
(106) RepartitionByExpression
Arguments: [product#1098831, plant#1098832], 37
(107) Project
Arguments: [shardId#1098828, worklistShardItemId#1098829L, version#1098830, product#1098831, plant#1098832, qty#1098835]
(108) LogicalRDD
Arguments: [shardId#1098836, worklistShardItemId#1098837L, qty#1098838, demandChannel#1098839, demandStream#1098840, kpis#1098841], false
(109) Project
Arguments: [shardId#1098836 AS cachedShardId#1098842, worklistShardItemId#1098837L AS cachedWorklistShardItemId#1098843L, qty#1098838 AS cachedQty#1098844, demandChannel#1098839, demandStream#1098840, kpis#1098841 AS cachedKpis#1098845]
(110) Join
Arguments: Inner, (((worklistShardItemId#1098829L = cachedWorklistShardItemId#1098843L) AND (shardId#1098828 = cachedShardId#1098842)) AND isnull(qty#1098835))
(111) Project
Arguments: [shardId#1098828, worklistShardItemId#1098829L, version#1098830, product#1098831, plant#1098832, qty#1098835]
(112) Project
Arguments: [shardId#1098828, worklistShardItemId#1098829L, version#1098830, product#1098831, plant#1098832, qty#1098835]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1098790 <=> shardId#1098798) AND (worklistShardItemId#1098791L <=> worklistShardItemId#1098799L)) AND (version#1098792 <=> version#1098800)) AND (product#1098793 <=> product#1098801)) AND (plant#1098794 <=> plant#1098802)) AND (qty#1098797 <=> qty#1098826))
(115) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, version#1098792, product#1098793, plant#1098794, qty#1098797]
(116) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, version#1098792, product#1098793, plant#1098794, qty#1098797, cast(null as string) AS demandChannel#1098846]
(117) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, version#1098792, product#1098793, plant#1098794, qty#1098797, demandChannel#1098846, cast(null as string) AS demandStream#1098847]
(118) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, version#1098792, product#1098793, plant#1098794, qty#1098797, demandChannel#1098846, demandStream#1098847, array() AS kpis#1098848]
(119) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, version#1098792, product#1098793, plant#1098794, qty#1098797, demandChannel#1098846, demandStream#1098847, kpis#1098848, true AS isNewlyCalculated#1098849]
(120) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, version#1098792, product#1098793, plant#1098794, qty#1098797, demandChannel#1098846, demandStream#1098847, cast(kpis#1098848 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1098850, isNewlyCalculated#1098849]
(121) LogicalRDD
Arguments: [shardId#1098851, worklistShardItemId#1098852L, version#1098853, product#1098854, plant#1098855, periodStart#1098856, periodEnd#1098857, qty#1098858], false
(122) RepartitionByExpression
Arguments: [product#1098854, plant#1098855], 37
(123) Project
Arguments: [shardId#1098851, worklistShardItemId#1098852L, version#1098853, product#1098854, plant#1098855, qty#1098858]
(124) LogicalRDD
Arguments: [shardId#1098859, worklistShardItemId#1098860L, qty#1098861, demandChannel#1098862, demandStream#1098863, kpis#1098864], false
(125) Project
Arguments: [shardId#1098859 AS cachedShardId#1098865, worklistShardItemId#1098860L AS cachedWorklistShardItemId#1098866L, qty#1098861 AS cachedQty#1098867, demandChannel#1098862, demandStream#1098863, kpis#1098864 AS cachedKpis#1098868]
(126) Join
Arguments: Inner, (((worklistShardItemId#1098852L = cachedWorklistShardItemId#1098866L) AND (shardId#1098851 = cachedShardId#1098865)) AND ((qty#1098858 = cachedQty#1098867) OR isnull(qty#1098858)))
(127) Project
Arguments: [shardId#1098851, worklistShardItemId#1098852L, version#1098853, product#1098854, plant#1098855]
(128) Deduplicate
Arguments: [plant#1098855, shardId#1098851, version#1098853, worklistShardItemId#1098852L, product#1098854]
(129) LogicalRDD
Arguments: [shardId#1098869, worklistShardItemId#1098870L, qty#1098871, demandChannel#1098872, demandStream#1098873, kpis#1098874], false
(130) Project
Arguments: [shardId#1098869 AS cachedShardId#1098875, worklistShardItemId#1098870L AS cachedWorklistShardItemId#1098876L, qty#1098871 AS cachedQty#1098877, demandChannel#1098872, demandStream#1098873, kpis#1098874 AS cachedKpis#1098878]
(131) Join
Arguments: Inner, ((worklistShardItemId#1098852L = cachedWorklistShardItemId#1098876L) AND (shardId#1098851 = cachedShardId#1098875))
(132) Project
Arguments: [shardId#1098851, worklistShardItemId#1098852L, version#1098853, product#1098854, plant#1098855, cachedQty#1098877 AS qty#1098879, demandChannel#1098872, demandStream#1098873, cachedKpis#1098878 AS kpis#1098880]
(133) Project
Arguments: [shardId#1098851, worklistShardItemId#1098852L, version#1098853, product#1098854, plant#1098855, qty#1098879, demandChannel#1098872, demandStream#1098873, kpis#1098880, false AS isNewlyCalculated#1098881]
(134) Project
Arguments: [shardId#1098851, worklistShardItemId#1098852L, version#1098853, product#1098854, plant#1098855, qty#1098879, demandChannel#1098872, demandStream#1098873, kpis#1098880, isNewlyCalculated#1098881]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1098849 <=> true)
(137) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, product#1098793, plant#1098794, qty#1098797, kpis#1098850]
(138) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, product#1098793, plant#1098794, qty#1098797]
(139) Deduplicate
Arguments: [plant#1098794, shardId#1098790, qty#1098797, worklistShardItemId#1098791L, product#1098793]
(140) Join
Arguments: Inner, ((product#1097945 <=> product#1098793) AND ((plant#1097946 <=> plant#1098794) AND ((qty#1097972 <=> qty#1098797) OR isnull(qty#1098797))))
(141) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, qty#1097972, demandChannel#1097952, demandStream#1097953, kpis#1097981]
(142) Deduplicate
Arguments: [demandChannel#1097952, shardId#1098790, qty#1097972, worklistShardItemId#1098791L, demandStream#1097953]
(143) Project
Arguments: [shardId#1098790, worklistShardItemId#1098791L, qty#1097972, demandChannel#1097952, demandStream#1097953, kpis#1097981]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884, product#1098885, plant#1098886, periodStart#1098887, periodEnd#1098888, qty#1098889], false
(146) RepartitionByExpression
Arguments: [product#1098885, plant#1098886], 37
(147) Project
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884, product#1098885, plant#1098886, qty#1098889]
(148) LogicalRDD
Arguments: [shardId#1098890, worklistShardItemId#1098891L, version#1098892, product#1098893, plant#1098894, periodStart#1098895, periodEnd#1098896, qty#1098897], false
(149) RepartitionByExpression
Arguments: [product#1098893, plant#1098894], 37
(150) Project
Arguments: [shardId#1098890, worklistShardItemId#1098891L, version#1098892, product#1098893, plant#1098894, qty#1098897]
(151) LogicalRDD
Arguments: [shardId#1098898, worklistShardItemId#1098899L, qty#1098900, demandChannel#1098901, demandStream#1098902, kpis#1098903], false
(152) Project
Arguments: [shardId#1098898 AS cachedShardId#1098904, worklistShardItemId#1098899L AS cachedWorklistShardItemId#1098905L, qty#1098900 AS cachedQty#1098906, demandChannel#1098901, demandStream#1098902, kpis#1098903 AS cachedKpis#1098907]
(153) Join
Arguments: Inner, (((worklistShardItemId#1098891L = cachedWorklistShardItemId#1098905L) AND (shardId#1098890 = cachedShardId#1098904)) AND ((qty#1098897 = cachedQty#1098906) OR isnull(qty#1098897)))
(154) Project
Arguments: [shardId#1098890, worklistShardItemId#1098891L, version#1098892, product#1098893, plant#1098894]
(155) Deduplicate
Arguments: [plant#1098894, shardId#1098890, version#1098892, worklistShardItemId#1098891L, product#1098893]
(156) LogicalRDD
Arguments: [shardId#1098908, worklistShardItemId#1098909L, qty#1098910, demandChannel#1098911, demandStream#1098912, kpis#1098913], false
(157) Project
Arguments: [shardId#1098908 AS cachedShardId#1098914, worklistShardItemId#1098909L AS cachedWorklistShardItemId#1098915L, qty#1098910 AS cachedQty#1098916, demandChannel#1098911, demandStream#1098912, kpis#1098913 AS cachedKpis#1098917]
(158) Join
Arguments: Inner, ((worklistShardItemId#1098891L = cachedWorklistShardItemId#1098915L) AND (shardId#1098890 = cachedShardId#1098914))
(159) Project
Arguments: [shardId#1098890, worklistShardItemId#1098891L, version#1098892, product#1098893, plant#1098894, cachedQty#1098916 AS qty#1098918, demandChannel#1098911, demandStream#1098912, cachedKpis#1098917 AS kpis#1098919]
(160) Project
Arguments: [shardId#1098890, worklistShardItemId#1098891L, version#1098892, product#1098893, plant#1098894, qty#1098918]
(161) LogicalRDD
Arguments: [shardId#1098920, worklistShardItemId#1098921L, version#1098922, product#1098923, plant#1098924, periodStart#1098925, periodEnd#1098926, qty#1098927], false
(162) RepartitionByExpression
Arguments: [product#1098923, plant#1098924], 37
(163) Project
Arguments: [shardId#1098920, worklistShardItemId#1098921L, version#1098922, product#1098923, plant#1098924, qty#1098927]
(164) LogicalRDD
Arguments: [shardId#1098928, worklistShardItemId#1098929L, qty#1098930, demandChannel#1098931, demandStream#1098932, kpis#1098933], false
(165) Project
Arguments: [shardId#1098928 AS cachedShardId#1098934, worklistShardItemId#1098929L AS cachedWorklistShardItemId#1098935L, qty#1098930 AS cachedQty#1098936, demandChannel#1098931, demandStream#1098932, kpis#1098933 AS cachedKpis#1098937]
(166) Join
Arguments: Inner, (((worklistShardItemId#1098921L = cachedWorklistShardItemId#1098935L) AND (shardId#1098920 = cachedShardId#1098934)) AND isnull(qty#1098927))
(167) Project
Arguments: [shardId#1098920, worklistShardItemId#1098921L, version#1098922, product#1098923, plant#1098924, qty#1098927]
(168) Project
Arguments: [shardId#1098920, worklistShardItemId#1098921L, version#1098922, product#1098923, plant#1098924, qty#1098927]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1098882 <=> shardId#1098890) AND (worklistShardItemId#1098883L <=> worklistShardItemId#1098891L)) AND (version#1098884 <=> version#1098892)) AND (product#1098885 <=> product#1098893)) AND (plant#1098886 <=> plant#1098894)) AND (qty#1098889 <=> qty#1098918))
(171) Project
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884, product#1098885, plant#1098886, qty#1098889]
(172) Project
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884, product#1098885, plant#1098886, qty#1098889, cast(null as string) AS demandChannel#1098938]
(173) Project
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884, product#1098885, plant#1098886, qty#1098889, demandChannel#1098938, cast(null as string) AS demandStream#1098939]
(174) Project
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884, product#1098885, plant#1098886, qty#1098889, demandChannel#1098938, demandStream#1098939, array() AS kpis#1098940]
(175) Project
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884, product#1098885, plant#1098886, qty#1098889, demandChannel#1098938, demandStream#1098939, kpis#1098940, true AS isNewlyCalculated#1098941]
(176) Project
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884, product#1098885, plant#1098886, qty#1098889, demandChannel#1098938, demandStream#1098939, cast(kpis#1098940 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1098942, isNewlyCalculated#1098941]
(177) LogicalRDD
Arguments: [shardId#1098943, worklistShardItemId#1098944L, version#1098945, product#1098946, plant#1098947, periodStart#1098948, periodEnd#1098949, qty#1098950], false
(178) RepartitionByExpression
Arguments: [product#1098946, plant#1098947], 37
(179) Project
Arguments: [shardId#1098943, worklistShardItemId#1098944L, version#1098945, product#1098946, plant#1098947, qty#1098950]
(180) LogicalRDD
Arguments: [shardId#1098951, worklistShardItemId#1098952L, qty#1098953, demandChannel#1098954, demandStream#1098955, kpis#1098956], false
(181) Project
Arguments: [shardId#1098951 AS cachedShardId#1098957, worklistShardItemId#1098952L AS cachedWorklistShardItemId#1098958L, qty#1098953 AS cachedQty#1098959, demandChannel#1098954, demandStream#1098955, kpis#1098956 AS cachedKpis#1098960]
(182) Join
Arguments: Inner, (((worklistShardItemId#1098944L = cachedWorklistShardItemId#1098958L) AND (shardId#1098943 = cachedShardId#1098957)) AND ((qty#1098950 = cachedQty#1098959) OR isnull(qty#1098950)))
(183) Project
Arguments: [shardId#1098943, worklistShardItemId#1098944L, version#1098945, product#1098946, plant#1098947]
(184) Deduplicate
Arguments: [plant#1098947, shardId#1098943, version#1098945, worklistShardItemId#1098944L, product#1098946]
(185) LogicalRDD
Arguments: [shardId#1098961, worklistShardItemId#1098962L, qty#1098963, demandChannel#1098964, demandStream#1098965, kpis#1098966], false
(186) Project
Arguments: [shardId#1098961 AS cachedShardId#1098967, worklistShardItemId#1098962L AS cachedWorklistShardItemId#1098968L, qty#1098963 AS cachedQty#1098969, demandChannel#1098964, demandStream#1098965, kpis#1098966 AS cachedKpis#1098970]
(187) Join
Arguments: Inner, ((worklistShardItemId#1098944L = cachedWorklistShardItemId#1098968L) AND (shardId#1098943 = cachedShardId#1098967))
(188) Project
Arguments: [shardId#1098943, worklistShardItemId#1098944L, version#1098945, product#1098946, plant#1098947, cachedQty#1098969 AS qty#1098971, demandChannel#1098964, demandStream#1098965, cachedKpis#1098970 AS kpis#1098972]
(189) Project
Arguments: [shardId#1098943, worklistShardItemId#1098944L, version#1098945, product#1098946, plant#1098947, qty#1098971, demandChannel#1098964, demandStream#1098965, kpis#1098972, false AS isNewlyCalculated#1098973]
(190) Project
Arguments: [shardId#1098943, worklistShardItemId#1098944L, version#1098945, product#1098946, plant#1098947, qty#1098971, demandChannel#1098964, demandStream#1098965, kpis#1098972, isNewlyCalculated#1098973]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1098882, worklistShardItemId#1098883L, version#1098884]
(193) Aggregate
Arguments: [shardId#1098882, worklistShardItemId#1098883L], [shardId#1098882, worklistShardItemId#1098883L, (max(version#1098884) + 1) AS version#1098785]
(194) Join
Arguments: Inner, ((shardId#1011815 = shardId#1098882) AND (worklistShardItemId#1011816L = worklistShardItemId#1098883L))
(195) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1095416, demandStream#1095417, kpis#1095451, version#1098785]
(196) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1098785, qty#1011822, demandChannel#1095416, demandStream#1095417, kpis#1095451]