== 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@40c88720, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000350/stream-10000000350-1], Append
(3) LogicalRDD
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, periodStart#1100462, periodEnd#1100463, qty#1100464], false
(4) RepartitionByExpression
Arguments: [product#1100460, plant#1100461], 37
(5) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464]
(6) LogicalRDD
Arguments: [shardId#1150903, worklistShardItemId#1150904L, version#1150905, product#1150906, plant#1150907, periodStart#1150908, periodEnd#1150909, qty#1150910], false
(7) RepartitionByExpression
Arguments: [product#1150906, plant#1150907], 37
(8) Project
Arguments: [shardId#1150903, worklistShardItemId#1150904L, version#1150905, product#1150906, plant#1150907, qty#1150910]
(9) LogicalRDD
Arguments: [shardId#1150658, worklistShardItemId#1150659L, qty#1150660, demandChannel#1150661, demandStream#1150662, kpis#1150663], false
(10) Project
Arguments: [shardId#1150658 AS cachedShardId#1150664, worklistShardItemId#1150659L AS cachedWorklistShardItemId#1150665L, qty#1150660 AS cachedQty#1150666, demandChannel#1150661, demandStream#1150662, kpis#1150663 AS cachedKpis#1150667]
(11) Join
Arguments: Inner, (((worklistShardItemId#1150904L = cachedWorklistShardItemId#1150665L) AND (shardId#1150903 = cachedShardId#1150664)) AND ((qty#1150910 = cachedQty#1150666) OR isnull(qty#1150910)))
(12) Project
Arguments: [shardId#1150903, worklistShardItemId#1150904L, version#1150905, product#1150906, plant#1150907]
(13) Deduplicate
Arguments: [plant#1150907, shardId#1150903, version#1150905, worklistShardItemId#1150904L, product#1150906]
(14) LogicalRDD
Arguments: [shardId#1150668, worklistShardItemId#1150669L, qty#1150670, demandChannel#1150671, demandStream#1150672, kpis#1150673], false
(15) Project
Arguments: [shardId#1150668 AS cachedShardId#1150674, worklistShardItemId#1150669L AS cachedWorklistShardItemId#1150675L, qty#1150670 AS cachedQty#1150676, demandChannel#1150671, demandStream#1150672, kpis#1150673 AS cachedKpis#1150677]
(16) Join
Arguments: Inner, ((worklistShardItemId#1150904L = cachedWorklistShardItemId#1150675L) AND (shardId#1150903 = cachedShardId#1150674))
(17) Project
Arguments: [shardId#1150903, worklistShardItemId#1150904L, version#1150905, product#1150906, plant#1150907, cachedQty#1150676 AS qty#1150678, demandChannel#1150671, demandStream#1150672, cachedKpis#1150677 AS kpis#1150679]
(18) Project
Arguments: [shardId#1150903, worklistShardItemId#1150904L, version#1150905, product#1150906, plant#1150907, qty#1150678]
(19) LogicalRDD
Arguments: [shardId#1150885, worklistShardItemId#1150886L, version#1150887, product#1150888, plant#1150889, periodStart#1150890, periodEnd#1150891, qty#1150892], false
(20) RepartitionByExpression
Arguments: [product#1150888, plant#1150889], 37
(21) Project
Arguments: [shardId#1150885, worklistShardItemId#1150886L, version#1150887, product#1150888, plant#1150889, qty#1150892]
(22) LogicalRDD
Arguments: [shardId#1150893, worklistShardItemId#1150894L, qty#1150895, demandChannel#1150896, demandStream#1150897, kpis#1150898], false
(23) Project
Arguments: [shardId#1150893 AS cachedShardId#1150899, worklistShardItemId#1150894L AS cachedWorklistShardItemId#1150900L, qty#1150895 AS cachedQty#1150901, demandChannel#1150896, demandStream#1150897, kpis#1150898 AS cachedKpis#1150902]
(24) Join
Arguments: Inner, (((worklistShardItemId#1150886L = cachedWorklistShardItemId#1150900L) AND (shardId#1150885 = cachedShardId#1150899)) AND isnull(qty#1150892))
(25) Project
Arguments: [shardId#1150885, worklistShardItemId#1150886L, version#1150887, product#1150888, plant#1150889, qty#1150892]
(26) Project
Arguments: [shardId#1150885, worklistShardItemId#1150886L, version#1150887, product#1150888, plant#1150889, qty#1150892]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1100457 <=> shardId#1150903) AND (worklistShardItemId#1100458L <=> worklistShardItemId#1150904L)) AND (version#1100459 <=> version#1150905)) AND (product#1100460 <=> product#1150906)) AND (plant#1100461 <=> plant#1150907)) AND (qty#1100464 <=> qty#1150678))
(29) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464]
(30) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, cast(null as string) AS demandChannel#1150911]
(31) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1150911, cast(null as string) AS demandStream#1150912]
(32) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1150911, demandStream#1150912, array() AS kpis#1150913]
(33) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1150911, demandStream#1150912, kpis#1150913, true AS isNewlyCalculated#1150914]
(34) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1150911, demandStream#1150912, cast(kpis#1150913 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1150946, isNewlyCalculated#1150914]
(35) LogicalRDD
Arguments: [shardId#1150916, worklistShardItemId#1150917L, version#1150918, product#1150919, plant#1150920, periodStart#1150921, periodEnd#1150922, qty#1150923], false
(36) RepartitionByExpression
Arguments: [product#1150919, plant#1150920], 37
(37) Project
Arguments: [shardId#1150916, worklistShardItemId#1150917L, version#1150918, product#1150919, plant#1150920, qty#1150923]
(38) LogicalRDD
Arguments: [shardId#1150924, worklistShardItemId#1150925L, qty#1150926, demandChannel#1150927, demandStream#1150928, kpis#1150929], false
(39) Project
Arguments: [shardId#1150924 AS cachedShardId#1150930, worklistShardItemId#1150925L AS cachedWorklistShardItemId#1150931L, qty#1150926 AS cachedQty#1150932, demandChannel#1150927, demandStream#1150928, kpis#1150929 AS cachedKpis#1150933]
(40) Join
Arguments: Inner, (((worklistShardItemId#1150917L = cachedWorklistShardItemId#1150931L) AND (shardId#1150916 = cachedShardId#1150930)) AND ((qty#1150923 = cachedQty#1150932) OR isnull(qty#1150923)))
(41) Project
Arguments: [shardId#1150916, worklistShardItemId#1150917L, version#1150918, product#1150919, plant#1150920]
(42) Deduplicate
Arguments: [plant#1150920, shardId#1150916, version#1150918, worklistShardItemId#1150917L, product#1150919]
(43) LogicalRDD
Arguments: [shardId#1150934, worklistShardItemId#1150935L, qty#1150936, demandChannel#1150937, demandStream#1150938, kpis#1150939], false
(44) Project
Arguments: [shardId#1150934 AS cachedShardId#1150940, worklistShardItemId#1150935L AS cachedWorklistShardItemId#1150941L, qty#1150936 AS cachedQty#1150942, demandChannel#1150937, demandStream#1150938, kpis#1150939 AS cachedKpis#1150943]
(45) Join
Arguments: Inner, ((worklistShardItemId#1150917L = cachedWorklistShardItemId#1150941L) AND (shardId#1150916 = cachedShardId#1150940))
(46) Project
Arguments: [shardId#1150916, worklistShardItemId#1150917L, version#1150918, product#1150919, plant#1150920, cachedQty#1150942 AS qty#1150944, demandChannel#1150937, demandStream#1150938, cachedKpis#1150943 AS kpis#1150945]
(47) Project
Arguments: [shardId#1150916, worklistShardItemId#1150917L, version#1150918, product#1150919, plant#1150920, qty#1150944, demandChannel#1150937, demandStream#1150938, kpis#1150945, false AS isNewlyCalculated#1150915]
(48) Project
Arguments: [shardId#1150916, worklistShardItemId#1150917L, version#1150918, product#1150919, plant#1150920, qty#1150944, demandChannel#1150937, demandStream#1150938, kpis#1150945, isNewlyCalculated#1150915]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1150914 <=> false)
(51) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1150911, demandStream#1150912, kpis#1150946]
(52) ExternalRDD
Arguments: [obj#1153410]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90790), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90790), 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, 90790), 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, 90790), 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, 90790), 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, 90790), 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#1153413, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90791), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90791), 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, 90792), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90792), 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, 90792), 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, 90792), 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, 90793), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90793), 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, 90793), 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, 90793), 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, 90793), 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, 90792), 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, 90791), 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, 90794), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90794), 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, 90794), 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, 90794), 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, 90794), 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, 90791), 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, 90791), 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, 90791), 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, 90795), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90795), 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, 90796), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90796), 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, 90796), 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, 90796), 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, 90796), 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, 90795), 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, 90795), 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, 90791), 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#1153414]
(54) Generate
Arguments: explode(prodPlantResults#1153414), false, [prodPlantResults#1153421]
(55) Project
Arguments: [prodPlantResults#1153421]
(56) Project
Arguments: [prodPlantResults#1153421.productId AS product#1153440, prodPlantResults#1153421.plantId AS plant#1153441, prodPlantResults#1153421.kpiResults AS kpis#1153442]
(57) Project
Arguments: [product#1153440, plant#1153441, kpis#1153442, null AS qty#1153446]
(58) Project
Arguments: [product#1153440, plant#1153441, kpis#1153442, qty#1153446, cast(null as string) AS demandChannel#1153447]
(59) Project
Arguments: [product#1153440, plant#1153441, kpis#1153442, qty#1153446, demandChannel#1153447, cast(null as string) AS demandStream#1153448]
(60) Project
Arguments: [product#1153440, plant#1153441, kpis#1153442, cast(qty#1153446 as double) AS qty#1153467, demandChannel#1153447, demandStream#1153448]
(61) ExternalRDD
Arguments: [obj#1153463]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90790), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90790), 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, 90790), 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, 90790), 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, 90790), 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, 90790), 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#1153464, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90791), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90791), 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, 90792), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90792), 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, 90792), 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, 90792), 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, 90793), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90793), 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, 90793), 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, 90793), 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, 90793), 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, 90792), 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, 90791), 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, 90794), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90794), 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, 90794), 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, 90794), 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, 90794), 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, 90791), 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, 90791), 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, 90791), 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, 90795), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90795), 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, 90796), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90796), 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, 90796), 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, 90796), 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, 90796), 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, 90795), 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, 90795), 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, 90791), 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#1153465]
(63) Generate
Arguments: explode(prodPlantResults#1153465), false, [prodPlantResults#1153466]
(64) Project
Arguments: [prodPlantResults#1153466]
(65) Generate
Arguments: explode(prodPlantResults#1153466.quantityKpiResults), false, [quantityKpiResults#1153433]
(66) Project
Arguments: [prodPlantResults#1153466.productId AS product#1153427, prodPlantResults#1153466.plantId AS plant#1153428, quantityKpiResults#1153433]
(67) Project
Arguments: [product#1153427, plant#1153428, quantityKpiResults#1153433, quantityKpiResults#1153433.quantity AS qty#1153434]
(68) Project
Arguments: [product#1153427, plant#1153428, quantityKpiResults#1153433, qty#1153434, cast(null as string) AS demandChannel#1153436]
(69) Project
Arguments: [product#1153427, plant#1153428, quantityKpiResults#1153433, qty#1153434, demandChannel#1153436, cast(null as string) AS demandStream#1153437]
(70) Project
Arguments: [product#1153427, plant#1153428, quantityKpiResults#1153433, qty#1153434, demandChannel#1153436, demandStream#1153437, quantityKpiResults#1153433.kpiResults AS kpis#1153438]
(71) Project
Arguments: [product#1153427, plant#1153428, qty#1153434, demandChannel#1153436, demandStream#1153437, kpis#1153438]
(72) Project
Arguments: [product#1153427, plant#1153428, kpis#1153438, qty#1153434, demandChannel#1153436, demandStream#1153437]
(73) ExternalRDD
Arguments: [obj#1153468]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90790), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90790), 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, 90790), 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, 90790), 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, 90790), 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, 90790), 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#1153469, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90791), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90791), 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, 90792), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90792), 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, 90792), 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, 90792), 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, 90793), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90793), 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, 90793), 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, 90793), 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, 90793), 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, 90792), 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, 90791), 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, 90794), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90794), 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, 90794), 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, 90794), 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, 90794), 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, 90791), 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, 90791), 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, 90791), 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, 90795), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90795), 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, 90796), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 90796), 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, 90796), 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, 90796), 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, 90796), 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, 90795), 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, 90795), 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, 90791), 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#1153470]
(75) Generate
Arguments: explode(prodPlantResults#1153470), false, [prodPlantResults#1153471]
(76) Project
Arguments: [prodPlantResults#1153471]
(77) Generate
Arguments: explode(prodPlantResults#1153471.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1153455]
(78) Project
Arguments: [prodPlantResults#1153471.productId AS product#1153449, prodPlantResults#1153471.plantId AS plant#1153450, demandChannelStreamKpiResults#1153455]
(79) Project
Arguments: [product#1153449, plant#1153450, demandChannelStreamKpiResults#1153455, null AS qty#1153456]
(80) Project
Arguments: [product#1153449, plant#1153450, demandChannelStreamKpiResults#1153455, qty#1153456, demandChannelStreamKpiResults#1153455.demandChannel AS demandChannel#1153457]
(81) Project
Arguments: [product#1153449, plant#1153450, demandChannelStreamKpiResults#1153455, qty#1153456, demandChannel#1153457, demandChannelStreamKpiResults#1153455.demandStream AS demandStream#1153459]
(82) Project
Arguments: [product#1153449, plant#1153450, demandChannelStreamKpiResults#1153455, qty#1153456, demandChannel#1153457, demandStream#1153459, demandChannelStreamKpiResults#1153455.kpiResults AS kpis#1153461]
(83) Project
Arguments: [product#1153449, plant#1153450, qty#1153456, demandChannel#1153457, demandStream#1153459, kpis#1153461]
(84) Project
Arguments: [product#1153449, plant#1153450, kpis#1153461, qty#1153456, demandChannel#1153457, demandStream#1153459]
(85) Project
Arguments: [product#1153449, plant#1153450, kpis#1153461, cast(qty#1153456 as double) AS qty#1153472, demandChannel#1153457, demandStream#1153459]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1153440, plant#1153441, transform(kpis#1153442, lambdafunction(struct(label, lambda kpi#1153477.label, dateTime, lambda kpi#1153477.datetime, value, lambda kpi#1153477.value), lambda kpi#1153477, false)) AS kpis#1153476, qty#1153467, demandChannel#1153447, demandStream#1153448]
(88) Project
Arguments: [product#1153440, plant#1153441, qty#1153467, demandChannel#1153447, demandStream#1153448, kpis#1153476]
(89) LogicalRDD
Arguments: [shardId#1154285, worklistShardItemId#1154286L, version#1154287, product#1154288, plant#1154289, periodStart#1154290, periodEnd#1154291, qty#1154292], false
(90) RepartitionByExpression
Arguments: [product#1154288, plant#1154289], 37
(91) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, version#1154287, product#1154288, plant#1154289, qty#1154292]
(92) LogicalRDD
Arguments: [shardId#1154293, worklistShardItemId#1154294L, version#1154295, product#1154296, plant#1154297, periodStart#1154298, periodEnd#1154299, qty#1154300], false
(93) RepartitionByExpression
Arguments: [product#1154296, plant#1154297], 37
(94) Project
Arguments: [shardId#1154293, worklistShardItemId#1154294L, version#1154295, product#1154296, plant#1154297, qty#1154300]
(95) LogicalRDD
Arguments: [shardId#1154301, worklistShardItemId#1154302L, qty#1154303, demandChannel#1154304, demandStream#1154305, kpis#1154306], false
(96) Project
Arguments: [shardId#1154301 AS cachedShardId#1154307, worklistShardItemId#1154302L AS cachedWorklistShardItemId#1154308L, qty#1154303 AS cachedQty#1154309, demandChannel#1154304, demandStream#1154305, kpis#1154306 AS cachedKpis#1154310]
(97) Join
Arguments: Inner, (((worklistShardItemId#1154294L = cachedWorklistShardItemId#1154308L) AND (shardId#1154293 = cachedShardId#1154307)) AND ((qty#1154300 = cachedQty#1154309) OR isnull(qty#1154300)))
(98) Project
Arguments: [shardId#1154293, worklistShardItemId#1154294L, version#1154295, product#1154296, plant#1154297]
(99) Deduplicate
Arguments: [plant#1154297, shardId#1154293, version#1154295, worklistShardItemId#1154294L, product#1154296]
(100) LogicalRDD
Arguments: [shardId#1154311, worklistShardItemId#1154312L, qty#1154313, demandChannel#1154314, demandStream#1154315, kpis#1154316], false
(101) Project
Arguments: [shardId#1154311 AS cachedShardId#1154317, worklistShardItemId#1154312L AS cachedWorklistShardItemId#1154318L, qty#1154313 AS cachedQty#1154319, demandChannel#1154314, demandStream#1154315, kpis#1154316 AS cachedKpis#1154320]
(102) Join
Arguments: Inner, ((worklistShardItemId#1154294L = cachedWorklistShardItemId#1154318L) AND (shardId#1154293 = cachedShardId#1154317))
(103) Project
Arguments: [shardId#1154293, worklistShardItemId#1154294L, version#1154295, product#1154296, plant#1154297, cachedQty#1154319 AS qty#1154321, demandChannel#1154314, demandStream#1154315, cachedKpis#1154320 AS kpis#1154322]
(104) Project
Arguments: [shardId#1154293, worklistShardItemId#1154294L, version#1154295, product#1154296, plant#1154297, qty#1154321]
(105) LogicalRDD
Arguments: [shardId#1154323, worklistShardItemId#1154324L, version#1154325, product#1154326, plant#1154327, periodStart#1154328, periodEnd#1154329, qty#1154330], false
(106) RepartitionByExpression
Arguments: [product#1154326, plant#1154327], 37
(107) Project
Arguments: [shardId#1154323, worklistShardItemId#1154324L, version#1154325, product#1154326, plant#1154327, qty#1154330]
(108) LogicalRDD
Arguments: [shardId#1154331, worklistShardItemId#1154332L, qty#1154333, demandChannel#1154334, demandStream#1154335, kpis#1154336], false
(109) Project
Arguments: [shardId#1154331 AS cachedShardId#1154337, worklistShardItemId#1154332L AS cachedWorklistShardItemId#1154338L, qty#1154333 AS cachedQty#1154339, demandChannel#1154334, demandStream#1154335, kpis#1154336 AS cachedKpis#1154340]
(110) Join
Arguments: Inner, (((worklistShardItemId#1154324L = cachedWorklistShardItemId#1154338L) AND (shardId#1154323 = cachedShardId#1154337)) AND isnull(qty#1154330))
(111) Project
Arguments: [shardId#1154323, worklistShardItemId#1154324L, version#1154325, product#1154326, plant#1154327, qty#1154330]
(112) Project
Arguments: [shardId#1154323, worklistShardItemId#1154324L, version#1154325, product#1154326, plant#1154327, qty#1154330]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1154285 <=> shardId#1154293) AND (worklistShardItemId#1154286L <=> worklistShardItemId#1154294L)) AND (version#1154287 <=> version#1154295)) AND (product#1154288 <=> product#1154296)) AND (plant#1154289 <=> plant#1154297)) AND (qty#1154292 <=> qty#1154321))
(115) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, version#1154287, product#1154288, plant#1154289, qty#1154292]
(116) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, version#1154287, product#1154288, plant#1154289, qty#1154292, cast(null as string) AS demandChannel#1154341]
(117) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, version#1154287, product#1154288, plant#1154289, qty#1154292, demandChannel#1154341, cast(null as string) AS demandStream#1154342]
(118) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, version#1154287, product#1154288, plant#1154289, qty#1154292, demandChannel#1154341, demandStream#1154342, array() AS kpis#1154343]
(119) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, version#1154287, product#1154288, plant#1154289, qty#1154292, demandChannel#1154341, demandStream#1154342, kpis#1154343, true AS isNewlyCalculated#1154344]
(120) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, version#1154287, product#1154288, plant#1154289, qty#1154292, demandChannel#1154341, demandStream#1154342, cast(kpis#1154343 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1154345, isNewlyCalculated#1154344]
(121) LogicalRDD
Arguments: [shardId#1154346, worklistShardItemId#1154347L, version#1154348, product#1154349, plant#1154350, periodStart#1154351, periodEnd#1154352, qty#1154353], false
(122) RepartitionByExpression
Arguments: [product#1154349, plant#1154350], 37
(123) Project
Arguments: [shardId#1154346, worklistShardItemId#1154347L, version#1154348, product#1154349, plant#1154350, qty#1154353]
(124) LogicalRDD
Arguments: [shardId#1154354, worklistShardItemId#1154355L, qty#1154356, demandChannel#1154357, demandStream#1154358, kpis#1154359], false
(125) Project
Arguments: [shardId#1154354 AS cachedShardId#1154360, worklistShardItemId#1154355L AS cachedWorklistShardItemId#1154361L, qty#1154356 AS cachedQty#1154362, demandChannel#1154357, demandStream#1154358, kpis#1154359 AS cachedKpis#1154363]
(126) Join
Arguments: Inner, (((worklistShardItemId#1154347L = cachedWorklistShardItemId#1154361L) AND (shardId#1154346 = cachedShardId#1154360)) AND ((qty#1154353 = cachedQty#1154362) OR isnull(qty#1154353)))
(127) Project
Arguments: [shardId#1154346, worklistShardItemId#1154347L, version#1154348, product#1154349, plant#1154350]
(128) Deduplicate
Arguments: [plant#1154350, shardId#1154346, version#1154348, worklistShardItemId#1154347L, product#1154349]
(129) LogicalRDD
Arguments: [shardId#1154364, worklistShardItemId#1154365L, qty#1154366, demandChannel#1154367, demandStream#1154368, kpis#1154369], false
(130) Project
Arguments: [shardId#1154364 AS cachedShardId#1154370, worklistShardItemId#1154365L AS cachedWorklistShardItemId#1154371L, qty#1154366 AS cachedQty#1154372, demandChannel#1154367, demandStream#1154368, kpis#1154369 AS cachedKpis#1154373]
(131) Join
Arguments: Inner, ((worklistShardItemId#1154347L = cachedWorklistShardItemId#1154371L) AND (shardId#1154346 = cachedShardId#1154370))
(132) Project
Arguments: [shardId#1154346, worklistShardItemId#1154347L, version#1154348, product#1154349, plant#1154350, cachedQty#1154372 AS qty#1154374, demandChannel#1154367, demandStream#1154368, cachedKpis#1154373 AS kpis#1154375]
(133) Project
Arguments: [shardId#1154346, worklistShardItemId#1154347L, version#1154348, product#1154349, plant#1154350, qty#1154374, demandChannel#1154367, demandStream#1154368, kpis#1154375, false AS isNewlyCalculated#1154376]
(134) Project
Arguments: [shardId#1154346, worklistShardItemId#1154347L, version#1154348, product#1154349, plant#1154350, qty#1154374, demandChannel#1154367, demandStream#1154368, kpis#1154375, isNewlyCalculated#1154376]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1154344 <=> true)
(137) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, product#1154288, plant#1154289, qty#1154292, kpis#1154345]
(138) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, product#1154288, plant#1154289, qty#1154292]
(139) Deduplicate
Arguments: [plant#1154289, shardId#1154285, qty#1154292, worklistShardItemId#1154286L, product#1154288]
(140) Join
Arguments: Inner, ((product#1153440 <=> product#1154288) AND ((plant#1153441 <=> plant#1154289) AND ((qty#1153467 <=> qty#1154292) OR isnull(qty#1154292))))
(141) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, qty#1153467, demandChannel#1153447, demandStream#1153448, kpis#1153476]
(142) Deduplicate
Arguments: [demandChannel#1153447, shardId#1154285, qty#1153467, worklistShardItemId#1154286L, demandStream#1153448]
(143) Project
Arguments: [shardId#1154285, worklistShardItemId#1154286L, qty#1153467, demandChannel#1153447, demandStream#1153448, kpis#1153476]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379, product#1154380, plant#1154381, periodStart#1154382, periodEnd#1154383, qty#1154384], false
(146) RepartitionByExpression
Arguments: [product#1154380, plant#1154381], 37
(147) Project
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379, product#1154380, plant#1154381, qty#1154384]
(148) LogicalRDD
Arguments: [shardId#1154385, worklistShardItemId#1154386L, version#1154387, product#1154388, plant#1154389, periodStart#1154390, periodEnd#1154391, qty#1154392], false
(149) RepartitionByExpression
Arguments: [product#1154388, plant#1154389], 37
(150) Project
Arguments: [shardId#1154385, worklistShardItemId#1154386L, version#1154387, product#1154388, plant#1154389, qty#1154392]
(151) LogicalRDD
Arguments: [shardId#1154393, worklistShardItemId#1154394L, qty#1154395, demandChannel#1154396, demandStream#1154397, kpis#1154398], false
(152) Project
Arguments: [shardId#1154393 AS cachedShardId#1154399, worklistShardItemId#1154394L AS cachedWorklistShardItemId#1154400L, qty#1154395 AS cachedQty#1154401, demandChannel#1154396, demandStream#1154397, kpis#1154398 AS cachedKpis#1154402]
(153) Join
Arguments: Inner, (((worklistShardItemId#1154386L = cachedWorklistShardItemId#1154400L) AND (shardId#1154385 = cachedShardId#1154399)) AND ((qty#1154392 = cachedQty#1154401) OR isnull(qty#1154392)))
(154) Project
Arguments: [shardId#1154385, worklistShardItemId#1154386L, version#1154387, product#1154388, plant#1154389]
(155) Deduplicate
Arguments: [plant#1154389, shardId#1154385, version#1154387, worklistShardItemId#1154386L, product#1154388]
(156) LogicalRDD
Arguments: [shardId#1154403, worklistShardItemId#1154404L, qty#1154405, demandChannel#1154406, demandStream#1154407, kpis#1154408], false
(157) Project
Arguments: [shardId#1154403 AS cachedShardId#1154409, worklistShardItemId#1154404L AS cachedWorklistShardItemId#1154410L, qty#1154405 AS cachedQty#1154411, demandChannel#1154406, demandStream#1154407, kpis#1154408 AS cachedKpis#1154412]
(158) Join
Arguments: Inner, ((worklistShardItemId#1154386L = cachedWorklistShardItemId#1154410L) AND (shardId#1154385 = cachedShardId#1154409))
(159) Project
Arguments: [shardId#1154385, worklistShardItemId#1154386L, version#1154387, product#1154388, plant#1154389, cachedQty#1154411 AS qty#1154413, demandChannel#1154406, demandStream#1154407, cachedKpis#1154412 AS kpis#1154414]
(160) Project
Arguments: [shardId#1154385, worklistShardItemId#1154386L, version#1154387, product#1154388, plant#1154389, qty#1154413]
(161) LogicalRDD
Arguments: [shardId#1154415, worklistShardItemId#1154416L, version#1154417, product#1154418, plant#1154419, periodStart#1154420, periodEnd#1154421, qty#1154422], false
(162) RepartitionByExpression
Arguments: [product#1154418, plant#1154419], 37
(163) Project
Arguments: [shardId#1154415, worklistShardItemId#1154416L, version#1154417, product#1154418, plant#1154419, qty#1154422]
(164) LogicalRDD
Arguments: [shardId#1154423, worklistShardItemId#1154424L, qty#1154425, demandChannel#1154426, demandStream#1154427, kpis#1154428], false
(165) Project
Arguments: [shardId#1154423 AS cachedShardId#1154429, worklistShardItemId#1154424L AS cachedWorklistShardItemId#1154430L, qty#1154425 AS cachedQty#1154431, demandChannel#1154426, demandStream#1154427, kpis#1154428 AS cachedKpis#1154432]
(166) Join
Arguments: Inner, (((worklistShardItemId#1154416L = cachedWorklistShardItemId#1154430L) AND (shardId#1154415 = cachedShardId#1154429)) AND isnull(qty#1154422))
(167) Project
Arguments: [shardId#1154415, worklistShardItemId#1154416L, version#1154417, product#1154418, plant#1154419, qty#1154422]
(168) Project
Arguments: [shardId#1154415, worklistShardItemId#1154416L, version#1154417, product#1154418, plant#1154419, qty#1154422]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1154377 <=> shardId#1154385) AND (worklistShardItemId#1154378L <=> worklistShardItemId#1154386L)) AND (version#1154379 <=> version#1154387)) AND (product#1154380 <=> product#1154388)) AND (plant#1154381 <=> plant#1154389)) AND (qty#1154384 <=> qty#1154413))
(171) Project
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379, product#1154380, plant#1154381, qty#1154384]
(172) Project
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379, product#1154380, plant#1154381, qty#1154384, cast(null as string) AS demandChannel#1154433]
(173) Project
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379, product#1154380, plant#1154381, qty#1154384, demandChannel#1154433, cast(null as string) AS demandStream#1154434]
(174) Project
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379, product#1154380, plant#1154381, qty#1154384, demandChannel#1154433, demandStream#1154434, array() AS kpis#1154435]
(175) Project
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379, product#1154380, plant#1154381, qty#1154384, demandChannel#1154433, demandStream#1154434, kpis#1154435, true AS isNewlyCalculated#1154436]
(176) Project
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379, product#1154380, plant#1154381, qty#1154384, demandChannel#1154433, demandStream#1154434, cast(kpis#1154435 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1154437, isNewlyCalculated#1154436]
(177) LogicalRDD
Arguments: [shardId#1154438, worklistShardItemId#1154439L, version#1154440, product#1154441, plant#1154442, periodStart#1154443, periodEnd#1154444, qty#1154445], false
(178) RepartitionByExpression
Arguments: [product#1154441, plant#1154442], 37
(179) Project
Arguments: [shardId#1154438, worklistShardItemId#1154439L, version#1154440, product#1154441, plant#1154442, qty#1154445]
(180) LogicalRDD
Arguments: [shardId#1154446, worklistShardItemId#1154447L, qty#1154448, demandChannel#1154449, demandStream#1154450, kpis#1154451], false
(181) Project
Arguments: [shardId#1154446 AS cachedShardId#1154452, worklistShardItemId#1154447L AS cachedWorklistShardItemId#1154453L, qty#1154448 AS cachedQty#1154454, demandChannel#1154449, demandStream#1154450, kpis#1154451 AS cachedKpis#1154455]
(182) Join
Arguments: Inner, (((worklistShardItemId#1154439L = cachedWorklistShardItemId#1154453L) AND (shardId#1154438 = cachedShardId#1154452)) AND ((qty#1154445 = cachedQty#1154454) OR isnull(qty#1154445)))
(183) Project
Arguments: [shardId#1154438, worklistShardItemId#1154439L, version#1154440, product#1154441, plant#1154442]
(184) Deduplicate
Arguments: [plant#1154442, shardId#1154438, version#1154440, worklistShardItemId#1154439L, product#1154441]
(185) LogicalRDD
Arguments: [shardId#1154456, worklistShardItemId#1154457L, qty#1154458, demandChannel#1154459, demandStream#1154460, kpis#1154461], false
(186) Project
Arguments: [shardId#1154456 AS cachedShardId#1154462, worklistShardItemId#1154457L AS cachedWorklistShardItemId#1154463L, qty#1154458 AS cachedQty#1154464, demandChannel#1154459, demandStream#1154460, kpis#1154461 AS cachedKpis#1154465]
(187) Join
Arguments: Inner, ((worklistShardItemId#1154439L = cachedWorklistShardItemId#1154463L) AND (shardId#1154438 = cachedShardId#1154462))
(188) Project
Arguments: [shardId#1154438, worklistShardItemId#1154439L, version#1154440, product#1154441, plant#1154442, cachedQty#1154464 AS qty#1154466, demandChannel#1154459, demandStream#1154460, cachedKpis#1154465 AS kpis#1154467]
(189) Project
Arguments: [shardId#1154438, worklistShardItemId#1154439L, version#1154440, product#1154441, plant#1154442, qty#1154466, demandChannel#1154459, demandStream#1154460, kpis#1154467, false AS isNewlyCalculated#1154468]
(190) Project
Arguments: [shardId#1154438, worklistShardItemId#1154439L, version#1154440, product#1154441, plant#1154442, qty#1154466, demandChannel#1154459, demandStream#1154460, kpis#1154467, isNewlyCalculated#1154468]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1154377, worklistShardItemId#1154378L, version#1154379]
(193) Aggregate
Arguments: [shardId#1154377, worklistShardItemId#1154378L], [shardId#1154377, worklistShardItemId#1154378L, (max(version#1154379) + 1) AS version#1154280]
(194) Join
Arguments: Inner, ((shardId#1100457 = shardId#1154377) AND (worklistShardItemId#1100458L = worklistShardItemId#1154378L))
(195) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1150911, demandStream#1150912, kpis#1150946, version#1154280]
(196) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1154280, qty#1100464, demandChannel#1150911, demandStream#1150912, kpis#1150946]