== 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@4445d3a2, [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#1111807, worklistShardItemId#1111808L, version#1111809, product#1111810, plant#1111811, periodStart#1111812, periodEnd#1111813, qty#1111814], false
(7) RepartitionByExpression
Arguments: [product#1111810, plant#1111811], 37
(8) Project
Arguments: [shardId#1111807, worklistShardItemId#1111808L, version#1111809, product#1111810, plant#1111811, qty#1111814]
(9) LogicalRDD
Arguments: [shardId#1111562, worklistShardItemId#1111563L, qty#1111564, demandChannel#1111565, demandStream#1111566, kpis#1111567], false
(10) Project
Arguments: [shardId#1111562 AS cachedShardId#1111568, worklistShardItemId#1111563L AS cachedWorklistShardItemId#1111569L, qty#1111564 AS cachedQty#1111570, demandChannel#1111565, demandStream#1111566, kpis#1111567 AS cachedKpis#1111571]
(11) Join
Arguments: Inner, (((worklistShardItemId#1111808L = cachedWorklistShardItemId#1111569L) AND (shardId#1111807 = cachedShardId#1111568)) AND ((qty#1111814 = cachedQty#1111570) OR isnull(qty#1111814)))
(12) Project
Arguments: [shardId#1111807, worklistShardItemId#1111808L, version#1111809, product#1111810, plant#1111811]
(13) Deduplicate
Arguments: [plant#1111811, shardId#1111807, version#1111809, worklistShardItemId#1111808L, product#1111810]
(14) LogicalRDD
Arguments: [shardId#1111572, worklistShardItemId#1111573L, qty#1111574, demandChannel#1111575, demandStream#1111576, kpis#1111577], false
(15) Project
Arguments: [shardId#1111572 AS cachedShardId#1111578, worklistShardItemId#1111573L AS cachedWorklistShardItemId#1111579L, qty#1111574 AS cachedQty#1111580, demandChannel#1111575, demandStream#1111576, kpis#1111577 AS cachedKpis#1111581]
(16) Join
Arguments: Inner, ((worklistShardItemId#1111808L = cachedWorklistShardItemId#1111579L) AND (shardId#1111807 = cachedShardId#1111578))
(17) Project
Arguments: [shardId#1111807, worklistShardItemId#1111808L, version#1111809, product#1111810, plant#1111811, cachedQty#1111580 AS qty#1111582, demandChannel#1111575, demandStream#1111576, cachedKpis#1111581 AS kpis#1111583]
(18) Project
Arguments: [shardId#1111807, worklistShardItemId#1111808L, version#1111809, product#1111810, plant#1111811, qty#1111582]
(19) LogicalRDD
Arguments: [shardId#1111789, worklistShardItemId#1111790L, version#1111791, product#1111792, plant#1111793, periodStart#1111794, periodEnd#1111795, qty#1111796], false
(20) RepartitionByExpression
Arguments: [product#1111792, plant#1111793], 37
(21) Project
Arguments: [shardId#1111789, worklistShardItemId#1111790L, version#1111791, product#1111792, plant#1111793, qty#1111796]
(22) LogicalRDD
Arguments: [shardId#1111797, worklistShardItemId#1111798L, qty#1111799, demandChannel#1111800, demandStream#1111801, kpis#1111802], false
(23) Project
Arguments: [shardId#1111797 AS cachedShardId#1111803, worklistShardItemId#1111798L AS cachedWorklistShardItemId#1111804L, qty#1111799 AS cachedQty#1111805, demandChannel#1111800, demandStream#1111801, kpis#1111802 AS cachedKpis#1111806]
(24) Join
Arguments: Inner, (((worklistShardItemId#1111790L = cachedWorklistShardItemId#1111804L) AND (shardId#1111789 = cachedShardId#1111803)) AND isnull(qty#1111796))
(25) Project
Arguments: [shardId#1111789, worklistShardItemId#1111790L, version#1111791, product#1111792, plant#1111793, qty#1111796]
(26) Project
Arguments: [shardId#1111789, worklistShardItemId#1111790L, version#1111791, product#1111792, plant#1111793, qty#1111796]
(27) Union
Arguments: false, false
(28) Join
Arguments: LeftAnti, ((((((shardId#1100457 <=> shardId#1111807) AND (worklistShardItemId#1100458L <=> worklistShardItemId#1111808L)) AND (version#1100459 <=> version#1111809)) AND (product#1100460 <=> product#1111810)) AND (plant#1100461 <=> plant#1111811)) AND (qty#1100464 <=> qty#1111582))
(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#1111815]
(31) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1111815, cast(null as string) AS demandStream#1111816]
(32) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1111815, demandStream#1111816, array() AS kpis#1111817]
(33) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1111815, demandStream#1111816, kpis#1111817, true AS isNewlyCalculated#1111818]
(34) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1100459, product#1100460, plant#1100461, qty#1100464, demandChannel#1111815, demandStream#1111816, cast(kpis#1111817 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1111850, isNewlyCalculated#1111818]
(35) LogicalRDD
Arguments: [shardId#1111820, worklistShardItemId#1111821L, version#1111822, product#1111823, plant#1111824, periodStart#1111825, periodEnd#1111826, qty#1111827], false
(36) RepartitionByExpression
Arguments: [product#1111823, plant#1111824], 37
(37) Project
Arguments: [shardId#1111820, worklistShardItemId#1111821L, version#1111822, product#1111823, plant#1111824, qty#1111827]
(38) LogicalRDD
Arguments: [shardId#1111828, worklistShardItemId#1111829L, qty#1111830, demandChannel#1111831, demandStream#1111832, kpis#1111833], false
(39) Project
Arguments: [shardId#1111828 AS cachedShardId#1111834, worklistShardItemId#1111829L AS cachedWorklistShardItemId#1111835L, qty#1111830 AS cachedQty#1111836, demandChannel#1111831, demandStream#1111832, kpis#1111833 AS cachedKpis#1111837]
(40) Join
Arguments: Inner, (((worklistShardItemId#1111821L = cachedWorklistShardItemId#1111835L) AND (shardId#1111820 = cachedShardId#1111834)) AND ((qty#1111827 = cachedQty#1111836) OR isnull(qty#1111827)))
(41) Project
Arguments: [shardId#1111820, worklistShardItemId#1111821L, version#1111822, product#1111823, plant#1111824]
(42) Deduplicate
Arguments: [plant#1111824, shardId#1111820, version#1111822, worklistShardItemId#1111821L, product#1111823]
(43) LogicalRDD
Arguments: [shardId#1111838, worklistShardItemId#1111839L, qty#1111840, demandChannel#1111841, demandStream#1111842, kpis#1111843], false
(44) Project
Arguments: [shardId#1111838 AS cachedShardId#1111844, worklistShardItemId#1111839L AS cachedWorklistShardItemId#1111845L, qty#1111840 AS cachedQty#1111846, demandChannel#1111841, demandStream#1111842, kpis#1111843 AS cachedKpis#1111847]
(45) Join
Arguments: Inner, ((worklistShardItemId#1111821L = cachedWorklistShardItemId#1111845L) AND (shardId#1111820 = cachedShardId#1111844))
(46) Project
Arguments: [shardId#1111820, worklistShardItemId#1111821L, version#1111822, product#1111823, plant#1111824, cachedQty#1111846 AS qty#1111848, demandChannel#1111841, demandStream#1111842, cachedKpis#1111847 AS kpis#1111849]
(47) Project
Arguments: [shardId#1111820, worklistShardItemId#1111821L, version#1111822, product#1111823, plant#1111824, qty#1111848, demandChannel#1111841, demandStream#1111842, kpis#1111849, false AS isNewlyCalculated#1111819]
(48) Project
Arguments: [shardId#1111820, worklistShardItemId#1111821L, version#1111822, product#1111823, plant#1111824, qty#1111848, demandChannel#1111841, demandStream#1111842, kpis#1111849, isNewlyCalculated#1111819]
(49) Union
Arguments: false, false
(50) Filter
Arguments: (isNewlyCalculated#1111818 <=> false)
(51) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1111815, demandStream#1111816, kpis#1111850]
(52) ExternalRDD
Arguments: [obj#1114482]
(53) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88438), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88438), 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, 88438), 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, 88438), 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, 88438), 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, 88438), 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#1114485, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88439), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88439), 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, 88440), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88440), 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, 88440), 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, 88440), 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, 88441), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88441), 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, 88441), 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, 88441), 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, 88441), 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, 88440), 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, 88439), 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, 88442), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88442), 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, 88442), 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, 88442), 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, 88442), 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, 88439), 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, 88439), 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, 88439), 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, 88443), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88443), 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, 88444), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88444), 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, 88444), 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, 88444), 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, 88444), 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, 88443), 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, 88443), 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, 88439), 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#1114486]
(54) Generate
Arguments: explode(prodPlantResults#1114486), false, [prodPlantResults#1114493]
(55) Project
Arguments: [prodPlantResults#1114493]
(56) Project
Arguments: [prodPlantResults#1114493.productId AS product#1114512, prodPlantResults#1114493.plantId AS plant#1114513, prodPlantResults#1114493.kpiResults AS kpis#1114514]
(57) Project
Arguments: [product#1114512, plant#1114513, kpis#1114514, null AS qty#1114518]
(58) Project
Arguments: [product#1114512, plant#1114513, kpis#1114514, qty#1114518, cast(null as string) AS demandChannel#1114519]
(59) Project
Arguments: [product#1114512, plant#1114513, kpis#1114514, qty#1114518, demandChannel#1114519, cast(null as string) AS demandStream#1114520]
(60) Project
Arguments: [product#1114512, plant#1114513, kpis#1114514, cast(qty#1114518 as double) AS qty#1114539, demandChannel#1114519, demandStream#1114520]
(61) ExternalRDD
Arguments: [obj#1114535]
(62) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88438), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88438), 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, 88438), 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, 88438), 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, 88438), 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, 88438), 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#1114536, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88439), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88439), 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, 88440), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88440), 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, 88440), 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, 88440), 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, 88441), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88441), 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, 88441), 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, 88441), 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, 88441), 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, 88440), 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, 88439), 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, 88442), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88442), 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, 88442), 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, 88442), 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, 88442), 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, 88439), 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, 88439), 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, 88439), 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, 88443), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88443), 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, 88444), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88444), 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, 88444), 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, 88444), 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, 88444), 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, 88443), 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, 88443), 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, 88439), 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#1114537]
(63) Generate
Arguments: explode(prodPlantResults#1114537), false, [prodPlantResults#1114538]
(64) Project
Arguments: [prodPlantResults#1114538]
(65) Generate
Arguments: explode(prodPlantResults#1114538.quantityKpiResults), false, [quantityKpiResults#1114505]
(66) Project
Arguments: [prodPlantResults#1114538.productId AS product#1114499, prodPlantResults#1114538.plantId AS plant#1114500, quantityKpiResults#1114505]
(67) Project
Arguments: [product#1114499, plant#1114500, quantityKpiResults#1114505, quantityKpiResults#1114505.quantity AS qty#1114506]
(68) Project
Arguments: [product#1114499, plant#1114500, quantityKpiResults#1114505, qty#1114506, cast(null as string) AS demandChannel#1114508]
(69) Project
Arguments: [product#1114499, plant#1114500, quantityKpiResults#1114505, qty#1114506, demandChannel#1114508, cast(null as string) AS demandStream#1114509]
(70) Project
Arguments: [product#1114499, plant#1114500, quantityKpiResults#1114505, qty#1114506, demandChannel#1114508, demandStream#1114509, quantityKpiResults#1114505.kpiResults AS kpis#1114510]
(71) Project
Arguments: [product#1114499, plant#1114500, qty#1114506, demandChannel#1114508, demandStream#1114509, kpis#1114510]
(72) Project
Arguments: [product#1114499, plant#1114500, kpis#1114510, qty#1114506, demandChannel#1114508, demandStream#1114509]
(73) ExternalRDD
Arguments: [obj#1114540]
(74) SerializeFromObject
Arguments: [mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88438), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88438), 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, 88438), 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, 88438), 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, 88438), 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, 88438), 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#1114541, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88439), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88439), 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, 88440), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88440), 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, 88440), 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, 88440), 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, 88441), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88441), 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, 88441), 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, 88441), 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, 88441), 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, 88440), 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, 88439), 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, 88442), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88442), 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, 88442), 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, 88442), 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, 88442), 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, 88439), 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, 88439), 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, 88439), 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, 88443), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88443), 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, 88444), if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, 88444), 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, 88444), 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, 88444), 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, 88444), 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, 88443), 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, 88443), 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, 88439), 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#1114542]
(75) Generate
Arguments: explode(prodPlantResults#1114542), false, [prodPlantResults#1114543]
(76) Project
Arguments: [prodPlantResults#1114543]
(77) Generate
Arguments: explode(prodPlantResults#1114543.demandChannelStreamKpiResults), false, [demandChannelStreamKpiResults#1114527]
(78) Project
Arguments: [prodPlantResults#1114543.productId AS product#1114521, prodPlantResults#1114543.plantId AS plant#1114522, demandChannelStreamKpiResults#1114527]
(79) Project
Arguments: [product#1114521, plant#1114522, demandChannelStreamKpiResults#1114527, null AS qty#1114528]
(80) Project
Arguments: [product#1114521, plant#1114522, demandChannelStreamKpiResults#1114527, qty#1114528, demandChannelStreamKpiResults#1114527.demandChannel AS demandChannel#1114529]
(81) Project
Arguments: [product#1114521, plant#1114522, demandChannelStreamKpiResults#1114527, qty#1114528, demandChannel#1114529, demandChannelStreamKpiResults#1114527.demandStream AS demandStream#1114531]
(82) Project
Arguments: [product#1114521, plant#1114522, demandChannelStreamKpiResults#1114527, qty#1114528, demandChannel#1114529, demandStream#1114531, demandChannelStreamKpiResults#1114527.kpiResults AS kpis#1114533]
(83) Project
Arguments: [product#1114521, plant#1114522, qty#1114528, demandChannel#1114529, demandStream#1114531, kpis#1114533]
(84) Project
Arguments: [product#1114521, plant#1114522, kpis#1114533, qty#1114528, demandChannel#1114529, demandStream#1114531]
(85) Project
Arguments: [product#1114521, plant#1114522, kpis#1114533, cast(qty#1114528 as double) AS qty#1114544, demandChannel#1114529, demandStream#1114531]
(86) Union
Arguments: false, false
(87) Project
Arguments: [product#1114512, plant#1114513, transform(kpis#1114514, lambdafunction(struct(label, lambda kpi#1114549.label, dateTime, lambda kpi#1114549.datetime, value, lambda kpi#1114549.value), lambda kpi#1114549, false)) AS kpis#1114548, qty#1114539, demandChannel#1114519, demandStream#1114520]
(88) Project
Arguments: [product#1114512, plant#1114513, qty#1114539, demandChannel#1114519, demandStream#1114520, kpis#1114548]
(89) LogicalRDD
Arguments: [shardId#1115357, worklistShardItemId#1115358L, version#1115359, product#1115360, plant#1115361, periodStart#1115362, periodEnd#1115363, qty#1115364], false
(90) RepartitionByExpression
Arguments: [product#1115360, plant#1115361], 37
(91) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, version#1115359, product#1115360, plant#1115361, qty#1115364]
(92) LogicalRDD
Arguments: [shardId#1115365, worklistShardItemId#1115366L, version#1115367, product#1115368, plant#1115369, periodStart#1115370, periodEnd#1115371, qty#1115372], false
(93) RepartitionByExpression
Arguments: [product#1115368, plant#1115369], 37
(94) Project
Arguments: [shardId#1115365, worklistShardItemId#1115366L, version#1115367, product#1115368, plant#1115369, qty#1115372]
(95) LogicalRDD
Arguments: [shardId#1115373, worklistShardItemId#1115374L, qty#1115375, demandChannel#1115376, demandStream#1115377, kpis#1115378], false
(96) Project
Arguments: [shardId#1115373 AS cachedShardId#1115379, worklistShardItemId#1115374L AS cachedWorklistShardItemId#1115380L, qty#1115375 AS cachedQty#1115381, demandChannel#1115376, demandStream#1115377, kpis#1115378 AS cachedKpis#1115382]
(97) Join
Arguments: Inner, (((worklistShardItemId#1115366L = cachedWorklistShardItemId#1115380L) AND (shardId#1115365 = cachedShardId#1115379)) AND ((qty#1115372 = cachedQty#1115381) OR isnull(qty#1115372)))
(98) Project
Arguments: [shardId#1115365, worklistShardItemId#1115366L, version#1115367, product#1115368, plant#1115369]
(99) Deduplicate
Arguments: [plant#1115369, shardId#1115365, version#1115367, worklistShardItemId#1115366L, product#1115368]
(100) LogicalRDD
Arguments: [shardId#1115383, worklistShardItemId#1115384L, qty#1115385, demandChannel#1115386, demandStream#1115387, kpis#1115388], false
(101) Project
Arguments: [shardId#1115383 AS cachedShardId#1115389, worklistShardItemId#1115384L AS cachedWorklistShardItemId#1115390L, qty#1115385 AS cachedQty#1115391, demandChannel#1115386, demandStream#1115387, kpis#1115388 AS cachedKpis#1115392]
(102) Join
Arguments: Inner, ((worklistShardItemId#1115366L = cachedWorklistShardItemId#1115390L) AND (shardId#1115365 = cachedShardId#1115389))
(103) Project
Arguments: [shardId#1115365, worklistShardItemId#1115366L, version#1115367, product#1115368, plant#1115369, cachedQty#1115391 AS qty#1115393, demandChannel#1115386, demandStream#1115387, cachedKpis#1115392 AS kpis#1115394]
(104) Project
Arguments: [shardId#1115365, worklistShardItemId#1115366L, version#1115367, product#1115368, plant#1115369, qty#1115393]
(105) LogicalRDD
Arguments: [shardId#1115395, worklistShardItemId#1115396L, version#1115397, product#1115398, plant#1115399, periodStart#1115400, periodEnd#1115401, qty#1115402], false
(106) RepartitionByExpression
Arguments: [product#1115398, plant#1115399], 37
(107) Project
Arguments: [shardId#1115395, worklistShardItemId#1115396L, version#1115397, product#1115398, plant#1115399, qty#1115402]
(108) LogicalRDD
Arguments: [shardId#1115403, worklistShardItemId#1115404L, qty#1115405, demandChannel#1115406, demandStream#1115407, kpis#1115408], false
(109) Project
Arguments: [shardId#1115403 AS cachedShardId#1115409, worklistShardItemId#1115404L AS cachedWorklistShardItemId#1115410L, qty#1115405 AS cachedQty#1115411, demandChannel#1115406, demandStream#1115407, kpis#1115408 AS cachedKpis#1115412]
(110) Join
Arguments: Inner, (((worklistShardItemId#1115396L = cachedWorklistShardItemId#1115410L) AND (shardId#1115395 = cachedShardId#1115409)) AND isnull(qty#1115402))
(111) Project
Arguments: [shardId#1115395, worklistShardItemId#1115396L, version#1115397, product#1115398, plant#1115399, qty#1115402]
(112) Project
Arguments: [shardId#1115395, worklistShardItemId#1115396L, version#1115397, product#1115398, plant#1115399, qty#1115402]
(113) Union
Arguments: false, false
(114) Join
Arguments: LeftAnti, ((((((shardId#1115357 <=> shardId#1115365) AND (worklistShardItemId#1115358L <=> worklistShardItemId#1115366L)) AND (version#1115359 <=> version#1115367)) AND (product#1115360 <=> product#1115368)) AND (plant#1115361 <=> plant#1115369)) AND (qty#1115364 <=> qty#1115393))
(115) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, version#1115359, product#1115360, plant#1115361, qty#1115364]
(116) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, version#1115359, product#1115360, plant#1115361, qty#1115364, cast(null as string) AS demandChannel#1115413]
(117) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, version#1115359, product#1115360, plant#1115361, qty#1115364, demandChannel#1115413, cast(null as string) AS demandStream#1115414]
(118) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, version#1115359, product#1115360, plant#1115361, qty#1115364, demandChannel#1115413, demandStream#1115414, array() AS kpis#1115415]
(119) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, version#1115359, product#1115360, plant#1115361, qty#1115364, demandChannel#1115413, demandStream#1115414, kpis#1115415, true AS isNewlyCalculated#1115416]
(120) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, version#1115359, product#1115360, plant#1115361, qty#1115364, demandChannel#1115413, demandStream#1115414, cast(kpis#1115415 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1115417, isNewlyCalculated#1115416]
(121) LogicalRDD
Arguments: [shardId#1115418, worklistShardItemId#1115419L, version#1115420, product#1115421, plant#1115422, periodStart#1115423, periodEnd#1115424, qty#1115425], false
(122) RepartitionByExpression
Arguments: [product#1115421, plant#1115422], 37
(123) Project
Arguments: [shardId#1115418, worklistShardItemId#1115419L, version#1115420, product#1115421, plant#1115422, qty#1115425]
(124) LogicalRDD
Arguments: [shardId#1115426, worklistShardItemId#1115427L, qty#1115428, demandChannel#1115429, demandStream#1115430, kpis#1115431], false
(125) Project
Arguments: [shardId#1115426 AS cachedShardId#1115432, worklistShardItemId#1115427L AS cachedWorklistShardItemId#1115433L, qty#1115428 AS cachedQty#1115434, demandChannel#1115429, demandStream#1115430, kpis#1115431 AS cachedKpis#1115435]
(126) Join
Arguments: Inner, (((worklistShardItemId#1115419L = cachedWorklistShardItemId#1115433L) AND (shardId#1115418 = cachedShardId#1115432)) AND ((qty#1115425 = cachedQty#1115434) OR isnull(qty#1115425)))
(127) Project
Arguments: [shardId#1115418, worklistShardItemId#1115419L, version#1115420, product#1115421, plant#1115422]
(128) Deduplicate
Arguments: [plant#1115422, shardId#1115418, version#1115420, worklistShardItemId#1115419L, product#1115421]
(129) LogicalRDD
Arguments: [shardId#1115436, worklistShardItemId#1115437L, qty#1115438, demandChannel#1115439, demandStream#1115440, kpis#1115441], false
(130) Project
Arguments: [shardId#1115436 AS cachedShardId#1115442, worklistShardItemId#1115437L AS cachedWorklistShardItemId#1115443L, qty#1115438 AS cachedQty#1115444, demandChannel#1115439, demandStream#1115440, kpis#1115441 AS cachedKpis#1115445]
(131) Join
Arguments: Inner, ((worklistShardItemId#1115419L = cachedWorklistShardItemId#1115443L) AND (shardId#1115418 = cachedShardId#1115442))
(132) Project
Arguments: [shardId#1115418, worklistShardItemId#1115419L, version#1115420, product#1115421, plant#1115422, cachedQty#1115444 AS qty#1115446, demandChannel#1115439, demandStream#1115440, cachedKpis#1115445 AS kpis#1115447]
(133) Project
Arguments: [shardId#1115418, worklistShardItemId#1115419L, version#1115420, product#1115421, plant#1115422, qty#1115446, demandChannel#1115439, demandStream#1115440, kpis#1115447, false AS isNewlyCalculated#1115448]
(134) Project
Arguments: [shardId#1115418, worklistShardItemId#1115419L, version#1115420, product#1115421, plant#1115422, qty#1115446, demandChannel#1115439, demandStream#1115440, kpis#1115447, isNewlyCalculated#1115448]
(135) Union
Arguments: false, false
(136) Filter
Arguments: (isNewlyCalculated#1115416 <=> true)
(137) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, product#1115360, plant#1115361, qty#1115364, kpis#1115417]
(138) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, product#1115360, plant#1115361, qty#1115364]
(139) Deduplicate
Arguments: [plant#1115361, shardId#1115357, qty#1115364, worklistShardItemId#1115358L, product#1115360]
(140) Join
Arguments: Inner, ((product#1114512 <=> product#1115360) AND ((plant#1114513 <=> plant#1115361) AND ((qty#1114539 <=> qty#1115364) OR isnull(qty#1115364))))
(141) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, qty#1114539, demandChannel#1114519, demandStream#1114520, kpis#1114548]
(142) Deduplicate
Arguments: [demandChannel#1114519, shardId#1115357, qty#1114539, worklistShardItemId#1115358L, demandStream#1114520]
(143) Project
Arguments: [shardId#1115357, worklistShardItemId#1115358L, qty#1114539, demandChannel#1114519, demandStream#1114520, kpis#1114548]
(144) Union
Arguments: false, false
(145) LogicalRDD
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451, product#1115452, plant#1115453, periodStart#1115454, periodEnd#1115455, qty#1115456], false
(146) RepartitionByExpression
Arguments: [product#1115452, plant#1115453], 37
(147) Project
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451, product#1115452, plant#1115453, qty#1115456]
(148) LogicalRDD
Arguments: [shardId#1115457, worklistShardItemId#1115458L, version#1115459, product#1115460, plant#1115461, periodStart#1115462, periodEnd#1115463, qty#1115464], false
(149) RepartitionByExpression
Arguments: [product#1115460, plant#1115461], 37
(150) Project
Arguments: [shardId#1115457, worklistShardItemId#1115458L, version#1115459, product#1115460, plant#1115461, qty#1115464]
(151) LogicalRDD
Arguments: [shardId#1115465, worklistShardItemId#1115466L, qty#1115467, demandChannel#1115468, demandStream#1115469, kpis#1115470], false
(152) Project
Arguments: [shardId#1115465 AS cachedShardId#1115471, worklistShardItemId#1115466L AS cachedWorklistShardItemId#1115472L, qty#1115467 AS cachedQty#1115473, demandChannel#1115468, demandStream#1115469, kpis#1115470 AS cachedKpis#1115474]
(153) Join
Arguments: Inner, (((worklistShardItemId#1115458L = cachedWorklistShardItemId#1115472L) AND (shardId#1115457 = cachedShardId#1115471)) AND ((qty#1115464 = cachedQty#1115473) OR isnull(qty#1115464)))
(154) Project
Arguments: [shardId#1115457, worklistShardItemId#1115458L, version#1115459, product#1115460, plant#1115461]
(155) Deduplicate
Arguments: [plant#1115461, shardId#1115457, version#1115459, worklistShardItemId#1115458L, product#1115460]
(156) LogicalRDD
Arguments: [shardId#1115475, worklistShardItemId#1115476L, qty#1115477, demandChannel#1115478, demandStream#1115479, kpis#1115480], false
(157) Project
Arguments: [shardId#1115475 AS cachedShardId#1115481, worklistShardItemId#1115476L AS cachedWorklistShardItemId#1115482L, qty#1115477 AS cachedQty#1115483, demandChannel#1115478, demandStream#1115479, kpis#1115480 AS cachedKpis#1115484]
(158) Join
Arguments: Inner, ((worklistShardItemId#1115458L = cachedWorklistShardItemId#1115482L) AND (shardId#1115457 = cachedShardId#1115481))
(159) Project
Arguments: [shardId#1115457, worklistShardItemId#1115458L, version#1115459, product#1115460, plant#1115461, cachedQty#1115483 AS qty#1115485, demandChannel#1115478, demandStream#1115479, cachedKpis#1115484 AS kpis#1115486]
(160) Project
Arguments: [shardId#1115457, worklistShardItemId#1115458L, version#1115459, product#1115460, plant#1115461, qty#1115485]
(161) LogicalRDD
Arguments: [shardId#1115487, worklistShardItemId#1115488L, version#1115489, product#1115490, plant#1115491, periodStart#1115492, periodEnd#1115493, qty#1115494], false
(162) RepartitionByExpression
Arguments: [product#1115490, plant#1115491], 37
(163) Project
Arguments: [shardId#1115487, worklistShardItemId#1115488L, version#1115489, product#1115490, plant#1115491, qty#1115494]
(164) LogicalRDD
Arguments: [shardId#1115495, worklistShardItemId#1115496L, qty#1115497, demandChannel#1115498, demandStream#1115499, kpis#1115500], false
(165) Project
Arguments: [shardId#1115495 AS cachedShardId#1115501, worklistShardItemId#1115496L AS cachedWorklistShardItemId#1115502L, qty#1115497 AS cachedQty#1115503, demandChannel#1115498, demandStream#1115499, kpis#1115500 AS cachedKpis#1115504]
(166) Join
Arguments: Inner, (((worklistShardItemId#1115488L = cachedWorklistShardItemId#1115502L) AND (shardId#1115487 = cachedShardId#1115501)) AND isnull(qty#1115494))
(167) Project
Arguments: [shardId#1115487, worklistShardItemId#1115488L, version#1115489, product#1115490, plant#1115491, qty#1115494]
(168) Project
Arguments: [shardId#1115487, worklistShardItemId#1115488L, version#1115489, product#1115490, plant#1115491, qty#1115494]
(169) Union
Arguments: false, false
(170) Join
Arguments: LeftAnti, ((((((shardId#1115449 <=> shardId#1115457) AND (worklistShardItemId#1115450L <=> worklistShardItemId#1115458L)) AND (version#1115451 <=> version#1115459)) AND (product#1115452 <=> product#1115460)) AND (plant#1115453 <=> plant#1115461)) AND (qty#1115456 <=> qty#1115485))
(171) Project
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451, product#1115452, plant#1115453, qty#1115456]
(172) Project
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451, product#1115452, plant#1115453, qty#1115456, cast(null as string) AS demandChannel#1115505]
(173) Project
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451, product#1115452, plant#1115453, qty#1115456, demandChannel#1115505, cast(null as string) AS demandStream#1115506]
(174) Project
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451, product#1115452, plant#1115453, qty#1115456, demandChannel#1115505, demandStream#1115506, array() AS kpis#1115507]
(175) Project
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451, product#1115452, plant#1115453, qty#1115456, demandChannel#1115505, demandStream#1115506, kpis#1115507, true AS isNewlyCalculated#1115508]
(176) Project
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451, product#1115452, plant#1115453, qty#1115456, demandChannel#1115505, demandStream#1115506, cast(kpis#1115507 as array<struct<label:string,dateTime:timestamp,value:double>>) AS kpis#1115509, isNewlyCalculated#1115508]
(177) LogicalRDD
Arguments: [shardId#1115510, worklistShardItemId#1115511L, version#1115512, product#1115513, plant#1115514, periodStart#1115515, periodEnd#1115516, qty#1115517], false
(178) RepartitionByExpression
Arguments: [product#1115513, plant#1115514], 37
(179) Project
Arguments: [shardId#1115510, worklistShardItemId#1115511L, version#1115512, product#1115513, plant#1115514, qty#1115517]
(180) LogicalRDD
Arguments: [shardId#1115518, worklistShardItemId#1115519L, qty#1115520, demandChannel#1115521, demandStream#1115522, kpis#1115523], false
(181) Project
Arguments: [shardId#1115518 AS cachedShardId#1115524, worklistShardItemId#1115519L AS cachedWorklistShardItemId#1115525L, qty#1115520 AS cachedQty#1115526, demandChannel#1115521, demandStream#1115522, kpis#1115523 AS cachedKpis#1115527]
(182) Join
Arguments: Inner, (((worklistShardItemId#1115511L = cachedWorklistShardItemId#1115525L) AND (shardId#1115510 = cachedShardId#1115524)) AND ((qty#1115517 = cachedQty#1115526) OR isnull(qty#1115517)))
(183) Project
Arguments: [shardId#1115510, worklistShardItemId#1115511L, version#1115512, product#1115513, plant#1115514]
(184) Deduplicate
Arguments: [plant#1115514, shardId#1115510, version#1115512, worklistShardItemId#1115511L, product#1115513]
(185) LogicalRDD
Arguments: [shardId#1115528, worklistShardItemId#1115529L, qty#1115530, demandChannel#1115531, demandStream#1115532, kpis#1115533], false
(186) Project
Arguments: [shardId#1115528 AS cachedShardId#1115534, worklistShardItemId#1115529L AS cachedWorklistShardItemId#1115535L, qty#1115530 AS cachedQty#1115536, demandChannel#1115531, demandStream#1115532, kpis#1115533 AS cachedKpis#1115537]
(187) Join
Arguments: Inner, ((worklistShardItemId#1115511L = cachedWorklistShardItemId#1115535L) AND (shardId#1115510 = cachedShardId#1115534))
(188) Project
Arguments: [shardId#1115510, worklistShardItemId#1115511L, version#1115512, product#1115513, plant#1115514, cachedQty#1115536 AS qty#1115538, demandChannel#1115531, demandStream#1115532, cachedKpis#1115537 AS kpis#1115539]
(189) Project
Arguments: [shardId#1115510, worklistShardItemId#1115511L, version#1115512, product#1115513, plant#1115514, qty#1115538, demandChannel#1115531, demandStream#1115532, kpis#1115539, false AS isNewlyCalculated#1115540]
(190) Project
Arguments: [shardId#1115510, worklistShardItemId#1115511L, version#1115512, product#1115513, plant#1115514, qty#1115538, demandChannel#1115531, demandStream#1115532, kpis#1115539, isNewlyCalculated#1115540]
(191) Union
Arguments: false, false
(192) Project
Arguments: [shardId#1115449, worklistShardItemId#1115450L, version#1115451]
(193) Aggregate
Arguments: [shardId#1115449, worklistShardItemId#1115450L], [shardId#1115449, worklistShardItemId#1115450L, (max(version#1115451) + 1) AS version#1115352]
(194) Join
Arguments: Inner, ((shardId#1100457 = shardId#1115449) AND (worklistShardItemId#1100458L = worklistShardItemId#1115450L))
(195) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, qty#1100464, demandChannel#1111815, demandStream#1111816, kpis#1111850, version#1115352]
(196) Project
Arguments: [shardId#1100457, worklistShardItemId#1100458L, version#1115352, qty#1100464, demandChannel#1111815, demandStream#1111816, kpis#1111850]