== 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@43b5768f, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-quantity-kpi-service/out/kpi-curve-update/10000000349/stream-10000000349-1], Append
(3) LogicalRDD
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, periodStart#1011820, periodEnd#1011821, qty#1011822], false
(4) RepartitionByExpression
Arguments: [product#1011818, plant#1011819], 37
(5) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822]
(6) LogicalRDD
Arguments: [shardId#1089850, worklistShardItemId#1089851L, version#1089852, product#1089853, plant#1089854, periodStart#1089855, periodEnd#1089856, qty#1089857], false
(7) RepartitionByExpression
Arguments: [product#1089853, plant#1089854], 37
(8) Project
Arguments: [shardId#1089850, worklistShardItemId#1089851L, version#1089852, product#1089853, plant#1089854, qty#1089857]
(9) LogicalRDD
Arguments: [shardId#1089605, worklistShardItemId#1089606L, qty#1089607, demandChannel#1089608, demandStream#1089609, kpis#1089610], false
(10) Project
Arguments: [shardId#1089605 AS cachedShardId#1089611, worklistShardItemId#1089606L AS cachedWorklistShardItemId#1089612L, qty#1089607 AS cachedQty#1089613, demandChannel#1089608, demandStream#1089609, kpis#1089610 AS cachedKpis#1089614]
(11) Join
Arguments: Inner, (((worklistShardItemId#1089851L = cachedWorklistShardItemId#1089612L) AND (shardId#1089850 = cachedShardId#1089611)) AND ((qty#1089857 = cachedQty#1089613) OR isnull(qty#1089857)))
(12) Project
Arguments: [shardId#1089850, worklistShardItemId#1089851L, version#1089852, product#1089853, plant#1089854]
(13) Deduplicate
Arguments: [plant#1089854, shardId#1089850, version#1089852, worklistShardItemId#1089851L, product#1089853]
(14) LogicalRDD
Arguments: [shardId#1089615, worklistShardItemId#1089616L, qty#1089617, demandChannel#1089618, demandStream#1089619, kpis#1089620], false
(15) Project
Arguments: [shardId#1089615 AS cachedShardId#1089621, worklistShardItemId#1089616L AS cachedWorklistShardItemId#1089622L, qty#1089617 AS cachedQty#1089623, demandChannel#1089618, demandStream#1089619, kpis#1089620 AS cachedKpis#1089624]
(16) Join
Arguments: Inner, ((worklistShardItemId#1089851L = cachedWorklistShardItemId#1089622L) AND (shardId#1089850 = cachedShardId#1089621))
(17) Project
Arguments: [shardId#1089850, worklistShardItemId#1089851L, version#1089852, product#1089853, plant#1089854, cachedQty#1089623 AS qty#1089625, demandChannel#1089618, demandStream#1089619, cachedKpis#1089624 AS kpis#1089626]
(18) Project
Arguments: [shardId#1089850, worklistShardItemId#1089851L, version#1089852, product#1089853, plant#1089854, qty#1089625]
(19) LogicalRDD
Arguments: [shardId#1089832, worklistShardItemId#1089833L, version#1089834, product#1089835, plant#1089836, periodStart#1089837, periodEnd#1089838, qty#1089839], false
(20) RepartitionByExpression
Arguments: [product#1089835, plant#1089836], 37
(21) Project
Arguments: [shardId#1089832, worklistShardItemId#1089833L, version#1089834, product#1089835, plant#1089836, qty#1089839]
(22) LogicalRDD
Arguments: [shardId#1089840, worklistShardItemId#1089841L, qty#1089842, demandChannel#1089843, demandStream#1089844, kpis#1089845], false
(23) Project
Arguments: [shardId#1089840 AS cachedShardId#1089846, worklistShardItemId#1089841L AS cachedWorklistShardItemId#1089847L, qty#1089842 AS cachedQty#1089848, demandChannel#1089843, demandStream#1089844, kpis#1089845 AS cachedKpis#1089849]
(24) Join
Arguments: Inner, (((worklistShardItemId#1089833L = cachedWorklistShardItemId#1089847L) AND (shardId#1089832 = cachedShardId#1089846)) AND isnull(qty#1089839))
(25) Project
Arguments: [shardId#1089832, worklistShardItemId#1089833L, version#1089834, product#1089835, plant#1089836, qty#1089839]
(26) Project
Arguments: [shardId#1089832, worklistShardItemId#1089833L, version#1089834, product#1089835, plant#1089836, qty#1089839]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1011815 <=> shardId#1089850) AND (worklistShardItemId#1011816L <=> worklistShardItemId#1089851L)) AND (version#1011817 <=> version#1089852)) AND (product#1011818 <=> product#1089853)) AND (plant#1011819 <=> plant#1089854)) AND (qty#1011822 <=> qty#1089625))
(29) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822]
(30) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, cast(null as string) AS demandChannel#1089858]
(31) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1089858, cast(null as string) AS demandStream#1089859]
(32) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1089858, demandStream#1089859, array() AS kpis#1089860]
(33) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1089858, demandStream#1089859, kpis#1089860, true AS isNewlyCalculated#1089861]
(34) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1011817, product#1011818, plant#1011819, qty#1011822, demandChannel#1089858, demandStream#1089859, cast(kpis#1089860 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1089893, isNewlyCalculated#1089861]
(35) LogicalRDD
Arguments: [shardId#1089863, worklistShardItemId#1089864L, version#1089865, product#1089866, plant#1089867, periodStart#1089868, periodEnd#1089869, qty#1089870], false
(36) RepartitionByExpression
Arguments: [product#1089866, plant#1089867], 37
(37) Project
Arguments: [shardId#1089863, worklistShardItemId#1089864L, version#1089865, product#1089866, plant#1089867, qty#1089870]
(38) LogicalRDD
Arguments: [shardId#1089871, worklistShardItemId#1089872L, qty#1089873, demandChannel#1089874, demandStream#1089875, kpis#1089876], false
(39) Project
Arguments: [shardId#1089871 AS cachedShardId#1089877, worklistShardItemId#1089872L AS cachedWorklistShardItemId#1089878L, qty#1089873 AS cachedQty#1089879, demandChannel#1089874, demandStream#1089875, kpis#1089876 AS cachedKpis#1089880]
(40) Join
Arguments: Inner, (((worklistShardItemId#1089864L = cachedWorklistShardItemId#1089878L) AND (shardId#1089863 = cachedShardId#1089877)) AND ((qty#1089870 = cachedQty#1089879) OR isnull(qty#1089870)))
(41) Project
Arguments: [shardId#1089863, worklistShardItemId#1089864L, version#1089865, product#1089866, plant#1089867]
(42) Deduplicate
Arguments: [plant#1089867, shardId#1089863, version#1089865, worklistShardItemId#1089864L, product#1089866]
(43) LogicalRDD
Arguments: [shardId#1089881, worklistShardItemId#1089882L, qty#1089883, demandChannel#1089884, demandStream#1089885, kpis#1089886], false
(44) Project
Arguments: [shardId#1089881 AS cachedShardId#1089887, worklistShardItemId#1089882L AS cachedWorklistShardItemId#1089888L, qty#1089883 AS cachedQty#1089889, demandChannel#1089884, demandStream#1089885, kpis#1089886 AS cachedKpis#1089890]
(45) Join
Arguments: Inner, ((worklistShardItemId#1089864L = cachedWorklistShardItemId#1089888L) AND (shardId#1089863 = cachedShardId#1089887))
(46) Project
Arguments: [shardId#1089863, worklistShardItemId#1089864L, version#1089865, product#1089866, plant#1089867, cachedQty#1089889 AS qty#1089891, demandChannel#1089884, demandStream#1089885, cachedKpis#1089890 AS kpis#1089892]
(47) Project
Arguments: [shardId#1089863, worklistShardItemId#1089864L, version#1089865, product#1089866, plant#1089867, qty#1089891, demandChannel#1089884, demandStream#1089885, kpis#1089892, false AS isNewlyCalculated#1089862]
(48) Project
Arguments: [shardId#1089863, worklistShardItemId#1089864L, version#1089865, product#1089866, plant#1089867, qty#1089891, demandChannel#1089884, demandStream#1089885, kpis#1089892, isNewlyCalculated#1089862]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1089861 <=> false)
(51) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1089858, demandStream#1089859, kpis#1089893]
(52) ExternalRDD
Arguments: [obj#1092357]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86002), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86002), 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, 86002), 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, 86002), 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, 86002), 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, 86002), 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#1092360, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86003), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86003), 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, 86004), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86004), 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, 86004), 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, 86004), 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, 86005), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86005), 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, 86005), 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, 86005), 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, 86005), 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, 86004), 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, 86003), 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, 86006), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86006), 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, 86006), 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, 86006), 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, 86006), 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, 86003), 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, 86003), 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, 86003), 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, 86007), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86007), 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, 86008), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86008), 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, 86008), 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, 86008), 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, 86008), 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, 86007), 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, 86007), 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, 86003), 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#1092361]
(54) Generate
Arguments: explode(prodPlantResults#1092361), false, [prodPlantResults#1092368]
(55) Project
Arguments: [prodPlantResults#1092368]
(56) Project
Arguments: [prodPlantResults#1092368.productId AS product#1092387, prodPlantResults#1092368.plantId AS plant#1092388, prodPlantResults#1092368.kpiResults AS kpis#1092389]
(57) Project
Arguments: [product#1092387, plant#1092388, kpis#1092389, null AS qty#1092393]
(58) Project
Arguments: [product#1092387, plant#1092388, kpis#1092389, qty#1092393, cast(null as string) AS demandChannel#1092394]
(59) Project
Arguments: [product#1092387, plant#1092388, kpis#1092389, qty#1092393, demandChannel#1092394, cast(null as string) AS demandStream#1092395]
(60) Project
Arguments: [product#1092387, plant#1092388, kpis#1092389, cast(qty#1092393 as double) AS qty#1092414, demandChannel#1092394, demandStream#1092395]
(61) ExternalRDD
Arguments: [obj#1092410]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86002), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86002), 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, 86002), 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, 86002), 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, 86002), 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, 86002), 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#1092411, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86003), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86003), 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, 86004), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86004), 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, 86004), 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, 86004), 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, 86005), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86005), 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, 86005), 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, 86005), 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, 86005), 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, 86004), 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, 86003), 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, 86006), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86006), 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, 86006), 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, 86006), 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, 86006), 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, 86003), 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, 86003), 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, 86003), 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, 86007), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86007), 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, 86008), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86008), 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, 86008), 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, 86008), 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, 86008), 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, 86007), 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, 86007), 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, 86003), 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#1092412]
(63) Generate
Arguments: explode(prodPlantResults#1092412), false, [prodPlantResults#1092413]
(64) Project
Arguments: [prodPlantResults#1092413]
(65) Generate
Arguments: explode(prodPlantResults#1092413.quantityKpiResults), false, [quantityKpiResults#1092380]
(66) Project
Arguments: [prodPlantResults#1092413.productId AS product#1092374, prodPlantResults#1092413.plantId AS plant#1092375, quantityKpiResults#1092380]
(67) Project
Arguments: [product#1092374, plant#1092375, quantityKpiResults#1092380, quantityKpiResults#1092380.quantity AS qty#1092381]
(68) Project
Arguments: [product#1092374, plant#1092375, quantityKpiResults#1092380, qty#1092381, cast(null as string) AS demandChannel#1092383]
(69) Project
Arguments: [product#1092374, plant#1092375, quantityKpiResults#1092380, qty#1092381, demandChannel#1092383, cast(null as string) AS demandStream#1092384]
(70) Project
Arguments: [product#1092374, plant#1092375, quantityKpiResults#1092380, qty#1092381, demandChannel#1092383, demandStream#1092384, quantityKpiResults#1092380.kpiResults AS kpis#1092385]
(71) Project
Arguments: [product#1092374, plant#1092375, qty#1092381, demandChannel#1092383, demandStream#1092384, kpis#1092385]
(72) Project
Arguments: [product#1092374, plant#1092375, kpis#1092385, qty#1092381, demandChannel#1092383, demandStream#1092384]
(73) ExternalRDD
Arguments: [obj#1092415]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86002), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86002), 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, 86002), 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, 86002), 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, 86002), 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, 86002), 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#1092416, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86003), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86003), 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, 86004), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86004), 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, 86004), 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, 86004), 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, 86005), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86005), 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, 86005), 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, 86005), 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, 86005), 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, 86004), 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, 86003), 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, 86006), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86006), 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, 86006), 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, 86006), 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, 86006), 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, 86003), 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, 86003), 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, 86003), 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, 86007), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86007), 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, 86008), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 86008), 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, 86008), 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, 86008), 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, 86008), 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, 86007), 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, 86007), 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, 86003), 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#1092417]
(75) Generate
Arguments: explode(prodPlantResults#1092417), false, [prodPlantResults#1092418]
(76) Project
Arguments: [prodPlantResults#1092418]
(77) Generate
Arguments: explode(prodPlantResults#1092418.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1092402]
(78) Project
Arguments: [prodPlantResults#1092418.productId AS product#1092396, prodPlantResults#1092418.plantId AS plant#1092397, demandChannelStreamKpiResults#1092402]
(79) Project
Arguments: [product#1092396, plant#1092397, demandChannelStreamKpiResults#1092402, null AS qty#1092403]
(80) Project
Arguments: [product#1092396, plant#1092397, demandChannelStreamKpiResults#1092402, qty#1092403, demandChannelStreamKpiResults#1092402.demandChannel AS demandChannel#1092404]
(81) Project
Arguments: [product#1092396, plant#1092397, demandChannelStreamKpiResults#1092402, qty#1092403, demandChannel#1092404, demandChannelStreamKpiResults#1092402.demandStream AS demandStream#1092406]
(82) Project
Arguments: [product#1092396, plant#1092397, demandChannelStreamKpiResults#1092402, qty#1092403, demandChannel#1092404, demandStream#1092406, demandChannelStreamKpiResults#1092402.kpiResults AS kpis#1092408]
(83) Project
Arguments: [product#1092396, plant#1092397, qty#1092403, demandChannel#1092404, demandStream#1092406, kpis#1092408]
(84) Project
Arguments: [product#1092396, plant#1092397, kpis#1092408, qty#1092403, demandChannel#1092404, demandStream#1092406]
(85) Project
Arguments: [product#1092396, plant#1092397, kpis#1092408, cast(qty#1092403 as double) AS qty#1092419, demandChannel#1092404, demandStream#1092406]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1092387, plant#1092388, transform(kpis#1092389, lambdafunction(struct(label, lambda kpi#1092424.label, dateTime, lambda kpi#1092424.datetime, value, lambda kpi#1092424.value), lambda kpi#1092424, false)) AS kpis#1092423, qty#1092414, demandChannel#1092394, demandStream#1092395]
(88) Project
Arguments: [product#1092387, plant#1092388, qty#1092414, demandChannel#1092394, demandStream#1092395, kpis#1092423]
(89) LogicalRDD
Arguments: [shardId#1093232, worklistShardItemId#1093233L, version#1093234, product#1093235, plant#1093236, periodStart#1093237, periodEnd#1093238, qty#1093239], false
(90) RepartitionByExpression
Arguments: [product#1093235, plant#1093236], 37
(91) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, version#1093234, product#1093235, plant#1093236, qty#1093239]
(92) LogicalRDD
Arguments: [shardId#1093240, worklistShardItemId#1093241L, version#1093242, product#1093243, plant#1093244, periodStart#1093245, periodEnd#1093246, qty#1093247], false
(93) RepartitionByExpression
Arguments: [product#1093243, plant#1093244], 37
(94) Project
Arguments: [shardId#1093240, worklistShardItemId#1093241L, version#1093242, product#1093243, plant#1093244, qty#1093247]
(95) LogicalRDD
Arguments: [shardId#1093248, worklistShardItemId#1093249L, qty#1093250, demandChannel#1093251, demandStream#1093252, kpis#1093253], false
(96) Project
Arguments: [shardId#1093248 AS cachedShardId#1093254, worklistShardItemId#1093249L AS cachedWorklistShardItemId#1093255L, qty#1093250 AS cachedQty#1093256, demandChannel#1093251, demandStream#1093252, kpis#1093253 AS cachedKpis#1093257]
(97) Join
Arguments: Inner, (((worklistShardItemId#1093241L = cachedWorklistShardItemId#1093255L) AND (shardId#1093240 = cachedShardId#1093254)) AND ((qty#1093247 = cachedQty#1093256) OR isnull(qty#1093247)))
(98) Project
Arguments: [shardId#1093240, worklistShardItemId#1093241L, version#1093242, product#1093243, plant#1093244]
(99) Deduplicate
Arguments: [plant#1093244, shardId#1093240, version#1093242, worklistShardItemId#1093241L, product#1093243]
(100) LogicalRDD
Arguments: [shardId#1093258, worklistShardItemId#1093259L, qty#1093260, demandChannel#1093261, demandStream#1093262, kpis#1093263], false
(101) Project
Arguments: [shardId#1093258 AS cachedShardId#1093264, worklistShardItemId#1093259L AS cachedWorklistShardItemId#1093265L, qty#1093260 AS cachedQty#1093266, demandChannel#1093261, demandStream#1093262, kpis#1093263 AS cachedKpis#1093267]
(102) Join
Arguments: Inner, ((worklistShardItemId#1093241L = cachedWorklistShardItemId#1093265L) AND (shardId#1093240 = cachedShardId#1093264))
(103) Project
Arguments: [shardId#1093240, worklistShardItemId#1093241L, version#1093242, product#1093243, plant#1093244, cachedQty#1093266 AS qty#1093268, demandChannel#1093261, demandStream#1093262, cachedKpis#1093267 AS kpis#1093269]
(104) Project
Arguments: [shardId#1093240, worklistShardItemId#1093241L, version#1093242, product#1093243, plant#1093244, qty#1093268]
(105) LogicalRDD
Arguments: [shardId#1093270, worklistShardItemId#1093271L, version#1093272, product#1093273, plant#1093274, periodStart#1093275, periodEnd#1093276, qty#1093277], false
(106) RepartitionByExpression
Arguments: [product#1093273, plant#1093274], 37
(107) Project
Arguments: [shardId#1093270, worklistShardItemId#1093271L, version#1093272, product#1093273, plant#1093274, qty#1093277]
(108) LogicalRDD
Arguments: [shardId#1093278, worklistShardItemId#1093279L, qty#1093280, demandChannel#1093281, demandStream#1093282, kpis#1093283], false
(109) Project
Arguments: [shardId#1093278 AS cachedShardId#1093284, worklistShardItemId#1093279L AS cachedWorklistShardItemId#1093285L, qty#1093280 AS cachedQty#1093286, demandChannel#1093281, demandStream#1093282, kpis#1093283 AS cachedKpis#1093287]
(110) Join
Arguments: Inner, (((worklistShardItemId#1093271L = cachedWorklistShardItemId#1093285L) AND (shardId#1093270 = cachedShardId#1093284)) AND isnull(qty#1093277))
(111) Project
Arguments: [shardId#1093270, worklistShardItemId#1093271L, version#1093272, product#1093273, plant#1093274, qty#1093277]
(112) Project
Arguments: [shardId#1093270, worklistShardItemId#1093271L, version#1093272, product#1093273, plant#1093274, qty#1093277]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1093232 <=> shardId#1093240) AND (worklistShardItemId#1093233L <=> worklistShardItemId#1093241L)) AND (version#1093234 <=> version#1093242)) AND (product#1093235 <=> product#1093243)) AND (plant#1093236 <=> plant#1093244)) AND (qty#1093239 <=> qty#1093268))
(115) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, version#1093234, product#1093235, plant#1093236, qty#1093239]
(116) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, version#1093234, product#1093235, plant#1093236, qty#1093239, cast(null as string) AS demandChannel#1093288]
(117) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, version#1093234, product#1093235, plant#1093236, qty#1093239, demandChannel#1093288, cast(null as string) AS demandStream#1093289]
(118) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, version#1093234, product#1093235, plant#1093236, qty#1093239, demandChannel#1093288, demandStream#1093289, array() AS kpis#1093290]
(119) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, version#1093234, product#1093235, plant#1093236, qty#1093239, demandChannel#1093288, demandStream#1093289, kpis#1093290, true AS isNewlyCalculated#1093291]
(120) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, version#1093234, product#1093235, plant#1093236, qty#1093239, demandChannel#1093288, demandStream#1093289, cast(kpis#1093290 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1093292, isNewlyCalculated#1093291]
(121) LogicalRDD
Arguments: [shardId#1093293, worklistShardItemId#1093294L, version#1093295, product#1093296, plant#1093297, periodStart#1093298, periodEnd#1093299, qty#1093300], false
(122) RepartitionByExpression
Arguments: [product#1093296, plant#1093297], 37
(123) Project
Arguments: [shardId#1093293, worklistShardItemId#1093294L, version#1093295, product#1093296, plant#1093297, qty#1093300]
(124) LogicalRDD
Arguments: [shardId#1093301, worklistShardItemId#1093302L, qty#1093303, demandChannel#1093304, demandStream#1093305, kpis#1093306], false
(125) Project
Arguments: [shardId#1093301 AS cachedShardId#1093307, worklistShardItemId#1093302L AS cachedWorklistShardItemId#1093308L, qty#1093303 AS cachedQty#1093309, demandChannel#1093304, demandStream#1093305, kpis#1093306 AS cachedKpis#1093310]
(126) Join
Arguments: Inner, (((worklistShardItemId#1093294L = cachedWorklistShardItemId#1093308L) AND (shardId#1093293 = cachedShardId#1093307)) AND ((qty#1093300 = cachedQty#1093309) OR isnull(qty#1093300)))
(127) Project
Arguments: [shardId#1093293, worklistShardItemId#1093294L, version#1093295, product#1093296, plant#1093297]
(128) Deduplicate
Arguments: [plant#1093297, shardId#1093293, version#1093295, worklistShardItemId#1093294L, product#1093296]
(129) LogicalRDD
Arguments: [shardId#1093311, worklistShardItemId#1093312L, qty#1093313, demandChannel#1093314, demandStream#1093315, kpis#1093316], false
(130) Project
Arguments: [shardId#1093311 AS cachedShardId#1093317, worklistShardItemId#1093312L AS cachedWorklistShardItemId#1093318L, qty#1093313 AS cachedQty#1093319, demandChannel#1093314, demandStream#1093315, kpis#1093316 AS cachedKpis#1093320]
(131) Join
Arguments: Inner, ((worklistShardItemId#1093294L = cachedWorklistShardItemId#1093318L) AND (shardId#1093293 = cachedShardId#1093317))
(132) Project
Arguments: [shardId#1093293, worklistShardItemId#1093294L, version#1093295, product#1093296, plant#1093297, cachedQty#1093319 AS qty#1093321, demandChannel#1093314, demandStream#1093315, cachedKpis#1093320 AS kpis#1093322]
(133) Project
Arguments: [shardId#1093293, worklistShardItemId#1093294L, version#1093295, product#1093296, plant#1093297, qty#1093321, demandChannel#1093314, demandStream#1093315, kpis#1093322, false AS isNewlyCalculated#1093323]
(134) Project
Arguments: [shardId#1093293, worklistShardItemId#1093294L, version#1093295, product#1093296, plant#1093297, qty#1093321, demandChannel#1093314, demandStream#1093315, kpis#1093322, isNewlyCalculated#1093323]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1093291 <=> true)
(137) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, product#1093235, plant#1093236, qty#1093239, kpis#1093292]
(138) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, product#1093235, plant#1093236, qty#1093239]
(139) Deduplicate
Arguments: [plant#1093236, shardId#1093232, qty#1093239, worklistShardItemId#1093233L, product#1093235]
(140) Join
Arguments: Inner, ((product#1092387 <=> product#1093235) AND ((plant#1092388 <=> plant#1093236) AND ((qty#1092414 <=> qty#1093239) OR isnull(qty#1093239))))
(141) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, qty#1092414, demandChannel#1092394, demandStream#1092395, kpis#1092423]
(142) Deduplicate
Arguments: [demandChannel#1092394, shardId#1093232, qty#1092414, worklistShardItemId#1093233L, demandStream#1092395]
(143) Project
Arguments: [shardId#1093232, worklistShardItemId#1093233L, qty#1092414, demandChannel#1092394, demandStream#1092395, kpis#1092423]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326, product#1093327, plant#1093328, periodStart#1093329, periodEnd#1093330, qty#1093331], false
(146) RepartitionByExpression
Arguments: [product#1093327, plant#1093328], 37
(147) Project
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326, product#1093327, plant#1093328, qty#1093331]
(148) LogicalRDD
Arguments: [shardId#1093332, worklistShardItemId#1093333L, version#1093334, product#1093335, plant#1093336, periodStart#1093337, periodEnd#1093338, qty#1093339], false
(149) RepartitionByExpression
Arguments: [product#1093335, plant#1093336], 37
(150) Project
Arguments: [shardId#1093332, worklistShardItemId#1093333L, version#1093334, product#1093335, plant#1093336, qty#1093339]
(151) LogicalRDD
Arguments: [shardId#1093340, worklistShardItemId#1093341L, qty#1093342, demandChannel#1093343, demandStream#1093344, kpis#1093345], false
(152) Project
Arguments: [shardId#1093340 AS cachedShardId#1093346, worklistShardItemId#1093341L AS cachedWorklistShardItemId#1093347L, qty#1093342 AS cachedQty#1093348, demandChannel#1093343, demandStream#1093344, kpis#1093345 AS cachedKpis#1093349]
(153) Join
Arguments: Inner, (((worklistShardItemId#1093333L = cachedWorklistShardItemId#1093347L) AND (shardId#1093332 = cachedShardId#1093346)) AND ((qty#1093339 = cachedQty#1093348) OR isnull(qty#1093339)))
(154) Project
Arguments: [shardId#1093332, worklistShardItemId#1093333L, version#1093334, product#1093335, plant#1093336]
(155) Deduplicate
Arguments: [plant#1093336, shardId#1093332, version#1093334, worklistShardItemId#1093333L, product#1093335]
(156) LogicalRDD
Arguments: [shardId#1093350, worklistShardItemId#1093351L, qty#1093352, demandChannel#1093353, demandStream#1093354, kpis#1093355], false
(157) Project
Arguments: [shardId#1093350 AS cachedShardId#1093356, worklistShardItemId#1093351L AS cachedWorklistShardItemId#1093357L, qty#1093352 AS cachedQty#1093358, demandChannel#1093353, demandStream#1093354, kpis#1093355 AS cachedKpis#1093359]
(158) Join
Arguments: Inner, ((worklistShardItemId#1093333L = cachedWorklistShardItemId#1093357L) AND (shardId#1093332 = cachedShardId#1093356))
(159) Project
Arguments: [shardId#1093332, worklistShardItemId#1093333L, version#1093334, product#1093335, plant#1093336, cachedQty#1093358 AS qty#1093360, demandChannel#1093353, demandStream#1093354, cachedKpis#1093359 AS kpis#1093361]
(160) Project
Arguments: [shardId#1093332, worklistShardItemId#1093333L, version#1093334, product#1093335, plant#1093336, qty#1093360]
(161) LogicalRDD
Arguments: [shardId#1093362, worklistShardItemId#1093363L, version#1093364, product#1093365, plant#1093366, periodStart#1093367, periodEnd#1093368, qty#1093369], false
(162) RepartitionByExpression
Arguments: [product#1093365, plant#1093366], 37
(163) Project
Arguments: [shardId#1093362, worklistShardItemId#1093363L, version#1093364, product#1093365, plant#1093366, qty#1093369]
(164) LogicalRDD
Arguments: [shardId#1093370, worklistShardItemId#1093371L, qty#1093372, demandChannel#1093373, demandStream#1093374, kpis#1093375], false
(165) Project
Arguments: [shardId#1093370 AS cachedShardId#1093376, worklistShardItemId#1093371L AS cachedWorklistShardItemId#1093377L, qty#1093372 AS cachedQty#1093378, demandChannel#1093373, demandStream#1093374, kpis#1093375 AS cachedKpis#1093379]
(166) Join
Arguments: Inner, (((worklistShardItemId#1093363L = cachedWorklistShardItemId#1093377L) AND (shardId#1093362 = cachedShardId#1093376)) AND isnull(qty#1093369))
(167) Project
Arguments: [shardId#1093362, worklistShardItemId#1093363L, version#1093364, product#1093365, plant#1093366, qty#1093369]
(168) Project
Arguments: [shardId#1093362, worklistShardItemId#1093363L, version#1093364, product#1093365, plant#1093366, qty#1093369]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1093324 <=> shardId#1093332) AND (worklistShardItemId#1093325L <=> worklistShardItemId#1093333L)) AND (version#1093326 <=> version#1093334)) AND (product#1093327 <=> product#1093335)) AND (plant#1093328 <=> plant#1093336)) AND (qty#1093331 <=> qty#1093360))
(171) Project
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326, product#1093327, plant#1093328, qty#1093331]
(172) Project
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326, product#1093327, plant#1093328, qty#1093331, cast(null as string) AS demandChannel#1093380]
(173) Project
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326, product#1093327, plant#1093328, qty#1093331, demandChannel#1093380, cast(null as string) AS demandStream#1093381]
(174) Project
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326, product#1093327, plant#1093328, qty#1093331, demandChannel#1093380, demandStream#1093381, array() AS kpis#1093382]
(175) Project
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326, product#1093327, plant#1093328, qty#1093331, demandChannel#1093380, demandStream#1093381, kpis#1093382, true AS isNewlyCalculated#1093383]
(176) Project
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326, product#1093327, plant#1093328, qty#1093331, demandChannel#1093380, demandStream#1093381, cast(kpis#1093382 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1093384, isNewlyCalculated#1093383]
(177) LogicalRDD
Arguments: [shardId#1093385, worklistShardItemId#1093386L, version#1093387, product#1093388, plant#1093389, periodStart#1093390, periodEnd#1093391, qty#1093392], false
(178) RepartitionByExpression
Arguments: [product#1093388, plant#1093389], 37
(179) Project
Arguments: [shardId#1093385, worklistShardItemId#1093386L, version#1093387, product#1093388, plant#1093389, qty#1093392]
(180) LogicalRDD
Arguments: [shardId#1093393, worklistShardItemId#1093394L, qty#1093395, demandChannel#1093396, demandStream#1093397, kpis#1093398], false
(181) Project
Arguments: [shardId#1093393 AS cachedShardId#1093399, worklistShardItemId#1093394L AS cachedWorklistShardItemId#1093400L, qty#1093395 AS cachedQty#1093401, demandChannel#1093396, demandStream#1093397, kpis#1093398 AS cachedKpis#1093402]
(182) Join
Arguments: Inner, (((worklistShardItemId#1093386L = cachedWorklistShardItemId#1093400L) AND (shardId#1093385 = cachedShardId#1093399)) AND ((qty#1093392 = cachedQty#1093401) OR isnull(qty#1093392)))
(183) Project
Arguments: [shardId#1093385, worklistShardItemId#1093386L, version#1093387, product#1093388, plant#1093389]
(184) Deduplicate
Arguments: [plant#1093389, shardId#1093385, version#1093387, worklistShardItemId#1093386L, product#1093388]
(185) LogicalRDD
Arguments: [shardId#1093403, worklistShardItemId#1093404L, qty#1093405, demandChannel#1093406, demandStream#1093407, kpis#1093408], false
(186) Project
Arguments: [shardId#1093403 AS cachedShardId#1093409, worklistShardItemId#1093404L AS cachedWorklistShardItemId#1093410L, qty#1093405 AS cachedQty#1093411, demandChannel#1093406, demandStream#1093407, kpis#1093408 AS cachedKpis#1093412]
(187) Join
Arguments: Inner, ((worklistShardItemId#1093386L = cachedWorklistShardItemId#1093410L) AND (shardId#1093385 = cachedShardId#1093409))
(188) Project
Arguments: [shardId#1093385, worklistShardItemId#1093386L, version#1093387, product#1093388, plant#1093389, cachedQty#1093411 AS qty#1093413, demandChannel#1093406, demandStream#1093407, cachedKpis#1093412 AS kpis#1093414]
(189) Project
Arguments: [shardId#1093385, worklistShardItemId#1093386L, version#1093387, product#1093388, plant#1093389, qty#1093413, demandChannel#1093406, demandStream#1093407, kpis#1093414, false AS isNewlyCalculated#1093415]
(190) Project
Arguments: [shardId#1093385, worklistShardItemId#1093386L, version#1093387, product#1093388, plant#1093389, qty#1093413, demandChannel#1093406, demandStream#1093407, kpis#1093414, isNewlyCalculated#1093415]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1093324, worklistShardItemId#1093325L, version#1093326]
(193) Aggregate
Arguments: [shardId#1093324, worklistShardItemId#1093325L], [shardId#1093324, worklistShardItemId#1093325L, (max(version#1093326) + 1) AS version#1093227]
(194) Join
Arguments: Inner, ((shardId#1011815 = shardId#1093324) AND (worklistShardItemId#1011816L = worklistShardItemId#1093325L))
(195) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, qty#1011822, demandChannel#1089858, demandStream#1089859, kpis#1089893, version#1093227]
(196) Project
Arguments: [shardId#1011815, worklistShardItemId#1011816L, version#1093227, qty#1011822, demandChannel#1089858, demandStream#1089859, kpis#1089893]