== 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@2d8c8682, [path=hdlfs://7da5304c-1f57-47fa-b75a-0f0b4349c280.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000004/stream-10000000004-1], Append
(3) LogicalRDD
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, periodStart#450, periodEnd#451, qty#452], false
(4) RepartitionByExpression
Arguments: [product#448, plant#449], 37
(5) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]
(6) LogicalRDD
Arguments: [shardId#13237, worklistShardItemId#13238L, version#13239, product#13240, plant#13241, periodStart#13242, periodEnd#13243, qty#13244], false
(7) RepartitionByExpression
Arguments: [product#13240, plant#13241], 37
(8) Project
Arguments: [shardId#13237, worklistShardItemId#13238L, version#13239, product#13240, plant#13241, qty#13244]
(9) LogicalRDD
Arguments: [shardId#12992, worklistShardItemId#12993L, qty#12994, demandChannel#12995, demandStream#12996, kpis#12997], false
(10) Project
Arguments: [shardId#12992 AS cachedShardId#12998, worklistShardItemId#12993L AS cachedWorklistShardItemId#12999L, qty#12994 AS cachedQty#13000, demandChannel#12995, demandStream#12996, kpis#12997 AS cachedKpis#13001]
(11) Join
Arguments: Inner, (((worklistShardItemId#13238L = cachedWorklistShardItemId#12999L) AND (shardId#13237 = cachedShardId#12998)) AND ((qty#13244 = cachedQty#13000) OR isnull(qty#13244)))
(12) Project
Arguments: [shardId#13237, worklistShardItemId#13238L, version#13239, product#13240, plant#13241]
(13) Deduplicate
Arguments: [plant#13241, shardId#13237, version#13239, worklistShardItemId#13238L, product#13240]
(14) LogicalRDD
Arguments: [shardId#13002, worklistShardItemId#13003L, qty#13004, demandChannel#13005, demandStream#13006, kpis#13007], false
(15) Project
Arguments: [shardId#13002 AS cachedShardId#13008, worklistShardItemId#13003L AS cachedWorklistShardItemId#13009L, qty#13004 AS cachedQty#13010, demandChannel#13005, demandStream#13006, kpis#13007 AS cachedKpis#13011]
(16) Join
Arguments: Inner, ((worklistShardItemId#13238L = cachedWorklistShardItemId#13009L) AND (shardId#13237 = cachedShardId#13008))
(17) Project
Arguments: [shardId#13237, worklistShardItemId#13238L, version#13239, product#13240, plant#13241, cachedQty#13010 AS qty#13012, demandChannel#13005, demandStream#13006, cachedKpis#13011 AS kpis#13013]
(18) Project
Arguments: [shardId#13237, worklistShardItemId#13238L, version#13239, product#13240, plant#13241, qty#13012]
(19) LogicalRDD
Arguments: [shardId#13219, worklistShardItemId#13220L, version#13221, product#13222, plant#13223, periodStart#13224, periodEnd#13225, qty#13226], false
(20) RepartitionByExpression
Arguments: [product#13222, plant#13223], 37
(21) Project
Arguments: [shardId#13219, worklistShardItemId#13220L, version#13221, product#13222, plant#13223, qty#13226]
(22) LogicalRDD
Arguments: [shardId#13227, worklistShardItemId#13228L, qty#13229, demandChannel#13230, demandStream#13231, kpis#13232], false
(23) Project
Arguments: [shardId#13227 AS cachedShardId#13233, worklistShardItemId#13228L AS cachedWorklistShardItemId#13234L, qty#13229 AS cachedQty#13235, demandChannel#13230, demandStream#13231, kpis#13232 AS cachedKpis#13236]
(24) Join
Arguments: Inner, (((worklistShardItemId#13220L = cachedWorklistShardItemId#13234L) AND (shardId#13219 = cachedShardId#13233)) AND isnull(qty#13226))
(25) Project
Arguments: [shardId#13219, worklistShardItemId#13220L, version#13221, product#13222, plant#13223, qty#13226]
(26) Project
Arguments: [shardId#13219, worklistShardItemId#13220L, version#13221, product#13222, plant#13223, qty#13226]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#445 <=> shardId#13237) AND (worklistShardItemId#446L <=> worklistShardItemId#13238L)) AND (version#447 <=> version#13239)) AND (product#448 <=> product#13240)) AND (plant#449 <=> plant#13241)) AND (qty#452 <=> qty#13012))
(29) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452]
(30) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, cast(null as string) AS demandChannel#13245]
(31) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#13245, cast(null as string) AS demandStream#13246]
(32) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#13245, demandStream#13246, array() AS kpis#13247]
(33) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#13245, demandStream#13246, kpis#13247, true AS isNewlyCalculated#13248]
(34) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#447, product#448, plant#449, qty#452, demandChannel#13245, demandStream#13246, cast(kpis#13247 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#13280, isNewlyCalculated#13248]
(35) LogicalRDD
Arguments: [shardId#13250, worklistShardItemId#13251L, version#13252, product#13253, plant#13254, periodStart#13255, periodEnd#13256, qty#13257], false
(36) RepartitionByExpression
Arguments: [product#13253, plant#13254], 37
(37) Project
Arguments: [shardId#13250, worklistShardItemId#13251L, version#13252, product#13253, plant#13254, qty#13257]
(38) LogicalRDD
Arguments: [shardId#13258, worklistShardItemId#13259L, qty#13260, demandChannel#13261, demandStream#13262, kpis#13263], false
(39) Project
Arguments: [shardId#13258 AS cachedShardId#13264, worklistShardItemId#13259L AS cachedWorklistShardItemId#13265L, qty#13260 AS cachedQty#13266, demandChannel#13261, demandStream#13262, kpis#13263 AS cachedKpis#13267]
(40) Join
Arguments: Inner, (((worklistShardItemId#13251L = cachedWorklistShardItemId#13265L) AND (shardId#13250 = cachedShardId#13264)) AND ((qty#13257 = cachedQty#13266) OR isnull(qty#13257)))
(41) Project
Arguments: [shardId#13250, worklistShardItemId#13251L, version#13252, product#13253, plant#13254]
(42) Deduplicate
Arguments: [plant#13254, shardId#13250, version#13252, worklistShardItemId#13251L, product#13253]
(43) LogicalRDD
Arguments: [shardId#13268, worklistShardItemId#13269L, qty#13270, demandChannel#13271, demandStream#13272, kpis#13273], false
(44) Project
Arguments: [shardId#13268 AS cachedShardId#13274, worklistShardItemId#13269L AS cachedWorklistShardItemId#13275L, qty#13270 AS cachedQty#13276, demandChannel#13271, demandStream#13272, kpis#13273 AS cachedKpis#13277]
(45) Join
Arguments: Inner, ((worklistShardItemId#13251L = cachedWorklistShardItemId#13275L) AND (shardId#13250 = cachedShardId#13274))
(46) Project
Arguments: [shardId#13250, worklistShardItemId#13251L, version#13252, product#13253, plant#13254, cachedQty#13276 AS qty#13278, demandChannel#13271, demandStream#13272, cachedKpis#13277 AS kpis#13279]
(47) Project
Arguments: [shardId#13250, worklistShardItemId#13251L, version#13252, product#13253, plant#13254, qty#13278, demandChannel#13271, demandStream#13272, kpis#13279, false AS isNewlyCalculated#13249]
(48) Project
Arguments: [shardId#13250, worklistShardItemId#13251L, version#13252, product#13253, plant#13254, qty#13278, demandChannel#13271, demandStream#13272, kpis#13279, isNewlyCalculated#13249]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#13248 <=> false)
(51) Project
Arguments: [shardId#445, worklistShardItemId#446L, qty#452, demandChannel#13245, demandStream#13246, kpis#13280]
(52) ExternalRDD
Arguments: [obj#15952]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2440), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2440), 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, 2440), 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, 2440), 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, 2440), 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, 2440), 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#15955, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2441), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2441), 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, 2442), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2442), 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, 2442), 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, 2442), 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, 2443), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2443), 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, 2443), 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, 2443), 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, 2443), 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, 2442), 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, 2441), 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, 2444), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2444), 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, 2444), 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, 2444), 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, 2444), 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, 2441), 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, 2441), 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, 2441), 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, 2445), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2445), 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, 2446), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2446), 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, 2446), 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, 2446), 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, 2446), 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, 2445), 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, 2445), 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, 2441), 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#15956]
(54) Generate
Arguments: explode(prodPlantResults#15956), false, [prodPlantResults#15963]
(55) Project
Arguments: [prodPlantResults#15963]
(56) Project
Arguments: [prodPlantResults#15963.productId AS product#15982, prodPlantResults#15963.plantId AS plant#15983, prodPlantResults#15963.kpiResults AS kpis#15984]
(57) Project
Arguments: [product#15982, plant#15983, kpis#15984, null AS qty#15988]
(58) Project
Arguments: [product#15982, plant#15983, kpis#15984, qty#15988, cast(null as string) AS demandChannel#15989]
(59) Project
Arguments: [product#15982, plant#15983, kpis#15984, qty#15988, demandChannel#15989, cast(null as string) AS demandStream#15990]
(60) Project
Arguments: [product#15982, plant#15983, kpis#15984, cast(qty#15988 as double) AS qty#16009, demandChannel#15989, demandStream#15990]
(61) ExternalRDD
Arguments: [obj#16005]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2440), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2440), 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, 2440), 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, 2440), 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, 2440), 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, 2440), 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#16006, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2441), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2441), 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, 2442), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2442), 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, 2442), 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, 2442), 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, 2443), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2443), 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, 2443), 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, 2443), 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, 2443), 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, 2442), 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, 2441), 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, 2444), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2444), 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, 2444), 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, 2444), 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, 2444), 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, 2441), 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, 2441), 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, 2441), 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, 2445), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2445), 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, 2446), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2446), 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, 2446), 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, 2446), 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, 2446), 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, 2445), 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, 2445), 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, 2441), 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#16007]
(63) Generate
Arguments: explode(prodPlantResults#16007), false, [prodPlantResults#16008]
(64) Project
Arguments: [prodPlantResults#16008]
(65) Generate
Arguments: explode(prodPlantResults#16008.quantityKpiResults), false, [quantityKpiResults#15975]
(66) Project
Arguments: [prodPlantResults#16008.productId AS product#15969, prodPlantResults#16008.plantId AS plant#15970, quantityKpiResults#15975]
(67) Project
Arguments: [product#15969, plant#15970, quantityKpiResults#15975, quantityKpiResults#15975.quantity AS qty#15976]
(68) Project
Arguments: [product#15969, plant#15970, quantityKpiResults#15975, qty#15976, cast(null as string) AS demandChannel#15978]
(69) Project
Arguments: [product#15969, plant#15970, quantityKpiResults#15975, qty#15976, demandChannel#15978, cast(null as string) AS demandStream#15979]
(70) Project
Arguments: [product#15969, plant#15970, quantityKpiResults#15975, qty#15976, demandChannel#15978, demandStream#15979, quantityKpiResults#15975.kpiResults AS kpis#15980]
(71) Project
Arguments: [product#15969, plant#15970, qty#15976, demandChannel#15978, demandStream#15979, kpis#15980]
(72) Project
Arguments: [product#15969, plant#15970, kpis#15980, qty#15976, demandChannel#15978, demandStream#15979]
(73) ExternalRDD
Arguments: [obj#16010]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2440), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2440), 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, 2440), 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, 2440), 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, 2440), 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, 2440), 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#16011, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2441), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2441), 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, 2442), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2442), 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, 2442), 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, 2442), 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, 2443), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2443), 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, 2443), 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, 2443), 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, 2443), 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, 2442), 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, 2441), 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, 2444), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2444), 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, 2444), 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, 2444), 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, 2444), 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, 2441), 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, 2441), 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, 2441), 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, 2445), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2445), 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, 2446), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 2446), 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, 2446), 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, 2446), 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, 2446), 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, 2445), 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, 2445), 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, 2441), 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#16012]
(75) Generate
Arguments: explode(prodPlantResults#16012), false, [prodPlantResults#16013]
(76) Project
Arguments: [prodPlantResults#16013]
(77) Generate
Arguments: explode(prodPlantResults#16013.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#15997]
(78) Project
Arguments: [prodPlantResults#16013.productId AS product#15991, prodPlantResults#16013.plantId AS plant#15992, demandChannelStreamKpiResults#15997]
(79) Project
Arguments: [product#15991, plant#15992, demandChannelStreamKpiResults#15997, null AS qty#15998]
(80) Project
Arguments: [product#15991, plant#15992, demandChannelStreamKpiResults#15997, qty#15998, demandChannelStreamKpiResults#15997.demandChannel AS demandChannel#15999]
(81) Project
Arguments: [product#15991, plant#15992, demandChannelStreamKpiResults#15997, qty#15998, demandChannel#15999, demandChannelStreamKpiResults#15997.demandStream AS demandStream#16001]
(82) Project
Arguments: [product#15991, plant#15992, demandChannelStreamKpiResults#15997, qty#15998, demandChannel#15999, demandStream#16001, demandChannelStreamKpiResults#15997.kpiResults AS kpis#16003]
(83) Project
Arguments: [product#15991, plant#15992, qty#15998, demandChannel#15999, demandStream#16001, kpis#16003]
(84) Project
Arguments: [product#15991, plant#15992, kpis#16003, qty#15998, demandChannel#15999, demandStream#16001]
(85) Project
Arguments: [product#15991, plant#15992, kpis#16003, cast(qty#15998 as double) AS qty#16014, demandChannel#15999, demandStream#16001]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#15982, plant#15983, transform(kpis#15984, lambdafunction(struct(label, lambda kpi#16019.label, dateTime, lambda kpi#16019.datetime, value, lambda kpi#16019.value), lambda kpi#16019, false)) AS kpis#16018, qty#16009, demandChannel#15989, demandStream#15990]
(88) Project
Arguments: [product#15982, plant#15983, qty#16009, demandChannel#15989, demandStream#15990, kpis#16018]
(89) LogicalRDD
Arguments: [shardId#16827, worklistShardItemId#16828L, version#16829, product#16830, plant#16831, periodStart#16832, periodEnd#16833, qty#16834], false
(90) RepartitionByExpression
Arguments: [product#16830, plant#16831], 37
(91) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, version#16829, product#16830, plant#16831, qty#16834]
(92) LogicalRDD
Arguments: [shardId#16835, worklistShardItemId#16836L, version#16837, product#16838, plant#16839, periodStart#16840, periodEnd#16841, qty#16842], false
(93) RepartitionByExpression
Arguments: [product#16838, plant#16839], 37
(94) Project
Arguments: [shardId#16835, worklistShardItemId#16836L, version#16837, product#16838, plant#16839, qty#16842]
(95) LogicalRDD
Arguments: [shardId#16843, worklistShardItemId#16844L, qty#16845, demandChannel#16846, demandStream#16847, kpis#16848], false
(96) Project
Arguments: [shardId#16843 AS cachedShardId#16849, worklistShardItemId#16844L AS cachedWorklistShardItemId#16850L, qty#16845 AS cachedQty#16851, demandChannel#16846, demandStream#16847, kpis#16848 AS cachedKpis#16852]
(97) Join
Arguments: Inner, (((worklistShardItemId#16836L = cachedWorklistShardItemId#16850L) AND (shardId#16835 = cachedShardId#16849)) AND ((qty#16842 = cachedQty#16851) OR isnull(qty#16842)))
(98) Project
Arguments: [shardId#16835, worklistShardItemId#16836L, version#16837, product#16838, plant#16839]
(99) Deduplicate
Arguments: [plant#16839, shardId#16835, version#16837, worklistShardItemId#16836L, product#16838]
(100) LogicalRDD
Arguments: [shardId#16853, worklistShardItemId#16854L, qty#16855, demandChannel#16856, demandStream#16857, kpis#16858], false
(101) Project
Arguments: [shardId#16853 AS cachedShardId#16859, worklistShardItemId#16854L AS cachedWorklistShardItemId#16860L, qty#16855 AS cachedQty#16861, demandChannel#16856, demandStream#16857, kpis#16858 AS cachedKpis#16862]
(102) Join
Arguments: Inner, ((worklistShardItemId#16836L = cachedWorklistShardItemId#16860L) AND (shardId#16835 = cachedShardId#16859))
(103) Project
Arguments: [shardId#16835, worklistShardItemId#16836L, version#16837, product#16838, plant#16839, cachedQty#16861 AS qty#16863, demandChannel#16856, demandStream#16857, cachedKpis#16862 AS kpis#16864]
(104) Project
Arguments: [shardId#16835, worklistShardItemId#16836L, version#16837, product#16838, plant#16839, qty#16863]
(105) LogicalRDD
Arguments: [shardId#16865, worklistShardItemId#16866L, version#16867, product#16868, plant#16869, periodStart#16870, periodEnd#16871, qty#16872], false
(106) RepartitionByExpression
Arguments: [product#16868, plant#16869], 37
(107) Project
Arguments: [shardId#16865, worklistShardItemId#16866L, version#16867, product#16868, plant#16869, qty#16872]
(108) LogicalRDD
Arguments: [shardId#16873, worklistShardItemId#16874L, qty#16875, demandChannel#16876, demandStream#16877, kpis#16878], false
(109) Project
Arguments: [shardId#16873 AS cachedShardId#16879, worklistShardItemId#16874L AS cachedWorklistShardItemId#16880L, qty#16875 AS cachedQty#16881, demandChannel#16876, demandStream#16877, kpis#16878 AS cachedKpis#16882]
(110) Join
Arguments: Inner, (((worklistShardItemId#16866L = cachedWorklistShardItemId#16880L) AND (shardId#16865 = cachedShardId#16879)) AND isnull(qty#16872))
(111) Project
Arguments: [shardId#16865, worklistShardItemId#16866L, version#16867, product#16868, plant#16869, qty#16872]
(112) Project
Arguments: [shardId#16865, worklistShardItemId#16866L, version#16867, product#16868, plant#16869, qty#16872]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#16827 <=> shardId#16835) AND (worklistShardItemId#16828L <=> worklistShardItemId#16836L)) AND (version#16829 <=> version#16837)) AND (product#16830 <=> product#16838)) AND (plant#16831 <=> plant#16839)) AND (qty#16834 <=> qty#16863))
(115) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, version#16829, product#16830, plant#16831, qty#16834]
(116) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, version#16829, product#16830, plant#16831, qty#16834, cast(null as string) AS demandChannel#16883]
(117) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, version#16829, product#16830, plant#16831, qty#16834, demandChannel#16883, cast(null as string) AS demandStream#16884]
(118) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, version#16829, product#16830, plant#16831, qty#16834, demandChannel#16883, demandStream#16884, array() AS kpis#16885]
(119) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, version#16829, product#16830, plant#16831, qty#16834, demandChannel#16883, demandStream#16884, kpis#16885, true AS isNewlyCalculated#16886]
(120) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, version#16829, product#16830, plant#16831, qty#16834, demandChannel#16883, demandStream#16884, cast(kpis#16885 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#16887, isNewlyCalculated#16886]
(121) LogicalRDD
Arguments: [shardId#16888, worklistShardItemId#16889L, version#16890, product#16891, plant#16892, periodStart#16893, periodEnd#16894, qty#16895], false
(122) RepartitionByExpression
Arguments: [product#16891, plant#16892], 37
(123) Project
Arguments: [shardId#16888, worklistShardItemId#16889L, version#16890, product#16891, plant#16892, qty#16895]
(124) LogicalRDD
Arguments: [shardId#16896, worklistShardItemId#16897L, qty#16898, demandChannel#16899, demandStream#16900, kpis#16901], false
(125) Project
Arguments: [shardId#16896 AS cachedShardId#16902, worklistShardItemId#16897L AS cachedWorklistShardItemId#16903L, qty#16898 AS cachedQty#16904, demandChannel#16899, demandStream#16900, kpis#16901 AS cachedKpis#16905]
(126) Join
Arguments: Inner, (((worklistShardItemId#16889L = cachedWorklistShardItemId#16903L) AND (shardId#16888 = cachedShardId#16902)) AND ((qty#16895 = cachedQty#16904) OR isnull(qty#16895)))
(127) Project
Arguments: [shardId#16888, worklistShardItemId#16889L, version#16890, product#16891, plant#16892]
(128) Deduplicate
Arguments: [plant#16892, shardId#16888, version#16890, worklistShardItemId#16889L, product#16891]
(129) LogicalRDD
Arguments: [shardId#16906, worklistShardItemId#16907L, qty#16908, demandChannel#16909, demandStream#16910, kpis#16911], false
(130) Project
Arguments: [shardId#16906 AS cachedShardId#16912, worklistShardItemId#16907L AS cachedWorklistShardItemId#16913L, qty#16908 AS cachedQty#16914, demandChannel#16909, demandStream#16910, kpis#16911 AS cachedKpis#16915]
(131) Join
Arguments: Inner, ((worklistShardItemId#16889L = cachedWorklistShardItemId#16913L) AND (shardId#16888 = cachedShardId#16912))
(132) Project
Arguments: [shardId#16888, worklistShardItemId#16889L, version#16890, product#16891, plant#16892, cachedQty#16914 AS qty#16916, demandChannel#16909, demandStream#16910, cachedKpis#16915 AS kpis#16917]
(133) Project
Arguments: [shardId#16888, worklistShardItemId#16889L, version#16890, product#16891, plant#16892, qty#16916, demandChannel#16909, demandStream#16910, kpis#16917, false AS isNewlyCalculated#16918]
(134) Project
Arguments: [shardId#16888, worklistShardItemId#16889L, version#16890, product#16891, plant#16892, qty#16916, demandChannel#16909, demandStream#16910, kpis#16917, isNewlyCalculated#16918]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#16886 <=> true)
(137) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, product#16830, plant#16831, qty#16834, kpis#16887]
(138) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, product#16830, plant#16831, qty#16834]
(139) Deduplicate
Arguments: [plant#16831, shardId#16827, qty#16834, worklistShardItemId#16828L, product#16830]
(140) Join
Arguments: Inner, ((product#15982 <=> product#16830) AND ((plant#15983 <=> plant#16831) AND ((qty#16009 <=> qty#16834) OR isnull(qty#16834))))
(141) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, qty#16009, demandChannel#15989, demandStream#15990, kpis#16018]
(142) Deduplicate
Arguments: [demandChannel#15989, shardId#16827, qty#16009, worklistShardItemId#16828L, demandStream#15990]
(143) Project
Arguments: [shardId#16827, worklistShardItemId#16828L, qty#16009, demandChannel#15989, demandStream#15990, kpis#16018]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921, product#16922, plant#16923, periodStart#16924, periodEnd#16925, qty#16926], false
(146) RepartitionByExpression
Arguments: [product#16922, plant#16923], 37
(147) Project
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921, product#16922, plant#16923, qty#16926]
(148) LogicalRDD
Arguments: [shardId#16927, worklistShardItemId#16928L, version#16929, product#16930, plant#16931, periodStart#16932, periodEnd#16933, qty#16934], false
(149) RepartitionByExpression
Arguments: [product#16930, plant#16931], 37
(150) Project
Arguments: [shardId#16927, worklistShardItemId#16928L, version#16929, product#16930, plant#16931, qty#16934]
(151) LogicalRDD
Arguments: [shardId#16935, worklistShardItemId#16936L, qty#16937, demandChannel#16938, demandStream#16939, kpis#16940], false
(152) Project
Arguments: [shardId#16935 AS cachedShardId#16941, worklistShardItemId#16936L AS cachedWorklistShardItemId#16942L, qty#16937 AS cachedQty#16943, demandChannel#16938, demandStream#16939, kpis#16940 AS cachedKpis#16944]
(153) Join
Arguments: Inner, (((worklistShardItemId#16928L = cachedWorklistShardItemId#16942L) AND (shardId#16927 = cachedShardId#16941)) AND ((qty#16934 = cachedQty#16943) OR isnull(qty#16934)))
(154) Project
Arguments: [shardId#16927, worklistShardItemId#16928L, version#16929, product#16930, plant#16931]
(155) Deduplicate
Arguments: [plant#16931, shardId#16927, version#16929, worklistShardItemId#16928L, product#16930]
(156) LogicalRDD
Arguments: [shardId#16945, worklistShardItemId#16946L, qty#16947, demandChannel#16948, demandStream#16949, kpis#16950], false
(157) Project
Arguments: [shardId#16945 AS cachedShardId#16951, worklistShardItemId#16946L AS cachedWorklistShardItemId#16952L, qty#16947 AS cachedQty#16953, demandChannel#16948, demandStream#16949, kpis#16950 AS cachedKpis#16954]
(158) Join
Arguments: Inner, ((worklistShardItemId#16928L = cachedWorklistShardItemId#16952L) AND (shardId#16927 = cachedShardId#16951))
(159) Project
Arguments: [shardId#16927, worklistShardItemId#16928L, version#16929, product#16930, plant#16931, cachedQty#16953 AS qty#16955, demandChannel#16948, demandStream#16949, cachedKpis#16954 AS kpis#16956]
(160) Project
Arguments: [shardId#16927, worklistShardItemId#16928L, version#16929, product#16930, plant#16931, qty#16955]
(161) LogicalRDD
Arguments: [shardId#16957, worklistShardItemId#16958L, version#16959, product#16960, plant#16961, periodStart#16962, periodEnd#16963, qty#16964], false
(162) RepartitionByExpression
Arguments: [product#16960, plant#16961], 37
(163) Project
Arguments: [shardId#16957, worklistShardItemId#16958L, version#16959, product#16960, plant#16961, qty#16964]
(164) LogicalRDD
Arguments: [shardId#16965, worklistShardItemId#16966L, qty#16967, demandChannel#16968, demandStream#16969, kpis#16970], false
(165) Project
Arguments: [shardId#16965 AS cachedShardId#16971, worklistShardItemId#16966L AS cachedWorklistShardItemId#16972L, qty#16967 AS cachedQty#16973, demandChannel#16968, demandStream#16969, kpis#16970 AS cachedKpis#16974]
(166) Join
Arguments: Inner, (((worklistShardItemId#16958L = cachedWorklistShardItemId#16972L) AND (shardId#16957 = cachedShardId#16971)) AND isnull(qty#16964))
(167) Project
Arguments: [shardId#16957, worklistShardItemId#16958L, version#16959, product#16960, plant#16961, qty#16964]
(168) Project
Arguments: [shardId#16957, worklistShardItemId#16958L, version#16959, product#16960, plant#16961, qty#16964]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#16919 <=> shardId#16927) AND (worklistShardItemId#16920L <=> worklistShardItemId#16928L)) AND (version#16921 <=> version#16929)) AND (product#16922 <=> product#16930)) AND (plant#16923 <=> plant#16931)) AND (qty#16926 <=> qty#16955))
(171) Project
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921, product#16922, plant#16923, qty#16926]
(172) Project
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921, product#16922, plant#16923, qty#16926, cast(null as string) AS demandChannel#16975]
(173) Project
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921, product#16922, plant#16923, qty#16926, demandChannel#16975, cast(null as string) AS demandStream#16976]
(174) Project
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921, product#16922, plant#16923, qty#16926, demandChannel#16975, demandStream#16976, array() AS kpis#16977]
(175) Project
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921, product#16922, plant#16923, qty#16926, demandChannel#16975, demandStream#16976, kpis#16977, true AS isNewlyCalculated#16978]
(176) Project
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921, product#16922, plant#16923, qty#16926, demandChannel#16975, demandStream#16976, cast(kpis#16977 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#16979, isNewlyCalculated#16978]
(177) LogicalRDD
Arguments: [shardId#16980, worklistShardItemId#16981L, version#16982, product#16983, plant#16984, periodStart#16985, periodEnd#16986, qty#16987], false
(178) RepartitionByExpression
Arguments: [product#16983, plant#16984], 37
(179) Project
Arguments: [shardId#16980, worklistShardItemId#16981L, version#16982, product#16983, plant#16984, qty#16987]
(180) LogicalRDD
Arguments: [shardId#16988, worklistShardItemId#16989L, qty#16990, demandChannel#16991, demandStream#16992, kpis#16993], false
(181) Project
Arguments: [shardId#16988 AS cachedShardId#16994, worklistShardItemId#16989L AS cachedWorklistShardItemId#16995L, qty#16990 AS cachedQty#16996, demandChannel#16991, demandStream#16992, kpis#16993 AS cachedKpis#16997]
(182) Join
Arguments: Inner, (((worklistShardItemId#16981L = cachedWorklistShardItemId#16995L) AND (shardId#16980 = cachedShardId#16994)) AND ((qty#16987 = cachedQty#16996) OR isnull(qty#16987)))
(183) Project
Arguments: [shardId#16980, worklistShardItemId#16981L, version#16982, product#16983, plant#16984]
(184) Deduplicate
Arguments: [plant#16984, shardId#16980, version#16982, worklistShardItemId#16981L, product#16983]
(185) LogicalRDD
Arguments: [shardId#16998, worklistShardItemId#16999L, qty#17000, demandChannel#17001, demandStream#17002, kpis#17003], false
(186) Project
Arguments: [shardId#16998 AS cachedShardId#17004, worklistShardItemId#16999L AS cachedWorklistShardItemId#17005L, qty#17000 AS cachedQty#17006, demandChannel#17001, demandStream#17002, kpis#17003 AS cachedKpis#17007]
(187) Join
Arguments: Inner, ((worklistShardItemId#16981L = cachedWorklistShardItemId#17005L) AND (shardId#16980 = cachedShardId#17004))
(188) Project
Arguments: [shardId#16980, worklistShardItemId#16981L, version#16982, product#16983, plant#16984, cachedQty#17006 AS qty#17008, demandChannel#17001, demandStream#17002, cachedKpis#17007 AS kpis#17009]
(189) Project
Arguments: [shardId#16980, worklistShardItemId#16981L, version#16982, product#16983, plant#16984, qty#17008, demandChannel#17001, demandStream#17002, kpis#17009, false AS isNewlyCalculated#17010]
(190) Project
Arguments: [shardId#16980, worklistShardItemId#16981L, version#16982, product#16983, plant#16984, qty#17008, demandChannel#17001, demandStream#17002, kpis#17009, isNewlyCalculated#17010]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#16919, worklistShardItemId#16920L, version#16921]
(193) Aggregate
Arguments: [shardId#16919, worklistShardItemId#16920L], [shardId#16919, worklistShardItemId#16920L, (max(version#16921) + 1) AS version#16822]
(194) Join
Arguments: Inner, ((shardId#445 = shardId#16919) AND (worklistShardItemId#446L = worklistShardItemId#16920L))
(195) Project
Arguments: [shardId#445, worklistShardItemId#446L, qty#452, demandChannel#13245, demandStream#13246, kpis#13280, version#16822]
(196) Project
Arguments: [shardId#445, worklistShardItemId#446L, version#16822, qty#452, demandChannel#13245, demandStream#13246, kpis#13280]