== Physical Plan ==
AdaptiveSparkPlan (2952)
+- == Current Plan ==
ResultQueryStage (290)
+- * Project (289)
+- * BroadcastHashJoin LeftOuter BuildRight (288)
:- * Project (247)
: +- * Project (246)
: +- AQEShuffleRead (245)
: +- ShuffleQueryStage (244), Statistics(sizeInBytes=32.8 KiB, rowCount=100)
: +- Exchange (243)
: +- * Project (242)
: +- * BroadcastHashJoin LeftOuter BuildRight (241)
: :- AQEShuffleRead (190)
: : +- ShuffleQueryStage (189), Statistics(sizeInBytes=13.3 KiB, rowCount=100)
: : +- Exchange (188)
: : +- * Project (187)
: : +- * BroadcastHashJoin LeftOuter BuildRight (186)
: : :- * Project (38)
: : : +- * Project (37)
: : : +- * Generate (36)
: : : +- * Generate (35)
: : : +- * Project (34)
: : : +- Project (33)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (32)
: : : :- * Project (23)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (22)
: : : : :- * Project (14)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (13)
: : : : : :- ShuffleQueryStage (4), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : +- Exchange (3)
: : : : : : +- * ColumnarToRow (2)
: : : : : : +- Scan parquet (1)
: : : : : +- BroadcastQueryStage (12), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (11)
: : : : : +- * Project (10)
: : : : : +- ShuffleQueryStage (9), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (8)
: : : : : +- * Project (7)
: : : : : +- * ColumnarToRow (6)
: : : : : +- Scan parquet (5)
: : : : +- BroadcastQueryStage (21), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- BroadcastExchange (20)
: : : : +- ShuffleQueryStage (19), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: : : : +- Exchange (18)
: : : : +- * Project (17)
: : : : +- * ColumnarToRow (16)
: : : : +- Scan parquet (15)
: : : +- BroadcastQueryStage (31), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- BroadcastExchange (30)
: : : +- ShuffleQueryStage (29), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : +- Exchange (28)
: : : +- * Project (27)
: : : +- * Filter (26)
: : : +- * ColumnarToRow (25)
: : : +- Scan parquet (24)
: : +- BroadcastQueryStage (185), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : +- BroadcastExchange (184)
: : +- * HashAggregate (183)
: : +- AQEShuffleRead (182)
: : +- ShuffleQueryStage (181), Statistics(sizeInBytes=3.5 KiB, rowCount=34)
: : +- Exchange (180)
: : +- * HashAggregate (179)
: : +- * Project (178)
: : +- * BroadcastHashJoin Inner BuildLeft (177)
: : :- BroadcastQueryStage (128), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (127)
: : : +- AQEShuffleRead (126)
: : : +- ShuffleQueryStage (125), Statistics(sizeInBytes=4.0 KiB, rowCount=34)
: : : +- Exchange (124)
: : : +- * Project (123)
: : : +- * BroadcastHashJoin Inner BuildLeft (122)
: : : :- BroadcastQueryStage (100), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : +- BroadcastExchange (99)
: : : : +- AQEShuffleRead (98)
: : : : +- ShuffleQueryStage (97), Statistics(sizeInBytes=7.5 KiB, rowCount=64)
: : : : +- Exchange (96)
: : : : +- * Project (95)
: : : : +- * Filter (94)
: : : : +- * Generate (93)
: : : : +- * Filter (92)
: : : : +- ObjectHashAggregate (91)
: : : : +- ObjectHashAggregate (90)
: : : : +- Generate (89)
: : : : +- * BroadcastHashJoin Inner BuildLeft (88)
: : : : :- BroadcastQueryStage (46), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : +- BroadcastExchange (45)
: : : : : +- ShuffleQueryStage (44), Statistics(sizeInBytes=252.4 KiB, rowCount=419)
: : : : : +- Exchange (43)
: : : : : +- * Project (42)
: : : : : +- * Filter (41)
: : : : : +- * ColumnarToRow (40)
: : : : : +- Scan parquet (39)
: : : : +- * Project (87)
: : : : +- * BroadcastHashJoin Inner BuildLeft (86)
: : : : :- BroadcastQueryStage (59), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : +- BroadcastExchange (58)
: : : : : +- * Project (57)
: : : : : +- * Generate (56)
: : : : : +- * Project (55)
: : : : : +- * Filter (54)
: : : : : +- * Generate (53)
: : : : : +- ShuffleQueryStage (52), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : : : : +- Exchange (51)
: : : : : +- * Project (50)
: : : : : +- * Filter (49)
: : : : : +- * ColumnarToRow (48)
: : : : : +- Scan parquet (47)
: : : : +- * HashAggregate (85)
: : : : +- AQEShuffleRead (84)
: : : : +- ShuffleQueryStage (83), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : +- Exchange (82)
: : : : +- * HashAggregate (81)
: : : : +- * Project (80)
: : : : +- * Generate (79)
: : : : +- * Project (78)
: : : : +- * Generate (77)
: : : : +- Project (76)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (75)
: : : : :- * Project (72)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (71)
: : : : : :- * Project (68)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (67)
: : : : : : :- ShuffleQueryStage (64), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : : : : : : +- Exchange (63)
: : : : : : : +- * Filter (62)
: : : : : : : +- * ColumnarToRow (61)
: : : : : : : +- Scan parquet (60)
: : : : : : +- BroadcastQueryStage (66), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (65)
: : : : : +- BroadcastQueryStage (70), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (69)
: : : : +- BroadcastQueryStage (74), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (73)
: : : +- * Project (121)
: : : +- * Generate (120)
: : : +- * Project (119)
: : : +- * Generate (118)
: : : +- Project (117)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (116)
: : : :- * Project (113)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (112)
: : : : :- * Project (109)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (108)
: : : : : :- ShuffleQueryStage (105), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : +- Exchange (104)
: : : : : : +- * Filter (103)
: : : : : : +- * ColumnarToRow (102)
: : : : : : +- Scan parquet (101)
: : : : : +- BroadcastQueryStage (107), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- ReusedExchange (106)
: : : : +- BroadcastQueryStage (111), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (110)
: : : +- BroadcastQueryStage (115), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (114)
: : +- AQEShuffleRead (176)
: : +- ShuffleQueryStage (175), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : +- Exchange (174)
: : +- * HashAggregate (173)
: : +- * HashAggregate (172)
: : +- * Project (171)
: : +- * BroadcastHashJoin Inner BuildLeft (170)
: : :- BroadcastQueryStage (151), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : +- BroadcastExchange (150)
: : : +- AQEShuffleRead (149)
: : : +- ShuffleQueryStage (148), Statistics(sizeInBytes=7.0 KiB, rowCount=64)
: : : +- Exchange (147)
: : : +- * Project (146)
: : : +- * Filter (145)
: : : +- * Generate (144)
: : : +- * Filter (143)
: : : +- ObjectHashAggregate (142)
: : : +- ObjectHashAggregate (141)
: : : +- Generate (140)
: : : +- * BroadcastHashJoin Inner BuildLeft (139)
: : : :- BroadcastQueryStage (130), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : +- ReusedExchange (129)
: : : +- * Project (138)
: : : +- * BroadcastHashJoin Inner BuildLeft (137)
: : : :- BroadcastQueryStage (132), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : +- ReusedExchange (131)
: : : +- * HashAggregate (136)
: : : +- AQEShuffleRead (135)
: : : +- ShuffleQueryStage (134), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : +- ReusedExchange (133)
: : +- * Project (169)
: : +- * Generate (168)
: : +- * Project (167)
: : +- * Generate (166)
: : +- Project (165)
: : +- * BroadcastHashJoin LeftOuter BuildRight (164)
: : :- * Project (161)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (160)
: : : :- * Project (157)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (156)
: : : : :- ShuffleQueryStage (153), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : +- ReusedExchange (152)
: : : : +- BroadcastQueryStage (155), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : +- ReusedExchange (154)
: : : +- BroadcastQueryStage (159), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : +- ReusedExchange (158)
: : +- BroadcastQueryStage (163), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : +- ReusedExchange (162)
: +- BroadcastQueryStage (240), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: +- BroadcastExchange (239)
: +- AQEShuffleRead (238)
: +- ShuffleQueryStage (237), Statistics(sizeInBytes=28.1 KiB, rowCount=100)
: +- Exchange (236)
: +- * SerializeFromObject (235)
: +- * MapElements (234)
: +- * DeserializeToObject (233)
: +- ObjectHashAggregate (232)
: +- ObjectHashAggregate (231)
: +- * Project (230)
: +- * BroadcastHashJoin LeftOuter BuildRight (229)
: :- * Project (223)
: : +- * BroadcastHashJoin LeftOuter BuildRight (222)
: : :- * Project (219)
: : : +- * Project (218)
: : : +- * Generate (217)
: : : +- * Generate (216)
: : : +- * Project (215)
: : : +- Project (214)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (213)
: : : :- * Project (210)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (209)
: : : : :- * BroadcastHashJoin LeftOuter BuildRight (201)
: : : : : :- ShuffleQueryStage (192), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : +- ReusedExchange (191)
: : : : : +- BroadcastQueryStage (200), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (199)
: : : : : +- * Project (198)
: : : : : +- ShuffleQueryStage (197), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (196)
: : : : : +- * Project (195)
: : : : : +- * ColumnarToRow (194)
: : : : : +- Scan parquet (193)
: : : : +- BroadcastQueryStage (208), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- BroadcastExchange (207)
: : : : +- ShuffleQueryStage (206), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : +- Exchange (205)
: : : : +- * Project (204)
: : : : +- * ColumnarToRow (203)
: : : : +- Scan parquet (202)
: : : +- BroadcastQueryStage (212), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (211)
: : +- BroadcastQueryStage (221), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : +- ReusedExchange (220)
: +- BroadcastQueryStage (228), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: +- BroadcastExchange (227)
: +- * Filter (226)
: +- * ColumnarToRow (225)
: +- Scan parquet (224)
+- BroadcastQueryStage (287), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
+- BroadcastExchange (286)
+- * Filter (285)
+- * SerializeFromObject (284)
+- * MapElements (283)
+- * DeserializeToObject (282)
+- Project (281)
+- * Project (280)
+- AQEShuffleRead (279)
+- ShuffleQueryStage (278), Statistics(sizeInBytes=114.7 KiB, rowCount=100)
+- Exchange (277)
+- * Project (276)
+- * BroadcastHashJoin LeftOuter BuildRight (275)
:- AQEShuffleRead (272)
: +- ShuffleQueryStage (271), Statistics(sizeInBytes=95.2 KiB, rowCount=100)
: +- Exchange (270)
: +- * Project (269)
: +- * BroadcastHashJoin LeftOuter BuildRight (268)
: :- * Project (265)
: : +- * Project (264)
: : +- * Generate (263)
: : +- * Generate (262)
: : +- * Project (261)
: : +- Project (260)
: : +- * BroadcastHashJoin LeftOuter BuildRight (259)
: : :- * Project (256)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (255)
: : : :- * BroadcastHashJoin LeftOuter BuildRight (252)
: : : : :- ShuffleQueryStage (249), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : +- ReusedExchange (248)
: : : : +- BroadcastQueryStage (251), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : +- ReusedExchange (250)
: : : +- BroadcastQueryStage (254), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : +- ReusedExchange (253)
: : +- BroadcastQueryStage (258), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : +- ReusedExchange (257)
: +- BroadcastQueryStage (267), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: +- ReusedExchange (266)
+- BroadcastQueryStage (274), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
+- ReusedExchange (273)
+- == Initial Plan ==
Project (2951)
+- SortMergeJoin LeftOuter (2950)
:- Project (2023)
: +- SortMergeJoin LeftOuter (2022)
: :- Sort (728)
: : +- Exchange (727)
: : +- Project (726)
: : +- SortMergeJoin LeftOuter (725)
: : :- Sort (500)
: : : +- Exchange (499)
: : : +- Project (498)
: : : +- SortMergeJoin LeftOuter (497)
: : : :- Sort (314)
: : : : +- Project (313)
: : : : +- Project (312)
: : : : +- Generate (311)
: : : : +- Generate (310)
: : : : +- Project (309)
: : : : +- Project (308)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (307)
: : : : :- Project (302)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (301)
: : : : : :- Project (297)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (296)
: : : : : : :- Exchange (291)
: : : : : : : +- Scan parquet (1)
: : : : : : +- BroadcastExchange (295)
: : : : : : +- Project (294)
: : : : : : +- Exchange (293)
: : : : : : +- Project (292)
: : : : : : +- Scan parquet (5)
: : : : : +- BroadcastExchange (300)
: : : : : +- Exchange (299)
: : : : : +- Project (298)
: : : : : +- Scan parquet (15)
: : : : +- BroadcastExchange (306)
: : : : +- Exchange (305)
: : : : +- Project (304)
: : : : +- Filter (303)
: : : : +- Scan parquet (24)
: : : +- Sort (496)
: : : +- HashAggregate (495)
: : : +- Exchange (494)
: : : +- HashAggregate (493)
: : : +- Project (492)
: : : +- SortMergeJoin Inner (491)
: : : :- Sort (399)
: : : : +- Exchange (398)
: : : : +- Project (397)
: : : : +- SortMergeJoin Inner (396)
: : : : :- Sort (368)
: : : : : +- Exchange (367)
: : : : : +- Project (366)
: : : : : +- Filter (365)
: : : : : +- Generate (364)
: : : : : +- Filter (363)
: : : : : +- ObjectHashAggregate (362)
: : : : : +- ObjectHashAggregate (361)
: : : : : +- Generate (360)
: : : : : +- BroadcastHashJoin Inner BuildLeft (359)
: : : : : :- BroadcastExchange (318)
: : : : : : +- Exchange (317)
: : : : : : +- Project (316)
: : : : : : +- Filter (315)
: : : : : : +- Scan parquet (39)
: : : : : +- Project (358)
: : : : : +- BroadcastHashJoin Inner BuildLeft (357)
: : : : : :- BroadcastExchange (327)
: : : : : : +- Project (326)
: : : : : : +- Generate (325)
: : : : : : +- Project (324)
: : : : : : +- Filter (323)
: : : : : : +- Generate (322)
: : : : : : +- Exchange (321)
: : : : : : +- Project (320)
: : : : : : +- Filter (319)
: : : : : : +- Scan parquet (47)
: : : : : +- HashAggregate (356)
: : : : : +- Exchange (355)
: : : : : +- HashAggregate (354)
: : : : : +- Project (353)
: : : : : +- Generate (352)
: : : : : +- Project (351)
: : : : : +- Generate (350)
: : : : : +- Project (349)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (348)
: : : : : :- Project (342)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (341)
: : : : : : :- Project (336)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (335)
: : : : : : : :- Exchange (329)
: : : : : : : : +- Filter (328)
: : : : : : : : +- Scan parquet (60)
: : : : : : : +- BroadcastExchange (334)
: : : : : : : +- Project (333)
: : : : : : : +- Exchange (332)
: : : : : : : +- Project (331)
: : : : : : : +- Scan parquet (330)
: : : : : : +- BroadcastExchange (340)
: : : : : : +- Exchange (339)
: : : : : : +- Project (338)
: : : : : : +- Scan parquet (337)
: : : : : +- BroadcastExchange (347)
: : : : : +- Exchange (346)
: : : : : +- Project (345)
: : : : : +- Filter (344)
: : : : : +- Scan parquet (343)
: : : : +- Sort (395)
: : : : +- Project (394)
: : : : +- Generate (393)
: : : : +- Project (392)
: : : : +- Generate (391)
: : : : +- Project (390)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (389)
: : : : :- Project (383)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (382)
: : : : : :- Project (377)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (376)
: : : : : : :- Exchange (370)
: : : : : : : +- Filter (369)
: : : : : : : +- Scan parquet (101)
: : : : : : +- BroadcastExchange (375)
: : : : : : +- Project (374)
: : : : : : +- Exchange (373)
: : : : : : +- Project (372)
: : : : : : +- Scan parquet (371)
: : : : : +- BroadcastExchange (381)
: : : : : +- Exchange (380)
: : : : : +- Project (379)
: : : : : +- Scan parquet (378)
: : : : +- BroadcastExchange (388)
: : : : +- Exchange (387)
: : : : +- Project (386)
: : : : +- Filter (385)
: : : : +- Scan parquet (384)
: : : +- Sort (490)
: : : +- Exchange (489)
: : : +- HashAggregate (488)
: : : +- HashAggregate (487)
: : : +- Project (486)
: : : +- SortMergeJoin Inner (485)
: : : :- Sort (456)
: : : : +- Exchange (455)
: : : : +- Project (454)
: : : : +- Filter (453)
: : : : +- Generate (452)
: : : : +- Filter (451)
: : : : +- ObjectHashAggregate (450)
: : : : +- ObjectHashAggregate (449)
: : : : +- Generate (448)
: : : : +- BroadcastHashJoin Inner BuildLeft (447)
: : : : :- BroadcastExchange (404)
: : : : : +- Exchange (403)
: : : : : +- Project (402)
: : : : : +- Filter (401)
: : : : : +- Scan parquet (400)
: : : : +- Project (446)
: : : : +- BroadcastHashJoin Inner BuildLeft (445)
: : : : :- BroadcastExchange (414)
: : : : : +- Project (413)
: : : : : +- Generate (412)
: : : : : +- Project (411)
: : : : : +- Filter (410)
: : : : : +- Generate (409)
: : : : : +- Exchange (408)
: : : : : +- Project (407)
: : : : : +- Filter (406)
: : : : : +- Scan parquet (405)
: : : : +- HashAggregate (444)
: : : : +- Exchange (443)
: : : : +- HashAggregate (442)
: : : : +- Project (441)
: : : : +- Generate (440)
: : : : +- Project (439)
: : : : +- Generate (438)
: : : : +- Project (437)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (436)
: : : : :- Project (430)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (429)
: : : : : :- Project (424)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (423)
: : : : : : :- Exchange (417)
: : : : : : : +- Filter (416)
: : : : : : : +- Scan parquet (415)
: : : : : : +- BroadcastExchange (422)
: : : : : : +- Project (421)
: : : : : : +- Exchange (420)
: : : : : : +- Project (419)
: : : : : : +- Scan parquet (418)
: : : : : +- BroadcastExchange (428)
: : : : : +- Exchange (427)
: : : : : +- Project (426)
: : : : : +- Scan parquet (425)
: : : : +- BroadcastExchange (435)
: : : : +- Exchange (434)
: : : : +- Project (433)
: : : : +- Filter (432)
: : : : +- Scan parquet (431)
: : : +- Sort (484)
: : : +- Project (483)
: : : +- Generate (482)
: : : +- Project (481)
: : : +- Generate (480)
: : : +- Project (479)
: : : +- BroadcastHashJoin LeftOuter BuildRight (478)
: : : :- Project (472)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (471)
: : : : :- Project (466)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (465)
: : : : : :- Exchange (459)
: : : : : : +- Filter (458)
: : : : : : +- Scan parquet (457)
: : : : : +- BroadcastExchange (464)
: : : : : +- Project (463)
: : : : : +- Exchange (462)
: : : : : +- Project (461)
: : : : : +- Scan parquet (460)
: : : : +- BroadcastExchange (470)
: : : : +- Exchange (469)
: : : : +- Project (468)
: : : : +- Scan parquet (467)
: : : +- BroadcastExchange (477)
: : : +- Exchange (476)
: : : +- Project (475)
: : : +- Filter (474)
: : : +- Scan parquet (473)
: : +- Sort (724)
: : +- Exchange (723)
: : +- SerializeFromObject (722)
: : +- MapElements (721)
: : +- DeserializeToObject (720)
: : +- ObjectHashAggregate (719)
: : +- ObjectHashAggregate (718)
: : +- Project (717)
: : +- BroadcastHashJoin LeftOuter BuildRight (716)
: : :- Project (713)
: : : +- SortMergeJoin LeftOuter (712)
: : : :- Sort (525)
: : : : +- Project (524)
: : : : +- Project (523)
: : : : +- Generate (522)
: : : : +- Generate (521)
: : : : +- Project (520)
: : : : +- Project (519)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (518)
: : : : :- Project (512)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (511)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (507)
: : : : : : :- Exchange (502)
: : : : : : : +- Scan parquet (501)
: : : : : : +- BroadcastExchange (506)
: : : : : : +- Project (505)
: : : : : : +- Exchange (504)
: : : : : : +- Project (503)
: : : : : : +- Scan parquet (193)
: : : : : +- BroadcastExchange (510)
: : : : : +- Exchange (509)
: : : : : +- Project (508)
: : : : : +- Scan parquet (202)
: : : : +- BroadcastExchange (517)
: : : : +- Exchange (516)
: : : : +- Project (515)
: : : : +- Filter (514)
: : : : +- Scan parquet (513)
: : : +- Sort (711)
: : : +- HashAggregate (710)
: : : +- Exchange (709)
: : : +- HashAggregate (708)
: : : +- Project (707)
: : : +- SortMergeJoin Inner (706)
: : : :- Sort (614)
: : : : +- Exchange (613)
: : : : +- Project (612)
: : : : +- SortMergeJoin Inner (611)
: : : : :- Sort (582)
: : : : : +- Exchange (581)
: : : : : +- Project (580)
: : : : : +- Filter (579)
: : : : : +- Generate (578)
: : : : : +- Filter (577)
: : : : : +- ObjectHashAggregate (576)
: : : : : +- ObjectHashAggregate (575)
: : : : : +- Generate (574)
: : : : : +- BroadcastHashJoin Inner BuildLeft (573)
: : : : : :- BroadcastExchange (530)
: : : : : : +- Exchange (529)
: : : : : : +- Project (528)
: : : : : : +- Filter (527)
: : : : : : +- Scan parquet (526)
: : : : : +- Project (572)
: : : : : +- BroadcastHashJoin Inner BuildLeft (571)
: : : : : :- BroadcastExchange (540)
: : : : : : +- Project (539)
: : : : : : +- Generate (538)
: : : : : : +- Project (537)
: : : : : : +- Filter (536)
: : : : : : +- Generate (535)
: : : : : : +- Exchange (534)
: : : : : : +- Project (533)
: : : : : : +- Filter (532)
: : : : : : +- Scan parquet (531)
: : : : : +- HashAggregate (570)
: : : : : +- Exchange (569)
: : : : : +- HashAggregate (568)
: : : : : +- Project (567)
: : : : : +- Generate (566)
: : : : : +- Project (565)
: : : : : +- Generate (564)
: : : : : +- Project (563)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (562)
: : : : : :- Project (556)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (555)
: : : : : : :- Project (550)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (549)
: : : : : : : :- Exchange (543)
: : : : : : : : +- Filter (542)
: : : : : : : : +- Scan parquet (541)
: : : : : : : +- BroadcastExchange (548)
: : : : : : : +- Project (547)
: : : : : : : +- Exchange (546)
: : : : : : : +- Project (545)
: : : : : : : +- Scan parquet (544)
: : : : : : +- BroadcastExchange (554)
: : : : : : +- Exchange (553)
: : : : : : +- Project (552)
: : : : : : +- Scan parquet (551)
: : : : : +- BroadcastExchange (561)
: : : : : +- Exchange (560)
: : : : : +- Project (559)
: : : : : +- Filter (558)
: : : : : +- Scan parquet (557)
: : : : +- Sort (610)
: : : : +- Project (609)
: : : : +- Generate (608)
: : : : +- Project (607)
: : : : +- Generate (606)
: : : : +- Project (605)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (604)
: : : : :- Project (598)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (597)
: : : : : :- Project (592)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (591)
: : : : : : :- Exchange (585)
: : : : : : : +- Filter (584)
: : : : : : : +- Scan parquet (583)
: : : : : : +- BroadcastExchange (590)
: : : : : : +- Project (589)
: : : : : : +- Exchange (588)
: : : : : : +- Project (587)
: : : : : : +- Scan parquet (586)
: : : : : +- BroadcastExchange (596)
: : : : : +- Exchange (595)
: : : : : +- Project (594)
: : : : : +- Scan parquet (593)
: : : : +- BroadcastExchange (603)
: : : : +- Exchange (602)
: : : : +- Project (601)
: : : : +- Filter (600)
: : : : +- Scan parquet (599)
: : : +- Sort (705)
: : : +- Exchange (704)
: : : +- HashAggregate (703)
: : : +- HashAggregate (702)
: : : +- Project (701)
: : : +- SortMergeJoin Inner (700)
: : : :- Sort (671)
: : : : +- Exchange (670)
: : : : +- Project (669)
: : : : +- Filter (668)
: : : : +- Generate (667)
: : : : +- Filter (666)
: : : : +- ObjectHashAggregate (665)
: : : : +- ObjectHashAggregate (664)
: : : : +- Generate (663)
: : : : +- BroadcastHashJoin Inner BuildLeft (662)
: : : : :- BroadcastExchange (619)
: : : : : +- Exchange (618)
: : : : : +- Project (617)
: : : : : +- Filter (616)
: : : : : +- Scan parquet (615)
: : : : +- Project (661)
: : : : +- BroadcastHashJoin Inner BuildLeft (660)
: : : : :- BroadcastExchange (629)
: : : : : +- Project (628)
: : : : : +- Generate (627)
: : : : : +- Project (626)
: : : : : +- Filter (625)
: : : : : +- Generate (624)
: : : : : +- Exchange (623)
: : : : : +- Project (622)
: : : : : +- Filter (621)
: : : : : +- Scan parquet (620)
: : : : +- HashAggregate (659)
: : : : +- Exchange (658)
: : : : +- HashAggregate (657)
: : : : +- Project (656)
: : : : +- Generate (655)
: : : : +- Project (654)
: : : : +- Generate (653)
: : : : +- Project (652)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (651)
: : : : :- Project (645)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (644)
: : : : : :- Project (639)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (638)
: : : : : : :- Exchange (632)
: : : : : : : +- Filter (631)
: : : : : : : +- Scan parquet (630)
: : : : : : +- BroadcastExchange (637)
: : : : : : +- Project (636)
: : : : : : +- Exchange (635)
: : : : : : +- Project (634)
: : : : : : +- Scan parquet (633)
: : : : : +- BroadcastExchange (643)
: : : : : +- Exchange (642)
: : : : : +- Project (641)
: : : : : +- Scan parquet (640)
: : : : +- BroadcastExchange (650)
: : : : +- Exchange (649)
: : : : +- Project (648)
: : : : +- Filter (647)
: : : : +- Scan parquet (646)
: : : +- Sort (699)
: : : +- Project (698)
: : : +- Generate (697)
: : : +- Project (696)
: : : +- Generate (695)
: : : +- Project (694)
: : : +- BroadcastHashJoin LeftOuter BuildRight (693)
: : : :- Project (687)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (686)
: : : : :- Project (681)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (680)
: : : : : :- Exchange (674)
: : : : : : +- Filter (673)
: : : : : : +- Scan parquet (672)
: : : : : +- BroadcastExchange (679)
: : : : : +- Project (678)
: : : : : +- Exchange (677)
: : : : : +- Project (676)
: : : : : +- Scan parquet (675)
: : : : +- BroadcastExchange (685)
: : : : +- Exchange (684)
: : : : +- Project (683)
: : : : +- Scan parquet (682)
: : : +- BroadcastExchange (692)
: : : +- Exchange (691)
: : : +- Project (690)
: : : +- Filter (689)
: : : +- Scan parquet (688)
: : +- BroadcastExchange (715)
: : +- Filter (714)
: : +- Scan parquet (224)
: +- Sort (2021)
: +- Project (2020)
: +- ObjectHashAggregate (2019)
: +- Exchange (2018)
: +- ObjectHashAggregate (2017)
: +- Union (2016)
: :- Filter (1554)
: : +- InMemoryTableScan (729)
: : +- InMemoryRelation (730)
: : +- AdaptiveSparkPlan (1553)
+- == Final Plan ==
ResultQueryStage (732)
+- EmptyRelation (731)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (1552)
+- ObjectHashAggregate (1551)
+- Exchange (1550)
+- ObjectHashAggregate (1549)
+- Project (1548)
+- Window (1547)
+- Sort (1546)
+- Exchange (1545)
+- Project (1544)
+- InMemoryTableScan (733)
+- InMemoryRelation (734)
+- AdaptiveSparkPlan (1543)
+- == Final Plan ==
ResultQueryStage (1050)
+- Project (1049)
+- * BroadcastHashJoin Inner BuildRight (1048)
:- * Project (1036)
: +- * SortMergeJoin Inner (1035)
: :- * Sort (1018)
: : +- ShuffleQueryStage (1017), Statistics(sizeInBytes=11.7 KiB, rowCount=100)
: : +- Exchange (1016)
: : +- * Project (1015)
: : +- * BroadcastHashJoin LeftOuter BuildRight (1014)
: : :- AQEShuffleRead (908)
: : : +- ShuffleQueryStage (907), Statistics(sizeInBytes=11.7 KiB, rowCount=100)
: : : +- Exchange (906)
: : : +- * Project (905)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (904)
: : : :- * Project (772)
: : : : +- * Generate (771)
: : : : +- * Project (770)
: : : : +- * Generate (769)
: : : : +- Project (768)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (767)
: : : : :- * Project (758)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (757)
: : : : : :- * Project (749)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (748)
: : : : : : :- ShuffleQueryStage (739), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (738)
: : : : : : : +- * Filter (737)
: : : : : : : +- * ColumnarToRow (736)
: : : : : : : +- Scan parquet (735)
: : : : : : +- BroadcastQueryStage (747), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- BroadcastExchange (746)
: : : : : : +- * Project (745)
: : : : : : +- ShuffleQueryStage (744), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : : +- Exchange (743)
: : : : : : +- * Project (742)
: : : : : : +- * ColumnarToRow (741)
: : : : : : +- Scan parquet (740)
: : : : : +- BroadcastQueryStage (756), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- BroadcastExchange (755)
: : : : : +- ShuffleQueryStage (754), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : : +- Exchange (753)
: : : : : +- * Project (752)
: : : : : +- * ColumnarToRow (751)
: : : : : +- Scan parquet (750)
: : : : +- BroadcastQueryStage (766), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- BroadcastExchange (765)
: : : : +- ShuffleQueryStage (764), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : : +- Exchange (763)
: : : : +- * Project (762)
: : : : +- * Filter (761)
: : : : +- * ColumnarToRow (760)
: : : : +- Scan parquet (759)
: : : +- BroadcastQueryStage (903), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (902)
: : : +- * HashAggregate (901)
: : : +- AQEShuffleRead (900)
: : : +- ShuffleQueryStage (899), Statistics(sizeInBytes=3.2 KiB, rowCount=34)
: : : +- Exchange (898)
: : : +- * HashAggregate (897)
: : : +- * Project (896)
: : : +- * BroadcastHashJoin Inner BuildLeft (895)
: : : :- BroadcastQueryStage (867), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : : +- BroadcastExchange (866)
: : : : +- AQEShuffleRead (865)
: : : : +- ShuffleQueryStage (864), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : : +- Exchange (863)
: : : : +- * Project (862)
: : : : +- * BroadcastHashJoin Inner BuildLeft (861)
: : : : :- BroadcastQueryStage (839), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : : +- BroadcastExchange (838)
: : : : : +- AQEShuffleRead (837)
: : : : : +- ShuffleQueryStage (836), Statistics(sizeInBytes=7.0 KiB, rowCount=64)
: : : : : +- Exchange (835)
: : : : : +- * Project (834)
: : : : : +- * Filter (833)
: : : : : +- * Generate (832)
: : : : : +- * Filter (831)
: : : : : +- ObjectHashAggregate (830)
: : : : : +- ObjectHashAggregate (829)
: : : : : +- Generate (828)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (827)
: : : : : :- BroadcastQueryStage (780), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : : +- BroadcastExchange (779)
: : : : : : +- ShuffleQueryStage (778), Statistics(sizeInBytes=252.4 KiB, rowCount=419)
: : : : : : +- Exchange (777)
: : : : : : +- * Project (776)
: : : : : : +- * Filter (775)
: : : : : : +- * ColumnarToRow (774)
: : : : : : +- Scan parquet (773)
: : : : : +- * Project (826)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (825)
: : : : : :- BroadcastQueryStage (793), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : : +- BroadcastExchange (792)
: : : : : : +- * Project (791)
: : : : : : +- * Generate (790)
: : : : : : +- * Project (789)
: : : : : : +- * Filter (788)
: : : : : : +- * Generate (787)
: : : : : : +- ShuffleQueryStage (786), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : : : : : +- Exchange (785)
: : : : : : +- * Project (784)
: : : : : : +- * Filter (783)
: : : : : : +- * ColumnarToRow (782)
: : : : : : +- Scan parquet (781)
: : : : : +- * HashAggregate (824)
: : : : : +- AQEShuffleRead (823)
: : : : : +- ShuffleQueryStage (822), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : : +- Exchange (821)
: : : : : +- * HashAggregate (820)
: : : : : +- * Project (819)
: : : : : +- * Generate (818)
: : : : : +- * Project (817)
: : : : : +- * Generate (816)
: : : : : +- Project (815)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (814)
: : : : : :- * Project (811)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (810)
: : : : : : :- * Project (802)
: : : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (801)
: : : : : : : :- ShuffleQueryStage (798), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : : : : : : : +- Exchange (797)
: : : : : : : : +- * Filter (796)
: : : : : : : : +- * ColumnarToRow (795)
: : : : : : : : +- Scan parquet (794)
: : : : : : : +- BroadcastQueryStage (800), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : : +- ReusedExchange (799)
: : : : : : +- BroadcastQueryStage (809), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : : +- BroadcastExchange (808)
: : : : : : +- ShuffleQueryStage (807), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: : : : : : +- Exchange (806)
: : : : : : +- * Project (805)
: : : : : : +- * ColumnarToRow (804)
: : : : : : +- Scan parquet (803)
: : : : : +- BroadcastQueryStage (813), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : : +- ReusedExchange (812)
: : : : +- * Project (860)
: : : : +- * Generate (859)
: : : : +- * Project (858)
: : : : +- * Generate (857)
: : : : +- Project (856)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (855)
: : : : :- * Project (852)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (851)
: : : : : :- * Project (848)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (847)
: : : : : : :- ShuffleQueryStage (844), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (843)
: : : : : : : +- * Filter (842)
: : : : : : : +- * ColumnarToRow (841)
: : : : : : : +- Scan parquet (840)
: : : : : : +- BroadcastQueryStage (846), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (845)
: : : : : +- BroadcastQueryStage (850), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (849)
: : : : +- BroadcastQueryStage (854), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (853)
: : : +- AQEShuffleRead (894)
: : : +- ShuffleQueryStage (893), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : +- Exchange (892)
: : : +- * HashAggregate (891)
: : : +- * HashAggregate (890)
: : : +- * Project (889)
: : : +- * BroadcastHashJoin Inner BuildLeft (888)
: : : :- BroadcastQueryStage (869), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : +- ReusedExchange (868)
: : : +- * Project (887)
: : : +- * Generate (886)
: : : +- * Project (885)
: : : +- * Generate (884)
: : : +- Project (883)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (882)
: : : :- * Project (879)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (878)
: : : : :- * Project (875)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (874)
: : : : : :- ShuffleQueryStage (871), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : +- ReusedExchange (870)
: : : : : +- BroadcastQueryStage (873), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- ReusedExchange (872)
: : : : +- BroadcastQueryStage (877), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (876)
: : : +- BroadcastQueryStage (881), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (880)
: : +- BroadcastQueryStage (1013), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: : +- BroadcastExchange (1012)
: : +- AQEShuffleRead (1011)
: : +- ShuffleQueryStage (1010), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : +- Exchange (1009)
: : +- * SerializeFromObject (1008)
: : +- * MapElements (1007)
: : +- * DeserializeToObject (1006)
: : +- ObjectHashAggregate (1005)
: : +- ObjectHashAggregate (1004)
: : +- * Project (1003)
: : +- * BroadcastHashJoin LeftOuter BuildRight (1002)
: : :- * Project (996)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (995)
: : : :- * Project (934)
: : : : +- * Project (933)
: : : : +- * Generate (932)
: : : : +- * Generate (931)
: : : : +- * Project (930)
: : : : +- Project (929)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (928)
: : : : :- * Project (925)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (924)
: : : : : :- * BroadcastHashJoin LeftOuter BuildRight (921)
: : : : : : :- ShuffleQueryStage (912), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (911)
: : : : : : : +- * ColumnarToRow (910)
: : : : : : : +- Scan parquet (909)
: : : : : : +- BroadcastQueryStage (920), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- BroadcastExchange (919)
: : : : : : +- * Project (918)
: : : : : : +- ShuffleQueryStage (917), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : : +- Exchange (916)
: : : : : : +- * Project (915)
: : : : : : +- * ColumnarToRow (914)
: : : : : : +- Scan parquet (913)
: : : : : +- BroadcastQueryStage (923), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (922)
: : : : +- BroadcastQueryStage (927), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (926)
: : : +- BroadcastQueryStage (994), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (993)
: : : +- * HashAggregate (992)
: : : +- AQEShuffleRead (991)
: : : +- ShuffleQueryStage (990), Statistics(sizeInBytes=3.5 KiB, rowCount=34)
: : : +- Exchange (989)
: : : +- * HashAggregate (988)
: : : +- * Project (987)
: : : +- * BroadcastHashJoin Inner BuildLeft (986)
: : : :- BroadcastQueryStage (982), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : : +- BroadcastExchange (981)
: : : : +- AQEShuffleRead (980)
: : : : +- ShuffleQueryStage (979), Statistics(sizeInBytes=4.0 KiB, rowCount=34)
: : : : +- Exchange (978)
: : : : +- * Project (977)
: : : : +- * BroadcastHashJoin Inner BuildLeft (976)
: : : : :- BroadcastQueryStage (957), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : : +- BroadcastExchange (956)
: : : : : +- AQEShuffleRead (955)
: : : : : +- ShuffleQueryStage (954), Statistics(sizeInBytes=7.5 KiB, rowCount=64)
: : : : : +- Exchange (953)
: : : : : +- * Project (952)
: : : : : +- * Filter (951)
: : : : : +- * Generate (950)
: : : : : +- * Filter (949)
: : : : : +- ObjectHashAggregate (948)
: : : : : +- ObjectHashAggregate (947)
: : : : : +- Generate (946)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (945)
: : : : : :- BroadcastQueryStage (936), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : : +- ReusedExchange (935)
: : : : : +- * Project (944)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (943)
: : : : : :- BroadcastQueryStage (938), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : : +- ReusedExchange (937)
: : : : : +- * HashAggregate (942)
: : : : : +- AQEShuffleRead (941)
: : : : : +- ShuffleQueryStage (940), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : : +- ReusedExchange (939)
: : : : +- * Project (975)
: : : : +- * Generate (974)
: : : : +- * Project (973)
: : : : +- * Generate (972)
: : : : +- Project (971)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (970)
: : : : :- * Project (967)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (966)
: : : : : :- * Project (963)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (962)
: : : : : : :- ShuffleQueryStage (959), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- ReusedExchange (958)
: : : : : : +- BroadcastQueryStage (961), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (960)
: : : : : +- BroadcastQueryStage (965), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (964)
: : : : +- BroadcastQueryStage (969), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (968)
: : : +- AQEShuffleRead (985)
: : : +- ShuffleQueryStage (984), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : +- ReusedExchange (983)
: : +- BroadcastQueryStage (1001), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: : +- BroadcastExchange (1000)
: : +- * Filter (999)
: : +- * ColumnarToRow (998)
: : +- Scan parquet (997)
: +- * Sort (1034)
: +- * Project (1033)
: +- * BroadcastHashJoin Inner BuildLeft (1032)
: :- BroadcastQueryStage (1028), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : +- BroadcastExchange (1027)
: : +- * Project (1026)
: : +- * Filter (1025)
: : +- * Generate (1024)
: : +- * Project (1023)
: : +- * Filter (1022)
: : +- * Generate (1021)
: : +- ShuffleQueryStage (1020), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : +- ReusedExchange (1019)
: +- * HashAggregate (1031)
: +- ShuffleQueryStage (1030), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: +- ReusedExchange (1029)
+- BroadcastQueryStage (1047), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (1046)
+- * Project (1045)
+- * Filter (1044)
+- * Generate (1043)
+- ShuffleQueryStage (1042), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (1041)
+- * Project (1040)
+- * Filter (1039)
+- * ColumnarToRow (1038)
+- Scan parquet (1037)
+- == Initial Plan ==
Project (1542)
+- BroadcastHashJoin Inner BuildRight (1541)
:- Project (1533)
: +- SortMergeJoin Inner (1532)
: :- Sort (1487)
: : +- Exchange (1486)
: : +- Project (1485)
: : +- SortMergeJoin LeftOuter (1484)
: : :- Sort (1259)
: : : +- Exchange (1258)
: : : +- Project (1257)
: : : +- SortMergeJoin LeftOuter (1256)
: : : :- Sort (1074)
: : : : +- Project (1073)
: : : : +- Generate (1072)
: : : : +- Project (1071)
: : : : +- Generate (1070)
: : : : +- Project (1069)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1068)
: : : : :- Project (1063)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1062)
: : : : : :- Project (1058)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1057)
: : : : : : :- Exchange (1052)
: : : : : : : +- Filter (1051)
: : : : : : : +- Scan parquet (735)
: : : : : : +- BroadcastExchange (1056)
: : : : : : +- Project (1055)
: : : : : : +- Exchange (1054)
: : : : : : +- Project (1053)
: : : : : : +- Scan parquet (740)
: : : : : +- BroadcastExchange (1061)
: : : : : +- Exchange (1060)
: : : : : +- Project (1059)
: : : : : +- Scan parquet (750)
: : : : +- BroadcastExchange (1067)
: : : : +- Exchange (1066)
: : : : +- Project (1065)
: : : : +- Filter (1064)
: : : : +- Scan parquet (759)
: : : +- Sort (1255)
: : : +- HashAggregate (1254)
: : : +- Exchange (1253)
: : : +- HashAggregate (1252)
: : : +- Project (1251)
: : : +- SortMergeJoin Inner (1250)
: : : :- Sort (1158)
: : : : +- Exchange (1157)
: : : : +- Project (1156)
: : : : +- SortMergeJoin Inner (1155)
: : : : :- Sort (1127)
: : : : : +- Exchange (1126)
: : : : : +- Project (1125)
: : : : : +- Filter (1124)
: : : : : +- Generate (1123)
: : : : : +- Filter (1122)
: : : : : +- ObjectHashAggregate (1121)
: : : : : +- ObjectHashAggregate (1120)
: : : : : +- Generate (1119)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1118)
: : : : : :- BroadcastExchange (1078)
: : : : : : +- Exchange (1077)
: : : : : : +- Project (1076)
: : : : : : +- Filter (1075)
: : : : : : +- Scan parquet (773)
: : : : : +- Project (1117)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1116)
: : : : : :- BroadcastExchange (1087)
: : : : : : +- Project (1086)
: : : : : : +- Generate (1085)
: : : : : : +- Project (1084)
: : : : : : +- Filter (1083)
: : : : : : +- Generate (1082)
: : : : : : +- Exchange (1081)
: : : : : : +- Project (1080)
: : : : : : +- Filter (1079)
: : : : : : +- Scan parquet (781)
: : : : : +- HashAggregate (1115)
: : : : : +- Exchange (1114)
: : : : : +- HashAggregate (1113)
: : : : : +- Project (1112)
: : : : : +- Generate (1111)
: : : : : +- Project (1110)
: : : : : +- Generate (1109)
: : : : : +- Project (1108)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1107)
: : : : : :- Project (1101)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1100)
: : : : : : :- Project (1096)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1095)
: : : : : : : :- Exchange (1089)
: : : : : : : : +- Filter (1088)
: : : : : : : : +- Scan parquet (794)
: : : : : : : +- BroadcastExchange (1094)
: : : : : : : +- Project (1093)
: : : : : : : +- Exchange (1092)
: : : : : : : +- Project (1091)
: : : : : : : +- Scan parquet (1090)
: : : : : : +- BroadcastExchange (1099)
: : : : : : +- Exchange (1098)
: : : : : : +- Project (1097)
: : : : : : +- Scan parquet (803)
: : : : : +- BroadcastExchange (1106)
: : : : : +- Exchange (1105)
: : : : : +- Project (1104)
: : : : : +- Filter (1103)
: : : : : +- Scan parquet (1102)
: : : : +- Sort (1154)
: : : : +- Project (1153)
: : : : +- Generate (1152)
: : : : +- Project (1151)
: : : : +- Generate (1150)
: : : : +- Project (1149)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1148)
: : : : :- Project (1142)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1141)
: : : : : :- Project (1136)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1135)
: : : : : : :- Exchange (1129)
: : : : : : : +- Filter (1128)
: : : : : : : +- Scan parquet (840)
: : : : : : +- BroadcastExchange (1134)
: : : : : : +- Project (1133)
: : : : : : +- Exchange (1132)
: : : : : : +- Project (1131)
: : : : : : +- Scan parquet (1130)
: : : : : +- BroadcastExchange (1140)
: : : : : +- Exchange (1139)
: : : : : +- Project (1138)
: : : : : +- Scan parquet (1137)
: : : : +- BroadcastExchange (1147)
: : : : +- Exchange (1146)
: : : : +- Project (1145)
: : : : +- Filter (1144)
: : : : +- Scan parquet (1143)
: : : +- Sort (1249)
: : : +- Exchange (1248)
: : : +- HashAggregate (1247)
: : : +- HashAggregate (1246)
: : : +- Project (1245)
: : : +- SortMergeJoin Inner (1244)
: : : :- Sort (1215)
: : : : +- Exchange (1214)
: : : : +- Project (1213)
: : : : +- Filter (1212)
: : : : +- Generate (1211)
: : : : +- Filter (1210)
: : : : +- ObjectHashAggregate (1209)
: : : : +- ObjectHashAggregate (1208)
: : : : +- Generate (1207)
: : : : +- BroadcastHashJoin Inner BuildLeft (1206)
: : : : :- BroadcastExchange (1163)
: : : : : +- Exchange (1162)
: : : : : +- Project (1161)
: : : : : +- Filter (1160)
: : : : : +- Scan parquet (1159)
: : : : +- Project (1205)
: : : : +- BroadcastHashJoin Inner BuildLeft (1204)
: : : : :- BroadcastExchange (1173)
: : : : : +- Project (1172)
: : : : : +- Generate (1171)
: : : : : +- Project (1170)
: : : : : +- Filter (1169)
: : : : : +- Generate (1168)
: : : : : +- Exchange (1167)
: : : : : +- Project (1166)
: : : : : +- Filter (1165)
: : : : : +- Scan parquet (1164)
: : : : +- HashAggregate (1203)
: : : : +- Exchange (1202)
: : : : +- HashAggregate (1201)
: : : : +- Project (1200)
: : : : +- Generate (1199)
: : : : +- Project (1198)
: : : : +- Generate (1197)
: : : : +- Project (1196)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1195)
: : : : :- Project (1189)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1188)
: : : : : :- Project (1183)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1182)
: : : : : : :- Exchange (1176)
: : : : : : : +- Filter (1175)
: : : : : : : +- Scan parquet (1174)
: : : : : : +- BroadcastExchange (1181)
: : : : : : +- Project (1180)
: : : : : : +- Exchange (1179)
: : : : : : +- Project (1178)
: : : : : : +- Scan parquet (1177)
: : : : : +- BroadcastExchange (1187)
: : : : : +- Exchange (1186)
: : : : : +- Project (1185)
: : : : : +- Scan parquet (1184)
: : : : +- BroadcastExchange (1194)
: : : : +- Exchange (1193)
: : : : +- Project (1192)
: : : : +- Filter (1191)
: : : : +- Scan parquet (1190)
: : : +- Sort (1243)
: : : +- Project (1242)
: : : +- Generate (1241)
: : : +- Project (1240)
: : : +- Generate (1239)
: : : +- Project (1238)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1237)
: : : :- Project (1231)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1230)
: : : : :- Project (1225)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1224)
: : : : : :- Exchange (1218)
: : : : : : +- Filter (1217)
: : : : : : +- Scan parquet (1216)
: : : : : +- BroadcastExchange (1223)
: : : : : +- Project (1222)
: : : : : +- Exchange (1221)
: : : : : +- Project (1220)
: : : : : +- Scan parquet (1219)
: : : : +- BroadcastExchange (1229)
: : : : +- Exchange (1228)
: : : : +- Project (1227)
: : : : +- Scan parquet (1226)
: : : +- BroadcastExchange (1236)
: : : +- Exchange (1235)
: : : +- Project (1234)
: : : +- Filter (1233)
: : : +- Scan parquet (1232)
: : +- Sort (1483)
: : +- Exchange (1482)
: : +- SerializeFromObject (1481)
: : +- MapElements (1480)
: : +- DeserializeToObject (1479)
: : +- ObjectHashAggregate (1478)
: : +- ObjectHashAggregate (1477)
: : +- Project (1476)
: : +- BroadcastHashJoin LeftOuter BuildRight (1475)
: : :- Project (1472)
: : : +- SortMergeJoin LeftOuter (1471)
: : : :- Sort (1284)
: : : : +- Project (1283)
: : : : +- Project (1282)
: : : : +- Generate (1281)
: : : : +- Generate (1280)
: : : : +- Project (1279)
: : : : +- Project (1278)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1277)
: : : : :- Project (1271)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1270)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (1265)
: : : : : : :- Exchange (1260)
: : : : : : : +- Scan parquet (909)
: : : : : : +- BroadcastExchange (1264)
: : : : : : +- Project (1263)
: : : : : : +- Exchange (1262)
: : : : : : +- Project (1261)
: : : : : : +- Scan parquet (913)
: : : : : +- BroadcastExchange (1269)
: : : : : +- Exchange (1268)
: : : : : +- Project (1267)
: : : : : +- Scan parquet (1266)
: : : : +- BroadcastExchange (1276)
: : : : +- Exchange (1275)
: : : : +- Project (1274)
: : : : +- Filter (1273)
: : : : +- Scan parquet (1272)
: : : +- Sort (1470)
: : : +- HashAggregate (1469)
: : : +- Exchange (1468)
: : : +- HashAggregate (1467)
: : : +- Project (1466)
: : : +- SortMergeJoin Inner (1465)
: : : :- Sort (1373)
: : : : +- Exchange (1372)
: : : : +- Project (1371)
: : : : +- SortMergeJoin Inner (1370)
: : : : :- Sort (1341)
: : : : : +- Exchange (1340)
: : : : : +- Project (1339)
: : : : : +- Filter (1338)
: : : : : +- Generate (1337)
: : : : : +- Filter (1336)
: : : : : +- ObjectHashAggregate (1335)
: : : : : +- ObjectHashAggregate (1334)
: : : : : +- Generate (1333)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1332)
: : : : : :- BroadcastExchange (1289)
: : : : : : +- Exchange (1288)
: : : : : : +- Project (1287)
: : : : : : +- Filter (1286)
: : : : : : +- Scan parquet (1285)
: : : : : +- Project (1331)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1330)
: : : : : :- BroadcastExchange (1299)
: : : : : : +- Project (1298)
: : : : : : +- Generate (1297)
: : : : : : +- Project (1296)
: : : : : : +- Filter (1295)
: : : : : : +- Generate (1294)
: : : : : : +- Exchange (1293)
: : : : : : +- Project (1292)
: : : : : : +- Filter (1291)
: : : : : : +- Scan parquet (1290)
: : : : : +- HashAggregate (1329)
: : : : : +- Exchange (1328)
: : : : : +- HashAggregate (1327)
: : : : : +- Project (1326)
: : : : : +- Generate (1325)
: : : : : +- Project (1324)
: : : : : +- Generate (1323)
: : : : : +- Project (1322)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1321)
: : : : : :- Project (1315)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1314)
: : : : : : :- Project (1309)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1308)
: : : : : : : :- Exchange (1302)
: : : : : : : : +- Filter (1301)
: : : : : : : : +- Scan parquet (1300)
: : : : : : : +- BroadcastExchange (1307)
: : : : : : : +- Project (1306)
: : : : : : : +- Exchange (1305)
: : : : : : : +- Project (1304)
: : : : : : : +- Scan parquet (1303)
: : : : : : +- BroadcastExchange (1313)
: : : : : : +- Exchange (1312)
: : : : : : +- Project (1311)
: : : : : : +- Scan parquet (1310)
: : : : : +- BroadcastExchange (1320)
: : : : : +- Exchange (1319)
: : : : : +- Project (1318)
: : : : : +- Filter (1317)
: : : : : +- Scan parquet (1316)
: : : : +- Sort (1369)
: : : : +- Project (1368)
: : : : +- Generate (1367)
: : : : +- Project (1366)
: : : : +- Generate (1365)
: : : : +- Project (1364)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1363)
: : : : :- Project (1357)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1356)
: : : : : :- Project (1351)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1350)
: : : : : : :- Exchange (1344)
: : : : : : : +- Filter (1343)
: : : : : : : +- Scan parquet (1342)
: : : : : : +- BroadcastExchange (1349)
: : : : : : +- Project (1348)
: : : : : : +- Exchange (1347)
: : : : : : +- Project (1346)
: : : : : : +- Scan parquet (1345)
: : : : : +- BroadcastExchange (1355)
: : : : : +- Exchange (1354)
: : : : : +- Project (1353)
: : : : : +- Scan parquet (1352)
: : : : +- BroadcastExchange (1362)
: : : : +- Exchange (1361)
: : : : +- Project (1360)
: : : : +- Filter (1359)
: : : : +- Scan parquet (1358)
: : : +- Sort (1464)
: : : +- Exchange (1463)
: : : +- HashAggregate (1462)
: : : +- HashAggregate (1461)
: : : +- Project (1460)
: : : +- SortMergeJoin Inner (1459)
: : : :- Sort (1430)
: : : : +- Exchange (1429)
: : : : +- Project (1428)
: : : : +- Filter (1427)
: : : : +- Generate (1426)
: : : : +- Filter (1425)
: : : : +- ObjectHashAggregate (1424)
: : : : +- ObjectHashAggregate (1423)
: : : : +- Generate (1422)
: : : : +- BroadcastHashJoin Inner BuildLeft (1421)
: : : : :- BroadcastExchange (1378)
: : : : : +- Exchange (1377)
: : : : : +- Project (1376)
: : : : : +- Filter (1375)
: : : : : +- Scan parquet (1374)
: : : : +- Project (1420)
: : : : +- BroadcastHashJoin Inner BuildLeft (1419)
: : : : :- BroadcastExchange (1388)
: : : : : +- Project (1387)
: : : : : +- Generate (1386)
: : : : : +- Project (1385)
: : : : : +- Filter (1384)
: : : : : +- Generate (1383)
: : : : : +- Exchange (1382)
: : : : : +- Project (1381)
: : : : : +- Filter (1380)
: : : : : +- Scan parquet (1379)
: : : : +- HashAggregate (1418)
: : : : +- Exchange (1417)
: : : : +- HashAggregate (1416)
: : : : +- Project (1415)
: : : : +- Generate (1414)
: : : : +- Project (1413)
: : : : +- Generate (1412)
: : : : +- Project (1411)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1410)
: : : : :- Project (1404)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1403)
: : : : : :- Project (1398)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1397)
: : : : : : :- Exchange (1391)
: : : : : : : +- Filter (1390)
: : : : : : : +- Scan parquet (1389)
: : : : : : +- BroadcastExchange (1396)
: : : : : : +- Project (1395)
: : : : : : +- Exchange (1394)
: : : : : : +- Project (1393)
: : : : : : +- Scan parquet (1392)
: : : : : +- BroadcastExchange (1402)
: : : : : +- Exchange (1401)
: : : : : +- Project (1400)
: : : : : +- Scan parquet (1399)
: : : : +- BroadcastExchange (1409)
: : : : +- Exchange (1408)
: : : : +- Project (1407)
: : : : +- Filter (1406)
: : : : +- Scan parquet (1405)
: : : +- Sort (1458)
: : : +- Project (1457)
: : : +- Generate (1456)
: : : +- Project (1455)
: : : +- Generate (1454)
: : : +- Project (1453)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1452)
: : : :- Project (1446)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1445)
: : : : :- Project (1440)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1439)
: : : : : :- Exchange (1433)
: : : : : : +- Filter (1432)
: : : : : : +- Scan parquet (1431)
: : : : : +- BroadcastExchange (1438)
: : : : : +- Project (1437)
: : : : : +- Exchange (1436)
: : : : : +- Project (1435)
: : : : : +- Scan parquet (1434)
: : : : +- BroadcastExchange (1444)
: : : : +- Exchange (1443)
: : : : +- Project (1442)
: : : : +- Scan parquet (1441)
: : : +- BroadcastExchange (1451)
: : : +- Exchange (1450)
: : : +- Project (1449)
: : : +- Filter (1448)
: : : +- Scan parquet (1447)
: : +- BroadcastExchange (1474)
: : +- Filter (1473)
: : +- Scan parquet (997)
: +- Sort (1531)
: +- Project (1530)
: +- BroadcastHashJoin Inner BuildLeft (1529)
: :- BroadcastExchange (1498)
: : +- Project (1497)
: : +- Filter (1496)
: : +- Generate (1495)
: : +- Project (1494)
: : +- Filter (1493)
: : +- Generate (1492)
: : +- Exchange (1491)
: : +- Project (1490)
: : +- Filter (1489)
: : +- Scan parquet (1488)
: +- HashAggregate (1528)
: +- Exchange (1527)
: +- HashAggregate (1526)
: +- Project (1525)
: +- Generate (1524)
: +- Project (1523)
: +- Generate (1522)
: +- Project (1521)
: +- BroadcastHashJoin LeftOuter BuildRight (1520)
: :- Project (1514)
: : +- BroadcastHashJoin LeftOuter BuildRight (1513)
: : :- Project (1508)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1507)
: : : :- Exchange (1501)
: : : : +- Filter (1500)
: : : : +- Scan parquet (1499)
: : : +- BroadcastExchange (1506)
: : : +- Project (1505)
: : : +- Exchange (1504)
: : : +- Project (1503)
: : : +- Scan parquet (1502)
: : +- BroadcastExchange (1512)
: : +- Exchange (1511)
: : +- Project (1510)
: : +- Scan parquet (1509)
: +- BroadcastExchange (1519)
: +- Exchange (1518)
: +- Project (1517)
: +- Filter (1516)
: +- Scan parquet (1515)
+- BroadcastExchange (1540)
+- Project (1539)
+- Filter (1538)
+- Generate (1537)
+- Exchange (1536)
+- Project (1535)
+- Filter (1534)
+- Scan parquet (1037)
: +- Filter (2015)
: +- ObjectHashAggregate (2014)
: +- Exchange (2013)
: +- ObjectHashAggregate (2012)
: +- Project (2011)
: +- BroadcastHashJoin Inner BuildRight (2010)
: :- Project (2001)
: : +- SortMergeJoin LeftOuter (2000)
: : :- Sort (1772)
: : : +- Exchange (1771)
: : : +- Project (1770)
: : : +- SortMergeJoin LeftOuter (1769)
: : : :- Sort (1582)
: : : : +- Project (1581)
: : : : +- Generate (1580)
: : : : +- Project (1579)
: : : : +- Generate (1578)
: : : : +- Project (1577)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1576)
: : : : :- Project (1570)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1569)
: : : : : :- Project (1564)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1563)
: : : : : : :- Exchange (1557)
: : : : : : : +- Filter (1556)
: : : : : : : +- Scan parquet (1555)
: : : : : : +- BroadcastExchange (1562)
: : : : : : +- Project (1561)
: : : : : : +- Exchange (1560)
: : : : : : +- Project (1559)
: : : : : : +- Scan parquet (1558)
: : : : : +- BroadcastExchange (1568)
: : : : : +- Exchange (1567)
: : : : : +- Project (1566)
: : : : : +- Scan parquet (1565)
: : : : +- BroadcastExchange (1575)
: : : : +- Exchange (1574)
: : : : +- Project (1573)
: : : : +- Filter (1572)
: : : : +- Scan parquet (1571)
: : : +- Sort (1768)
: : : +- HashAggregate (1767)
: : : +- Exchange (1766)
: : : +- HashAggregate (1765)
: : : +- Project (1764)
: : : +- SortMergeJoin Inner (1763)
: : : :- Sort (1671)
: : : : +- Exchange (1670)
: : : : +- Project (1669)
: : : : +- SortMergeJoin Inner (1668)
: : : : :- Sort (1639)
: : : : : +- Exchange (1638)
: : : : : +- Project (1637)
: : : : : +- Filter (1636)
: : : : : +- Generate (1635)
: : : : : +- Filter (1634)
: : : : : +- ObjectHashAggregate (1633)
: : : : : +- ObjectHashAggregate (1632)
: : : : : +- Generate (1631)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1630)
: : : : : :- BroadcastExchange (1587)
: : : : : : +- Exchange (1586)
: : : : : : +- Project (1585)
: : : : : : +- Filter (1584)
: : : : : : +- Scan parquet (1583)
: : : : : +- Project (1629)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1628)
: : : : : :- BroadcastExchange (1597)
: : : : : : +- Project (1596)
: : : : : : +- Generate (1595)
: : : : : : +- Project (1594)
: : : : : : +- Filter (1593)
: : : : : : +- Generate (1592)
: : : : : : +- Exchange (1591)
: : : : : : +- Project (1590)
: : : : : : +- Filter (1589)
: : : : : : +- Scan parquet (1588)
: : : : : +- HashAggregate (1627)
: : : : : +- Exchange (1626)
: : : : : +- HashAggregate (1625)
: : : : : +- Project (1624)
: : : : : +- Generate (1623)
: : : : : +- Project (1622)
: : : : : +- Generate (1621)
: : : : : +- Project (1620)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1619)
: : : : : :- Project (1613)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1612)
: : : : : : :- Project (1607)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1606)
: : : : : : : :- Exchange (1600)
: : : : : : : : +- Filter (1599)
: : : : : : : : +- Scan parquet (1598)
: : : : : : : +- BroadcastExchange (1605)
: : : : : : : +- Project (1604)
: : : : : : : +- Exchange (1603)
: : : : : : : +- Project (1602)
: : : : : : : +- Scan parquet (1601)
: : : : : : +- BroadcastExchange (1611)
: : : : : : +- Exchange (1610)
: : : : : : +- Project (1609)
: : : : : : +- Scan parquet (1608)
: : : : : +- BroadcastExchange (1618)
: : : : : +- Exchange (1617)
: : : : : +- Project (1616)
: : : : : +- Filter (1615)
: : : : : +- Scan parquet (1614)
: : : : +- Sort (1667)
: : : : +- Project (1666)
: : : : +- Generate (1665)
: : : : +- Project (1664)
: : : : +- Generate (1663)
: : : : +- Project (1662)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1661)
: : : : :- Project (1655)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1654)
: : : : : :- Project (1649)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1648)
: : : : : : :- Exchange (1642)
: : : : : : : +- Filter (1641)
: : : : : : : +- Scan parquet (1640)
: : : : : : +- BroadcastExchange (1647)
: : : : : : +- Project (1646)
: : : : : : +- Exchange (1645)
: : : : : : +- Project (1644)
: : : : : : +- Scan parquet (1643)
: : : : : +- BroadcastExchange (1653)
: : : : : +- Exchange (1652)
: : : : : +- Project (1651)
: : : : : +- Scan parquet (1650)
: : : : +- BroadcastExchange (1660)
: : : : +- Exchange (1659)
: : : : +- Project (1658)
: : : : +- Filter (1657)
: : : : +- Scan parquet (1656)
: : : +- Sort (1762)
: : : +- Exchange (1761)
: : : +- HashAggregate (1760)
: : : +- HashAggregate (1759)
: : : +- Project (1758)
: : : +- SortMergeJoin Inner (1757)
: : : :- Sort (1728)
: : : : +- Exchange (1727)
: : : : +- Project (1726)
: : : : +- Filter (1725)
: : : : +- Generate (1724)
: : : : +- Filter (1723)
: : : : +- ObjectHashAggregate (1722)
: : : : +- ObjectHashAggregate (1721)
: : : : +- Generate (1720)
: : : : +- BroadcastHashJoin Inner BuildLeft (1719)
: : : : :- BroadcastExchange (1676)
: : : : : +- Exchange (1675)
: : : : : +- Project (1674)
: : : : : +- Filter (1673)
: : : : : +- Scan parquet (1672)
: : : : +- Project (1718)
: : : : +- BroadcastHashJoin Inner BuildLeft (1717)
: : : : :- BroadcastExchange (1686)
: : : : : +- Project (1685)
: : : : : +- Generate (1684)
: : : : : +- Project (1683)
: : : : : +- Filter (1682)
: : : : : +- Generate (1681)
: : : : : +- Exchange (1680)
: : : : : +- Project (1679)
: : : : : +- Filter (1678)
: : : : : +- Scan parquet (1677)
: : : : +- HashAggregate (1716)
: : : : +- Exchange (1715)
: : : : +- HashAggregate (1714)
: : : : +- Project (1713)
: : : : +- Generate (1712)
: : : : +- Project (1711)
: : : : +- Generate (1710)
: : : : +- Project (1709)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1708)
: : : : :- Project (1702)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1701)
: : : : : :- Project (1696)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1695)
: : : : : : :- Exchange (1689)
: : : : : : : +- Filter (1688)
: : : : : : : +- Scan parquet (1687)
: : : : : : +- BroadcastExchange (1694)
: : : : : : +- Project (1693)
: : : : : : +- Exchange (1692)
: : : : : : +- Project (1691)
: : : : : : +- Scan parquet (1690)
: : : : : +- BroadcastExchange (1700)
: : : : : +- Exchange (1699)
: : : : : +- Project (1698)
: : : : : +- Scan parquet (1697)
: : : : +- BroadcastExchange (1707)
: : : : +- Exchange (1706)
: : : : +- Project (1705)
: : : : +- Filter (1704)
: : : : +- Scan parquet (1703)
: : : +- Sort (1756)
: : : +- Project (1755)
: : : +- Generate (1754)
: : : +- Project (1753)
: : : +- Generate (1752)
: : : +- Project (1751)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1750)
: : : :- Project (1744)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1743)
: : : : :- Project (1738)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1737)
: : : : : :- Exchange (1731)
: : : : : : +- Filter (1730)
: : : : : : +- Scan parquet (1729)
: : : : : +- BroadcastExchange (1736)
: : : : : +- Project (1735)
: : : : : +- Exchange (1734)
: : : : : +- Project (1733)
: : : : : +- Scan parquet (1732)
: : : : +- BroadcastExchange (1742)
: : : : +- Exchange (1741)
: : : : +- Project (1740)
: : : : +- Scan parquet (1739)
: : : +- BroadcastExchange (1749)
: : : +- Exchange (1748)
: : : +- Project (1747)
: : : +- Filter (1746)
: : : +- Scan parquet (1745)
: : +- Sort (1999)
: : +- Exchange (1998)
: : +- SerializeFromObject (1997)
: : +- MapElements (1996)
: : +- DeserializeToObject (1995)
: : +- ObjectHashAggregate (1994)
: : +- ObjectHashAggregate (1993)
: : +- Project (1992)
: : +- BroadcastHashJoin LeftOuter BuildRight (1991)
: : :- Project (1987)
: : : +- SortMergeJoin LeftOuter (1986)
: : : :- Sort (1799)
: : : : +- Project (1798)
: : : : +- Project (1797)
: : : : +- Generate (1796)
: : : : +- Generate (1795)
: : : : +- Project (1794)
: : : : +- Project (1793)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1792)
: : : : :- Project (1786)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1785)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (1780)
: : : : : : :- Exchange (1774)
: : : : : : : +- Scan parquet (1773)
: : : : : : +- BroadcastExchange (1779)
: : : : : : +- Project (1778)
: : : : : : +- Exchange (1777)
: : : : : : +- Project (1776)
: : : : : : +- Scan parquet (1775)
: : : : : +- BroadcastExchange (1784)
: : : : : +- Exchange (1783)
: : : : : +- Project (1782)
: : : : : +- Scan parquet (1781)
: : : : +- BroadcastExchange (1791)
: : : : +- Exchange (1790)
: : : : +- Project (1789)
: : : : +- Filter (1788)
: : : : +- Scan parquet (1787)
: : : +- Sort (1985)
: : : +- HashAggregate (1984)
: : : +- Exchange (1983)
: : : +- HashAggregate (1982)
: : : +- Project (1981)
: : : +- SortMergeJoin Inner (1980)
: : : :- Sort (1888)
: : : : +- Exchange (1887)
: : : : +- Project (1886)
: : : : +- SortMergeJoin Inner (1885)
: : : : :- Sort (1856)
: : : : : +- Exchange (1855)
: : : : : +- Project (1854)
: : : : : +- Filter (1853)
: : : : : +- Generate (1852)
: : : : : +- Filter (1851)
: : : : : +- ObjectHashAggregate (1850)
: : : : : +- ObjectHashAggregate (1849)
: : : : : +- Generate (1848)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1847)
: : : : : :- BroadcastExchange (1804)
: : : : : : +- Exchange (1803)
: : : : : : +- Project (1802)
: : : : : : +- Filter (1801)
: : : : : : +- Scan parquet (1800)
: : : : : +- Project (1846)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1845)
: : : : : :- BroadcastExchange (1814)
: : : : : : +- Project (1813)
: : : : : : +- Generate (1812)
: : : : : : +- Project (1811)
: : : : : : +- Filter (1810)
: : : : : : +- Generate (1809)
: : : : : : +- Exchange (1808)
: : : : : : +- Project (1807)
: : : : : : +- Filter (1806)
: : : : : : +- Scan parquet (1805)
: : : : : +- HashAggregate (1844)
: : : : : +- Exchange (1843)
: : : : : +- HashAggregate (1842)
: : : : : +- Project (1841)
: : : : : +- Generate (1840)
: : : : : +- Project (1839)
: : : : : +- Generate (1838)
: : : : : +- Project (1837)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1836)
: : : : : :- Project (1830)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1829)
: : : : : : :- Project (1824)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1823)
: : : : : : : :- Exchange (1817)
: : : : : : : : +- Filter (1816)
: : : : : : : : +- Scan parquet (1815)
: : : : : : : +- BroadcastExchange (1822)
: : : : : : : +- Project (1821)
: : : : : : : +- Exchange (1820)
: : : : : : : +- Project (1819)
: : : : : : : +- Scan parquet (1818)
: : : : : : +- BroadcastExchange (1828)
: : : : : : +- Exchange (1827)
: : : : : : +- Project (1826)
: : : : : : +- Scan parquet (1825)
: : : : : +- BroadcastExchange (1835)
: : : : : +- Exchange (1834)
: : : : : +- Project (1833)
: : : : : +- Filter (1832)
: : : : : +- Scan parquet (1831)
: : : : +- Sort (1884)
: : : : +- Project (1883)
: : : : +- Generate (1882)
: : : : +- Project (1881)
: : : : +- Generate (1880)
: : : : +- Project (1879)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1878)
: : : : :- Project (1872)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1871)
: : : : : :- Project (1866)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1865)
: : : : : : :- Exchange (1859)
: : : : : : : +- Filter (1858)
: : : : : : : +- Scan parquet (1857)
: : : : : : +- BroadcastExchange (1864)
: : : : : : +- Project (1863)
: : : : : : +- Exchange (1862)
: : : : : : +- Project (1861)
: : : : : : +- Scan parquet (1860)
: : : : : +- BroadcastExchange (1870)
: : : : : +- Exchange (1869)
: : : : : +- Project (1868)
: : : : : +- Scan parquet (1867)
: : : : +- BroadcastExchange (1877)
: : : : +- Exchange (1876)
: : : : +- Project (1875)
: : : : +- Filter (1874)
: : : : +- Scan parquet (1873)
: : : +- Sort (1979)
: : : +- Exchange (1978)
: : : +- HashAggregate (1977)
: : : +- HashAggregate (1976)
: : : +- Project (1975)
: : : +- SortMergeJoin Inner (1974)
: : : :- Sort (1945)
: : : : +- Exchange (1944)
: : : : +- Project (1943)
: : : : +- Filter (1942)
: : : : +- Generate (1941)
: : : : +- Filter (1940)
: : : : +- ObjectHashAggregate (1939)
: : : : +- ObjectHashAggregate (1938)
: : : : +- Generate (1937)
: : : : +- BroadcastHashJoin Inner BuildLeft (1936)
: : : : :- BroadcastExchange (1893)
: : : : : +- Exchange (1892)
: : : : : +- Project (1891)
: : : : : +- Filter (1890)
: : : : : +- Scan parquet (1889)
: : : : +- Project (1935)
: : : : +- BroadcastHashJoin Inner BuildLeft (1934)
: : : : :- BroadcastExchange (1903)
: : : : : +- Project (1902)
: : : : : +- Generate (1901)
: : : : : +- Project (1900)
: : : : : +- Filter (1899)
: : : : : +- Generate (1898)
: : : : : +- Exchange (1897)
: : : : : +- Project (1896)
: : : : : +- Filter (1895)
: : : : : +- Scan parquet (1894)
: : : : +- HashAggregate (1933)
: : : : +- Exchange (1932)
: : : : +- HashAggregate (1931)
: : : : +- Project (1930)
: : : : +- Generate (1929)
: : : : +- Project (1928)
: : : : +- Generate (1927)
: : : : +- Project (1926)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1925)
: : : : :- Project (1919)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1918)
: : : : : :- Project (1913)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1912)
: : : : : : :- Exchange (1906)
: : : : : : : +- Filter (1905)
: : : : : : : +- Scan parquet (1904)
: : : : : : +- BroadcastExchange (1911)
: : : : : : +- Project (1910)
: : : : : : +- Exchange (1909)
: : : : : : +- Project (1908)
: : : : : : +- Scan parquet (1907)
: : : : : +- BroadcastExchange (1917)
: : : : : +- Exchange (1916)
: : : : : +- Project (1915)
: : : : : +- Scan parquet (1914)
: : : : +- BroadcastExchange (1924)
: : : : +- Exchange (1923)
: : : : +- Project (1922)
: : : : +- Filter (1921)
: : : : +- Scan parquet (1920)
: : : +- Sort (1973)
: : : +- Project (1972)
: : : +- Generate (1971)
: : : +- Project (1970)
: : : +- Generate (1969)
: : : +- Project (1968)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1967)
: : : :- Project (1961)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1960)
: : : : :- Project (1955)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1954)
: : : : : :- Exchange (1948)
: : : : : : +- Filter (1947)
: : : : : : +- Scan parquet (1946)
: : : : : +- BroadcastExchange (1953)
: : : : : +- Project (1952)
: : : : : +- Exchange (1951)
: : : : : +- Project (1950)
: : : : : +- Scan parquet (1949)
: : : : +- BroadcastExchange (1959)
: : : : +- Exchange (1958)
: : : : +- Project (1957)
: : : : +- Scan parquet (1956)
: : : +- BroadcastExchange (1966)
: : : +- Exchange (1965)
: : : +- Project (1964)
: : : +- Filter (1963)
: : : +- Scan parquet (1962)
: : +- BroadcastExchange (1990)
: : +- Filter (1989)
: : +- Scan parquet (1988)
: +- BroadcastExchange (2009)
: +- Project (2008)
: +- Filter (2007)
: +- Generate (2006)
: +- Exchange (2005)
: +- Project (2004)
: +- Filter (2003)
: +- Scan parquet (2002)
+- Sort (2949)
+- Exchange (2948)
+- Filter (2947)
+- SerializeFromObject (2946)
+- MapElements (2945)
+- DeserializeToObject (2944)
+- Project (2943)
+- SortMergeJoin LeftOuter (2942)
:- Sort (2471)
: +- Exchange (2470)
: +- Project (2469)
: +- SortMergeJoin LeftOuter (2468)
: :- Sort (2240)
: : +- Exchange (2239)
: : +- Project (2238)
: : +- SortMergeJoin LeftOuter (2237)
: : :- Sort (2050)
: : : +- Project (2049)
: : : +- Project (2048)
: : : +- Generate (2047)
: : : +- Generate (2046)
: : : +- Project (2045)
: : : +- Project (2044)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2043)
: : : :- Project (2037)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2036)
: : : : :- BroadcastHashJoin LeftOuter BuildRight (2031)
: : : : : :- Exchange (2025)
: : : : : : +- Scan parquet (2024)
: : : : : +- BroadcastExchange (2030)
: : : : : +- Project (2029)
: : : : : +- Exchange (2028)
: : : : : +- Project (2027)
: : : : : +- Scan parquet (2026)
: : : : +- BroadcastExchange (2035)
: : : : +- Exchange (2034)
: : : : +- Project (2033)
: : : : +- Scan parquet (2032)
: : : +- BroadcastExchange (2042)
: : : +- Exchange (2041)
: : : +- Project (2040)
: : : +- Filter (2039)
: : : +- Scan parquet (2038)
: : +- Sort (2236)
: : +- HashAggregate (2235)
: : +- Exchange (2234)
: : +- HashAggregate (2233)
: : +- Project (2232)
: : +- SortMergeJoin Inner (2231)
: : :- Sort (2139)
: : : +- Exchange (2138)
: : : +- Project (2137)
: : : +- SortMergeJoin Inner (2136)
: : : :- Sort (2107)
: : : : +- Exchange (2106)
: : : : +- Project (2105)
: : : : +- Filter (2104)
: : : : +- Generate (2103)
: : : : +- Filter (2102)
: : : : +- ObjectHashAggregate (2101)
: : : : +- ObjectHashAggregate (2100)
: : : : +- Generate (2099)
: : : : +- BroadcastHashJoin Inner BuildLeft (2098)
: : : : :- BroadcastExchange (2055)
: : : : : +- Exchange (2054)
: : : : : +- Project (2053)
: : : : : +- Filter (2052)
: : : : : +- Scan parquet (2051)
: : : : +- Project (2097)
: : : : +- BroadcastHashJoin Inner BuildLeft (2096)
: : : : :- BroadcastExchange (2065)
: : : : : +- Project (2064)
: : : : : +- Generate (2063)
: : : : : +- Project (2062)
: : : : : +- Filter (2061)
: : : : : +- Generate (2060)
: : : : : +- Exchange (2059)
: : : : : +- Project (2058)
: : : : : +- Filter (2057)
: : : : : +- Scan parquet (2056)
: : : : +- HashAggregate (2095)
: : : : +- Exchange (2094)
: : : : +- HashAggregate (2093)
: : : : +- Project (2092)
: : : : +- Generate (2091)
: : : : +- Project (2090)
: : : : +- Generate (2089)
: : : : +- Project (2088)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2087)
: : : : :- Project (2081)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2080)
: : : : : :- Project (2075)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (2074)
: : : : : : :- Exchange (2068)
: : : : : : : +- Filter (2067)
: : : : : : : +- Scan parquet (2066)
: : : : : : +- BroadcastExchange (2073)
: : : : : : +- Project (2072)
: : : : : : +- Exchange (2071)
: : : : : : +- Project (2070)
: : : : : : +- Scan parquet (2069)
: : : : : +- BroadcastExchange (2079)
: : : : : +- Exchange (2078)
: : : : : +- Project (2077)
: : : : : +- Scan parquet (2076)
: : : : +- BroadcastExchange (2086)
: : : : +- Exchange (2085)
: : : : +- Project (2084)
: : : : +- Filter (2083)
: : : : +- Scan parquet (2082)
: : : +- Sort (2135)
: : : +- Project (2134)
: : : +- Generate (2133)
: : : +- Project (2132)
: : : +- Generate (2131)
: : : +- Project (2130)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2129)
: : : :- Project (2123)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2122)
: : : : :- Project (2117)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2116)
: : : : : :- Exchange (2110)
: : : : : : +- Filter (2109)
: : : : : : +- Scan parquet (2108)
: : : : : +- BroadcastExchange (2115)
: : : : : +- Project (2114)
: : : : : +- Exchange (2113)
: : : : : +- Project (2112)
: : : : : +- Scan parquet (2111)
: : : : +- BroadcastExchange (2121)
: : : : +- Exchange (2120)
: : : : +- Project (2119)
: : : : +- Scan parquet (2118)
: : : +- BroadcastExchange (2128)
: : : +- Exchange (2127)
: : : +- Project (2126)
: : : +- Filter (2125)
: : : +- Scan parquet (2124)
: : +- Sort (2230)
: : +- Exchange (2229)
: : +- HashAggregate (2228)
: : +- HashAggregate (2227)
: : +- Project (2226)
: : +- SortMergeJoin Inner (2225)
: : :- Sort (2196)
: : : +- Exchange (2195)
: : : +- Project (2194)
: : : +- Filter (2193)
: : : +- Generate (2192)
: : : +- Filter (2191)
: : : +- ObjectHashAggregate (2190)
: : : +- ObjectHashAggregate (2189)
: : : +- Generate (2188)
: : : +- BroadcastHashJoin Inner BuildLeft (2187)
: : : :- BroadcastExchange (2144)
: : : : +- Exchange (2143)
: : : : +- Project (2142)
: : : : +- Filter (2141)
: : : : +- Scan parquet (2140)
: : : +- Project (2186)
: : : +- BroadcastHashJoin Inner BuildLeft (2185)
: : : :- BroadcastExchange (2154)
: : : : +- Project (2153)
: : : : +- Generate (2152)
: : : : +- Project (2151)
: : : : +- Filter (2150)
: : : : +- Generate (2149)
: : : : +- Exchange (2148)
: : : : +- Project (2147)
: : : : +- Filter (2146)
: : : : +- Scan parquet (2145)
: : : +- HashAggregate (2184)
: : : +- Exchange (2183)
: : : +- HashAggregate (2182)
: : : +- Project (2181)
: : : +- Generate (2180)
: : : +- Project (2179)
: : : +- Generate (2178)
: : : +- Project (2177)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2176)
: : : :- Project (2170)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2169)
: : : : :- Project (2164)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2163)
: : : : : :- Exchange (2157)
: : : : : : +- Filter (2156)
: : : : : : +- Scan parquet (2155)
: : : : : +- BroadcastExchange (2162)
: : : : : +- Project (2161)
: : : : : +- Exchange (2160)
: : : : : +- Project (2159)
: : : : : +- Scan parquet (2158)
: : : : +- BroadcastExchange (2168)
: : : : +- Exchange (2167)
: : : : +- Project (2166)
: : : : +- Scan parquet (2165)
: : : +- BroadcastExchange (2175)
: : : +- Exchange (2174)
: : : +- Project (2173)
: : : +- Filter (2172)
: : : +- Scan parquet (2171)
: : +- Sort (2224)
: : +- Project (2223)
: : +- Generate (2222)
: : +- Project (2221)
: : +- Generate (2220)
: : +- Project (2219)
: : +- BroadcastHashJoin LeftOuter BuildRight (2218)
: : :- Project (2212)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2211)
: : : :- Project (2206)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2205)
: : : : :- Exchange (2199)
: : : : : +- Filter (2198)
: : : : : +- Scan parquet (2197)
: : : : +- BroadcastExchange (2204)
: : : : +- Project (2203)
: : : : +- Exchange (2202)
: : : : +- Project (2201)
: : : : +- Scan parquet (2200)
: : : +- BroadcastExchange (2210)
: : : +- Exchange (2209)
: : : +- Project (2208)
: : : +- Scan parquet (2207)
: : +- BroadcastExchange (2217)
: : +- Exchange (2216)
: : +- Project (2215)
: : +- Filter (2214)
: : +- Scan parquet (2213)
: +- Sort (2467)
: +- Exchange (2466)
: +- SerializeFromObject (2465)
: +- MapElements (2464)
: +- DeserializeToObject (2463)
: +- ObjectHashAggregate (2462)
: +- ObjectHashAggregate (2461)
: +- Project (2460)
: +- BroadcastHashJoin LeftOuter BuildRight (2459)
: :- Project (2455)
: : +- SortMergeJoin LeftOuter (2454)
: : :- Sort (2267)
: : : +- Project (2266)
: : : +- Project (2265)
: : : +- Generate (2264)
: : : +- Generate (2263)
: : : +- Project (2262)
: : : +- Project (2261)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2260)
: : : :- Project (2254)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2253)
: : : : :- BroadcastHashJoin LeftOuter BuildRight (2248)
: : : : : :- Exchange (2242)
: : : : : : +- Scan parquet (2241)
: : : : : +- BroadcastExchange (2247)
: : : : : +- Project (2246)
: : : : : +- Exchange (2245)
: : : : : +- Project (2244)
: : : : : +- Scan parquet (2243)
: : : : +- BroadcastExchange (2252)
: : : : +- Exchange (2251)
: : : : +- Project (2250)
: : : : +- Scan parquet (2249)
: : : +- BroadcastExchange (2259)
: : : +- Exchange (2258)
: : : +- Project (2257)
: : : +- Filter (2256)
: : : +- Scan parquet (2255)
: : +- Sort (2453)
: : +- HashAggregate (2452)
: : +- Exchange (2451)
: : +- HashAggregate (2450)
: : +- Project (2449)
: : +- SortMergeJoin Inner (2448)
: : :- Sort (2356)
: : : +- Exchange (2355)
: : : +- Project (2354)
: : : +- SortMergeJoin Inner (2353)
: : : :- Sort (2324)
: : : : +- Exchange (2323)
: : : : +- Project (2322)
: : : : +- Filter (2321)
: : : : +- Generate (2320)
: : : : +- Filter (2319)
: : : : +- ObjectHashAggregate (2318)
: : : : +- ObjectHashAggregate (2317)
: : : : +- Generate (2316)
: : : : +- BroadcastHashJoin Inner BuildLeft (2315)
: : : : :- BroadcastExchange (2272)
: : : : : +- Exchange (2271)
: : : : : +- Project (2270)
: : : : : +- Filter (2269)
: : : : : +- Scan parquet (2268)
: : : : +- Project (2314)
: : : : +- BroadcastHashJoin Inner BuildLeft (2313)
: : : : :- BroadcastExchange (2282)
: : : : : +- Project (2281)
: : : : : +- Generate (2280)
: : : : : +- Project (2279)
: : : : : +- Filter (2278)
: : : : : +- Generate (2277)
: : : : : +- Exchange (2276)
: : : : : +- Project (2275)
: : : : : +- Filter (2274)
: : : : : +- Scan parquet (2273)
: : : : +- HashAggregate (2312)
: : : : +- Exchange (2311)
: : : : +- HashAggregate (2310)
: : : : +- Project (2309)
: : : : +- Generate (2308)
: : : : +- Project (2307)
: : : : +- Generate (2306)
: : : : +- Project (2305)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2304)
: : : : :- Project (2298)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2297)
: : : : : :- Project (2292)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (2291)
: : : : : : :- Exchange (2285)
: : : : : : : +- Filter (2284)
: : : : : : : +- Scan parquet (2283)
: : : : : : +- BroadcastExchange (2290)
: : : : : : +- Project (2289)
: : : : : : +- Exchange (2288)
: : : : : : +- Project (2287)
: : : : : : +- Scan parquet (2286)
: : : : : +- BroadcastExchange (2296)
: : : : : +- Exchange (2295)
: : : : : +- Project (2294)
: : : : : +- Scan parquet (2293)
: : : : +- BroadcastExchange (2303)
: : : : +- Exchange (2302)
: : : : +- Project (2301)
: : : : +- Filter (2300)
: : : : +- Scan parquet (2299)
: : : +- Sort (2352)
: : : +- Project (2351)
: : : +- Generate (2350)
: : : +- Project (2349)
: : : +- Generate (2348)
: : : +- Project (2347)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2346)
: : : :- Project (2340)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2339)
: : : : :- Project (2334)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2333)
: : : : : :- Exchange (2327)
: : : : : : +- Filter (2326)
: : : : : : +- Scan parquet (2325)
: : : : : +- BroadcastExchange (2332)
: : : : : +- Project (2331)
: : : : : +- Exchange (2330)
: : : : : +- Project (2329)
: : : : : +- Scan parquet (2328)
: : : : +- BroadcastExchange (2338)
: : : : +- Exchange (2337)
: : : : +- Project (2336)
: : : : +- Scan parquet (2335)
: : : +- BroadcastExchange (2345)
: : : +- Exchange (2344)
: : : +- Project (2343)
: : : +- Filter (2342)
: : : +- Scan parquet (2341)
: : +- Sort (2447)
: : +- Exchange (2446)
: : +- HashAggregate (2445)
: : +- HashAggregate (2444)
: : +- Project (2443)
: : +- SortMergeJoin Inner (2442)
: : :- Sort (2413)
: : : +- Exchange (2412)
: : : +- Project (2411)
: : : +- Filter (2410)
: : : +- Generate (2409)
: : : +- Filter (2408)
: : : +- ObjectHashAggregate (2407)
: : : +- ObjectHashAggregate (2406)
: : : +- Generate (2405)
: : : +- BroadcastHashJoin Inner BuildLeft (2404)
: : : :- BroadcastExchange (2361)
: : : : +- Exchange (2360)
: : : : +- Project (2359)
: : : : +- Filter (2358)
: : : : +- Scan parquet (2357)
: : : +- Project (2403)
: : : +- BroadcastHashJoin Inner BuildLeft (2402)
: : : :- BroadcastExchange (2371)
: : : : +- Project (2370)
: : : : +- Generate (2369)
: : : : +- Project (2368)
: : : : +- Filter (2367)
: : : : +- Generate (2366)
: : : : +- Exchange (2365)
: : : : +- Project (2364)
: : : : +- Filter (2363)
: : : : +- Scan parquet (2362)
: : : +- HashAggregate (2401)
: : : +- Exchange (2400)
: : : +- HashAggregate (2399)
: : : +- Project (2398)
: : : +- Generate (2397)
: : : +- Project (2396)
: : : +- Generate (2395)
: : : +- Project (2394)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2393)
: : : :- Project (2387)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2386)
: : : : :- Project (2381)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2380)
: : : : : :- Exchange (2374)
: : : : : : +- Filter (2373)
: : : : : : +- Scan parquet (2372)
: : : : : +- BroadcastExchange (2379)
: : : : : +- Project (2378)
: : : : : +- Exchange (2377)
: : : : : +- Project (2376)
: : : : : +- Scan parquet (2375)
: : : : +- BroadcastExchange (2385)
: : : : +- Exchange (2384)
: : : : +- Project (2383)
: : : : +- Scan parquet (2382)
: : : +- BroadcastExchange (2392)
: : : +- Exchange (2391)
: : : +- Project (2390)
: : : +- Filter (2389)
: : : +- Scan parquet (2388)
: : +- Sort (2441)
: : +- Project (2440)
: : +- Generate (2439)
: : +- Project (2438)
: : +- Generate (2437)
: : +- Project (2436)
: : +- BroadcastHashJoin LeftOuter BuildRight (2435)
: : :- Project (2429)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2428)
: : : :- Project (2423)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2422)
: : : : :- Exchange (2416)
: : : : : +- Filter (2415)
: : : : : +- Scan parquet (2414)
: : : : +- BroadcastExchange (2421)
: : : : +- Project (2420)
: : : : +- Exchange (2419)
: : : : +- Project (2418)
: : : : +- Scan parquet (2417)
: : : +- BroadcastExchange (2427)
: : : +- Exchange (2426)
: : : +- Project (2425)
: : : +- Scan parquet (2424)
: : +- BroadcastExchange (2434)
: : +- Exchange (2433)
: : +- Project (2432)
: : +- Filter (2431)
: : +- Scan parquet (2430)
: +- BroadcastExchange (2458)
: +- Filter (2457)
: +- Scan parquet (2456)
+- Sort (2941)
+- Project (2940)
+- ObjectHashAggregate (2939)
+- Exchange (2938)
+- ObjectHashAggregate (2937)
+- Union (2936)
:- Filter (2474)
: +- InMemoryTableScan (2472)
: +- InMemoryRelation (2473)
: +- AdaptiveSparkPlan (1553)
+- == Final Plan ==
ResultQueryStage (732)
+- EmptyRelation (731)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (1552)
+- ObjectHashAggregate (1551)
+- Exchange (1550)
+- ObjectHashAggregate (1549)
+- Project (1548)
+- Window (1547)
+- Sort (1546)
+- Exchange (1545)
+- Project (1544)
+- InMemoryTableScan (733)
+- InMemoryRelation (734)
+- AdaptiveSparkPlan (1543)
+- == Final Plan ==
ResultQueryStage (1050)
+- Project (1049)
+- * BroadcastHashJoin Inner BuildRight (1048)
:- * Project (1036)
: +- * SortMergeJoin Inner (1035)
: :- * Sort (1018)
: : +- ShuffleQueryStage (1017), Statistics(sizeInBytes=11.7 KiB, rowCount=100)
: : +- Exchange (1016)
: : +- * Project (1015)
: : +- * BroadcastHashJoin LeftOuter BuildRight (1014)
: : :- AQEShuffleRead (908)
: : : +- ShuffleQueryStage (907), Statistics(sizeInBytes=11.7 KiB, rowCount=100)
: : : +- Exchange (906)
: : : +- * Project (905)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (904)
: : : :- * Project (772)
: : : : +- * Generate (771)
: : : : +- * Project (770)
: : : : +- * Generate (769)
: : : : +- Project (768)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (767)
: : : : :- * Project (758)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (757)
: : : : : :- * Project (749)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (748)
: : : : : : :- ShuffleQueryStage (739), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (738)
: : : : : : : +- * Filter (737)
: : : : : : : +- * ColumnarToRow (736)
: : : : : : : +- Scan parquet (735)
: : : : : : +- BroadcastQueryStage (747), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- BroadcastExchange (746)
: : : : : : +- * Project (745)
: : : : : : +- ShuffleQueryStage (744), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : : +- Exchange (743)
: : : : : : +- * Project (742)
: : : : : : +- * ColumnarToRow (741)
: : : : : : +- Scan parquet (740)
: : : : : +- BroadcastQueryStage (756), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- BroadcastExchange (755)
: : : : : +- ShuffleQueryStage (754), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : : +- Exchange (753)
: : : : : +- * Project (752)
: : : : : +- * ColumnarToRow (751)
: : : : : +- Scan parquet (750)
: : : : +- BroadcastQueryStage (766), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- BroadcastExchange (765)
: : : : +- ShuffleQueryStage (764), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : : +- Exchange (763)
: : : : +- * Project (762)
: : : : +- * Filter (761)
: : : : +- * ColumnarToRow (760)
: : : : +- Scan parquet (759)
: : : +- BroadcastQueryStage (903), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (902)
: : : +- * HashAggregate (901)
: : : +- AQEShuffleRead (900)
: : : +- ShuffleQueryStage (899), Statistics(sizeInBytes=3.2 KiB, rowCount=34)
: : : +- Exchange (898)
: : : +- * HashAggregate (897)
: : : +- * Project (896)
: : : +- * BroadcastHashJoin Inner BuildLeft (895)
: : : :- BroadcastQueryStage (867), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : : +- BroadcastExchange (866)
: : : : +- AQEShuffleRead (865)
: : : : +- ShuffleQueryStage (864), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : : +- Exchange (863)
: : : : +- * Project (862)
: : : : +- * BroadcastHashJoin Inner BuildLeft (861)
: : : : :- BroadcastQueryStage (839), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : : +- BroadcastExchange (838)
: : : : : +- AQEShuffleRead (837)
: : : : : +- ShuffleQueryStage (836), Statistics(sizeInBytes=7.0 KiB, rowCount=64)
: : : : : +- Exchange (835)
: : : : : +- * Project (834)
: : : : : +- * Filter (833)
: : : : : +- * Generate (832)
: : : : : +- * Filter (831)
: : : : : +- ObjectHashAggregate (830)
: : : : : +- ObjectHashAggregate (829)
: : : : : +- Generate (828)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (827)
: : : : : :- BroadcastQueryStage (780), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : : +- BroadcastExchange (779)
: : : : : : +- ShuffleQueryStage (778), Statistics(sizeInBytes=252.4 KiB, rowCount=419)
: : : : : : +- Exchange (777)
: : : : : : +- * Project (776)
: : : : : : +- * Filter (775)
: : : : : : +- * ColumnarToRow (774)
: : : : : : +- Scan parquet (773)
: : : : : +- * Project (826)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (825)
: : : : : :- BroadcastQueryStage (793), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : : +- BroadcastExchange (792)
: : : : : : +- * Project (791)
: : : : : : +- * Generate (790)
: : : : : : +- * Project (789)
: : : : : : +- * Filter (788)
: : : : : : +- * Generate (787)
: : : : : : +- ShuffleQueryStage (786), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : : : : : +- Exchange (785)
: : : : : : +- * Project (784)
: : : : : : +- * Filter (783)
: : : : : : +- * ColumnarToRow (782)
: : : : : : +- Scan parquet (781)
: : : : : +- * HashAggregate (824)
: : : : : +- AQEShuffleRead (823)
: : : : : +- ShuffleQueryStage (822), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : : +- Exchange (821)
: : : : : +- * HashAggregate (820)
: : : : : +- * Project (819)
: : : : : +- * Generate (818)
: : : : : +- * Project (817)
: : : : : +- * Generate (816)
: : : : : +- Project (815)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (814)
: : : : : :- * Project (811)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (810)
: : : : : : :- * Project (802)
: : : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (801)
: : : : : : : :- ShuffleQueryStage (798), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : : : : : : : +- Exchange (797)
: : : : : : : : +- * Filter (796)
: : : : : : : : +- * ColumnarToRow (795)
: : : : : : : : +- Scan parquet (794)
: : : : : : : +- BroadcastQueryStage (800), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : : +- ReusedExchange (799)
: : : : : : +- BroadcastQueryStage (809), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : : +- BroadcastExchange (808)
: : : : : : +- ShuffleQueryStage (807), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: : : : : : +- Exchange (806)
: : : : : : +- * Project (805)
: : : : : : +- * ColumnarToRow (804)
: : : : : : +- Scan parquet (803)
: : : : : +- BroadcastQueryStage (813), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : : +- ReusedExchange (812)
: : : : +- * Project (860)
: : : : +- * Generate (859)
: : : : +- * Project (858)
: : : : +- * Generate (857)
: : : : +- Project (856)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (855)
: : : : :- * Project (852)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (851)
: : : : : :- * Project (848)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (847)
: : : : : : :- ShuffleQueryStage (844), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (843)
: : : : : : : +- * Filter (842)
: : : : : : : +- * ColumnarToRow (841)
: : : : : : : +- Scan parquet (840)
: : : : : : +- BroadcastQueryStage (846), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (845)
: : : : : +- BroadcastQueryStage (850), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (849)
: : : : +- BroadcastQueryStage (854), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (853)
: : : +- AQEShuffleRead (894)
: : : +- ShuffleQueryStage (893), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : +- Exchange (892)
: : : +- * HashAggregate (891)
: : : +- * HashAggregate (890)
: : : +- * Project (889)
: : : +- * BroadcastHashJoin Inner BuildLeft (888)
: : : :- BroadcastQueryStage (869), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : +- ReusedExchange (868)
: : : +- * Project (887)
: : : +- * Generate (886)
: : : +- * Project (885)
: : : +- * Generate (884)
: : : +- Project (883)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (882)
: : : :- * Project (879)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (878)
: : : : :- * Project (875)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (874)
: : : : : :- ShuffleQueryStage (871), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : +- ReusedExchange (870)
: : : : : +- BroadcastQueryStage (873), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- ReusedExchange (872)
: : : : +- BroadcastQueryStage (877), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (876)
: : : +- BroadcastQueryStage (881), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (880)
: : +- BroadcastQueryStage (1013), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: : +- BroadcastExchange (1012)
: : +- AQEShuffleRead (1011)
: : +- ShuffleQueryStage (1010), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : +- Exchange (1009)
: : +- * SerializeFromObject (1008)
: : +- * MapElements (1007)
: : +- * DeserializeToObject (1006)
: : +- ObjectHashAggregate (1005)
: : +- ObjectHashAggregate (1004)
: : +- * Project (1003)
: : +- * BroadcastHashJoin LeftOuter BuildRight (1002)
: : :- * Project (996)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (995)
: : : :- * Project (934)
: : : : +- * Project (933)
: : : : +- * Generate (932)
: : : : +- * Generate (931)
: : : : +- * Project (930)
: : : : +- Project (929)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (928)
: : : : :- * Project (925)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (924)
: : : : : :- * BroadcastHashJoin LeftOuter BuildRight (921)
: : : : : : :- ShuffleQueryStage (912), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (911)
: : : : : : : +- * ColumnarToRow (910)
: : : : : : : +- Scan parquet (909)
: : : : : : +- BroadcastQueryStage (920), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- BroadcastExchange (919)
: : : : : : +- * Project (918)
: : : : : : +- ShuffleQueryStage (917), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : : +- Exchange (916)
: : : : : : +- * Project (915)
: : : : : : +- * ColumnarToRow (914)
: : : : : : +- Scan parquet (913)
: : : : : +- BroadcastQueryStage (923), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (922)
: : : : +- BroadcastQueryStage (927), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (926)
: : : +- BroadcastQueryStage (994), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (993)
: : : +- * HashAggregate (992)
: : : +- AQEShuffleRead (991)
: : : +- ShuffleQueryStage (990), Statistics(sizeInBytes=3.5 KiB, rowCount=34)
: : : +- Exchange (989)
: : : +- * HashAggregate (988)
: : : +- * Project (987)
: : : +- * BroadcastHashJoin Inner BuildLeft (986)
: : : :- BroadcastQueryStage (982), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : : +- BroadcastExchange (981)
: : : : +- AQEShuffleRead (980)
: : : : +- ShuffleQueryStage (979), Statistics(sizeInBytes=4.0 KiB, rowCount=34)
: : : : +- Exchange (978)
: : : : +- * Project (977)
: : : : +- * BroadcastHashJoin Inner BuildLeft (976)
: : : : :- BroadcastQueryStage (957), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : : +- BroadcastExchange (956)
: : : : : +- AQEShuffleRead (955)
: : : : : +- ShuffleQueryStage (954), Statistics(sizeInBytes=7.5 KiB, rowCount=64)
: : : : : +- Exchange (953)
: : : : : +- * Project (952)
: : : : : +- * Filter (951)
: : : : : +- * Generate (950)
: : : : : +- * Filter (949)
: : : : : +- ObjectHashAggregate (948)
: : : : : +- ObjectHashAggregate (947)
: : : : : +- Generate (946)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (945)
: : : : : :- BroadcastQueryStage (936), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : : +- ReusedExchange (935)
: : : : : +- * Project (944)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (943)
: : : : : :- BroadcastQueryStage (938), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : : +- ReusedExchange (937)
: : : : : +- * HashAggregate (942)
: : : : : +- AQEShuffleRead (941)
: : : : : +- ShuffleQueryStage (940), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : : +- ReusedExchange (939)
: : : : +- * Project (975)
: : : : +- * Generate (974)
: : : : +- * Project (973)
: : : : +- * Generate (972)
: : : : +- Project (971)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (970)
: : : : :- * Project (967)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (966)
: : : : : :- * Project (963)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (962)
: : : : : : :- ShuffleQueryStage (959), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- ReusedExchange (958)
: : : : : : +- BroadcastQueryStage (961), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (960)
: : : : : +- BroadcastQueryStage (965), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (964)
: : : : +- BroadcastQueryStage (969), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (968)
: : : +- AQEShuffleRead (985)
: : : +- ShuffleQueryStage (984), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : +- ReusedExchange (983)
: : +- BroadcastQueryStage (1001), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: : +- BroadcastExchange (1000)
: : +- * Filter (999)
: : +- * ColumnarToRow (998)
: : +- Scan parquet (997)
: +- * Sort (1034)
: +- * Project (1033)
: +- * BroadcastHashJoin Inner BuildLeft (1032)
: :- BroadcastQueryStage (1028), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : +- BroadcastExchange (1027)
: : +- * Project (1026)
: : +- * Filter (1025)
: : +- * Generate (1024)
: : +- * Project (1023)
: : +- * Filter (1022)
: : +- * Generate (1021)
: : +- ShuffleQueryStage (1020), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : +- ReusedExchange (1019)
: +- * HashAggregate (1031)
: +- ShuffleQueryStage (1030), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: +- ReusedExchange (1029)
+- BroadcastQueryStage (1047), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (1046)
+- * Project (1045)
+- * Filter (1044)
+- * Generate (1043)
+- ShuffleQueryStage (1042), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (1041)
+- * Project (1040)
+- * Filter (1039)
+- * ColumnarToRow (1038)
+- Scan parquet (1037)
+- == Initial Plan ==
Project (1542)
+- BroadcastHashJoin Inner BuildRight (1541)
:- Project (1533)
: +- SortMergeJoin Inner (1532)
: :- Sort (1487)
: : +- Exchange (1486)
: : +- Project (1485)
: : +- SortMergeJoin LeftOuter (1484)
: : :- Sort (1259)
: : : +- Exchange (1258)
: : : +- Project (1257)
: : : +- SortMergeJoin LeftOuter (1256)
: : : :- Sort (1074)
: : : : +- Project (1073)
: : : : +- Generate (1072)
: : : : +- Project (1071)
: : : : +- Generate (1070)
: : : : +- Project (1069)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1068)
: : : : :- Project (1063)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1062)
: : : : : :- Project (1058)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1057)
: : : : : : :- Exchange (1052)
: : : : : : : +- Filter (1051)
: : : : : : : +- Scan parquet (735)
: : : : : : +- BroadcastExchange (1056)
: : : : : : +- Project (1055)
: : : : : : +- Exchange (1054)
: : : : : : +- Project (1053)
: : : : : : +- Scan parquet (740)
: : : : : +- BroadcastExchange (1061)
: : : : : +- Exchange (1060)
: : : : : +- Project (1059)
: : : : : +- Scan parquet (750)
: : : : +- BroadcastExchange (1067)
: : : : +- Exchange (1066)
: : : : +- Project (1065)
: : : : +- Filter (1064)
: : : : +- Scan parquet (759)
: : : +- Sort (1255)
: : : +- HashAggregate (1254)
: : : +- Exchange (1253)
: : : +- HashAggregate (1252)
: : : +- Project (1251)
: : : +- SortMergeJoin Inner (1250)
: : : :- Sort (1158)
: : : : +- Exchange (1157)
: : : : +- Project (1156)
: : : : +- SortMergeJoin Inner (1155)
: : : : :- Sort (1127)
: : : : : +- Exchange (1126)
: : : : : +- Project (1125)
: : : : : +- Filter (1124)
: : : : : +- Generate (1123)
: : : : : +- Filter (1122)
: : : : : +- ObjectHashAggregate (1121)
: : : : : +- ObjectHashAggregate (1120)
: : : : : +- Generate (1119)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1118)
: : : : : :- BroadcastExchange (1078)
: : : : : : +- Exchange (1077)
: : : : : : +- Project (1076)
: : : : : : +- Filter (1075)
: : : : : : +- Scan parquet (773)
: : : : : +- Project (1117)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1116)
: : : : : :- BroadcastExchange (1087)
: : : : : : +- Project (1086)
: : : : : : +- Generate (1085)
: : : : : : +- Project (1084)
: : : : : : +- Filter (1083)
: : : : : : +- Generate (1082)
: : : : : : +- Exchange (1081)
: : : : : : +- Project (1080)
: : : : : : +- Filter (1079)
: : : : : : +- Scan parquet (781)
: : : : : +- HashAggregate (1115)
: : : : : +- Exchange (1114)
: : : : : +- HashAggregate (1113)
: : : : : +- Project (1112)
: : : : : +- Generate (1111)
: : : : : +- Project (1110)
: : : : : +- Generate (1109)
: : : : : +- Project (1108)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1107)
: : : : : :- Project (1101)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1100)
: : : : : : :- Project (1096)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1095)
: : : : : : : :- Exchange (1089)
: : : : : : : : +- Filter (1088)
: : : : : : : : +- Scan parquet (794)
: : : : : : : +- BroadcastExchange (1094)
: : : : : : : +- Project (1093)
: : : : : : : +- Exchange (1092)
: : : : : : : +- Project (1091)
: : : : : : : +- Scan parquet (1090)
: : : : : : +- BroadcastExchange (1099)
: : : : : : +- Exchange (1098)
: : : : : : +- Project (1097)
: : : : : : +- Scan parquet (803)
: : : : : +- BroadcastExchange (1106)
: : : : : +- Exchange (1105)
: : : : : +- Project (1104)
: : : : : +- Filter (1103)
: : : : : +- Scan parquet (1102)
: : : : +- Sort (1154)
: : : : +- Project (1153)
: : : : +- Generate (1152)
: : : : +- Project (1151)
: : : : +- Generate (1150)
: : : : +- Project (1149)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1148)
: : : : :- Project (1142)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1141)
: : : : : :- Project (1136)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1135)
: : : : : : :- Exchange (1129)
: : : : : : : +- Filter (1128)
: : : : : : : +- Scan parquet (840)
: : : : : : +- BroadcastExchange (1134)
: : : : : : +- Project (1133)
: : : : : : +- Exchange (1132)
: : : : : : +- Project (1131)
: : : : : : +- Scan parquet (1130)
: : : : : +- BroadcastExchange (1140)
: : : : : +- Exchange (1139)
: : : : : +- Project (1138)
: : : : : +- Scan parquet (1137)
: : : : +- BroadcastExchange (1147)
: : : : +- Exchange (1146)
: : : : +- Project (1145)
: : : : +- Filter (1144)
: : : : +- Scan parquet (1143)
: : : +- Sort (1249)
: : : +- Exchange (1248)
: : : +- HashAggregate (1247)
: : : +- HashAggregate (1246)
: : : +- Project (1245)
: : : +- SortMergeJoin Inner (1244)
: : : :- Sort (1215)
: : : : +- Exchange (1214)
: : : : +- Project (1213)
: : : : +- Filter (1212)
: : : : +- Generate (1211)
: : : : +- Filter (1210)
: : : : +- ObjectHashAggregate (1209)
: : : : +- ObjectHashAggregate (1208)
: : : : +- Generate (1207)
: : : : +- BroadcastHashJoin Inner BuildLeft (1206)
: : : : :- BroadcastExchange (1163)
: : : : : +- Exchange (1162)
: : : : : +- Project (1161)
: : : : : +- Filter (1160)
: : : : : +- Scan parquet (1159)
: : : : +- Project (1205)
: : : : +- BroadcastHashJoin Inner BuildLeft (1204)
: : : : :- BroadcastExchange (1173)
: : : : : +- Project (1172)
: : : : : +- Generate (1171)
: : : : : +- Project (1170)
: : : : : +- Filter (1169)
: : : : : +- Generate (1168)
: : : : : +- Exchange (1167)
: : : : : +- Project (1166)
: : : : : +- Filter (1165)
: : : : : +- Scan parquet (1164)
: : : : +- HashAggregate (1203)
: : : : +- Exchange (1202)
: : : : +- HashAggregate (1201)
: : : : +- Project (1200)
: : : : +- Generate (1199)
: : : : +- Project (1198)
: : : : +- Generate (1197)
: : : : +- Project (1196)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1195)
: : : : :- Project (1189)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1188)
: : : : : :- Project (1183)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1182)
: : : : : : :- Exchange (1176)
: : : : : : : +- Filter (1175)
: : : : : : : +- Scan parquet (1174)
: : : : : : +- BroadcastExchange (1181)
: : : : : : +- Project (1180)
: : : : : : +- Exchange (1179)
: : : : : : +- Project (1178)
: : : : : : +- Scan parquet (1177)
: : : : : +- BroadcastExchange (1187)
: : : : : +- Exchange (1186)
: : : : : +- Project (1185)
: : : : : +- Scan parquet (1184)
: : : : +- BroadcastExchange (1194)
: : : : +- Exchange (1193)
: : : : +- Project (1192)
: : : : +- Filter (1191)
: : : : +- Scan parquet (1190)
: : : +- Sort (1243)
: : : +- Project (1242)
: : : +- Generate (1241)
: : : +- Project (1240)
: : : +- Generate (1239)
: : : +- Project (1238)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1237)
: : : :- Project (1231)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1230)
: : : : :- Project (1225)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1224)
: : : : : :- Exchange (1218)
: : : : : : +- Filter (1217)
: : : : : : +- Scan parquet (1216)
: : : : : +- BroadcastExchange (1223)
: : : : : +- Project (1222)
: : : : : +- Exchange (1221)
: : : : : +- Project (1220)
: : : : : +- Scan parquet (1219)
: : : : +- BroadcastExchange (1229)
: : : : +- Exchange (1228)
: : : : +- Project (1227)
: : : : +- Scan parquet (1226)
: : : +- BroadcastExchange (1236)
: : : +- Exchange (1235)
: : : +- Project (1234)
: : : +- Filter (1233)
: : : +- Scan parquet (1232)
: : +- Sort (1483)
: : +- Exchange (1482)
: : +- SerializeFromObject (1481)
: : +- MapElements (1480)
: : +- DeserializeToObject (1479)
: : +- ObjectHashAggregate (1478)
: : +- ObjectHashAggregate (1477)
: : +- Project (1476)
: : +- BroadcastHashJoin LeftOuter BuildRight (1475)
: : :- Project (1472)
: : : +- SortMergeJoin LeftOuter (1471)
: : : :- Sort (1284)
: : : : +- Project (1283)
: : : : +- Project (1282)
: : : : +- Generate (1281)
: : : : +- Generate (1280)
: : : : +- Project (1279)
: : : : +- Project (1278)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1277)
: : : : :- Project (1271)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1270)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (1265)
: : : : : : :- Exchange (1260)
: : : : : : : +- Scan parquet (909)
: : : : : : +- BroadcastExchange (1264)
: : : : : : +- Project (1263)
: : : : : : +- Exchange (1262)
: : : : : : +- Project (1261)
: : : : : : +- Scan parquet (913)
: : : : : +- BroadcastExchange (1269)
: : : : : +- Exchange (1268)
: : : : : +- Project (1267)
: : : : : +- Scan parquet (1266)
: : : : +- BroadcastExchange (1276)
: : : : +- Exchange (1275)
: : : : +- Project (1274)
: : : : +- Filter (1273)
: : : : +- Scan parquet (1272)
: : : +- Sort (1470)
: : : +- HashAggregate (1469)
: : : +- Exchange (1468)
: : : +- HashAggregate (1467)
: : : +- Project (1466)
: : : +- SortMergeJoin Inner (1465)
: : : :- Sort (1373)
: : : : +- Exchange (1372)
: : : : +- Project (1371)
: : : : +- SortMergeJoin Inner (1370)
: : : : :- Sort (1341)
: : : : : +- Exchange (1340)
: : : : : +- Project (1339)
: : : : : +- Filter (1338)
: : : : : +- Generate (1337)
: : : : : +- Filter (1336)
: : : : : +- ObjectHashAggregate (1335)
: : : : : +- ObjectHashAggregate (1334)
: : : : : +- Generate (1333)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1332)
: : : : : :- BroadcastExchange (1289)
: : : : : : +- Exchange (1288)
: : : : : : +- Project (1287)
: : : : : : +- Filter (1286)
: : : : : : +- Scan parquet (1285)
: : : : : +- Project (1331)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1330)
: : : : : :- BroadcastExchange (1299)
: : : : : : +- Project (1298)
: : : : : : +- Generate (1297)
: : : : : : +- Project (1296)
: : : : : : +- Filter (1295)
: : : : : : +- Generate (1294)
: : : : : : +- Exchange (1293)
: : : : : : +- Project (1292)
: : : : : : +- Filter (1291)
: : : : : : +- Scan parquet (1290)
: : : : : +- HashAggregate (1329)
: : : : : +- Exchange (1328)
: : : : : +- HashAggregate (1327)
: : : : : +- Project (1326)
: : : : : +- Generate (1325)
: : : : : +- Project (1324)
: : : : : +- Generate (1323)
: : : : : +- Project (1322)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1321)
: : : : : :- Project (1315)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1314)
: : : : : : :- Project (1309)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1308)
: : : : : : : :- Exchange (1302)
: : : : : : : : +- Filter (1301)
: : : : : : : : +- Scan parquet (1300)
: : : : : : : +- BroadcastExchange (1307)
: : : : : : : +- Project (1306)
: : : : : : : +- Exchange (1305)
: : : : : : : +- Project (1304)
: : : : : : : +- Scan parquet (1303)
: : : : : : +- BroadcastExchange (1313)
: : : : : : +- Exchange (1312)
: : : : : : +- Project (1311)
: : : : : : +- Scan parquet (1310)
: : : : : +- BroadcastExchange (1320)
: : : : : +- Exchange (1319)
: : : : : +- Project (1318)
: : : : : +- Filter (1317)
: : : : : +- Scan parquet (1316)
: : : : +- Sort (1369)
: : : : +- Project (1368)
: : : : +- Generate (1367)
: : : : +- Project (1366)
: : : : +- Generate (1365)
: : : : +- Project (1364)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1363)
: : : : :- Project (1357)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1356)
: : : : : :- Project (1351)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1350)
: : : : : : :- Exchange (1344)
: : : : : : : +- Filter (1343)
: : : : : : : +- Scan parquet (1342)
: : : : : : +- BroadcastExchange (1349)
: : : : : : +- Project (1348)
: : : : : : +- Exchange (1347)
: : : : : : +- Project (1346)
: : : : : : +- Scan parquet (1345)
: : : : : +- BroadcastExchange (1355)
: : : : : +- Exchange (1354)
: : : : : +- Project (1353)
: : : : : +- Scan parquet (1352)
: : : : +- BroadcastExchange (1362)
: : : : +- Exchange (1361)
: : : : +- Project (1360)
: : : : +- Filter (1359)
: : : : +- Scan parquet (1358)
: : : +- Sort (1464)
: : : +- Exchange (1463)
: : : +- HashAggregate (1462)
: : : +- HashAggregate (1461)
: : : +- Project (1460)
: : : +- SortMergeJoin Inner (1459)
: : : :- Sort (1430)
: : : : +- Exchange (1429)
: : : : +- Project (1428)
: : : : +- Filter (1427)
: : : : +- Generate (1426)
: : : : +- Filter (1425)
: : : : +- ObjectHashAggregate (1424)
: : : : +- ObjectHashAggregate (1423)
: : : : +- Generate (1422)
: : : : +- BroadcastHashJoin Inner BuildLeft (1421)
: : : : :- BroadcastExchange (1378)
: : : : : +- Exchange (1377)
: : : : : +- Project (1376)
: : : : : +- Filter (1375)
: : : : : +- Scan parquet (1374)
: : : : +- Project (1420)
: : : : +- BroadcastHashJoin Inner BuildLeft (1419)
: : : : :- BroadcastExchange (1388)
: : : : : +- Project (1387)
: : : : : +- Generate (1386)
: : : : : +- Project (1385)
: : : : : +- Filter (1384)
: : : : : +- Generate (1383)
: : : : : +- Exchange (1382)
: : : : : +- Project (1381)
: : : : : +- Filter (1380)
: : : : : +- Scan parquet (1379)
: : : : +- HashAggregate (1418)
: : : : +- Exchange (1417)
: : : : +- HashAggregate (1416)
: : : : +- Project (1415)
: : : : +- Generate (1414)
: : : : +- Project (1413)
: : : : +- Generate (1412)
: : : : +- Project (1411)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1410)
: : : : :- Project (1404)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1403)
: : : : : :- Project (1398)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1397)
: : : : : : :- Exchange (1391)
: : : : : : : +- Filter (1390)
: : : : : : : +- Scan parquet (1389)
: : : : : : +- BroadcastExchange (1396)
: : : : : : +- Project (1395)
: : : : : : +- Exchange (1394)
: : : : : : +- Project (1393)
: : : : : : +- Scan parquet (1392)
: : : : : +- BroadcastExchange (1402)
: : : : : +- Exchange (1401)
: : : : : +- Project (1400)
: : : : : +- Scan parquet (1399)
: : : : +- BroadcastExchange (1409)
: : : : +- Exchange (1408)
: : : : +- Project (1407)
: : : : +- Filter (1406)
: : : : +- Scan parquet (1405)
: : : +- Sort (1458)
: : : +- Project (1457)
: : : +- Generate (1456)
: : : +- Project (1455)
: : : +- Generate (1454)
: : : +- Project (1453)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1452)
: : : :- Project (1446)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1445)
: : : : :- Project (1440)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1439)
: : : : : :- Exchange (1433)
: : : : : : +- Filter (1432)
: : : : : : +- Scan parquet (1431)
: : : : : +- BroadcastExchange (1438)
: : : : : +- Project (1437)
: : : : : +- Exchange (1436)
: : : : : +- Project (1435)
: : : : : +- Scan parquet (1434)
: : : : +- BroadcastExchange (1444)
: : : : +- Exchange (1443)
: : : : +- Project (1442)
: : : : +- Scan parquet (1441)
: : : +- BroadcastExchange (1451)
: : : +- Exchange (1450)
: : : +- Project (1449)
: : : +- Filter (1448)
: : : +- Scan parquet (1447)
: : +- BroadcastExchange (1474)
: : +- Filter (1473)
: : +- Scan parquet (997)
: +- Sort (1531)
: +- Project (1530)
: +- BroadcastHashJoin Inner BuildLeft (1529)
: :- BroadcastExchange (1498)
: : +- Project (1497)
: : +- Filter (1496)
: : +- Generate (1495)
: : +- Project (1494)
: : +- Filter (1493)
: : +- Generate (1492)
: : +- Exchange (1491)
: : +- Project (1490)
: : +- Filter (1489)
: : +- Scan parquet (1488)
: +- HashAggregate (1528)
: +- Exchange (1527)
: +- HashAggregate (1526)
: +- Project (1525)
: +- Generate (1524)
: +- Project (1523)
: +- Generate (1522)
: +- Project (1521)
: +- BroadcastHashJoin LeftOuter BuildRight (1520)
: :- Project (1514)
: : +- BroadcastHashJoin LeftOuter BuildRight (1513)
: : :- Project (1508)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1507)
: : : :- Exchange (1501)
: : : : +- Filter (1500)
: : : : +- Scan parquet (1499)
: : : +- BroadcastExchange (1506)
: : : +- Project (1505)
: : : +- Exchange (1504)
: : : +- Project (1503)
: : : +- Scan parquet (1502)
: : +- BroadcastExchange (1512)
: : +- Exchange (1511)
: : +- Project (1510)
: : +- Scan parquet (1509)
: +- BroadcastExchange (1519)
: +- Exchange (1518)
: +- Project (1517)
: +- Filter (1516)
: +- Scan parquet (1515)
+- BroadcastExchange (1540)
+- Project (1539)
+- Filter (1538)
+- Generate (1537)
+- Exchange (1536)
+- Project (1535)
+- Filter (1534)
+- Scan parquet (1037)
+- Filter (2935)
+- ObjectHashAggregate (2934)
+- Exchange (2933)
+- ObjectHashAggregate (2932)
+- Project (2931)
+- BroadcastHashJoin Inner BuildRight (2930)
:- Project (2921)
: +- SortMergeJoin LeftOuter (2920)
: :- Sort (2692)
: : +- Exchange (2691)
: : +- Project (2690)
: : +- SortMergeJoin LeftOuter (2689)
: : :- Sort (2502)
: : : +- Project (2501)
: : : +- Generate (2500)
: : : +- Project (2499)
: : : +- Generate (2498)
: : : +- Project (2497)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2496)
: : : :- Project (2490)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2489)
: : : : :- Project (2484)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2483)
: : : : : :- Exchange (2477)
: : : : : : +- Filter (2476)
: : : : : : +- Scan parquet (2475)
: : : : : +- BroadcastExchange (2482)
: : : : : +- Project (2481)
: : : : : +- Exchange (2480)
: : : : : +- Project (2479)
: : : : : +- Scan parquet (2478)
: : : : +- BroadcastExchange (2488)
: : : : +- Exchange (2487)
: : : : +- Project (2486)
: : : : +- Scan parquet (2485)
: : : +- BroadcastExchange (2495)
: : : +- Exchange (2494)
: : : +- Project (2493)
: : : +- Filter (2492)
: : : +- Scan parquet (2491)
: : +- Sort (2688)
: : +- HashAggregate (2687)
: : +- Exchange (2686)
: : +- HashAggregate (2685)
: : +- Project (2684)
: : +- SortMergeJoin Inner (2683)
: : :- Sort (2591)
: : : +- Exchange (2590)
: : : +- Project (2589)
: : : +- SortMergeJoin Inner (2588)
: : : :- Sort (2559)
: : : : +- Exchange (2558)
: : : : +- Project (2557)
: : : : +- Filter (2556)
: : : : +- Generate (2555)
: : : : +- Filter (2554)
: : : : +- ObjectHashAggregate (2553)
: : : : +- ObjectHashAggregate (2552)
: : : : +- Generate (2551)
: : : : +- BroadcastHashJoin Inner BuildLeft (2550)
: : : : :- BroadcastExchange (2507)
: : : : : +- Exchange (2506)
: : : : : +- Project (2505)
: : : : : +- Filter (2504)
: : : : : +- Scan parquet (2503)
: : : : +- Project (2549)
: : : : +- BroadcastHashJoin Inner BuildLeft (2548)
: : : : :- BroadcastExchange (2517)
: : : : : +- Project (2516)
: : : : : +- Generate (2515)
: : : : : +- Project (2514)
: : : : : +- Filter (2513)
: : : : : +- Generate (2512)
: : : : : +- Exchange (2511)
: : : : : +- Project (2510)
: : : : : +- Filter (2509)
: : : : : +- Scan parquet (2508)
: : : : +- HashAggregate (2547)
: : : : +- Exchange (2546)
: : : : +- HashAggregate (2545)
: : : : +- Project (2544)
: : : : +- Generate (2543)
: : : : +- Project (2542)
: : : : +- Generate (2541)
: : : : +- Project (2540)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2539)
: : : : :- Project (2533)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2532)
: : : : : :- Project (2527)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (2526)
: : : : : : :- Exchange (2520)
: : : : : : : +- Filter (2519)
: : : : : : : +- Scan parquet (2518)
: : : : : : +- BroadcastExchange (2525)
: : : : : : +- Project (2524)
: : : : : : +- Exchange (2523)
: : : : : : +- Project (2522)
: : : : : : +- Scan parquet (2521)
: : : : : +- BroadcastExchange (2531)
: : : : : +- Exchange (2530)
: : : : : +- Project (2529)
: : : : : +- Scan parquet (2528)
: : : : +- BroadcastExchange (2538)
: : : : +- Exchange (2537)
: : : : +- Project (2536)
: : : : +- Filter (2535)
: : : : +- Scan parquet (2534)
: : : +- Sort (2587)
: : : +- Project (2586)
: : : +- Generate (2585)
: : : +- Project (2584)
: : : +- Generate (2583)
: : : +- Project (2582)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2581)
: : : :- Project (2575)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2574)
: : : : :- Project (2569)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2568)
: : : : : :- Exchange (2562)
: : : : : : +- Filter (2561)
: : : : : : +- Scan parquet (2560)
: : : : : +- BroadcastExchange (2567)
: : : : : +- Project (2566)
: : : : : +- Exchange (2565)
: : : : : +- Project (2564)
: : : : : +- Scan parquet (2563)
: : : : +- BroadcastExchange (2573)
: : : : +- Exchange (2572)
: : : : +- Project (2571)
: : : : +- Scan parquet (2570)
: : : +- BroadcastExchange (2580)
: : : +- Exchange (2579)
: : : +- Project (2578)
: : : +- Filter (2577)
: : : +- Scan parquet (2576)
: : +- Sort (2682)
: : +- Exchange (2681)
: : +- HashAggregate (2680)
: : +- HashAggregate (2679)
: : +- Project (2678)
: : +- SortMergeJoin Inner (2677)
: : :- Sort (2648)
: : : +- Exchange (2647)
: : : +- Project (2646)
: : : +- Filter (2645)
: : : +- Generate (2644)
: : : +- Filter (2643)
: : : +- ObjectHashAggregate (2642)
: : : +- ObjectHashAggregate (2641)
: : : +- Generate (2640)
: : : +- BroadcastHashJoin Inner BuildLeft (2639)
: : : :- BroadcastExchange (2596)
: : : : +- Exchange (2595)
: : : : +- Project (2594)
: : : : +- Filter (2593)
: : : : +- Scan parquet (2592)
: : : +- Project (2638)
: : : +- BroadcastHashJoin Inner BuildLeft (2637)
: : : :- BroadcastExchange (2606)
: : : : +- Project (2605)
: : : : +- Generate (2604)
: : : : +- Project (2603)
: : : : +- Filter (2602)
: : : : +- Generate (2601)
: : : : +- Exchange (2600)
: : : : +- Project (2599)
: : : : +- Filter (2598)
: : : : +- Scan parquet (2597)
: : : +- HashAggregate (2636)
: : : +- Exchange (2635)
: : : +- HashAggregate (2634)
: : : +- Project (2633)
: : : +- Generate (2632)
: : : +- Project (2631)
: : : +- Generate (2630)
: : : +- Project (2629)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2628)
: : : :- Project (2622)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2621)
: : : : :- Project (2616)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2615)
: : : : : :- Exchange (2609)
: : : : : : +- Filter (2608)
: : : : : : +- Scan parquet (2607)
: : : : : +- BroadcastExchange (2614)
: : : : : +- Project (2613)
: : : : : +- Exchange (2612)
: : : : : +- Project (2611)
: : : : : +- Scan parquet (2610)
: : : : +- BroadcastExchange (2620)
: : : : +- Exchange (2619)
: : : : +- Project (2618)
: : : : +- Scan parquet (2617)
: : : +- BroadcastExchange (2627)
: : : +- Exchange (2626)
: : : +- Project (2625)
: : : +- Filter (2624)
: : : +- Scan parquet (2623)
: : +- Sort (2676)
: : +- Project (2675)
: : +- Generate (2674)
: : +- Project (2673)
: : +- Generate (2672)
: : +- Project (2671)
: : +- BroadcastHashJoin LeftOuter BuildRight (2670)
: : :- Project (2664)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2663)
: : : :- Project (2658)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2657)
: : : : :- Exchange (2651)
: : : : : +- Filter (2650)
: : : : : +- Scan parquet (2649)
: : : : +- BroadcastExchange (2656)
: : : : +- Project (2655)
: : : : +- Exchange (2654)
: : : : +- Project (2653)
: : : : +- Scan parquet (2652)
: : : +- BroadcastExchange (2662)
: : : +- Exchange (2661)
: : : +- Project (2660)
: : : +- Scan parquet (2659)
: : +- BroadcastExchange (2669)
: : +- Exchange (2668)
: : +- Project (2667)
: : +- Filter (2666)
: : +- Scan parquet (2665)
: +- Sort (2919)
: +- Exchange (2918)
: +- SerializeFromObject (2917)
: +- MapElements (2916)
: +- DeserializeToObject (2915)
: +- ObjectHashAggregate (2914)
: +- ObjectHashAggregate (2913)
: +- Project (2912)
: +- BroadcastHashJoin LeftOuter BuildRight (2911)
: :- Project (2907)
: : +- SortMergeJoin LeftOuter (2906)
: : :- Sort (2719)
: : : +- Project (2718)
: : : +- Project (2717)
: : : +- Generate (2716)
: : : +- Generate (2715)
: : : +- Project (2714)
: : : +- Project (2713)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2712)
: : : :- Project (2706)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2705)
: : : : :- BroadcastHashJoin LeftOuter BuildRight (2700)
: : : : : :- Exchange (2694)
: : : : : : +- Scan parquet (2693)
: : : : : +- BroadcastExchange (2699)
: : : : : +- Project (2698)
: : : : : +- Exchange (2697)
: : : : : +- Project (2696)
: : : : : +- Scan parquet (2695)
: : : : +- BroadcastExchange (2704)
: : : : +- Exchange (2703)
: : : : +- Project (2702)
: : : : +- Scan parquet (2701)
: : : +- BroadcastExchange (2711)
: : : +- Exchange (2710)
: : : +- Project (2709)
: : : +- Filter (2708)
: : : +- Scan parquet (2707)
: : +- Sort (2905)
: : +- HashAggregate (2904)
: : +- Exchange (2903)
: : +- HashAggregate (2902)
: : +- Project (2901)
: : +- SortMergeJoin Inner (2900)
: : :- Sort (2808)
: : : +- Exchange (2807)
: : : +- Project (2806)
: : : +- SortMergeJoin Inner (2805)
: : : :- Sort (2776)
: : : : +- Exchange (2775)
: : : : +- Project (2774)
: : : : +- Filter (2773)
: : : : +- Generate (2772)
: : : : +- Filter (2771)
: : : : +- ObjectHashAggregate (2770)
: : : : +- ObjectHashAggregate (2769)
: : : : +- Generate (2768)
: : : : +- BroadcastHashJoin Inner BuildLeft (2767)
: : : : :- BroadcastExchange (2724)
: : : : : +- Exchange (2723)
: : : : : +- Project (2722)
: : : : : +- Filter (2721)
: : : : : +- Scan parquet (2720)
: : : : +- Project (2766)
: : : : +- BroadcastHashJoin Inner BuildLeft (2765)
: : : : :- BroadcastExchange (2734)
: : : : : +- Project (2733)
: : : : : +- Generate (2732)
: : : : : +- Project (2731)
: : : : : +- Filter (2730)
: : : : : +- Generate (2729)
: : : : : +- Exchange (2728)
: : : : : +- Project (2727)
: : : : : +- Filter (2726)
: : : : : +- Scan parquet (2725)
: : : : +- HashAggregate (2764)
: : : : +- Exchange (2763)
: : : : +- HashAggregate (2762)
: : : : +- Project (2761)
: : : : +- Generate (2760)
: : : : +- Project (2759)
: : : : +- Generate (2758)
: : : : +- Project (2757)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2756)
: : : : :- Project (2750)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2749)
: : : : : :- Project (2744)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (2743)
: : : : : : :- Exchange (2737)
: : : : : : : +- Filter (2736)
: : : : : : : +- Scan parquet (2735)
: : : : : : +- BroadcastExchange (2742)
: : : : : : +- Project (2741)
: : : : : : +- Exchange (2740)
: : : : : : +- Project (2739)
: : : : : : +- Scan parquet (2738)
: : : : : +- BroadcastExchange (2748)
: : : : : +- Exchange (2747)
: : : : : +- Project (2746)
: : : : : +- Scan parquet (2745)
: : : : +- BroadcastExchange (2755)
: : : : +- Exchange (2754)
: : : : +- Project (2753)
: : : : +- Filter (2752)
: : : : +- Scan parquet (2751)
: : : +- Sort (2804)
: : : +- Project (2803)
: : : +- Generate (2802)
: : : +- Project (2801)
: : : +- Generate (2800)
: : : +- Project (2799)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2798)
: : : :- Project (2792)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2791)
: : : : :- Project (2786)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2785)
: : : : : :- Exchange (2779)
: : : : : : +- Filter (2778)
: : : : : : +- Scan parquet (2777)
: : : : : +- BroadcastExchange (2784)
: : : : : +- Project (2783)
: : : : : +- Exchange (2782)
: : : : : +- Project (2781)
: : : : : +- Scan parquet (2780)
: : : : +- BroadcastExchange (2790)
: : : : +- Exchange (2789)
: : : : +- Project (2788)
: : : : +- Scan parquet (2787)
: : : +- BroadcastExchange (2797)
: : : +- Exchange (2796)
: : : +- Project (2795)
: : : +- Filter (2794)
: : : +- Scan parquet (2793)
: : +- Sort (2899)
: : +- Exchange (2898)
: : +- HashAggregate (2897)
: : +- HashAggregate (2896)
: : +- Project (2895)
: : +- SortMergeJoin Inner (2894)
: : :- Sort (2865)
: : : +- Exchange (2864)
: : : +- Project (2863)
: : : +- Filter (2862)
: : : +- Generate (2861)
: : : +- Filter (2860)
: : : +- ObjectHashAggregate (2859)
: : : +- ObjectHashAggregate (2858)
: : : +- Generate (2857)
: : : +- BroadcastHashJoin Inner BuildLeft (2856)
: : : :- BroadcastExchange (2813)
: : : : +- Exchange (2812)
: : : : +- Project (2811)
: : : : +- Filter (2810)
: : : : +- Scan parquet (2809)
: : : +- Project (2855)
: : : +- BroadcastHashJoin Inner BuildLeft (2854)
: : : :- BroadcastExchange (2823)
: : : : +- Project (2822)
: : : : +- Generate (2821)
: : : : +- Project (2820)
: : : : +- Filter (2819)
: : : : +- Generate (2818)
: : : : +- Exchange (2817)
: : : : +- Project (2816)
: : : : +- Filter (2815)
: : : : +- Scan parquet (2814)
: : : +- HashAggregate (2853)
: : : +- Exchange (2852)
: : : +- HashAggregate (2851)
: : : +- Project (2850)
: : : +- Generate (2849)
: : : +- Project (2848)
: : : +- Generate (2847)
: : : +- Project (2846)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2845)
: : : :- Project (2839)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2838)
: : : : :- Project (2833)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2832)
: : : : : :- Exchange (2826)
: : : : : : +- Filter (2825)
: : : : : : +- Scan parquet (2824)
: : : : : +- BroadcastExchange (2831)
: : : : : +- Project (2830)
: : : : : +- Exchange (2829)
: : : : : +- Project (2828)
: : : : : +- Scan parquet (2827)
: : : : +- BroadcastExchange (2837)
: : : : +- Exchange (2836)
: : : : +- Project (2835)
: : : : +- Scan parquet (2834)
: : : +- BroadcastExchange (2844)
: : : +- Exchange (2843)
: : : +- Project (2842)
: : : +- Filter (2841)
: : : +- Scan parquet (2840)
: : +- Sort (2893)
: : +- Project (2892)
: : +- Generate (2891)
: : +- Project (2890)
: : +- Generate (2889)
: : +- Project (2888)
: : +- BroadcastHashJoin LeftOuter BuildRight (2887)
: : :- Project (2881)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2880)
: : : :- Project (2875)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2874)
: : : : :- Exchange (2868)
: : : : : +- Filter (2867)
: : : : : +- Scan parquet (2866)
: : : : +- BroadcastExchange (2873)
: : : : +- Project (2872)
: : : : +- Exchange (2871)
: : : : +- Project (2870)
: : : : +- Scan parquet (2869)
: : : +- BroadcastExchange (2879)
: : : +- Exchange (2878)
: : : +- Project (2877)
: : : +- Scan parquet (2876)
: : +- BroadcastExchange (2886)
: : +- Exchange (2885)
: : +- Project (2884)
: : +- Filter (2883)
: : +- Scan parquet (2882)
: +- BroadcastExchange (2910)
: +- Filter (2909)
: +- Scan parquet (2908)
+- BroadcastExchange (2929)
+- Project (2928)
+- Filter (2927)
+- Generate (2926)
+- Exchange (2925)
+- Project (2924)
+- Filter (2923)
+- Scan parquet (2922)
(1) Scan parquet
Output [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2) ColumnarToRow [codegen id : 1]
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
(3) Exchange
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: hashpartitioning(product#1225622, plant#1225623, 37), REPARTITION_BY_NUM, [plan_id=1933396]
(4) ShuffleQueryStage
Output [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: 0
(5) Scan parquet
Output [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(6) ColumnarToRow [codegen id : 2]
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(7) Project [codegen id : 2]
Output [4]: [plant#1225629.internalRefUUID AS _extract_internalRefUUID#1234018, product#1225630.internalRefUUID AS _extract_internalRefUUID#1234017, productionAspect#1225632.productMovementPlants.unitOfIssue.code AS _extract_code#1234019, productionAspect#1225632.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234020]
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(8) Exchange
Input [4]: [_extract_internalRefUUID#1234018, _extract_internalRefUUID#1234017, _extract_code#1234019, _extract_internalRefUUID#1234020]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1933410]
(9) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#1234018, _extract_internalRefUUID#1234017, _extract_code#1234019, _extract_internalRefUUID#1234020]
Arguments: 1
(10) Project [codegen id : 199]
Output [4]: [_extract_code#1234019, _extract_internalRefUUID#1234020, _extract_internalRefUUID#1234017, _extract_internalRefUUID#1234018]
Input [4]: [_extract_internalRefUUID#1234018, _extract_internalRefUUID#1234017, _extract_code#1234019, _extract_internalRefUUID#1234020]
(11) BroadcastExchange
Input [4]: [_extract_code#1234019, _extract_internalRefUUID#1234020, _extract_internalRefUUID#1234017, _extract_internalRefUUID#1234018]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1982098]
(12) BroadcastQueryStage
Output [4]: [_extract_code#1234019, _extract_internalRefUUID#1234020, _extract_internalRefUUID#1234017, _extract_internalRefUUID#1234018]
Arguments: 385
(13) BroadcastHashJoin [codegen id : 369]
Left keys [4]: [coalesce(product#1225622, ), isnull(product#1225622), coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234017, ), isnull(_extract_internalRefUUID#1234017), coalesce(_extract_internalRefUUID#1234018, ), isnull(_extract_internalRefUUID#1234018)]
Join type: LeftOuter
Join condition: None
(14) Project [codegen id : 369]
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020, _extract_internalRefUUID#1234017, _extract_internalRefUUID#1234018]
(15) Scan parquet
Output [2]: [internalUUID#1225640, systemId#1225639]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(16) ColumnarToRow [codegen id : 3]
Input [2]: [internalUUID#1225640, systemId#1225639]
(17) Project [codegen id : 3]
Output [1]: [internalUUID#1225640]
Input [2]: [internalUUID#1225640, systemId#1225639]
(18) Exchange
Input [1]: [internalUUID#1225640]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1933429]
(19) ShuffleQueryStage
Output [1]: [internalUUID#1225640]
Arguments: 2
(20) BroadcastExchange
Input [1]: [internalUUID#1225640]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1933437]
(21) BroadcastQueryStage
Output [1]: [internalUUID#1225640]
Arguments: 386
(22) BroadcastHashJoin [codegen id : 369]
Left keys [2]: [coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [2]: [coalesce(internalUUID#1225640, ), isnull(internalUUID#1225640)]
Join type: LeftOuter
Join condition: None
(23) Project [codegen id : 369]
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020]
Input [6]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020, internalUUID#1225640]
(24) Scan parquet
Output [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(25) ColumnarToRow [codegen id : 4]
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(26) Filter [codegen id : 4]
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Condition : isnotnull(internalUUID#1225656)
(27) Project [codegen id : 4]
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(28) Exchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1933449]
(29) ShuffleQueryStage
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: 3
(30) BroadcastExchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1933459]
(31) BroadcastQueryStage
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: 387
(32) BroadcastHashJoin [codegen id : 369]
Left keys [1]: [product#1225622]
Right keys [1]: [internalUUID#1225656]
Join type: LeftOuter
Join condition: None
(33) Project
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, filter(unitOfMeasureConversions#1225662, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234019) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234020)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225660.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225660.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225668]
Input [8]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020, internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
(34) Project [codegen id : 370]
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, filteredUnitOfMeasureConversions#1225668.quantityDenominator AS _extract_quantityDenominator#1233512, filteredUnitOfMeasureConversions#1225668.quantityNumerator AS _extract_quantityNumerator#1233513]
Input [4]: [product#1225622, plant#1225623, orderDateTime#1225624, filteredUnitOfMeasureConversions#1225668]
(35) Generate [codegen id : 370]
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_quantityDenominator#1233512, _extract_quantityNumerator#1233513]
Arguments: explode(_extract_quantityNumerator#1233513), [product#1225622, plant#1225623, orderDateTime#1225624, _extract_quantityDenominator#1233512], true, [quantityNumerator#1225676]
(36) Generate [codegen id : 370]
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_quantityDenominator#1233512, quantityNumerator#1225676]
Arguments: explode(_extract_quantityDenominator#1233512), [product#1225622, plant#1225623, orderDateTime#1225624, quantityNumerator#1225676], true, [quantityDenominator#1225679]
(37) Project [codegen id : 370]
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, (cast(quantityNumerator#1225676 as double) / cast(quantityDenominator#1225679 as double)) AS outboundUnit#1225680]
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, quantityNumerator#1225676, quantityDenominator#1225679]
(38) Project [codegen id : 370]
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, CASE WHEN (isnull(outboundUnit#1225680) OR (outboundUnit#1225680 <= 0.0)) THEN 1.0 ELSE outboundUnit#1225680 END AS outboundUnit#1225681]
Input [4]: [product#1225622, plant#1225623, orderDateTime#1225624, outboundUnit#1225680]
(39) Scan parquet
Output [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(40) ColumnarToRow [codegen id : 5]
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(41) Filter [codegen id : 5]
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Condition : (isnotnull(plant#1225721.internalRefUUID) AND isnotnull(product#1225720.internalRefUUID))
(42) Project [codegen id : 5]
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(43) Exchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1933477]
(44) ShuffleQueryStage
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: 4
(45) BroadcastExchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1933487]
(46) BroadcastQueryStage
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: 388
(47) Scan parquet
Output [2]: [marketUnit#1225682, distributionCenters#1225688]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(48) ColumnarToRow [codegen id : 6]
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(49) Filter [codegen id : 6]
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
Condition : (((marketUnit#1225682 <=> AUTO_MUV2) AND (size(distributionCenters#1225688, true) > 0)) AND isnotnull(distributionCenters#1225688))
(50) Project [codegen id : 6]
Output [1]: [distributionCenters#1225688]
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(51) Exchange
Input [1]: [distributionCenters#1225688]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1933497]
(52) ShuffleQueryStage
Output [1]: [distributionCenters#1225688]
Arguments: 5
(53) Generate [codegen id : 200]
Input [1]: [distributionCenters#1225688]
Arguments: explode(distributionCenters#1225688), false, [distributionCenters#1225706]
(54) Filter [codegen id : 200]
Input [1]: [distributionCenters#1225706]
Condition : (((size(distributionCenters#1225706.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225706.storageLocations)) AND isnotnull(distributionCenters#1225706.internalRefUUID))
(55) Project [codegen id : 200]
Output [2]: [distributionCenters#1225706.internalRefUUID AS _extract_internalRefUUID#1233331, distributionCenters#1225706.storageLocations AS _extract_storageLocations#1233332]
Input [1]: [distributionCenters#1225706]
(56) Generate [codegen id : 200]
Input [2]: [_extract_internalRefUUID#1233331, _extract_storageLocations#1233332]
Arguments: explode(_extract_storageLocations#1233332), [_extract_internalRefUUID#1233331], false, [storageLocations#1225713]
(57) Project [codegen id : 200]
Output [3]: [_extract_internalRefUUID#1233331 AS plantUuid#1225708, storageLocations#1225713.id AS storageLocId#1225714, storageLocations#1225713.internalRefUUID AS storageLocUuid#1225715]
Input [2]: [_extract_internalRefUUID#1233331, storageLocations#1225713]
(58) BroadcastExchange
Input [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1982127]
(59) BroadcastQueryStage
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: 389
(60) Scan parquet
Output [2]: [product#1225978, plant#1225979]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(61) ColumnarToRow [codegen id : 7]
Input [2]: [product#1225978, plant#1225979]
(62) Filter [codegen id : 7]
Input [2]: [product#1225978, plant#1225979]
Condition : isnotnull(plant#1225979)
(63) Exchange
Input [2]: [product#1225978, plant#1225979]
Arguments: hashpartitioning(product#1225978, plant#1225979, 37), REPARTITION_BY_NUM, [plan_id=1933520]
(64) ShuffleQueryStage
Output [2]: [product#1225978, plant#1225979]
Arguments: 6
(65) ReusedExchange [Reuses operator id: 11]
Output [4]: [_extract_code#1234023, _extract_internalRefUUID#1234024, _extract_internalRefUUID#1234021, _extract_internalRefUUID#1234022]
(66) BroadcastQueryStage
Output [4]: [_extract_code#1234023, _extract_internalRefUUID#1234024, _extract_internalRefUUID#1234021, _extract_internalRefUUID#1234022]
Arguments: 391
(67) BroadcastHashJoin [codegen id : 257]
Left keys [4]: [coalesce(product#1225978, ), isnull(product#1225978), coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234021, ), isnull(_extract_internalRefUUID#1234021), coalesce(_extract_internalRefUUID#1234022, ), isnull(_extract_internalRefUUID#1234022)]
Join type: LeftOuter
Join condition: None
(68) Project [codegen id : 257]
Output [4]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024]
Input [6]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024, _extract_internalRefUUID#1234021, _extract_internalRefUUID#1234022]
(69) ReusedExchange [Reuses operator id: 20]
Output [1]: [internalUUID#1225992]
(70) BroadcastQueryStage
Output [1]: [internalUUID#1225992]
Arguments: 392
(71) BroadcastHashJoin [codegen id : 257]
Left keys [2]: [coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [2]: [coalesce(internalUUID#1225992, ), isnull(internalUUID#1225992)]
Join type: LeftOuter
Join condition: None
(72) Project [codegen id : 257]
Output [4]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024]
Input [5]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024, internalUUID#1225992]
(73) ReusedExchange [Reuses operator id: 30]
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(74) BroadcastQueryStage
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: 393
(75) BroadcastHashJoin [codegen id : 257]
Left keys [1]: [product#1225978]
Right keys [1]: [internalUUID#1226006]
Join type: LeftOuter
Join condition: None
(76) Project
Output [2]: [plant#1225979, filter(unitOfMeasureConversions#1226012, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234023) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234024)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226010.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226010.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226017]
Input [7]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024, internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(77) Generate [codegen id : 258]
Input [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017]
Arguments: explode(filteredUnitOfMeasureConversions#1226017.quantityNumerator), [plant#1225979, filteredUnitOfMeasureConversions#1226017], true, [quantityNumerator#1226018]
(78) Project [codegen id : 258]
Output [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017.quantityDenominator AS _extract_quantityDenominator#1233333]
Input [3]: [plant#1225979, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018]
(79) Generate [codegen id : 258]
Input [2]: [plant#1225979, _extract_quantityDenominator#1233333]
Arguments: explode(_extract_quantityDenominator#1233333), [plant#1225979], true, [quantityDenominator#1226019]
(80) Project [codegen id : 258]
Output [1]: [plant#1225979]
Input [2]: [plant#1225979, quantityDenominator#1226019]
(81) HashAggregate [codegen id : 258]
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(82) Exchange
Input [1]: [plant#1225979]
Arguments: hashpartitioning(plant#1225979, 37), ENSURE_REQUIREMENTS, [plan_id=1994394]
(83) ShuffleQueryStage
Output [1]: [plant#1225979]
Arguments: 593
(84) AQEShuffleRead
Input [1]: [plant#1225979]
Arguments: coalesced
(85) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(86) BroadcastHashJoin
Left keys [1]: [plantUuid#1225708]
Right keys [1]: [plant#1225979]
Join type: Inner
Join condition: None
(87) Project
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Input [4]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715, plant#1225979]
(88) BroadcastHashJoin [codegen id : 289]
Left keys [2]: [coalesce(plant#1225721.internalRefUUID, ), isnull(plant#1225721.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225708, ), isnull(plantUuid#1225708)]
Join type: Inner
Join condition: None
(89) Generate
Input [9]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: explode(filter(stockQuantities#1225723, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225715) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225714)), lambda x#1225727, false))), [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708], false, [stockQuantity#1225728]
(90) ObjectHashAggregate
Input [7]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708, stockQuantity#1225728]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [partial_first(calculationDateTime#1225722, false), partial_collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [3]: [first#1228648, valueSet#1228649, buf#1228650]
Results [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
(91) ObjectHashAggregate
Input [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [first(calculationDateTime#1225722, false), collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225722)()#1225742, collect_list(stockQuantity#1225728, 0, 0)#1225743]
Results [4]: [product#1225720, plant#1225721, first(calculationDateTime#1225722)()#1225742 AS calculationDateTime#1225729, collect_list(stockQuantity#1225728, 0, 0)#1225743 AS stockQuantities#1225730]
(92) Filter [codegen id : 290]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Condition : ((size(stockQuantities#1225730, true) > 0) AND isnotnull(calculationDateTime#1225729))
(93) Generate [codegen id : 290]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Arguments: explode(stockQuantities#1225730), [product#1225720, plant#1225721, calculationDateTime#1225729], false, [stockQuantity#1225745]
(94) Filter [codegen id : 290]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
Condition : (((isnotnull(stockQuantity#1225745.specialStockIndicator.code) AND isnotnull(stockQuantity#1225745.stockType.code)) AND (stockQuantity#1225745.specialStockIndicator.code = )) AND (stockQuantity#1225745.stockType.code = 01))
(95) Project [codegen id : 290]
Output [5]: [plant#1225721.internalRefUUID AS plantUuid#1225747, product#1225720.internalRefUUID AS productUuid#1225749, calculationDateTime#1225729, stockQuantity#1225745.storagelocation.id AS storageLocId#1225750, stockQuantity#1225745.quantity.measure AS quantity#1225752]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
(96) Exchange
Input [5]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752]
Arguments: hashpartitioning(productUuid#1225749, plantUuid#1225747, 37), ENSURE_REQUIREMENTS, [plan_id=2003396]
(97) ShuffleQueryStage
Output [5]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752]
Arguments: 624
(98) AQEShuffleRead
Input [5]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752]
Arguments: local
(99) BroadcastExchange
Input [5]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=2007684]
(100) BroadcastQueryStage
Output [5]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752]
Arguments: 654
(101) Scan parquet
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(102) ColumnarToRow [codegen id : 11]
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
(103) Filter [codegen id : 11]
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Condition : ((isnotnull(orderDateTime#1225766) AND isnotnull(plant#1225765)) AND isnotnull(product#1225764))
(104) Exchange
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: hashpartitioning(product#1225764, plant#1225765, 37), REPARTITION_BY_NUM, [plan_id=1933620]
(105) ShuffleQueryStage
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: 13
(106) ReusedExchange [Reuses operator id: 11]
Output [4]: [_extract_code#1234025, _extract_internalRefUUID#1234026, _extract_internalRefUUID#1234028, _extract_internalRefUUID#1234027]
(107) BroadcastQueryStage
Output [4]: [_extract_code#1234025, _extract_internalRefUUID#1234026, _extract_internalRefUUID#1234028, _extract_internalRefUUID#1234027]
Arguments: 395
(108) BroadcastHashJoin [codegen id : 321]
Left keys [4]: [coalesce(product#1225764, ), isnull(product#1225764), coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234028, ), isnull(_extract_internalRefUUID#1234028), coalesce(_extract_internalRefUUID#1234027, ), isnull(_extract_internalRefUUID#1234027)]
Join type: LeftOuter
Join condition: None
(109) Project [codegen id : 321]
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026]
Input [7]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026, _extract_internalRefUUID#1234028, _extract_internalRefUUID#1234027]
(110) ReusedExchange [Reuses operator id: 20]
Output [1]: [internalUUID#1225778]
(111) BroadcastQueryStage
Output [1]: [internalUUID#1225778]
Arguments: 396
(112) BroadcastHashJoin [codegen id : 321]
Left keys [2]: [coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [2]: [coalesce(internalUUID#1225778, ), isnull(internalUUID#1225778)]
Join type: LeftOuter
Join condition: None
(113) Project [codegen id : 321]
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026]
Input [6]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026, internalUUID#1225778]
(114) ReusedExchange [Reuses operator id: 30]
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(115) BroadcastQueryStage
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: 397
(116) BroadcastHashJoin [codegen id : 321]
Left keys [1]: [product#1225764]
Right keys [1]: [internalUUID#1225792]
Join type: LeftOuter
Join condition: None
(117) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filter(unitOfMeasureConversions#1225798, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234025) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234026)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225796.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225796.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225803]
Input [8]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026, internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(118) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803]
Arguments: explode(filteredUnitOfMeasureConversions#1225803.quantityNumerator), [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803], true, [quantityNumerator#1225804]
(119) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803.quantityDenominator AS _extract_quantityDenominator#1233337]
Input [5]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804]
(120) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_quantityDenominator#1233337]
Arguments: explode(_extract_quantityDenominator#1233337), [product#1225764, plant#1225765, orderDateTime#1225766], true, [quantityDenominator#1225805]
(121) Project
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, quantityDenominator#1225805]
(122) BroadcastHashJoin [codegen id : 322]
Left keys [2]: [plantUuid#1225747, productUuid#1225749]
Right keys [2]: [plant#1225765, product#1225764]
Join type: Inner
Join condition: (calculationDateTime#1225729 <= orderDateTime#1225766)
(123) Project [codegen id : 322]
Output [5]: [plantUuid#1225747 AS plant#1225812, productUuid#1225749 AS product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Input [8]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752, product#1225764, plant#1225765, orderDateTime#1225766]
(124) Exchange
Input [5]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Arguments: hashpartitioning(coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729), 37), ENSURE_REQUIREMENTS, [plan_id=2013526]
(125) ShuffleQueryStage
Output [5]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Arguments: 684
(126) AQEShuffleRead
Input [5]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Arguments: local
(127) BroadcastExchange
Input [5]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, timestamp, true], 1970-01-01 00:00:00), isnull(input[3, timestamp, true])),false), [plan_id=2018698]
(128) BroadcastQueryStage
Output [5]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Arguments: 713
(129) ReusedExchange [Reuses operator id: 45]
Output [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
(130) BroadcastQueryStage
Output [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Arguments: 398
(131) ReusedExchange [Reuses operator id: 58]
Output [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
(132) BroadcastQueryStage
Output [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Arguments: 400
(133) ReusedExchange [Reuses operator id: 82]
Output [1]: [plant#1225856]
(134) ShuffleQueryStage
Output [1]: [plant#1225856]
Arguments: 595
(135) AQEShuffleRead
Input [1]: [plant#1225856]
Arguments: coalesced
(136) HashAggregate
Input [1]: [plant#1225856]
Keys [1]: [plant#1225856]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225856]
(137) BroadcastHashJoin
Left keys [1]: [plantUuid#1225852]
Right keys [1]: [plant#1225856]
Join type: Inner
Join condition: None
(138) Project
Output [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Input [4]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854, plant#1225856]
(139) BroadcastHashJoin [codegen id : 291]
Left keys [2]: [coalesce(plant#1225824.internalRefUUID, ), isnull(plant#1225824.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225852, ), isnull(plantUuid#1225852)]
Join type: Inner
Join condition: None
(140) Generate
Input [9]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Arguments: explode(filter(stockQuantities#1225826, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225854) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225853)), lambda x#1225727, false))), [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, plantUuid#1225852], false, [stockQuantity#1225899]
(141) ObjectHashAggregate
Input [7]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, plantUuid#1225852, stockQuantity#1225899]
Keys [5]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821]
Functions [2]: [partial_first(calculationDateTime#1225825, false), partial_collect_list(stockQuantity#1225899, 0, 0)]
Aggregate Attributes [3]: [first#1228656, valueSet#1228657, buf#1228658]
Results [8]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first#1228659, valueSet#1228660, buf#1228661]
(142) ObjectHashAggregate
Input [8]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first#1228659, valueSet#1228660, buf#1228661]
Keys [5]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821]
Functions [2]: [first(calculationDateTime#1225825, false), collect_list(stockQuantity#1225899, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225825)()#1225742, collect_list(stockQuantity#1225899, 0, 0)#1225743]
Results [4]: [product#1225823, plant#1225824, first(calculationDateTime#1225825)()#1225742 AS calculationDateTime#1225900, collect_list(stockQuantity#1225899, 0, 0)#1225743 AS stockQuantities#1225901]
(143) Filter [codegen id : 292]
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
Condition : ((size(stockQuantities#1225901, true) > 0) AND isnotnull(calculationDateTime#1225900))
(144) Generate [codegen id : 292]
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
Arguments: explode(stockQuantities#1225901), [product#1225823, plant#1225824, calculationDateTime#1225900], false, [stockQuantity#1225902]
(145) Filter [codegen id : 292]
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantity#1225902]
Condition : (((isnotnull(stockQuantity#1225902.specialStockIndicator.code) AND isnotnull(stockQuantity#1225902.stockType.code)) AND (stockQuantity#1225902.specialStockIndicator.code = )) AND (stockQuantity#1225902.stockType.code = 01))
(146) Project [codegen id : 292]
Output [4]: [plant#1225824.internalRefUUID AS plantUuid#1225904, product#1225823.internalRefUUID AS productUuid#1225906, calculationDateTime#1225900, stockQuantity#1225902.storagelocation.id AS storageLocId#1225907]
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantity#1225902]
(147) Exchange
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: hashpartitioning(productUuid#1225906, plantUuid#1225904, 37), ENSURE_REQUIREMENTS, [plan_id=2003464]
(148) ShuffleQueryStage
Output [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: 625
(149) AQEShuffleRead
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: local
(150) BroadcastExchange
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=2010596]
(151) BroadcastQueryStage
Output [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: 665
(152) ReusedExchange [Reuses operator id: 104]
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
(153) ShuffleQueryStage
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: 33
(154) ReusedExchange [Reuses operator id: 11]
Output [4]: [_extract_code#1234033, _extract_internalRefUUID#1234034, _extract_internalRefUUID#1234035, _extract_internalRefUUID#1234036]
(155) BroadcastQueryStage
Output [4]: [_extract_code#1234033, _extract_internalRefUUID#1234034, _extract_internalRefUUID#1234035, _extract_internalRefUUID#1234036]
Arguments: 406
(156) BroadcastHashJoin [codegen id : 333]
Left keys [4]: [coalesce(product#1225912, ), isnull(product#1225912), coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234035, ), isnull(_extract_internalRefUUID#1234035), coalesce(_extract_internalRefUUID#1234036, ), isnull(_extract_internalRefUUID#1234036)]
Join type: LeftOuter
Join condition: None
(157) Project [codegen id : 333]
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034]
Input [7]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034, _extract_internalRefUUID#1234035, _extract_internalRefUUID#1234036]
(158) ReusedExchange [Reuses operator id: 20]
Output [1]: [internalUUID#1225926]
(159) BroadcastQueryStage
Output [1]: [internalUUID#1225926]
Arguments: 407
(160) BroadcastHashJoin [codegen id : 333]
Left keys [2]: [coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [2]: [coalesce(internalUUID#1225926, ), isnull(internalUUID#1225926)]
Join type: LeftOuter
Join condition: None
(161) Project [codegen id : 333]
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034]
Input [6]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034, internalUUID#1225926]
(162) ReusedExchange [Reuses operator id: 30]
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(163) BroadcastQueryStage
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: 408
(164) BroadcastHashJoin [codegen id : 333]
Left keys [1]: [product#1225912]
Right keys [1]: [internalUUID#1225940]
Join type: LeftOuter
Join condition: None
(165) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filter(unitOfMeasureConversions#1225946, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234033) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234034)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225944.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225944.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225951]
Input [8]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034, internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(166) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951]
Arguments: explode(filteredUnitOfMeasureConversions#1225951.quantityNumerator), [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951], true, [quantityNumerator#1225952]
(167) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951.quantityDenominator AS _extract_quantityDenominator#1233347]
Input [5]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952]
(168) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_quantityDenominator#1233347]
Arguments: explode(_extract_quantityDenominator#1233347), [product#1225912, plant#1225913, orderDateTime#1225914], true, [quantityDenominator#1225953]
(169) Project
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, quantityDenominator#1225953]
(170) BroadcastHashJoin [codegen id : 334]
Left keys [2]: [plantUuid#1225904, productUuid#1225906]
Right keys [2]: [plant#1225913, product#1225912]
Join type: Inner
Join condition: (calculationDateTime#1225900 <= orderDateTime#1225914)
(171) Project [codegen id : 334]
Output [4]: [plantUuid#1225904 AS plant#1225956, productUuid#1225906 AS product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Input [7]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907, product#1225912, plant#1225913, orderDateTime#1225914]
(172) HashAggregate [codegen id : 334]
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [partial_max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max#1228654]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
(173) HashAggregate [codegen id : 334]
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max(calculationDateTime#1225900)#1225820]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max(calculationDateTime#1225900)#1225820 AS max_calc_datetime#1225814]
(174) Exchange
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: hashpartitioning(coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814), 37), ENSURE_REQUIREMENTS, [plan_id=2016308]
(175) ShuffleQueryStage
Output [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: 695
(176) AQEShuffleRead
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: local
(177) BroadcastHashJoin [codegen id : 353]
Left keys [8]: [coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729)]
Right keys [8]: [coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814)]
Join type: Inner
Join condition: None
(178) Project [codegen id : 353]
Output [4]: [plant#1225812, product#1225813, calculationDateTime#1225729, quantity#1225752]
Input [9]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752, plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
(179) HashAggregate [codegen id : 353]
Input [4]: [plant#1225812, product#1225813, calculationDateTime#1225729, quantity#1225752]
Keys [2]: [product#1225813, plant#1225812]
Functions [2]: [partial_min(calculationDateTime#1225729), partial_sum(quantity#1225752)]
Aggregate Attributes [2]: [min#1228646, sum#1235063]
Results [4]: [product#1225813, plant#1225812, min#1228647, sum#1235064]
(180) Exchange
Input [4]: [product#1225813, plant#1225812, min#1228647, sum#1235064]
Arguments: hashpartitioning(product#1225813, plant#1225812, 37), ENSURE_REQUIREMENTS, [plan_id=2022967]
(181) ShuffleQueryStage
Output [4]: [product#1225813, plant#1225812, min#1228647, sum#1235064]
Arguments: 727
(182) AQEShuffleRead
Input [4]: [product#1225813, plant#1225812, min#1228647, sum#1235064]
Arguments: coalesced
(183) HashAggregate [codegen id : 361]
Input [4]: [product#1225813, plant#1225812, min#1228647, sum#1235064]
Keys [2]: [product#1225813, plant#1225812]
Functions [2]: [min(calculationDateTime#1225729), sum(quantity#1225752)]
Aggregate Attributes [2]: [min(calculationDateTime#1225729)#1225976, sum(quantity#1225752)#1225975]
Results [4]: [product#1225813, plant#1225812, min(calculationDateTime#1225729)#1225976 AS minCalculationDateTime#1225969, round(sum(quantity#1225752)#1225975, 0) AS roundedQuantitySum#1225977]
(184) BroadcastExchange
Input [4]: [product#1225813, plant#1225812, minCalculationDateTime#1225969, roundedQuantitySum#1225977]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=2025692]
(185) BroadcastQueryStage
Output [4]: [product#1225813, plant#1225812, minCalculationDateTime#1225969, roundedQuantitySum#1225977]
Arguments: 741
(186) BroadcastHashJoin [codegen id : 370]
Left keys [2]: [plant#1225623, product#1225622]
Right keys [2]: [plant#1225812, product#1225813]
Join type: LeftOuter
Join condition: None
(187) Project [codegen id : 370]
Output [5]: [product#1225622, plant#1225623, outboundUnit#1225681, CASE WHEN isnotnull(minCalculationDateTime#1225969) THEN minCalculationDateTime#1225969 ELSE orderDateTime#1225624 END AS stockDatetime#1226026, CASE WHEN isnotnull(roundedQuantitySum#1225977) THEN array(roundedQuantitySum#1225977) ELSE [0.0] END AS stockBatchQuantities#1226027]
Input [8]: [product#1225622, plant#1225623, orderDateTime#1225624, outboundUnit#1225681, product#1225813, plant#1225812, minCalculationDateTime#1225969, roundedQuantitySum#1225977]
(188) Exchange
Input [5]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027]
Arguments: hashpartitioning(coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622), 37), ENSURE_REQUIREMENTS, [plan_id=2029043]
(189) ShuffleQueryStage
Output [5]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027]
Arguments: 755
(190) AQEShuffleRead
Input [5]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027]
Arguments: local
(191) ReusedExchange [Reuses operator id: 3]
Output [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
(192) ShuffleQueryStage
Output [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Arguments: 41
(193) Scan parquet
Output [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>
(194) ColumnarToRow [codegen id : 26]
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(195) Project [codegen id : 26]
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(196) Exchange
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1933979]
(197) ShuffleQueryStage
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: 42
(198) Project [codegen id : 206]
Output [1]: [struct(systemId, systemId#1226108, internalUUID, internalUUID#1226109, plant, plant#1226110, product, product#1226111, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226112, productionAspect, productionAspect#1226113, salesPlant, salesPlant#1226114, listing, listing#1226115) AS productPlant#1226116]
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
(199) BroadcastExchange
Input [1]: [productPlant#1226116]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1982327]
(200) BroadcastQueryStage
Output [1]: [productPlant#1226116]
Arguments: 409
(201) BroadcastHashJoin [codegen id : 371]
Left keys [4]: [coalesce(product#1226104, ), isnull(product#1226104), coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [4]: [coalesce(productPlant#1226116.product.internalRefUUID, ), isnull(productPlant#1226116.product.internalRefUUID), coalesce(productPlant#1226116.plant.internalRefUUID, ), isnull(productPlant#1226116.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(202) Scan parquet
Output [3]: [internalUUID#1226118, address#1226124, systemId#1226117]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(203) ColumnarToRow [codegen id : 27]
Input [3]: [internalUUID#1226118, address#1226124, systemId#1226117]
(204) Project [codegen id : 27]
Output [2]: [internalUUID#1226118, address#1226124.timeZone.code AS timezonecode#1226129]
Input [3]: [internalUUID#1226118, address#1226124, systemId#1226117]
(205) Exchange
Input [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1933997]
(206) ShuffleQueryStage
Output [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: 43
(207) BroadcastExchange
Input [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1934005]
(208) BroadcastQueryStage
Output [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: 410
(209) BroadcastHashJoin [codegen id : 371]
Left keys [2]: [coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [2]: [coalesce(internalUUID#1226118, ), isnull(internalUUID#1226118)]
Join type: LeftOuter
Join condition: None
(210) Project [codegen id : 371]
Output [5]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, CASE WHEN isnotnull(timezonecode#1226129) THEN timezonecode#1226129 ELSE UTC END AS timezonecode#1226130]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, internalUUID#1226118, timezonecode#1226129]
(211) ReusedExchange [Reuses operator id: 30]
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(212) BroadcastQueryStage
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: 411
(213) BroadcastHashJoin [codegen id : 371]
Left keys [1]: [product#1226104]
Right keys [1]: [internalUUID#1226132]
Join type: LeftOuter
Join condition: None
(214) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filter(unitOfMeasureConversions#1226138, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226136.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226136.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226143]
Input [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(215) Project [codegen id : 372]
Output [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143.quantityDenominator AS _extract_quantityDenominator#1233544, filteredUnitOfMeasureConversions#1226143.quantityNumerator AS _extract_quantityNumerator#1233545]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143]
(216) Generate [codegen id : 372]
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1233544, _extract_quantityNumerator#1233545]
Arguments: explode(_extract_quantityNumerator#1233545), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1233544], true, [quantityNumerator#1226144]
(217) Generate [codegen id : 372]
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1233544, quantityNumerator#1226144]
Arguments: explode(_extract_quantityDenominator#1233544), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144], true, [quantityDenominator#1226145]
(218) Project [codegen id : 372]
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, (cast(quantityNumerator#1226144 as double) / cast(quantityDenominator#1226145 as double)) AS outboundUnit#1226146]
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144, quantityDenominator#1226145]
(219) Project [codegen id : 372]
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, CASE WHEN (isnull(outboundUnit#1226146) OR (outboundUnit#1226146 <= 0.0)) THEN 1.0 ELSE outboundUnit#1226146 END AS outboundUnit#1226147]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226146]
(220) ReusedExchange [Reuses operator id: 184]
Output [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
(221) BroadcastQueryStage
Output [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
Arguments: 743
(222) BroadcastHashJoin [codegen id : 372]
Left keys [2]: [plant#1226105, product#1226104]
Right keys [2]: [plant#1226283, product#1226284]
Join type: LeftOuter
Join condition: None
(223) Project [codegen id : 372]
Output [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, CASE WHEN isnotnull(minCalculationDateTime#1226424) THEN minCalculationDateTime#1226424 ELSE orderDateTime#1226106 END AS stockDatetime#1226426, CASE WHEN isnotnull(roundedQuantitySum#1226425) THEN array(roundedQuantitySum#1226425) ELSE [0.0] END AS stockBatchQuantities#1226427]
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
(224) Scan parquet
Output [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001356/0_1_10000001356]
PushedFilters: [IsNotNull(product), IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(225) ColumnarToRow [codegen id : 49]
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(226) Filter [codegen id : 49]
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Condition : (isnotnull(product#1226029) AND isnotnull(plant#1226030))
(227) BroadcastExchange
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1934541]
(228) BroadcastQueryStage
Output [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: 86
(229) BroadcastHashJoin [codegen id : 372]
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226029, plant#1226030]
Join type: LeftOuter
Join condition: None
(230) Project [codegen id : 372]
Output [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, CASE WHEN isnotnull(product#1226029) THEN struct(demandChannel, demandChannel#1226031, demandStream, demandStream#1226032, considerVariance, considerVariance#1226033, demandTimeBuckets, demandTimeBuckets#1226034, demandPointInTimeStart, demandPointInTimeStart#1226035, demandPointInTimeEnd, demandPointInTimeEnd#1226036, demandPointInTime, demandPointInTime#1226037) END AS rawDemands#1226050]
Input [17]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(231) ObjectHashAggregate
Input [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, rawDemands#1226050]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, knownfloatingpointnormalized(if (isnull(productPlant#1226116)) null else named_struct(systemId, productPlant#1226116.systemId, internalUUID, productPlant#1226116.internalUUID, plant, productPlant#1226116.plant, product, productPlant#1226116.product, blockedForReplenishmentStartingFrom, productPlant#1226116.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect)) null else named_struct(productMovementPlants, productPlant#1226116.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1226116.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1226116.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1226116.salesPlant, listing, productPlant#1226116.listing)) AS productPlant#1226116, timezonecode#1226130, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1226147)) AS outboundUnit#1226147, stockDatetime#1226426, knownfloatingpointnormalized(transform(stockBatchQuantities#1226427, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1238857)), lambda arg#1238857, false))) AS stockBatchQuantities#1226427, [7226582400000000] AS [7226582400000000]#1238856]
Functions [1]: [partial_collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [buf#1228664]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1238856, buf#1228665]
(232) ObjectHashAggregate
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1238856, buf#1228665]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1238856]
Functions [1]: [collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1226050, 0, 0)#1226069]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1226428, collect_list(rawDemands#1226050, 0, 0)#1226069 AS rawDemands#1226051]
(233) DeserializeToObject [codegen id : 373]
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, rawDemands#1226051]
Arguments: createexternalrow(invoke(product#1226104.toString()), invoke(plant#1226105.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1226106)), if (isnull(productPlant#1226116)) null else createexternalrow(invoke(productPlant#1226116.systemId.toString()), invoke(productPlant#1226116.internalUUID.toString()), if (isnull(productPlant#1226116.plant)) null else createexternalrow(invoke(productPlant#1226116.plant.internalRefUUID.toString()), invoke(productPlant#1226116.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1226116.product)) null else createexternalrow(invoke(productPlant#1226116.product.internalRefUUID.toString()), invoke(productPlant#1226116.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1226116.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1226116.productionAspect)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1226116.salesPlant)) null else createexternalrow(if (isnull(productPlant#1226116.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1226116.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1226116.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1226116.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1226130.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1226147)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1226426)), mapobjects(lambdavariable(MapObject, DoubleType, true, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1226427, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), stockBatchShelfLifeEndDatetimes#1226428, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1226051, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(234) MapElements [codegen id : 373]
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(235) SerializeFromObject [codegen id : 373]
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1226100, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1226101, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1226102, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1226103]
(236) Exchange
Input [4]: [product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: hashpartitioning(coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100), 37), ENSURE_REQUIREMENTS, [plan_id=2029112]
(237) ShuffleQueryStage
Output [4]: [product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: 756
(238) AQEShuffleRead
Input [4]: [product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: local
(239) BroadcastExchange
Input [4]: [product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=2031709]
(240) BroadcastQueryStage
Output [4]: [product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: 769
(241) BroadcastHashJoin [codegen id : 391]
Left keys [4]: [coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622)]
Right keys [4]: [coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100)]
Join type: LeftOuter
Join condition: None
(242) Project [codegen id : 391]
Output [7]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Input [9]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
(243) Exchange
Input [7]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: hashpartitioning(product#1225622, plant#1225623, 37), ENSURE_REQUIREMENTS, [plan_id=2032248]
(244) ShuffleQueryStage
Output [7]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: 775
(245) AQEShuffleRead
Input [7]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: coalesced
(246) Project [codegen id : 397]
Output [12]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103, cast(null as string) AS product#1226471, cast(null as string) AS plant#1226470, cast(null as array<double>) AS _extract_openQtyInBaseUnit#1233509, cast(null as array<timestamp>) AS _extract_availabilityDatetime#1233510, cast(null as array<timestamp>) AS _extract_shelfLifeEndDatetime#1233511]
Input [7]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103]
(247) Project [codegen id : 397]
Output [10]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103, coalesce(_extract_openQtyInBaseUnit#1233509, []) AS openGoodsMovementQuantities#1230566, coalesce(_extract_availabilityDatetime#1233510, []) AS openGoodsMovementAvailabilityDatetimes#1230567, coalesce(_extract_shelfLifeEndDatetime#1233511, []) AS openGoodsMovementShelfLifeEndDatetimes#1230568]
Input [12]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103, product#1226471, plant#1226470, _extract_openQtyInBaseUnit#1233509, _extract_availabilityDatetime#1233510, _extract_shelfLifeEndDatetime#1233511]
(248) ReusedExchange [Reuses operator id: 3]
Output [3]: [product#1230868, plant#1230869, orderDateTime#1230870]
(249) ShuffleQueryStage
Output [3]: [product#1230868, plant#1230869, orderDateTime#1230870]
Arguments: 187
(250) ReusedExchange [Reuses operator id: 199]
Output [1]: [productPlant#1230880]
(251) BroadcastQueryStage
Output [1]: [productPlant#1230880]
Arguments: 487
(252) BroadcastHashJoin [codegen id : 377]
Left keys [4]: [coalesce(product#1230868, ), isnull(product#1230868), coalesce(plant#1230869, ), isnull(plant#1230869)]
Right keys [4]: [coalesce(productPlant#1230880.product.internalRefUUID, ), isnull(productPlant#1230880.product.internalRefUUID), coalesce(productPlant#1230880.plant.internalRefUUID, ), isnull(productPlant#1230880.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(253) ReusedExchange [Reuses operator id: 207]
Output [2]: [internalUUID#1230882, timezonecode#1230893]
(254) BroadcastQueryStage
Output [2]: [internalUUID#1230882, timezonecode#1230893]
Arguments: 488
(255) BroadcastHashJoin [codegen id : 377]
Left keys [2]: [coalesce(plant#1230869, ), isnull(plant#1230869)]
Right keys [2]: [coalesce(internalUUID#1230882, ), isnull(internalUUID#1230882)]
Join type: LeftOuter
Join condition: None
(256) Project [codegen id : 377]
Output [5]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, CASE WHEN isnotnull(timezonecode#1230893) THEN timezonecode#1230893 ELSE UTC END AS timezonecode#1230894]
Input [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, internalUUID#1230882, timezonecode#1230893]
(257) ReusedExchange [Reuses operator id: 30]
Output [3]: [internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902]
(258) BroadcastQueryStage
Output [3]: [internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902]
Arguments: 489
(259) BroadcastHashJoin [codegen id : 377]
Left keys [1]: [product#1230868]
Right keys [1]: [internalUUID#1230896]
Join type: LeftOuter
Join condition: None
(260) Project
Output [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, filter(unitOfMeasureConversions#1230902, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230900.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230900.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230907]
Input [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902]
(261) Project [codegen id : 378]
Output [7]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, filteredUnitOfMeasureConversions#1230907.quantityDenominator AS _extract_quantityDenominator#1233629, filteredUnitOfMeasureConversions#1230907.quantityNumerator AS _extract_quantityNumerator#1233630]
Input [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, filteredUnitOfMeasureConversions#1230907]
(262) Generate [codegen id : 378]
Input [7]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, _extract_quantityDenominator#1233629, _extract_quantityNumerator#1233630]
Arguments: explode(_extract_quantityNumerator#1233630), [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, _extract_quantityDenominator#1233629], true, [quantityNumerator#1230908]
(263) Generate [codegen id : 378]
Input [7]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, _extract_quantityDenominator#1233629, quantityNumerator#1230908]
Arguments: explode(_extract_quantityDenominator#1233629), [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, quantityNumerator#1230908], true, [quantityDenominator#1230909]
(264) Project [codegen id : 378]
Output [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, (cast(quantityNumerator#1230908 as double) / cast(quantityDenominator#1230909 as double)) AS outboundUnit#1230910]
Input [7]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, quantityNumerator#1230908, quantityDenominator#1230909]
(265) Project [codegen id : 378]
Output [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, CASE WHEN (isnull(outboundUnit#1230910) OR (outboundUnit#1230910 <= 0.0)) THEN 1.0 ELSE outboundUnit#1230910 END AS outboundUnit#1230911]
Input [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230910]
(266) ReusedExchange [Reuses operator id: 184]
Output [4]: [product#1231048, plant#1231047, minCalculationDateTime#1231188, roundedQuantitySum#1231189]
(267) BroadcastQueryStage
Output [4]: [product#1231048, plant#1231047, minCalculationDateTime#1231188, roundedQuantitySum#1231189]
Arguments: 747
(268) BroadcastHashJoin [codegen id : 378]
Left keys [2]: [plant#1230869, product#1230868]
Right keys [2]: [plant#1231047, product#1231048]
Join type: LeftOuter
Join condition: None
(269) Project [codegen id : 378]
Output [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, CASE WHEN isnotnull(minCalculationDateTime#1231188) THEN minCalculationDateTime#1231188 ELSE orderDateTime#1230870 END AS stockDatetime#1231190, CASE WHEN isnotnull(roundedQuantitySum#1231189) THEN array(roundedQuantitySum#1231189) ELSE [0.0] END AS stockBatchQuantities#1231191]
Input [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, product#1231048, plant#1231047, minCalculationDateTime#1231188, roundedQuantitySum#1231189]
(270) Exchange
Input [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191]
Arguments: hashpartitioning(coalesce(plant#1230869, ), isnull(plant#1230869), coalesce(product#1230868, ), isnull(product#1230868), 37), ENSURE_REQUIREMENTS, [plan_id=2029570]
(271) ShuffleQueryStage
Output [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191]
Arguments: 758
(272) AQEShuffleRead
Input [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191]
Arguments: local
(273) ReusedExchange [Reuses operator id: 239]
Output [4]: [product#1231529, plant#1231530, dayBucketDemands#1231531, pointInTimeDemands#1231532]
(274) BroadcastQueryStage
Output [4]: [product#1231529, plant#1231530, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Arguments: 771
(275) BroadcastHashJoin [codegen id : 392]
Left keys [4]: [coalesce(plant#1230869, ), isnull(plant#1230869), coalesce(product#1230868, ), isnull(product#1230868)]
Right keys [4]: [coalesce(plant#1231530, ), isnull(plant#1231530), coalesce(product#1231529, ), isnull(product#1231529)]
Join type: LeftOuter
Join condition: None
(276) Project [codegen id : 392]
Output [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Input [12]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, product#1231529, plant#1231530, dayBucketDemands#1231531, pointInTimeDemands#1231532]
(277) Exchange
Input [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Arguments: hashpartitioning(product#1230868, plant#1230869, 37), ENSURE_REQUIREMENTS, [plan_id=2032313]
(278) ShuffleQueryStage
Output [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Arguments: 776
(279) AQEShuffleRead
Input [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Arguments: coalesced
(280) Project [codegen id : 395]
Output [15]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532, cast(null as string) AS product#1232283, cast(null as string) AS plant#1232282, cast(null as array<double>) AS _extract_openQtyInBaseUnit#1233626, cast(null as array<timestamp>) AS _extract_availabilityDatetime#1233627, cast(null as array<timestamp>) AS _extract_shelfLifeEndDatetime#1233628]
Input [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532]
(281) Project
Output [16]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, coalesce(_extract_openQtyInBaseUnit#1233626, []) AS openGoodsMovementQuantities#1232988, coalesce(_extract_availabilityDatetime#1233627, []) AS openGoodsMovementAvailabilityDatetimes#1232989, coalesce(_extract_shelfLifeEndDatetime#1233628, []) AS openGoodsMovementShelfLifeEndDatetimes#1232990, [[0,ShelfLife.LIFOPreference,0.42],[0,StockExtrapolation.ConsiderUnfulfilledDemands,1]] AS configuration#1232991, array_sort(filter(CASE WHEN isnotnull(productPlant#1230880.listing) THEN productPlant#1230880.listing ELSE [] END, lambdafunction(lambda listing#1230812.isListed, lambda listing#1230812, false)), lambdafunction(if ((isnull(lambda left#1230814) AND isnull(lambda right#1230815))) 0 else if (isnull(lambda left#1230814)) 1 else if (isnull(lambda right#1230815)) -1 else if ((lambda left#1230814 < lambda right#1230815)) -1 else if ((lambda left#1230814 > lambda right#1230815)) 1 else 0, lambda left#1230814, lambda right#1230815, false), false) AS listing#1230813]
Input [15]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532, product#1232283, plant#1232282, _extract_openQtyInBaseUnit#1233626, _extract_availabilityDatetime#1233627, _extract_shelfLifeEndDatetime#1233628]
(282) DeserializeToObject [codegen id : 396]
Input [16]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, openGoodsMovementQuantities#1232988, openGoodsMovementAvailabilityDatetimes#1232989, openGoodsMovementShelfLifeEndDatetimes#1232990, configuration#1232991, listing#1230813]
Arguments: createexternalrow(invoke(product#1230868.toString()), invoke(plant#1230869.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1230870)), if (isnull(productPlant#1230880)) null else createexternalrow(invoke(productPlant#1230880.systemId.toString()), invoke(productPlant#1230880.internalUUID.toString()), if (isnull(productPlant#1230880.plant)) null else createexternalrow(invoke(productPlant#1230880.plant.internalRefUUID.toString()), invoke(productPlant#1230880.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1230880.product)) null else createexternalrow(invoke(productPlant#1230880.product.internalRefUUID.toString()), invoke(productPlant#1230880.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1230880.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1230880.productionAspect)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1230880.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1230880.salesPlant)) null else createexternalrow(if (isnull(productPlant#1230880.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1230880.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1230880.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1230880.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1230894.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1230911)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1231190)), mapobjects(lambdavariable(MapObject, DoubleType, true, -22), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -22))), stockBatchQuantities#1231191, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -23), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -23))), stockBatchShelfLifeEndDatetimes#1231192, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, -25), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, false, -25))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -26), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -26))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -27), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -27))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, -28), invoke(lambdavariable(MapObject, StringType, false, -28).toString()), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, -29), static_invoke(java.lang.Integer.valueOf(lambdavariable(MapObject, IntegerType, false, -29))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorIndices, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true)), dayBucketDemands#1231531, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, -31), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -31))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, -32), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, false, -32))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -33), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -33))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandVariances, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).horizonStartDatetime)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).horizonEndDatetime)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true)), pointInTimeDemands#1231532, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -34), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -34))), openGoodsMovementQuantities#1232988, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, -35), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, true, -35))), openGoodsMovementAvailabilityDatetimes#1232989, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -36), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -36))), openGoodsMovementShelfLifeEndDatetimes#1232990, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37), createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false)), configuration#1232991, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#1230813, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), ... 7 more fields), obj#1230848: org.apache.spark.sql.Row
(283) MapElements [codegen id : 396]
Input [1]: [obj#1230848]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.ListingSnapshotEnhancementImpl$$Lambda/0x000000080249e4c8@75d0fa77, obj#1230855: org.apache.spark.sql.Row
(284) SerializeFromObject [codegen id : 396]
Input [1]: [obj#1230855]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1230862, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1230863, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -17), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -17), StringType, ObjectType(class java.lang.String)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, timeDependentSettingsName), ArrayType(StringType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsName#1230864, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -18), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -18), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, timeDependentSettingsStartDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsStartDatetime#1230865, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -19), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -19), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, timeDependentSettingsEndDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsEndDatetime#1230866, if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -20), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -20), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsValue#1230867]
(285) Filter [codegen id : 396]
Input [6]: [product#1230862, plant#1230863, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
Condition : (isnotnull(product#1230862) AND isnotnull(plant#1230863))
(286) BroadcastExchange
Input [6]: [product#1230862, plant#1230863, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=2032638]
(287) BroadcastQueryStage
Output [6]: [product#1230862, plant#1230863, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
Arguments: 779
(288) BroadcastHashJoin [codegen id : 397]
Left keys [2]: [product#1225622, plant#1225623]
Right keys [2]: [product#1230862, plant#1230863]
Join type: LeftOuter
Join condition: None
(289) Project [codegen id : 397]
Output [16]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, [[0,ShelfLife.LIFOPreference,0.42],[0,StockExtrapolation.ConsiderUnfulfilledDemands,1]] AS configuration#1230669, CASE WHEN isnotnull(timeDependentSettingsName#1230864) THEN timeDependentSettingsName#1230864 ELSE [] END AS timeDependentSettingsName#1233146, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#1230865) THEN timeDependentSettingsStartDatetime#1230865 ELSE [] END AS timeDependentSettingsStartDatetime#1233147, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#1230866) THEN timeDependentSettingsEndDatetime#1230866 ELSE [] END AS timeDependentSettingsEndDatetime#1233148, CASE WHEN isnotnull(timeDependentSettingsValue#1230867) THEN timeDependentSettingsValue#1230867 ELSE [] END AS timeDependentSettingsValue#1233149]
Input [16]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, product#1230862, plant#1230863, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
(290) ResultQueryStage
Output [16]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1233146, timeDependentSettingsStartDatetime#1233147, timeDependentSettingsEndDatetime#1233148, timeDependentSettingsValue#1233149]
Arguments: 781
(291) Exchange
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: hashpartitioning(product#1225622, plant#1225623, 37), REPARTITION_BY_NUM, [plan_id=1929032]
(292) Project
Output [4]: [plant#1225629.internalRefUUID AS _extract_internalRefUUID#1234018, product#1225630.internalRefUUID AS _extract_internalRefUUID#1234017, productionAspect#1225632.productMovementPlants.unitOfIssue.code AS _extract_code#1234019, productionAspect#1225632.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234020]
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(293) Exchange
Input [4]: [_extract_internalRefUUID#1234018, _extract_internalRefUUID#1234017, _extract_code#1234019, _extract_internalRefUUID#1234020]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929035]
(294) Project
Output [4]: [_extract_code#1234019, _extract_internalRefUUID#1234020, _extract_internalRefUUID#1234017, _extract_internalRefUUID#1234018]
Input [4]: [_extract_internalRefUUID#1234018, _extract_internalRefUUID#1234017, _extract_code#1234019, _extract_internalRefUUID#1234020]
(295) BroadcastExchange
Input [4]: [_extract_code#1234019, _extract_internalRefUUID#1234020, _extract_internalRefUUID#1234017, _extract_internalRefUUID#1234018]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931337]
(296) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225622, ), isnull(product#1225622), coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234017, ), isnull(_extract_internalRefUUID#1234017), coalesce(_extract_internalRefUUID#1234018, ), isnull(_extract_internalRefUUID#1234018)]
Join type: LeftOuter
Join condition: None
(297) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020, _extract_internalRefUUID#1234017, _extract_internalRefUUID#1234018]
(298) Project
Output [1]: [internalUUID#1225640]
Input [2]: [internalUUID#1225640, systemId#1225639]
(299) Exchange
Input [1]: [internalUUID#1225640]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929041]
(300) BroadcastExchange
Input [1]: [internalUUID#1225640]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931341]
(301) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [2]: [coalesce(internalUUID#1225640, ), isnull(internalUUID#1225640)]
Join type: LeftOuter
Join condition: None
(302) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020]
Input [6]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020, internalUUID#1225640]
(303) Filter
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Condition : isnotnull(internalUUID#1225656)
(304) Project
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(305) Exchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929047]
(306) BroadcastExchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931345]
(307) BroadcastHashJoin
Left keys [1]: [product#1225622]
Right keys [1]: [internalUUID#1225656]
Join type: LeftOuter
Join condition: None
(308) Project
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, filter(unitOfMeasureConversions#1225662, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234019) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234020)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225660.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225660.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225668]
Input [8]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1234019, _extract_internalRefUUID#1234020, internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
(309) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, filteredUnitOfMeasureConversions#1225668.quantityDenominator AS _extract_quantityDenominator#1233512, filteredUnitOfMeasureConversions#1225668.quantityNumerator AS _extract_quantityNumerator#1233513]
Input [4]: [product#1225622, plant#1225623, orderDateTime#1225624, filteredUnitOfMeasureConversions#1225668]
(310) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_quantityDenominator#1233512, _extract_quantityNumerator#1233513]
Arguments: explode(_extract_quantityNumerator#1233513), [product#1225622, plant#1225623, orderDateTime#1225624, _extract_quantityDenominator#1233512], true, [quantityNumerator#1225676]
(311) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_quantityDenominator#1233512, quantityNumerator#1225676]
Arguments: explode(_extract_quantityDenominator#1233512), [product#1225622, plant#1225623, orderDateTime#1225624, quantityNumerator#1225676], true, [quantityDenominator#1225679]
(312) Project
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, (cast(quantityNumerator#1225676 as double) / cast(quantityDenominator#1225679 as double)) AS outboundUnit#1225680]
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, quantityNumerator#1225676, quantityDenominator#1225679]
(313) Project
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, CASE WHEN (isnull(outboundUnit#1225680) OR (outboundUnit#1225680 <= 0.0)) THEN 1.0 ELSE outboundUnit#1225680 END AS outboundUnit#1225681]
Input [4]: [product#1225622, plant#1225623, orderDateTime#1225624, outboundUnit#1225680]
(314) Sort
Input [4]: [product#1225622, plant#1225623, orderDateTime#1225624, outboundUnit#1225681]
Arguments: [product#1225622 ASC NULLS FIRST, plant#1225623 ASC NULLS FIRST], false, 0
(315) Filter
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Condition : (isnotnull(plant#1225721.internalRefUUID) AND isnotnull(product#1225720.internalRefUUID))
(316) Project
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(317) Exchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929058]
(318) BroadcastExchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1931377]
(319) Filter
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
Condition : (((marketUnit#1225682 <=> AUTO_MUV2) AND (size(distributionCenters#1225688, true) > 0)) AND isnotnull(distributionCenters#1225688))
(320) Project
Output [1]: [distributionCenters#1225688]
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(321) Exchange
Input [1]: [distributionCenters#1225688]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929062]
(322) Generate
Input [1]: [distributionCenters#1225688]
Arguments: explode(distributionCenters#1225688), false, [distributionCenters#1225706]
(323) Filter
Input [1]: [distributionCenters#1225706]
Condition : (((size(distributionCenters#1225706.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225706.storageLocations)) AND isnotnull(distributionCenters#1225706.internalRefUUID))
(324) Project
Output [2]: [distributionCenters#1225706.internalRefUUID AS _extract_internalRefUUID#1233331, distributionCenters#1225706.storageLocations AS _extract_storageLocations#1233332]
Input [1]: [distributionCenters#1225706]
(325) Generate
Input [2]: [_extract_internalRefUUID#1233331, _extract_storageLocations#1233332]
Arguments: explode(_extract_storageLocations#1233332), [_extract_internalRefUUID#1233331], false, [storageLocations#1225713]
(326) Project
Output [3]: [_extract_internalRefUUID#1233331 AS plantUuid#1225708, storageLocations#1225713.id AS storageLocId#1225714, storageLocations#1225713.internalRefUUID AS storageLocUuid#1225715]
Input [2]: [_extract_internalRefUUID#1233331, storageLocations#1225713]
(327) BroadcastExchange
Input [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931373]
(328) Filter
Input [2]: [product#1225978, plant#1225979]
Condition : isnotnull(plant#1225979)
(329) Exchange
Input [2]: [product#1225978, plant#1225979]
Arguments: hashpartitioning(product#1225978, plant#1225979, 37), REPARTITION_BY_NUM, [plan_id=1930611]
(330) Scan parquet
Output [4]: [plant#1225984, product#1225985, productionAspect#1225987, systemId#1225982]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(331) Project
Output [4]: [plant#1225984.internalRefUUID AS _extract_internalRefUUID#1234022, product#1225985.internalRefUUID AS _extract_internalRefUUID#1234021, productionAspect#1225987.productMovementPlants.unitOfIssue.code AS _extract_code#1234023, productionAspect#1225987.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234024]
Input [4]: [plant#1225984, product#1225985, productionAspect#1225987, systemId#1225982]
(332) Exchange
Input [4]: [_extract_internalRefUUID#1234022, _extract_internalRefUUID#1234021, _extract_code#1234023, _extract_internalRefUUID#1234024]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929074]
(333) Project
Output [4]: [_extract_code#1234023, _extract_internalRefUUID#1234024, _extract_internalRefUUID#1234021, _extract_internalRefUUID#1234022]
Input [4]: [_extract_internalRefUUID#1234022, _extract_internalRefUUID#1234021, _extract_code#1234023, _extract_internalRefUUID#1234024]
(334) BroadcastExchange
Input [4]: [_extract_code#1234023, _extract_internalRefUUID#1234024, _extract_internalRefUUID#1234021, _extract_internalRefUUID#1234022]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931353]
(335) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225978, ), isnull(product#1225978), coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234021, ), isnull(_extract_internalRefUUID#1234021), coalesce(_extract_internalRefUUID#1234022, ), isnull(_extract_internalRefUUID#1234022)]
Join type: LeftOuter
Join condition: None
(336) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024]
Input [6]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024, _extract_internalRefUUID#1234021, _extract_internalRefUUID#1234022]
(337) Scan parquet
Output [2]: [internalUUID#1225992, systemId#1225991]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(338) Project
Output [1]: [internalUUID#1225992]
Input [2]: [internalUUID#1225992, systemId#1225991]
(339) Exchange
Input [1]: [internalUUID#1225992]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929080]
(340) BroadcastExchange
Input [1]: [internalUUID#1225992]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931357]
(341) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [2]: [coalesce(internalUUID#1225992, ), isnull(internalUUID#1225992)]
Join type: LeftOuter
Join condition: None
(342) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024]
Input [5]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024, internalUUID#1225992]
(343) Scan parquet
Output [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(344) Filter
Input [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
Condition : isnotnull(internalUUID#1226006)
(345) Project
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Input [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
(346) Exchange
Input [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929086]
(347) BroadcastExchange
Input [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931361]
(348) BroadcastHashJoin
Left keys [1]: [product#1225978]
Right keys [1]: [internalUUID#1226006]
Join type: LeftOuter
Join condition: None
(349) Project
Output [2]: [plant#1225979, filter(unitOfMeasureConversions#1226012, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234023) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234024)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226010.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226010.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226017]
Input [7]: [product#1225978, plant#1225979, _extract_code#1234023, _extract_internalRefUUID#1234024, internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(350) Generate
Input [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017]
Arguments: explode(filteredUnitOfMeasureConversions#1226017.quantityNumerator), [plant#1225979, filteredUnitOfMeasureConversions#1226017], true, [quantityNumerator#1226018]
(351) Project
Output [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017.quantityDenominator AS _extract_quantityDenominator#1233333]
Input [3]: [plant#1225979, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018]
(352) Generate
Input [2]: [plant#1225979, _extract_quantityDenominator#1233333]
Arguments: explode(_extract_quantityDenominator#1233333), [plant#1225979], true, [quantityDenominator#1226019]
(353) Project
Output [1]: [plant#1225979]
Input [2]: [plant#1225979, quantityDenominator#1226019]
(354) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(355) Exchange
Input [1]: [plant#1225979]
Arguments: hashpartitioning(plant#1225979, 37), ENSURE_REQUIREMENTS, [plan_id=1931370]
(356) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(357) BroadcastHashJoin
Left keys [1]: [plantUuid#1225708]
Right keys [1]: [plant#1225979]
Join type: Inner
Join condition: None
(358) Project
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Input [4]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715, plant#1225979]
(359) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225721.internalRefUUID, ), isnull(plant#1225721.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225708, ), isnull(plantUuid#1225708)]
Join type: Inner
Join condition: None
(360) Generate
Input [9]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: explode(filter(stockQuantities#1225723, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225715) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225714)), lambda x#1225727, false))), [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708], false, [stockQuantity#1225728]
(361) ObjectHashAggregate
Input [7]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708, stockQuantity#1225728]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [partial_first(calculationDateTime#1225722, false), partial_collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [3]: [first#1228648, valueSet#1228649, buf#1228650]
Results [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
(362) ObjectHashAggregate
Input [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [first(calculationDateTime#1225722, false), collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225722)()#1225742, collect_list(stockQuantity#1225728, 0, 0)#1225743]
Results [4]: [product#1225720, plant#1225721, first(calculationDateTime#1225722)()#1225742 AS calculationDateTime#1225729, collect_list(stockQuantity#1225728, 0, 0)#1225743 AS stockQuantities#1225730]
(363) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Condition : ((size(stockQuantities#1225730, true) > 0) AND isnotnull(calculationDateTime#1225729))
(364) Generate
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Arguments: explode(stockQuantities#1225730), [product#1225720, plant#1225721, calculationDateTime#1225729], false, [stockQuantity#1225745]
(365) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
Condition : (((isnotnull(stockQuantity#1225745.specialStockIndicator.code) AND isnotnull(stockQuantity#1225745.stockType.code)) AND (stockQuantity#1225745.specialStockIndicator.code = )) AND (stockQuantity#1225745.stockType.code = 01))
(366) Project
Output [5]: [plant#1225721.internalRefUUID AS plantUuid#1225747, product#1225720.internalRefUUID AS productUuid#1225749, calculationDateTime#1225729, stockQuantity#1225745.storagelocation.id AS storageLocId#1225750, stockQuantity#1225745.quantity.measure AS quantity#1225752]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
(367) Exchange
Input [5]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752]
Arguments: hashpartitioning(productUuid#1225749, plantUuid#1225747, 37), ENSURE_REQUIREMENTS, [plan_id=1931403]
(368) Sort
Input [5]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752]
Arguments: [productUuid#1225749 ASC NULLS FIRST, plantUuid#1225747 ASC NULLS FIRST], false, 0
(369) Filter
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Condition : ((isnotnull(orderDateTime#1225766) AND isnotnull(plant#1225765)) AND isnotnull(product#1225764))
(370) Exchange
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: hashpartitioning(product#1225764, plant#1225765, 37), REPARTITION_BY_NUM, [plan_id=1930634]
(371) Scan parquet
Output [4]: [plant#1225770, product#1225771, productionAspect#1225773, systemId#1225768]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(372) Project
Output [4]: [plant#1225770.internalRefUUID AS _extract_internalRefUUID#1234027, product#1225771.internalRefUUID AS _extract_internalRefUUID#1234028, productionAspect#1225773.productMovementPlants.unitOfIssue.code AS _extract_code#1234025, productionAspect#1225773.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234026]
Input [4]: [plant#1225770, product#1225771, productionAspect#1225773, systemId#1225768]
(373) Exchange
Input [4]: [_extract_internalRefUUID#1234027, _extract_internalRefUUID#1234028, _extract_code#1234025, _extract_internalRefUUID#1234026]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929111]
(374) Project
Output [4]: [_extract_code#1234025, _extract_internalRefUUID#1234026, _extract_internalRefUUID#1234028, _extract_internalRefUUID#1234027]
Input [4]: [_extract_internalRefUUID#1234027, _extract_internalRefUUID#1234028, _extract_code#1234025, _extract_internalRefUUID#1234026]
(375) BroadcastExchange
Input [4]: [_extract_code#1234025, _extract_internalRefUUID#1234026, _extract_internalRefUUID#1234028, _extract_internalRefUUID#1234027]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931386]
(376) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225764, ), isnull(product#1225764), coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234028, ), isnull(_extract_internalRefUUID#1234028), coalesce(_extract_internalRefUUID#1234027, ), isnull(_extract_internalRefUUID#1234027)]
Join type: LeftOuter
Join condition: None
(377) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026]
Input [7]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026, _extract_internalRefUUID#1234028, _extract_internalRefUUID#1234027]
(378) Scan parquet
Output [2]: [internalUUID#1225778, systemId#1225777]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(379) Project
Output [1]: [internalUUID#1225778]
Input [2]: [internalUUID#1225778, systemId#1225777]
(380) Exchange
Input [1]: [internalUUID#1225778]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929117]
(381) BroadcastExchange
Input [1]: [internalUUID#1225778]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931390]
(382) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [2]: [coalesce(internalUUID#1225778, ), isnull(internalUUID#1225778)]
Join type: LeftOuter
Join condition: None
(383) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026]
Input [6]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026, internalUUID#1225778]
(384) Scan parquet
Output [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(385) Filter
Input [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
Condition : isnotnull(internalUUID#1225792)
(386) Project
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Input [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
(387) Exchange
Input [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929123]
(388) BroadcastExchange
Input [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931394]
(389) BroadcastHashJoin
Left keys [1]: [product#1225764]
Right keys [1]: [internalUUID#1225792]
Join type: LeftOuter
Join condition: None
(390) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filter(unitOfMeasureConversions#1225798, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234025) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234026)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225796.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225796.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225803]
Input [8]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1234025, _extract_internalRefUUID#1234026, internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(391) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803]
Arguments: explode(filteredUnitOfMeasureConversions#1225803.quantityNumerator), [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803], true, [quantityNumerator#1225804]
(392) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803.quantityDenominator AS _extract_quantityDenominator#1233337]
Input [5]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804]
(393) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_quantityDenominator#1233337]
Arguments: explode(_extract_quantityDenominator#1233337), [product#1225764, plant#1225765, orderDateTime#1225766], true, [quantityDenominator#1225805]
(394) Project
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, quantityDenominator#1225805]
(395) Sort
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: [product#1225764 ASC NULLS FIRST, plant#1225765 ASC NULLS FIRST], false, 0
(396) SortMergeJoin
Left keys [2]: [productUuid#1225749, plantUuid#1225747]
Right keys [2]: [product#1225764, plant#1225765]
Join type: Inner
Join condition: (calculationDateTime#1225729 <= orderDateTime#1225766)
(397) Project
Output [5]: [plantUuid#1225747 AS plant#1225812, productUuid#1225749 AS product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Input [8]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, quantity#1225752, product#1225764, plant#1225765, orderDateTime#1225766]
(398) Exchange
Input [5]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Arguments: hashpartitioning(coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729), 37), ENSURE_REQUIREMENTS, [plan_id=1931467]
(399) Sort
Input [5]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752]
Arguments: [coalesce(plant#1225812, ) ASC NULLS FIRST, isnull(plant#1225812) ASC NULLS FIRST, coalesce(product#1225813, ) ASC NULLS FIRST, isnull(product#1225813) ASC NULLS FIRST, coalesce(storageLocId#1225750, ) ASC NULLS FIRST, isnull(storageLocId#1225750) ASC NULLS FIRST, coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1225729) ASC NULLS FIRST], false, 0
(400) Scan parquet
Output [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(401) Filter
Input [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
Condition : (isnotnull(plant#1225824.internalRefUUID) AND isnotnull(product#1225823.internalRefUUID))
(402) Project
Output [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Input [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
(403) Exchange
Input [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929135]
(404) BroadcastExchange
Input [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1931432]
(405) Scan parquet
Output [2]: [marketUnit#1225827, distributionCenters#1225833]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(406) Filter
Input [2]: [marketUnit#1225827, distributionCenters#1225833]
Condition : (((marketUnit#1225827 <=> AUTO_MUV2) AND (size(distributionCenters#1225833, true) > 0)) AND isnotnull(distributionCenters#1225833))
(407) Project
Output [1]: [distributionCenters#1225833]
Input [2]: [marketUnit#1225827, distributionCenters#1225833]
(408) Exchange
Input [1]: [distributionCenters#1225833]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929139]
(409) Generate
Input [1]: [distributionCenters#1225833]
Arguments: explode(distributionCenters#1225833), false, [distributionCenters#1225849]
(410) Filter
Input [1]: [distributionCenters#1225849]
Condition : (((size(distributionCenters#1225849.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225849.storageLocations)) AND isnotnull(distributionCenters#1225849.internalRefUUID))
(411) Project
Output [2]: [distributionCenters#1225849.internalRefUUID AS _extract_internalRefUUID#1233341, distributionCenters#1225849.storageLocations AS _extract_storageLocations#1233342]
Input [1]: [distributionCenters#1225849]
(412) Generate
Input [2]: [_extract_internalRefUUID#1233341, _extract_storageLocations#1233342]
Arguments: explode(_extract_storageLocations#1233342), [_extract_internalRefUUID#1233341], false, [storageLocations#1225850]
(413) Project
Output [3]: [_extract_internalRefUUID#1233341 AS plantUuid#1225852, storageLocations#1225850.id AS storageLocId#1225853, storageLocations#1225850.internalRefUUID AS storageLocUuid#1225854]
Input [2]: [_extract_internalRefUUID#1233341, storageLocations#1225850]
(414) BroadcastExchange
Input [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931428]
(415) Scan parquet
Output [2]: [product#1225855, plant#1225856]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(416) Filter
Input [2]: [product#1225855, plant#1225856]
Condition : isnotnull(plant#1225856)
(417) Exchange
Input [2]: [product#1225855, plant#1225856]
Arguments: hashpartitioning(product#1225855, plant#1225856, 37), REPARTITION_BY_NUM, [plan_id=1930647]
(418) Scan parquet
Output [4]: [plant#1225861, product#1225862, productionAspect#1225864, systemId#1225859]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(419) Project
Output [4]: [plant#1225861.internalRefUUID AS _extract_internalRefUUID#1234029, product#1225862.internalRefUUID AS _extract_internalRefUUID#1234030, productionAspect#1225864.productMovementPlants.unitOfIssue.code AS _extract_code#1234031, productionAspect#1225864.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234032]
Input [4]: [plant#1225861, product#1225862, productionAspect#1225864, systemId#1225859]
(420) Exchange
Input [4]: [_extract_internalRefUUID#1234029, _extract_internalRefUUID#1234030, _extract_code#1234031, _extract_internalRefUUID#1234032]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929151]
(421) Project
Output [4]: [_extract_code#1234031, _extract_internalRefUUID#1234032, _extract_internalRefUUID#1234030, _extract_internalRefUUID#1234029]
Input [4]: [_extract_internalRefUUID#1234029, _extract_internalRefUUID#1234030, _extract_code#1234031, _extract_internalRefUUID#1234032]
(422) BroadcastExchange
Input [4]: [_extract_code#1234031, _extract_internalRefUUID#1234032, _extract_internalRefUUID#1234030, _extract_internalRefUUID#1234029]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931408]
(423) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225855, ), isnull(product#1225855), coalesce(plant#1225856, ), isnull(plant#1225856)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234030, ), isnull(_extract_internalRefUUID#1234030), coalesce(_extract_internalRefUUID#1234029, ), isnull(_extract_internalRefUUID#1234029)]
Join type: LeftOuter
Join condition: None
(424) Project
Output [4]: [product#1225855, plant#1225856, _extract_code#1234031, _extract_internalRefUUID#1234032]
Input [6]: [product#1225855, plant#1225856, _extract_code#1234031, _extract_internalRefUUID#1234032, _extract_internalRefUUID#1234030, _extract_internalRefUUID#1234029]
(425) Scan parquet
Output [2]: [internalUUID#1225869, systemId#1225868]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(426) Project
Output [1]: [internalUUID#1225869]
Input [2]: [internalUUID#1225869, systemId#1225868]
(427) Exchange
Input [1]: [internalUUID#1225869]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929157]
(428) BroadcastExchange
Input [1]: [internalUUID#1225869]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931412]
(429) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225856, ), isnull(plant#1225856)]
Right keys [2]: [coalesce(internalUUID#1225869, ), isnull(internalUUID#1225869)]
Join type: LeftOuter
Join condition: None
(430) Project
Output [4]: [product#1225855, plant#1225856, _extract_code#1234031, _extract_internalRefUUID#1234032]
Input [5]: [product#1225855, plant#1225856, _extract_code#1234031, _extract_internalRefUUID#1234032, internalUUID#1225869]
(431) Scan parquet
Output [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(432) Filter
Input [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
Condition : isnotnull(internalUUID#1225883)
(433) Project
Output [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Input [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
(434) Exchange
Input [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929163]
(435) BroadcastExchange
Input [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931416]
(436) BroadcastHashJoin
Left keys [1]: [product#1225855]
Right keys [1]: [internalUUID#1225883]
Join type: LeftOuter
Join condition: None
(437) Project
Output [2]: [plant#1225856, filter(unitOfMeasureConversions#1225889, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234031) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234032)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225887.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225887.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225894]
Input [7]: [product#1225855, plant#1225856, _extract_code#1234031, _extract_internalRefUUID#1234032, internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
(438) Generate
Input [2]: [plant#1225856, filteredUnitOfMeasureConversions#1225894]
Arguments: explode(filteredUnitOfMeasureConversions#1225894.quantityNumerator), [plant#1225856, filteredUnitOfMeasureConversions#1225894], true, [quantityNumerator#1225895]
(439) Project
Output [2]: [plant#1225856, filteredUnitOfMeasureConversions#1225894.quantityDenominator AS _extract_quantityDenominator#1233343]
Input [3]: [plant#1225856, filteredUnitOfMeasureConversions#1225894, quantityNumerator#1225895]
(440) Generate
Input [2]: [plant#1225856, _extract_quantityDenominator#1233343]
Arguments: explode(_extract_quantityDenominator#1233343), [plant#1225856], true, [quantityDenominator#1225896]
(441) Project
Output [1]: [plant#1225856]
Input [2]: [plant#1225856, quantityDenominator#1225896]
(442) HashAggregate
Input [1]: [plant#1225856]
Keys [1]: [plant#1225856]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225856]
(443) Exchange
Input [1]: [plant#1225856]
Arguments: hashpartitioning(plant#1225856, 37), ENSURE_REQUIREMENTS, [plan_id=1931425]
(444) HashAggregate
Input [1]: [plant#1225856]
Keys [1]: [plant#1225856]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225856]
(445) BroadcastHashJoin
Left keys [1]: [plantUuid#1225852]
Right keys [1]: [plant#1225856]
Join type: Inner
Join condition: None
(446) Project
Output [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Input [4]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854, plant#1225856]
(447) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225824.internalRefUUID, ), isnull(plant#1225824.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225852, ), isnull(plantUuid#1225852)]
Join type: Inner
Join condition: None
(448) Generate
Input [9]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Arguments: explode(filter(stockQuantities#1225826, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225854) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225853)), lambda x#1225727, false))), [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, plantUuid#1225852], false, [stockQuantity#1225899]
(449) ObjectHashAggregate
Input [7]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, plantUuid#1225852, stockQuantity#1225899]
Keys [5]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821]
Functions [2]: [partial_first(calculationDateTime#1225825, false), partial_collect_list(stockQuantity#1225899, 0, 0)]
Aggregate Attributes [3]: [first#1228656, valueSet#1228657, buf#1228658]
Results [8]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first#1228659, valueSet#1228660, buf#1228661]
(450) ObjectHashAggregate
Input [8]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first#1228659, valueSet#1228660, buf#1228661]
Keys [5]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821]
Functions [2]: [first(calculationDateTime#1225825, false), collect_list(stockQuantity#1225899, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225825)()#1225742, collect_list(stockQuantity#1225899, 0, 0)#1225743]
Results [4]: [product#1225823, plant#1225824, first(calculationDateTime#1225825)()#1225742 AS calculationDateTime#1225900, collect_list(stockQuantity#1225899, 0, 0)#1225743 AS stockQuantities#1225901]
(451) Filter
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
Condition : ((size(stockQuantities#1225901, true) > 0) AND isnotnull(calculationDateTime#1225900))
(452) Generate
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
Arguments: explode(stockQuantities#1225901), [product#1225823, plant#1225824, calculationDateTime#1225900], false, [stockQuantity#1225902]
(453) Filter
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantity#1225902]
Condition : (((isnotnull(stockQuantity#1225902.specialStockIndicator.code) AND isnotnull(stockQuantity#1225902.stockType.code)) AND (stockQuantity#1225902.specialStockIndicator.code = )) AND (stockQuantity#1225902.stockType.code = 01))
(454) Project
Output [4]: [plant#1225824.internalRefUUID AS plantUuid#1225904, product#1225823.internalRefUUID AS productUuid#1225906, calculationDateTime#1225900, stockQuantity#1225902.storagelocation.id AS storageLocId#1225907]
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantity#1225902]
(455) Exchange
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: hashpartitioning(productUuid#1225906, plantUuid#1225904, 37), ENSURE_REQUIREMENTS, [plan_id=1931458]
(456) Sort
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: [productUuid#1225906 ASC NULLS FIRST, plantUuid#1225904 ASC NULLS FIRST], false, 0
(457) Scan parquet
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(458) Filter
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Condition : ((isnotnull(orderDateTime#1225914) AND isnotnull(plant#1225913)) AND isnotnull(product#1225912))
(459) Exchange
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: hashpartitioning(product#1225912, plant#1225913, 37), REPARTITION_BY_NUM, [plan_id=1930670]
(460) Scan parquet
Output [4]: [plant#1225918, product#1225919, productionAspect#1225921, systemId#1225916]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(461) Project
Output [4]: [plant#1225918.internalRefUUID AS _extract_internalRefUUID#1234036, product#1225919.internalRefUUID AS _extract_internalRefUUID#1234035, productionAspect#1225921.productMovementPlants.unitOfIssue.code AS _extract_code#1234033, productionAspect#1225921.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234034]
Input [4]: [plant#1225918, product#1225919, productionAspect#1225921, systemId#1225916]
(462) Exchange
Input [4]: [_extract_internalRefUUID#1234036, _extract_internalRefUUID#1234035, _extract_code#1234033, _extract_internalRefUUID#1234034]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929188]
(463) Project
Output [4]: [_extract_code#1234033, _extract_internalRefUUID#1234034, _extract_internalRefUUID#1234035, _extract_internalRefUUID#1234036]
Input [4]: [_extract_internalRefUUID#1234036, _extract_internalRefUUID#1234035, _extract_code#1234033, _extract_internalRefUUID#1234034]
(464) BroadcastExchange
Input [4]: [_extract_code#1234033, _extract_internalRefUUID#1234034, _extract_internalRefUUID#1234035, _extract_internalRefUUID#1234036]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931441]
(465) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225912, ), isnull(product#1225912), coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234035, ), isnull(_extract_internalRefUUID#1234035), coalesce(_extract_internalRefUUID#1234036, ), isnull(_extract_internalRefUUID#1234036)]
Join type: LeftOuter
Join condition: None
(466) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034]
Input [7]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034, _extract_internalRefUUID#1234035, _extract_internalRefUUID#1234036]
(467) Scan parquet
Output [2]: [internalUUID#1225926, systemId#1225925]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(468) Project
Output [1]: [internalUUID#1225926]
Input [2]: [internalUUID#1225926, systemId#1225925]
(469) Exchange
Input [1]: [internalUUID#1225926]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929194]
(470) BroadcastExchange
Input [1]: [internalUUID#1225926]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931445]
(471) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [2]: [coalesce(internalUUID#1225926, ), isnull(internalUUID#1225926)]
Join type: LeftOuter
Join condition: None
(472) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034]
Input [6]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034, internalUUID#1225926]
(473) Scan parquet
Output [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(474) Filter
Input [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
Condition : isnotnull(internalUUID#1225940)
(475) Project
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Input [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
(476) Exchange
Input [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929200]
(477) BroadcastExchange
Input [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931449]
(478) BroadcastHashJoin
Left keys [1]: [product#1225912]
Right keys [1]: [internalUUID#1225940]
Join type: LeftOuter
Join condition: None
(479) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filter(unitOfMeasureConversions#1225946, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234033) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234034)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225944.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225944.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225951]
Input [8]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1234033, _extract_internalRefUUID#1234034, internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(480) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951]
Arguments: explode(filteredUnitOfMeasureConversions#1225951.quantityNumerator), [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951], true, [quantityNumerator#1225952]
(481) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951.quantityDenominator AS _extract_quantityDenominator#1233347]
Input [5]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952]
(482) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_quantityDenominator#1233347]
Arguments: explode(_extract_quantityDenominator#1233347), [product#1225912, plant#1225913, orderDateTime#1225914], true, [quantityDenominator#1225953]
(483) Project
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, quantityDenominator#1225953]
(484) Sort
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: [product#1225912 ASC NULLS FIRST, plant#1225913 ASC NULLS FIRST], false, 0
(485) SortMergeJoin
Left keys [2]: [productUuid#1225906, plantUuid#1225904]
Right keys [2]: [product#1225912, plant#1225913]
Join type: Inner
Join condition: (calculationDateTime#1225900 <= orderDateTime#1225914)
(486) Project
Output [4]: [plantUuid#1225904 AS plant#1225956, productUuid#1225906 AS product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Input [7]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907, product#1225912, plant#1225913, orderDateTime#1225914]
(487) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [partial_max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max#1228654]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
(488) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max(calculationDateTime#1225900)#1225820]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max(calculationDateTime#1225900)#1225820 AS max_calc_datetime#1225814]
(489) Exchange
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: hashpartitioning(coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814), 37), ENSURE_REQUIREMENTS, [plan_id=1931468]
(490) Sort
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: [coalesce(plant#1225956, ) ASC NULLS FIRST, isnull(plant#1225956) ASC NULLS FIRST, coalesce(product#1225957, ) ASC NULLS FIRST, isnull(product#1225957) ASC NULLS FIRST, coalesce(storageLocId#1225907, ) ASC NULLS FIRST, isnull(storageLocId#1225907) ASC NULLS FIRST, coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1225814) ASC NULLS FIRST], false, 0
(491) SortMergeJoin
Left keys [8]: [coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729)]
Right keys [8]: [coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814)]
Join type: Inner
Join condition: None
(492) Project
Output [4]: [plant#1225812, product#1225813, calculationDateTime#1225729, quantity#1225752]
Input [9]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, quantity#1225752, plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
(493) HashAggregate
Input [4]: [plant#1225812, product#1225813, calculationDateTime#1225729, quantity#1225752]
Keys [2]: [product#1225813, plant#1225812]
Functions [2]: [partial_min(calculationDateTime#1225729), partial_sum(quantity#1225752)]
Aggregate Attributes [2]: [min#1228646, sum#1235063]
Results [4]: [product#1225813, plant#1225812, min#1228647, sum#1235064]
(494) Exchange
Input [4]: [product#1225813, plant#1225812, min#1228647, sum#1235064]
Arguments: hashpartitioning(product#1225813, plant#1225812, 37), ENSURE_REQUIREMENTS, [plan_id=1931475]
(495) HashAggregate
Input [4]: [product#1225813, plant#1225812, min#1228647, sum#1235064]
Keys [2]: [product#1225813, plant#1225812]
Functions [2]: [min(calculationDateTime#1225729), sum(quantity#1225752)]
Aggregate Attributes [2]: [min(calculationDateTime#1225729)#1225976, sum(quantity#1225752)#1225975]
Results [4]: [product#1225813, plant#1225812, min(calculationDateTime#1225729)#1225976 AS minCalculationDateTime#1225969, round(sum(quantity#1225752)#1225975, 0) AS roundedQuantitySum#1225977]
(496) Sort
Input [4]: [product#1225813, plant#1225812, minCalculationDateTime#1225969, roundedQuantitySum#1225977]
Arguments: [product#1225813 ASC NULLS FIRST, plant#1225812 ASC NULLS FIRST], false, 0
(497) SortMergeJoin
Left keys [2]: [product#1225622, plant#1225623]
Right keys [2]: [product#1225813, plant#1225812]
Join type: LeftOuter
Join condition: None
(498) Project
Output [5]: [product#1225622, plant#1225623, outboundUnit#1225681, CASE WHEN isnotnull(minCalculationDateTime#1225969) THEN minCalculationDateTime#1225969 ELSE orderDateTime#1225624 END AS stockDatetime#1226026, CASE WHEN isnotnull(roundedQuantitySum#1225977) THEN array(roundedQuantitySum#1225977) ELSE [0.0] END AS stockBatchQuantities#1226027]
Input [8]: [product#1225622, plant#1225623, orderDateTime#1225624, outboundUnit#1225681, product#1225813, plant#1225812, minCalculationDateTime#1225969, roundedQuantitySum#1225977]
(499) Exchange
Input [5]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027]
Arguments: hashpartitioning(coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622), 37), ENSURE_REQUIREMENTS, [plan_id=1931639]
(500) Sort
Input [5]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027]
Arguments: [coalesce(plant#1225623, ) ASC NULLS FIRST, isnull(plant#1225623) ASC NULLS FIRST, coalesce(product#1225622, ) ASC NULLS FIRST, isnull(product#1225622) ASC NULLS FIRST], false, 0
(501) Scan parquet
Output [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(502) Exchange
Input [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Arguments: hashpartitioning(product#1226104, plant#1226105, 37), REPARTITION_BY_NUM, [plan_id=1929218]
(503) Project
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(504) Exchange
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929221]
(505) Project
Output [1]: [struct(systemId, systemId#1226108, internalUUID, internalUUID#1226109, plant, plant#1226110, product, product#1226111, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226112, productionAspect, productionAspect#1226113, salesPlant, salesPlant#1226114, listing, listing#1226115) AS productPlant#1226116]
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
(506) BroadcastExchange
Input [1]: [productPlant#1226116]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1931483]
(507) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226104, ), isnull(product#1226104), coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [4]: [coalesce(productPlant#1226116.product.internalRefUUID, ), isnull(productPlant#1226116.product.internalRefUUID), coalesce(productPlant#1226116.plant.internalRefUUID, ), isnull(productPlant#1226116.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(508) Project
Output [2]: [internalUUID#1226118, address#1226124.timeZone.code AS timezonecode#1226129]
Input [3]: [internalUUID#1226118, address#1226124, systemId#1226117]
(509) Exchange
Input [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929226]
(510) BroadcastExchange
Input [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931486]
(511) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [2]: [coalesce(internalUUID#1226118, ), isnull(internalUUID#1226118)]
Join type: LeftOuter
Join condition: None
(512) Project
Output [5]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, CASE WHEN isnotnull(timezonecode#1226129) THEN timezonecode#1226129 ELSE UTC END AS timezonecode#1226130]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, internalUUID#1226118, timezonecode#1226129]
(513) Scan parquet
Output [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(514) Filter
Input [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
Condition : isnotnull(internalUUID#1226132)
(515) Project
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Input [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
(516) Exchange
Input [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929232]
(517) BroadcastExchange
Input [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931490]
(518) BroadcastHashJoin
Left keys [1]: [product#1226104]
Right keys [1]: [internalUUID#1226132]
Join type: LeftOuter
Join condition: None
(519) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filter(unitOfMeasureConversions#1226138, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226136.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226136.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226143]
Input [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(520) Project
Output [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143.quantityDenominator AS _extract_quantityDenominator#1233544, filteredUnitOfMeasureConversions#1226143.quantityNumerator AS _extract_quantityNumerator#1233545]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143]
(521) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1233544, _extract_quantityNumerator#1233545]
Arguments: explode(_extract_quantityNumerator#1233545), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1233544], true, [quantityNumerator#1226144]
(522) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1233544, quantityNumerator#1226144]
Arguments: explode(_extract_quantityDenominator#1233544), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144], true, [quantityDenominator#1226145]
(523) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, (cast(quantityNumerator#1226144 as double) / cast(quantityDenominator#1226145 as double)) AS outboundUnit#1226146]
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144, quantityDenominator#1226145]
(524) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, CASE WHEN (isnull(outboundUnit#1226146) OR (outboundUnit#1226146 <= 0.0)) THEN 1.0 ELSE outboundUnit#1226146 END AS outboundUnit#1226147]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226146]
(525) Sort
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147]
Arguments: [product#1226104 ASC NULLS FIRST, plant#1226105 ASC NULLS FIRST], false, 0
(526) Scan parquet
Output [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(527) Filter
Input [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
Condition : (isnotnull(plant#1226151.internalRefUUID) AND isnotnull(product#1226150.internalRefUUID))
(528) Project
Output [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Input [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
(529) Exchange
Input [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929243]
(530) BroadcastExchange
Input [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1931522]
(531) Scan parquet
Output [2]: [marketUnit#1226154, distributionCenters#1226160]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(532) Filter
Input [2]: [marketUnit#1226154, distributionCenters#1226160]
Condition : (((marketUnit#1226154 <=> AUTO_MUV2) AND (size(distributionCenters#1226160, true) > 0)) AND isnotnull(distributionCenters#1226160))
(533) Project
Output [1]: [distributionCenters#1226160]
Input [2]: [marketUnit#1226154, distributionCenters#1226160]
(534) Exchange
Input [1]: [distributionCenters#1226160]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929247]
(535) Generate
Input [1]: [distributionCenters#1226160]
Arguments: explode(distributionCenters#1226160), false, [distributionCenters#1226176]
(536) Filter
Input [1]: [distributionCenters#1226176]
Condition : (((size(distributionCenters#1226176.storageLocations, true) > 0) AND isnotnull(distributionCenters#1226176.storageLocations)) AND isnotnull(distributionCenters#1226176.internalRefUUID))
(537) Project
Output [2]: [distributionCenters#1226176.internalRefUUID AS _extract_internalRefUUID#1233353, distributionCenters#1226176.storageLocations AS _extract_storageLocations#1233354]
Input [1]: [distributionCenters#1226176]
(538) Generate
Input [2]: [_extract_internalRefUUID#1233353, _extract_storageLocations#1233354]
Arguments: explode(_extract_storageLocations#1233354), [_extract_internalRefUUID#1233353], false, [storageLocations#1226177]
(539) Project
Output [3]: [_extract_internalRefUUID#1233353 AS plantUuid#1226179, storageLocations#1226177.id AS storageLocId#1226180, storageLocations#1226177.internalRefUUID AS storageLocUuid#1226181]
Input [2]: [_extract_internalRefUUID#1233353, storageLocations#1226177]
(540) BroadcastExchange
Input [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931518]
(541) Scan parquet
Output [2]: [product#1226182, plant#1226183]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(542) Filter
Input [2]: [product#1226182, plant#1226183]
Condition : isnotnull(plant#1226183)
(543) Exchange
Input [2]: [product#1226182, plant#1226183]
Arguments: hashpartitioning(product#1226182, plant#1226183, 37), REPARTITION_BY_NUM, [plan_id=1930691]
(544) Scan parquet
Output [4]: [plant#1226188, product#1226189, productionAspect#1226191, systemId#1226186]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(545) Project
Output [4]: [plant#1226188.internalRefUUID AS _extract_internalRefUUID#1234037, product#1226189.internalRefUUID AS _extract_internalRefUUID#1234038, productionAspect#1226191.productMovementPlants.unitOfIssue.code AS _extract_code#1234039, productionAspect#1226191.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234040]
Input [4]: [plant#1226188, product#1226189, productionAspect#1226191, systemId#1226186]
(546) Exchange
Input [4]: [_extract_internalRefUUID#1234037, _extract_internalRefUUID#1234038, _extract_code#1234039, _extract_internalRefUUID#1234040]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929259]
(547) Project
Output [4]: [_extract_code#1234039, _extract_internalRefUUID#1234040, _extract_internalRefUUID#1234038, _extract_internalRefUUID#1234037]
Input [4]: [_extract_internalRefUUID#1234037, _extract_internalRefUUID#1234038, _extract_code#1234039, _extract_internalRefUUID#1234040]
(548) BroadcastExchange
Input [4]: [_extract_code#1234039, _extract_internalRefUUID#1234040, _extract_internalRefUUID#1234038, _extract_internalRefUUID#1234037]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931498]
(549) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226182, ), isnull(product#1226182), coalesce(plant#1226183, ), isnull(plant#1226183)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234038, ), isnull(_extract_internalRefUUID#1234038), coalesce(_extract_internalRefUUID#1234037, ), isnull(_extract_internalRefUUID#1234037)]
Join type: LeftOuter
Join condition: None
(550) Project
Output [4]: [product#1226182, plant#1226183, _extract_code#1234039, _extract_internalRefUUID#1234040]
Input [6]: [product#1226182, plant#1226183, _extract_code#1234039, _extract_internalRefUUID#1234040, _extract_internalRefUUID#1234038, _extract_internalRefUUID#1234037]
(551) Scan parquet
Output [2]: [internalUUID#1226196, systemId#1226195]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(552) Project
Output [1]: [internalUUID#1226196]
Input [2]: [internalUUID#1226196, systemId#1226195]
(553) Exchange
Input [1]: [internalUUID#1226196]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929265]
(554) BroadcastExchange
Input [1]: [internalUUID#1226196]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931502]
(555) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226183, ), isnull(plant#1226183)]
Right keys [2]: [coalesce(internalUUID#1226196, ), isnull(internalUUID#1226196)]
Join type: LeftOuter
Join condition: None
(556) Project
Output [4]: [product#1226182, plant#1226183, _extract_code#1234039, _extract_internalRefUUID#1234040]
Input [5]: [product#1226182, plant#1226183, _extract_code#1234039, _extract_internalRefUUID#1234040, internalUUID#1226196]
(557) Scan parquet
Output [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(558) Filter
Input [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
Condition : isnotnull(internalUUID#1226210)
(559) Project
Output [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Input [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
(560) Exchange
Input [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929271]
(561) BroadcastExchange
Input [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931506]
(562) BroadcastHashJoin
Left keys [1]: [product#1226182]
Right keys [1]: [internalUUID#1226210]
Join type: LeftOuter
Join condition: None
(563) Project
Output [2]: [plant#1226183, filter(unitOfMeasureConversions#1226216, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234039) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234040)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226214.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226214.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226221]
Input [7]: [product#1226182, plant#1226183, _extract_code#1234039, _extract_internalRefUUID#1234040, internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
(564) Generate
Input [2]: [plant#1226183, filteredUnitOfMeasureConversions#1226221]
Arguments: explode(filteredUnitOfMeasureConversions#1226221.quantityNumerator), [plant#1226183, filteredUnitOfMeasureConversions#1226221], true, [quantityNumerator#1226222]
(565) Project
Output [2]: [plant#1226183, filteredUnitOfMeasureConversions#1226221.quantityDenominator AS _extract_quantityDenominator#1233355]
Input [3]: [plant#1226183, filteredUnitOfMeasureConversions#1226221, quantityNumerator#1226222]
(566) Generate
Input [2]: [plant#1226183, _extract_quantityDenominator#1233355]
Arguments: explode(_extract_quantityDenominator#1233355), [plant#1226183], true, [quantityDenominator#1226223]
(567) Project
Output [1]: [plant#1226183]
Input [2]: [plant#1226183, quantityDenominator#1226223]
(568) HashAggregate
Input [1]: [plant#1226183]
Keys [1]: [plant#1226183]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226183]
(569) Exchange
Input [1]: [plant#1226183]
Arguments: hashpartitioning(plant#1226183, 37), ENSURE_REQUIREMENTS, [plan_id=1931515]
(570) HashAggregate
Input [1]: [plant#1226183]
Keys [1]: [plant#1226183]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226183]
(571) BroadcastHashJoin
Left keys [1]: [plantUuid#1226179]
Right keys [1]: [plant#1226183]
Join type: Inner
Join condition: None
(572) Project
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Input [4]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181, plant#1226183]
(573) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226151.internalRefUUID, ), isnull(plant#1226151.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1226179, ), isnull(plantUuid#1226179)]
Join type: Inner
Join condition: None
(574) Generate
Input [9]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: explode(filter(stockQuantities#1226153, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226181) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226180)), lambda x#1225727, false))), [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179], false, [stockQuantity#1226226]
(575) ObjectHashAggregate
Input [7]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179, stockQuantity#1226226]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [partial_first(calculationDateTime#1226152, false), partial_collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [3]: [first#1228670, valueSet#1228671, buf#1228672]
Results [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
(576) ObjectHashAggregate
Input [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [first(calculationDateTime#1226152, false), collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1226152)()#1225742, collect_list(stockQuantity#1226226, 0, 0)#1225743]
Results [4]: [product#1226150, plant#1226151, first(calculationDateTime#1226152)()#1225742 AS calculationDateTime#1226227, collect_list(stockQuantity#1226226, 0, 0)#1225743 AS stockQuantities#1226228]
(577) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Condition : ((size(stockQuantities#1226228, true) > 0) AND isnotnull(calculationDateTime#1226227))
(578) Generate
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Arguments: explode(stockQuantities#1226228), [product#1226150, plant#1226151, calculationDateTime#1226227], false, [stockQuantity#1226229]
(579) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
Condition : (((isnotnull(stockQuantity#1226229.specialStockIndicator.code) AND isnotnull(stockQuantity#1226229.stockType.code)) AND (stockQuantity#1226229.specialStockIndicator.code = )) AND (stockQuantity#1226229.stockType.code = 01))
(580) Project
Output [5]: [plant#1226151.internalRefUUID AS plantUuid#1226231, product#1226150.internalRefUUID AS productUuid#1226233, calculationDateTime#1226227, stockQuantity#1226229.storagelocation.id AS storageLocId#1226234, stockQuantity#1226229.quantity.measure AS quantity#1226236]
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
(581) Exchange
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: hashpartitioning(productUuid#1226233, plantUuid#1226231, 37), ENSURE_REQUIREMENTS, [plan_id=1931548]
(582) Sort
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: [productUuid#1226233 ASC NULLS FIRST, plantUuid#1226231 ASC NULLS FIRST], false, 0
(583) Scan parquet
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(584) Filter
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Condition : ((isnotnull(orderDateTime#1226241) AND isnotnull(plant#1226240)) AND isnotnull(product#1226239))
(585) Exchange
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Arguments: hashpartitioning(product#1226239, plant#1226240, 37), REPARTITION_BY_NUM, [plan_id=1930714]
(586) Scan parquet
Output [4]: [plant#1226245, product#1226246, productionAspect#1226248, systemId#1226243]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(587) Project
Output [4]: [plant#1226245.internalRefUUID AS _extract_internalRefUUID#1234044, product#1226246.internalRefUUID AS _extract_internalRefUUID#1234041, productionAspect#1226248.productMovementPlants.unitOfIssue.code AS _extract_code#1234042, productionAspect#1226248.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234043]
Input [4]: [plant#1226245, product#1226246, productionAspect#1226248, systemId#1226243]
(588) Exchange
Input [4]: [_extract_internalRefUUID#1234044, _extract_internalRefUUID#1234041, _extract_code#1234042, _extract_internalRefUUID#1234043]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929296]
(589) Project
Output [4]: [_extract_code#1234042, _extract_internalRefUUID#1234043, _extract_internalRefUUID#1234041, _extract_internalRefUUID#1234044]
Input [4]: [_extract_internalRefUUID#1234044, _extract_internalRefUUID#1234041, _extract_code#1234042, _extract_internalRefUUID#1234043]
(590) BroadcastExchange
Input [4]: [_extract_code#1234042, _extract_internalRefUUID#1234043, _extract_internalRefUUID#1234041, _extract_internalRefUUID#1234044]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931531]
(591) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226239, ), isnull(product#1226239), coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234041, ), isnull(_extract_internalRefUUID#1234041), coalesce(_extract_internalRefUUID#1234044, ), isnull(_extract_internalRefUUID#1234044)]
Join type: LeftOuter
Join condition: None
(592) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1234042, _extract_internalRefUUID#1234043]
Input [7]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1234042, _extract_internalRefUUID#1234043, _extract_internalRefUUID#1234041, _extract_internalRefUUID#1234044]
(593) Scan parquet
Output [2]: [internalUUID#1226253, systemId#1226252]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(594) Project
Output [1]: [internalUUID#1226253]
Input [2]: [internalUUID#1226253, systemId#1226252]
(595) Exchange
Input [1]: [internalUUID#1226253]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929302]
(596) BroadcastExchange
Input [1]: [internalUUID#1226253]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931535]
(597) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [2]: [coalesce(internalUUID#1226253, ), isnull(internalUUID#1226253)]
Join type: LeftOuter
Join condition: None
(598) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1234042, _extract_internalRefUUID#1234043]
Input [6]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1234042, _extract_internalRefUUID#1234043, internalUUID#1226253]
(599) Scan parquet
Output [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(600) Filter
Input [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
Condition : isnotnull(internalUUID#1226267)
(601) Project
Output [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Input [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
(602) Exchange
Input [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929308]
(603) BroadcastExchange
Input [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931539]
(604) BroadcastHashJoin
Left keys [1]: [product#1226239]
Right keys [1]: [internalUUID#1226267]
Join type: LeftOuter
Join condition: None
(605) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filter(unitOfMeasureConversions#1226273, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234042) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234043)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226271.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226271.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226278]
Input [8]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1234042, _extract_internalRefUUID#1234043, internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
(606) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278]
Arguments: explode(filteredUnitOfMeasureConversions#1226278.quantityNumerator), [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278], true, [quantityNumerator#1226279]
(607) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278.quantityDenominator AS _extract_quantityDenominator#1233359]
Input [5]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279]
(608) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_quantityDenominator#1233359]
Arguments: explode(_extract_quantityDenominator#1233359), [product#1226239, plant#1226240, orderDateTime#1226241], true, [quantityDenominator#1226280]
(609) Project
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, quantityDenominator#1226280]
(610) Sort
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Arguments: [product#1226239 ASC NULLS FIRST, plant#1226240 ASC NULLS FIRST], false, 0
(611) SortMergeJoin
Left keys [2]: [productUuid#1226233, plantUuid#1226231]
Right keys [2]: [product#1226239, plant#1226240]
Join type: Inner
Join condition: (calculationDateTime#1226227 <= orderDateTime#1226241)
(612) Project
Output [5]: [plantUuid#1226231 AS plant#1226283, productUuid#1226233 AS product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Input [8]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236, product#1226239, plant#1226240, orderDateTime#1226241]
(613) Exchange
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: hashpartitioning(coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227), 37), ENSURE_REQUIREMENTS, [plan_id=1931612]
(614) Sort
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: [coalesce(plant#1226283, ) ASC NULLS FIRST, isnull(plant#1226283) ASC NULLS FIRST, coalesce(product#1226284, ) ASC NULLS FIRST, isnull(product#1226284) ASC NULLS FIRST, coalesce(storageLocId#1226234, ) ASC NULLS FIRST, isnull(storageLocId#1226234) ASC NULLS FIRST, coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1226227) ASC NULLS FIRST], false, 0
(615) Scan parquet
Output [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(616) Filter
Input [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
Condition : (isnotnull(plant#1226288.internalRefUUID) AND isnotnull(product#1226287.internalRefUUID))
(617) Project
Output [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Input [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
(618) Exchange
Input [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929320]
(619) BroadcastExchange
Input [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1931577]
(620) Scan parquet
Output [2]: [marketUnit#1226291, distributionCenters#1226297]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(621) Filter
Input [2]: [marketUnit#1226291, distributionCenters#1226297]
Condition : (((marketUnit#1226291 <=> AUTO_MUV2) AND (size(distributionCenters#1226297, true) > 0)) AND isnotnull(distributionCenters#1226297))
(622) Project
Output [1]: [distributionCenters#1226297]
Input [2]: [marketUnit#1226291, distributionCenters#1226297]
(623) Exchange
Input [1]: [distributionCenters#1226297]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929324]
(624) Generate
Input [1]: [distributionCenters#1226297]
Arguments: explode(distributionCenters#1226297), false, [distributionCenters#1226313]
(625) Filter
Input [1]: [distributionCenters#1226313]
Condition : (((size(distributionCenters#1226313.storageLocations, true) > 0) AND isnotnull(distributionCenters#1226313.storageLocations)) AND isnotnull(distributionCenters#1226313.internalRefUUID))
(626) Project
Output [2]: [distributionCenters#1226313.internalRefUUID AS _extract_internalRefUUID#1233363, distributionCenters#1226313.storageLocations AS _extract_storageLocations#1233364]
Input [1]: [distributionCenters#1226313]
(627) Generate
Input [2]: [_extract_internalRefUUID#1233363, _extract_storageLocations#1233364]
Arguments: explode(_extract_storageLocations#1233364), [_extract_internalRefUUID#1233363], false, [storageLocations#1226314]
(628) Project
Output [3]: [_extract_internalRefUUID#1233363 AS plantUuid#1226316, storageLocations#1226314.id AS storageLocId#1226317, storageLocations#1226314.internalRefUUID AS storageLocUuid#1226318]
Input [2]: [_extract_internalRefUUID#1233363, storageLocations#1226314]
(629) BroadcastExchange
Input [3]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931573]
(630) Scan parquet
Output [2]: [product#1226319, plant#1226320]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(631) Filter
Input [2]: [product#1226319, plant#1226320]
Condition : isnotnull(plant#1226320)
(632) Exchange
Input [2]: [product#1226319, plant#1226320]
Arguments: hashpartitioning(product#1226319, plant#1226320, 37), REPARTITION_BY_NUM, [plan_id=1930727]
(633) Scan parquet
Output [4]: [plant#1226325, product#1226326, productionAspect#1226328, systemId#1226323]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(634) Project
Output [4]: [plant#1226325.internalRefUUID AS _extract_internalRefUUID#1234048, product#1226326.internalRefUUID AS _extract_internalRefUUID#1234047, productionAspect#1226328.productMovementPlants.unitOfIssue.code AS _extract_code#1234045, productionAspect#1226328.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234046]
Input [4]: [plant#1226325, product#1226326, productionAspect#1226328, systemId#1226323]
(635) Exchange
Input [4]: [_extract_internalRefUUID#1234048, _extract_internalRefUUID#1234047, _extract_code#1234045, _extract_internalRefUUID#1234046]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929336]
(636) Project
Output [4]: [_extract_code#1234045, _extract_internalRefUUID#1234046, _extract_internalRefUUID#1234047, _extract_internalRefUUID#1234048]
Input [4]: [_extract_internalRefUUID#1234048, _extract_internalRefUUID#1234047, _extract_code#1234045, _extract_internalRefUUID#1234046]
(637) BroadcastExchange
Input [4]: [_extract_code#1234045, _extract_internalRefUUID#1234046, _extract_internalRefUUID#1234047, _extract_internalRefUUID#1234048]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931553]
(638) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226319, ), isnull(product#1226319), coalesce(plant#1226320, ), isnull(plant#1226320)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234047, ), isnull(_extract_internalRefUUID#1234047), coalesce(_extract_internalRefUUID#1234048, ), isnull(_extract_internalRefUUID#1234048)]
Join type: LeftOuter
Join condition: None
(639) Project
Output [4]: [product#1226319, plant#1226320, _extract_code#1234045, _extract_internalRefUUID#1234046]
Input [6]: [product#1226319, plant#1226320, _extract_code#1234045, _extract_internalRefUUID#1234046, _extract_internalRefUUID#1234047, _extract_internalRefUUID#1234048]
(640) Scan parquet
Output [2]: [internalUUID#1226333, systemId#1226332]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(641) Project
Output [1]: [internalUUID#1226333]
Input [2]: [internalUUID#1226333, systemId#1226332]
(642) Exchange
Input [1]: [internalUUID#1226333]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929342]
(643) BroadcastExchange
Input [1]: [internalUUID#1226333]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931557]
(644) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226320, ), isnull(plant#1226320)]
Right keys [2]: [coalesce(internalUUID#1226333, ), isnull(internalUUID#1226333)]
Join type: LeftOuter
Join condition: None
(645) Project
Output [4]: [product#1226319, plant#1226320, _extract_code#1234045, _extract_internalRefUUID#1234046]
Input [5]: [product#1226319, plant#1226320, _extract_code#1234045, _extract_internalRefUUID#1234046, internalUUID#1226333]
(646) Scan parquet
Output [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(647) Filter
Input [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
Condition : isnotnull(internalUUID#1226347)
(648) Project
Output [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Input [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
(649) Exchange
Input [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929348]
(650) BroadcastExchange
Input [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931561]
(651) BroadcastHashJoin
Left keys [1]: [product#1226319]
Right keys [1]: [internalUUID#1226347]
Join type: LeftOuter
Join condition: None
(652) Project
Output [2]: [plant#1226320, filter(unitOfMeasureConversions#1226353, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234045) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234046)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226351.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226351.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226358]
Input [7]: [product#1226319, plant#1226320, _extract_code#1234045, _extract_internalRefUUID#1234046, internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
(653) Generate
Input [2]: [plant#1226320, filteredUnitOfMeasureConversions#1226358]
Arguments: explode(filteredUnitOfMeasureConversions#1226358.quantityNumerator), [plant#1226320, filteredUnitOfMeasureConversions#1226358], true, [quantityNumerator#1226359]
(654) Project
Output [2]: [plant#1226320, filteredUnitOfMeasureConversions#1226358.quantityDenominator AS _extract_quantityDenominator#1233365]
Input [3]: [plant#1226320, filteredUnitOfMeasureConversions#1226358, quantityNumerator#1226359]
(655) Generate
Input [2]: [plant#1226320, _extract_quantityDenominator#1233365]
Arguments: explode(_extract_quantityDenominator#1233365), [plant#1226320], true, [quantityDenominator#1226360]
(656) Project
Output [1]: [plant#1226320]
Input [2]: [plant#1226320, quantityDenominator#1226360]
(657) HashAggregate
Input [1]: [plant#1226320]
Keys [1]: [plant#1226320]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226320]
(658) Exchange
Input [1]: [plant#1226320]
Arguments: hashpartitioning(plant#1226320, 37), ENSURE_REQUIREMENTS, [plan_id=1931570]
(659) HashAggregate
Input [1]: [plant#1226320]
Keys [1]: [plant#1226320]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226320]
(660) BroadcastHashJoin
Left keys [1]: [plantUuid#1226316]
Right keys [1]: [plant#1226320]
Join type: Inner
Join condition: None
(661) Project
Output [3]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Input [4]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318, plant#1226320]
(662) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226288.internalRefUUID, ), isnull(plant#1226288.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1226316, ), isnull(plantUuid#1226316)]
Join type: Inner
Join condition: None
(663) Generate
Input [9]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Arguments: explode(filter(stockQuantities#1226290, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226318) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226317)), lambda x#1225727, false))), [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, plantUuid#1226316], false, [stockQuantity#1226363]
(664) ObjectHashAggregate
Input [7]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, plantUuid#1226316, stockQuantity#1226363]
Keys [5]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285]
Functions [2]: [partial_first(calculationDateTime#1226289, false), partial_collect_list(stockQuantity#1226363, 0, 0)]
Aggregate Attributes [3]: [first#1228678, valueSet#1228679, buf#1228680]
Results [8]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285, first#1228681, valueSet#1228682, buf#1228683]
(665) ObjectHashAggregate
Input [8]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285, first#1228681, valueSet#1228682, buf#1228683]
Keys [5]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285]
Functions [2]: [first(calculationDateTime#1226289, false), collect_list(stockQuantity#1226363, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1226289)()#1225742, collect_list(stockQuantity#1226363, 0, 0)#1225743]
Results [4]: [product#1226287, plant#1226288, first(calculationDateTime#1226289)()#1225742 AS calculationDateTime#1226364, collect_list(stockQuantity#1226363, 0, 0)#1225743 AS stockQuantities#1226365]
(666) Filter
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantities#1226365]
Condition : ((size(stockQuantities#1226365, true) > 0) AND isnotnull(calculationDateTime#1226364))
(667) Generate
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantities#1226365]
Arguments: explode(stockQuantities#1226365), [product#1226287, plant#1226288, calculationDateTime#1226364], false, [stockQuantity#1226366]
(668) Filter
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantity#1226366]
Condition : (((isnotnull(stockQuantity#1226366.specialStockIndicator.code) AND isnotnull(stockQuantity#1226366.stockType.code)) AND (stockQuantity#1226366.specialStockIndicator.code = )) AND (stockQuantity#1226366.stockType.code = 01))
(669) Project
Output [4]: [plant#1226288.internalRefUUID AS plantUuid#1226368, product#1226287.internalRefUUID AS productUuid#1226370, calculationDateTime#1226364, stockQuantity#1226366.storagelocation.id AS storageLocId#1226371]
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantity#1226366]
(670) Exchange
Input [4]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371]
Arguments: hashpartitioning(productUuid#1226370, plantUuid#1226368, 37), ENSURE_REQUIREMENTS, [plan_id=1931603]
(671) Sort
Input [4]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371]
Arguments: [productUuid#1226370 ASC NULLS FIRST, plantUuid#1226368 ASC NULLS FIRST], false, 0
(672) Scan parquet
Output [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(673) Filter
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Condition : ((isnotnull(orderDateTime#1226378) AND isnotnull(plant#1226377)) AND isnotnull(product#1226376))
(674) Exchange
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Arguments: hashpartitioning(product#1226376, plant#1226377, 37), REPARTITION_BY_NUM, [plan_id=1930750]
(675) Scan parquet
Output [4]: [plant#1226382, product#1226383, productionAspect#1226385, systemId#1226380]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(676) Project
Output [4]: [plant#1226382.internalRefUUID AS _extract_internalRefUUID#1234052, product#1226383.internalRefUUID AS _extract_internalRefUUID#1234049, productionAspect#1226385.productMovementPlants.unitOfIssue.code AS _extract_code#1234050, productionAspect#1226385.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234051]
Input [4]: [plant#1226382, product#1226383, productionAspect#1226385, systemId#1226380]
(677) Exchange
Input [4]: [_extract_internalRefUUID#1234052, _extract_internalRefUUID#1234049, _extract_code#1234050, _extract_internalRefUUID#1234051]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929373]
(678) Project
Output [4]: [_extract_code#1234050, _extract_internalRefUUID#1234051, _extract_internalRefUUID#1234049, _extract_internalRefUUID#1234052]
Input [4]: [_extract_internalRefUUID#1234052, _extract_internalRefUUID#1234049, _extract_code#1234050, _extract_internalRefUUID#1234051]
(679) BroadcastExchange
Input [4]: [_extract_code#1234050, _extract_internalRefUUID#1234051, _extract_internalRefUUID#1234049, _extract_internalRefUUID#1234052]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931586]
(680) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226376, ), isnull(product#1226376), coalesce(plant#1226377, ), isnull(plant#1226377)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234049, ), isnull(_extract_internalRefUUID#1234049), coalesce(_extract_internalRefUUID#1234052, ), isnull(_extract_internalRefUUID#1234052)]
Join type: LeftOuter
Join condition: None
(681) Project
Output [5]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1234050, _extract_internalRefUUID#1234051]
Input [7]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1234050, _extract_internalRefUUID#1234051, _extract_internalRefUUID#1234049, _extract_internalRefUUID#1234052]
(682) Scan parquet
Output [2]: [internalUUID#1226390, systemId#1226389]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(683) Project
Output [1]: [internalUUID#1226390]
Input [2]: [internalUUID#1226390, systemId#1226389]
(684) Exchange
Input [1]: [internalUUID#1226390]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929379]
(685) BroadcastExchange
Input [1]: [internalUUID#1226390]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931590]
(686) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226377, ), isnull(plant#1226377)]
Right keys [2]: [coalesce(internalUUID#1226390, ), isnull(internalUUID#1226390)]
Join type: LeftOuter
Join condition: None
(687) Project
Output [5]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1234050, _extract_internalRefUUID#1234051]
Input [6]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1234050, _extract_internalRefUUID#1234051, internalUUID#1226390]
(688) Scan parquet
Output [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(689) Filter
Input [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
Condition : isnotnull(internalUUID#1226404)
(690) Project
Output [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Input [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
(691) Exchange
Input [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929385]
(692) BroadcastExchange
Input [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931594]
(693) BroadcastHashJoin
Left keys [1]: [product#1226376]
Right keys [1]: [internalUUID#1226404]
Join type: LeftOuter
Join condition: None
(694) Project
Output [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filter(unitOfMeasureConversions#1226410, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234050) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234051)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226408.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226408.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226415]
Input [8]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1234050, _extract_internalRefUUID#1234051, internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
(695) Generate
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415]
Arguments: explode(filteredUnitOfMeasureConversions#1226415.quantityNumerator), [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415], true, [quantityNumerator#1226416]
(696) Project
Output [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415.quantityDenominator AS _extract_quantityDenominator#1233369]
Input [5]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415, quantityNumerator#1226416]
(697) Generate
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_quantityDenominator#1233369]
Arguments: explode(_extract_quantityDenominator#1233369), [product#1226376, plant#1226377, orderDateTime#1226378], true, [quantityDenominator#1226417]
(698) Project
Output [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, quantityDenominator#1226417]
(699) Sort
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Arguments: [product#1226376 ASC NULLS FIRST, plant#1226377 ASC NULLS FIRST], false, 0
(700) SortMergeJoin
Left keys [2]: [productUuid#1226370, plantUuid#1226368]
Right keys [2]: [product#1226376, plant#1226377]
Join type: Inner
Join condition: (calculationDateTime#1226364 <= orderDateTime#1226378)
(701) Project
Output [4]: [plantUuid#1226368 AS plant#1226420, productUuid#1226370 AS product#1226421, storageLocId#1226371, calculationDateTime#1226364]
Input [7]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371, product#1226376, plant#1226377, orderDateTime#1226378]
(702) HashAggregate
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, calculationDateTime#1226364]
Keys [3]: [plant#1226420, product#1226421, storageLocId#1226371]
Functions [1]: [partial_max(calculationDateTime#1226364)]
Aggregate Attributes [1]: [max#1228676]
Results [4]: [plant#1226420, product#1226421, storageLocId#1226371, max#1228677]
(703) HashAggregate
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max#1228677]
Keys [3]: [plant#1226420, product#1226421, storageLocId#1226371]
Functions [1]: [max(calculationDateTime#1226364)]
Aggregate Attributes [1]: [max(calculationDateTime#1226364)#1225820]
Results [4]: [plant#1226420, product#1226421, storageLocId#1226371, max(calculationDateTime#1226364)#1225820 AS max_calc_datetime#1226422]
(704) Exchange
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: hashpartitioning(coalesce(plant#1226420, ), isnull(plant#1226420), coalesce(product#1226421, ), isnull(product#1226421), coalesce(storageLocId#1226371, ), isnull(storageLocId#1226371), coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00), isnull(max_calc_datetime#1226422), 37), ENSURE_REQUIREMENTS, [plan_id=1931613]
(705) Sort
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: [coalesce(plant#1226420, ) ASC NULLS FIRST, isnull(plant#1226420) ASC NULLS FIRST, coalesce(product#1226421, ) ASC NULLS FIRST, isnull(product#1226421) ASC NULLS FIRST, coalesce(storageLocId#1226371, ) ASC NULLS FIRST, isnull(storageLocId#1226371) ASC NULLS FIRST, coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1226422) ASC NULLS FIRST], false, 0
(706) SortMergeJoin
Left keys [8]: [coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227)]
Right keys [8]: [coalesce(plant#1226420, ), isnull(plant#1226420), coalesce(product#1226421, ), isnull(product#1226421), coalesce(storageLocId#1226371, ), isnull(storageLocId#1226371), coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00), isnull(max_calc_datetime#1226422)]
Join type: Inner
Join condition: None
(707) Project
Output [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Input [9]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236, plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
(708) HashAggregate
Input [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [partial_min(calculationDateTime#1226227), partial_sum(quantity#1226236)]
Aggregate Attributes [2]: [min#1228666, sum#1228667]
Results [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
(709) Exchange
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: hashpartitioning(product#1226284, plant#1226283, 37), ENSURE_REQUIREMENTS, [plan_id=1931620]
(710) HashAggregate
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [min(calculationDateTime#1226227), sum(quantity#1226236)]
Aggregate Attributes [2]: [min(calculationDateTime#1226227)#1225976, sum(quantity#1226236)#1225975]
Results [4]: [product#1226284, plant#1226283, min(calculationDateTime#1226227)#1225976 AS minCalculationDateTime#1226424, round(sum(quantity#1226236)#1225975, 0) AS roundedQuantitySum#1226425]
(711) Sort
Input [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
Arguments: [product#1226284 ASC NULLS FIRST, plant#1226283 ASC NULLS FIRST], false, 0
(712) SortMergeJoin
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226284, plant#1226283]
Join type: LeftOuter
Join condition: None
(713) Project
Output [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, CASE WHEN isnotnull(minCalculationDateTime#1226424) THEN minCalculationDateTime#1226424 ELSE orderDateTime#1226106 END AS stockDatetime#1226426, CASE WHEN isnotnull(roundedQuantitySum#1226425) THEN array(roundedQuantitySum#1226425) ELSE [0.0] END AS stockBatchQuantities#1226427]
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
(714) Filter
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Condition : (isnotnull(product#1226029) AND isnotnull(plant#1226030))
(715) BroadcastExchange
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1931629]
(716) BroadcastHashJoin
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226029, plant#1226030]
Join type: LeftOuter
Join condition: None
(717) Project
Output [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, CASE WHEN isnotnull(product#1226029) THEN struct(demandChannel, demandChannel#1226031, demandStream, demandStream#1226032, considerVariance, considerVariance#1226033, demandTimeBuckets, demandTimeBuckets#1226034, demandPointInTimeStart, demandPointInTimeStart#1226035, demandPointInTimeEnd, demandPointInTimeEnd#1226036, demandPointInTime, demandPointInTime#1226037) END AS rawDemands#1226050]
Input [17]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(718) ObjectHashAggregate
Input [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, rawDemands#1226050]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, knownfloatingpointnormalized(if (isnull(productPlant#1226116)) null else named_struct(systemId, productPlant#1226116.systemId, internalUUID, productPlant#1226116.internalUUID, plant, productPlant#1226116.plant, product, productPlant#1226116.product, blockedForReplenishmentStartingFrom, productPlant#1226116.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect)) null else named_struct(productMovementPlants, productPlant#1226116.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1226116.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1226116.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1226116.salesPlant, listing, productPlant#1226116.listing)) AS productPlant#1226116, timezonecode#1226130, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1226147)) AS outboundUnit#1226147, stockDatetime#1226426, knownfloatingpointnormalized(transform(stockBatchQuantities#1226427, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1235066)), lambda arg#1235066, false))) AS stockBatchQuantities#1226427, [7226582400000000] AS [7226582400000000]#1235065]
Functions [1]: [partial_collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [buf#1228664]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1235065, buf#1228665]
(719) ObjectHashAggregate
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1235065, buf#1228665]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1235065]
Functions [1]: [collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1226050, 0, 0)#1226069]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1226428, collect_list(rawDemands#1226050, 0, 0)#1226069 AS rawDemands#1226051]
(720) DeserializeToObject
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, rawDemands#1226051]
Arguments: createexternalrow(invoke(product#1226104.toString()), invoke(plant#1226105.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1226106)), if (isnull(productPlant#1226116)) null else createexternalrow(invoke(productPlant#1226116.systemId.toString()), invoke(productPlant#1226116.internalUUID.toString()), if (isnull(productPlant#1226116.plant)) null else createexternalrow(invoke(productPlant#1226116.plant.internalRefUUID.toString()), invoke(productPlant#1226116.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1226116.product)) null else createexternalrow(invoke(productPlant#1226116.product.internalRefUUID.toString()), invoke(productPlant#1226116.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1226116.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1226116.productionAspect)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1226116.salesPlant)) null else createexternalrow(if (isnull(productPlant#1226116.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1226116.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1226116.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1226116.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1226130.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1226147)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1226426)), mapobjects(lambdavariable(MapObject, DoubleType, true, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1226427, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), stockBatchShelfLifeEndDatetimes#1226428, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1226051, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(721) MapElements
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(722) SerializeFromObject
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1226100, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1226101, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1226102, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1226103]
(723) Exchange
Input [4]: [product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: hashpartitioning(coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100), 37), ENSURE_REQUIREMENTS, [plan_id=1931640]
(724) Sort
Input [4]: [product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: [coalesce(plant#1226101, ) ASC NULLS FIRST, isnull(plant#1226101) ASC NULLS FIRST, coalesce(product#1226100, ) ASC NULLS FIRST, isnull(product#1226100) ASC NULLS FIRST], false, 0
(725) SortMergeJoin
Left keys [4]: [coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622)]
Right keys [4]: [coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100)]
Join type: LeftOuter
Join condition: None
(726) Project
Output [7]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Input [9]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, product#1226100, plant#1226101, dayBucketDemands#1226102, pointInTimeDemands#1226103]
(727) Exchange
Input [7]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: hashpartitioning(product#1225622, plant#1225623, 37), ENSURE_REQUIREMENTS, [plan_id=1931969]
(728) Sort
Input [7]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103]
Arguments: [product#1225622 ASC NULLS FIRST, plant#1225623 ASC NULLS FIRST], false, 0
(729) InMemoryTableScan
Output [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Arguments: [product#1226471, plant#1226470, openGoodsMovements#1228787], [isnotnull(product#1226471), isnotnull(plant#1226470)]
(730) InMemoryRelation
Arguments: [product#1226471, plant#1226470, openGoodsMovements#1228787], StorageLevel(disk, memory, 2 replicas)
(731) EmptyRelation
Output [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Arguments: [plan_id=1977281]
(732) ResultQueryStage
Output [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Arguments: 2
(733) InMemoryTableScan
Output [10]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityDenominator#1226478, quantityNumerator#1226477, quantityUom#1226475, quantityUomUuid#1226476, scheduleLines#1226479, validConfirmations#1226570]
Arguments: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityDenominator#1226478, quantityNumerator#1226477, quantityUom#1226475, quantityUomUuid#1226476, scheduleLines#1226479, validConfirmations#1226570]
(734) InMemoryRelation
Arguments: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, validConfirmations#1226570], StorageLevel(disk, memory, deserialized, 1 replicas)
(735) Scan parquet
Output [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(736) ColumnarToRow
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
(737) Filter
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Condition : (isnotnull(plant#1225623) AND isnotnull(product#1225622))
(738) Exchange
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: hashpartitioning(product#1225622, plant#1225623, 37), REPARTITION_BY_NUM, [plan_id=1941422]
(739) ShuffleQueryStage
Output [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: 0
(740) Scan parquet
Output [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(741) ColumnarToRow
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(742) Project
Output [4]: [plant#1225629.internalRefUUID AS _extract_internalRefUUID#1226767, product#1225630.internalRefUUID AS _extract_internalRefUUID#1226766, productionAspect#1225632.productMovementPlants.unitOfIssue.code AS _extract_code#1226768, productionAspect#1225632.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226769]
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(743) Exchange
Input [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941438]
(744) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
Arguments: 1
(745) Project
Output [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Input [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
(746) BroadcastExchange
Input [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1946229]
(747) BroadcastQueryStage
Output [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Arguments: 97
(748) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225622, ), isnull(product#1225622), coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226766, ), isnull(_extract_internalRefUUID#1226766), coalesce(_extract_internalRefUUID#1226767, ), isnull(_extract_internalRefUUID#1226767)]
Join type: LeftOuter
Join condition: None
(749) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
(750) Scan parquet
Output [3]: [internalUUID#1225640, address#1225646, systemId#1225639]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(751) ColumnarToRow
Input [3]: [internalUUID#1225640, address#1225646, systemId#1225639]
(752) Project
Output [2]: [internalUUID#1225640, address#1225646.timeZone.code AS timezonecode#1225651]
Input [3]: [internalUUID#1225640, address#1225646, systemId#1225639]
(753) Exchange
Input [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941457]
(754) ShuffleQueryStage
Output [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: 2
(755) BroadcastExchange
Input [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1947430]
(756) BroadcastQueryStage
Output [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: 127
(757) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [2]: [coalesce(internalUUID#1225640, ), isnull(internalUUID#1225640)]
Join type: LeftOuter
Join condition: None
(758) Project
Output [6]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, CASE WHEN isnotnull(timezonecode#1225651) THEN timezonecode#1225651 ELSE UTC END AS timezonecode#1225654]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, internalUUID#1225640, timezonecode#1225651]
(759) Scan parquet
Output [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(760) ColumnarToRow
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(761) Filter
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Condition : isnotnull(internalUUID#1225656)
(762) Project
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(763) Exchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941477]
(764) ShuffleQueryStage
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: 3
(765) BroadcastExchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1945365]
(766) BroadcastQueryStage
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: 98
(767) BroadcastHashJoin
Left keys [1]: [product#1225622]
Right keys [1]: [internalUUID#1225656]
Join type: LeftOuter
Join condition: None
(768) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filter(unitOfMeasureConversions#1225662, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226768) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226769)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225660.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225660.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225668]
Input [9]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, timezonecode#1225654, internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
(769) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668]
Arguments: explode(filteredUnitOfMeasureConversions#1225668.quantityNumerator), [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668], true, [quantityNumerator#1225676]
(770) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668.quantityDenominator AS _extract_quantityDenominator#1226572]
Input [6]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668, quantityNumerator#1225676]
(771) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, _extract_quantityDenominator#1226572]
Arguments: explode(_extract_quantityDenominator#1226572), [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654], true, [quantityDenominator#1225679]
(772) Project
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654]
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, quantityDenominator#1225679]
(773) Scan parquet
Output [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(774) ColumnarToRow
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(775) Filter
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Condition : (isnotnull(plant#1225721.internalRefUUID) AND isnotnull(product#1225720.internalRefUUID))
(776) Project
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(777) Exchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941504]
(778) ShuffleQueryStage
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: 4
(779) BroadcastExchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1952506]
(780) BroadcastQueryStage
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: 147
(781) Scan parquet
Output [2]: [marketUnit#1225682, distributionCenters#1225688]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(782) ColumnarToRow
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(783) Filter
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
Condition : (((marketUnit#1225682 <=> AUTO_MUV2) AND (size(distributionCenters#1225688, true) > 0)) AND isnotnull(distributionCenters#1225688))
(784) Project
Output [1]: [distributionCenters#1225688]
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(785) Exchange
Input [1]: [distributionCenters#1225688]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941524]
(786) ShuffleQueryStage
Output [1]: [distributionCenters#1225688]
Arguments: 5
(787) Generate
Input [1]: [distributionCenters#1225688]
Arguments: explode(distributionCenters#1225688), false, [distributionCenters#1225706]
(788) Filter
Input [1]: [distributionCenters#1225706]
Condition : (((size(distributionCenters#1225706.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225706.storageLocations)) AND isnotnull(distributionCenters#1225706.internalRefUUID))
(789) Project
Output [2]: [distributionCenters#1225706.internalRefUUID AS _extract_internalRefUUID#1226576, distributionCenters#1225706.storageLocations AS _extract_storageLocations#1226577]
Input [1]: [distributionCenters#1225706]
(790) Generate
Input [2]: [_extract_internalRefUUID#1226576, _extract_storageLocations#1226577]
Arguments: explode(_extract_storageLocations#1226577), [_extract_internalRefUUID#1226576], false, [storageLocations#1225713]
(791) Project
Output [3]: [_extract_internalRefUUID#1226576 AS plantUuid#1225708, storageLocations#1225713.id AS storageLocId#1225714, storageLocations#1225713.internalRefUUID AS storageLocUuid#1225715]
Input [2]: [_extract_internalRefUUID#1226576, storageLocations#1225713]
(792) BroadcastExchange
Input [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1951535]
(793) BroadcastQueryStage
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: 138
(794) Scan parquet
Output [2]: [product#1225978, plant#1225979]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(795) ColumnarToRow
Input [2]: [product#1225978, plant#1225979]
(796) Filter
Input [2]: [product#1225978, plant#1225979]
Condition : isnotnull(plant#1225979)
(797) Exchange
Input [2]: [product#1225978, plant#1225979]
Arguments: hashpartitioning(product#1225978, plant#1225979, 37), REPARTITION_BY_NUM, [plan_id=1941547]
(798) ShuffleQueryStage
Output [2]: [product#1225978, plant#1225979]
Arguments: 6
(799) ReusedExchange [Reuses operator id: 746]
Output [4]: [_extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
(800) BroadcastQueryStage
Output [4]: [_extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
Arguments: 100
(801) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225978, ), isnull(product#1225978), coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226770, ), isnull(_extract_internalRefUUID#1226770), coalesce(_extract_internalRefUUID#1226771, ), isnull(_extract_internalRefUUID#1226771)]
Join type: LeftOuter
Join condition: None
(802) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773]
Input [6]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
(803) Scan parquet
Output [2]: [internalUUID#1225992, systemId#1225991]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(804) ColumnarToRow
Input [2]: [internalUUID#1225992, systemId#1225991]
(805) Project
Output [1]: [internalUUID#1225992]
Input [2]: [internalUUID#1225992, systemId#1225991]
(806) Exchange
Input [1]: [internalUUID#1225992]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941584]
(807) ShuffleQueryStage
Output [1]: [internalUUID#1225992]
Arguments: 9
(808) BroadcastExchange
Input [1]: [internalUUID#1225992]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1949072]
(809) BroadcastQueryStage
Output [1]: [internalUUID#1225992]
Arguments: 129
(810) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [2]: [coalesce(internalUUID#1225992, ), isnull(internalUUID#1225992)]
Join type: LeftOuter
Join condition: None
(811) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773]
Input [5]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, internalUUID#1225992]
(812) ReusedExchange [Reuses operator id: 765]
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(813) BroadcastQueryStage
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: 101
(814) BroadcastHashJoin
Left keys [1]: [product#1225978]
Right keys [1]: [internalUUID#1226006]
Join type: LeftOuter
Join condition: None
(815) Project
Output [2]: [plant#1225979, filter(unitOfMeasureConversions#1226012, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226772) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226773)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226010.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226010.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226017]
Input [7]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(816) Generate
Input [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017]
Arguments: explode(filteredUnitOfMeasureConversions#1226017.quantityNumerator), [plant#1225979, filteredUnitOfMeasureConversions#1226017], true, [quantityNumerator#1226018]
(817) Project
Output [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017.quantityDenominator AS _extract_quantityDenominator#1226578]
Input [3]: [plant#1225979, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018]
(818) Generate
Input [2]: [plant#1225979, _extract_quantityDenominator#1226578]
Arguments: explode(_extract_quantityDenominator#1226578), [plant#1225979], true, [quantityDenominator#1226019]
(819) Project
Output [1]: [plant#1225979]
Input [2]: [plant#1225979, quantityDenominator#1226019]
(820) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(821) Exchange
Input [1]: [plant#1225979]
Arguments: hashpartitioning(plant#1225979, 37), ENSURE_REQUIREMENTS, [plan_id=1968346]
(822) ShuffleQueryStage
Output [1]: [plant#1225979]
Arguments: 152
(823) AQEShuffleRead
Input [1]: [plant#1225979]
Arguments: coalesced
(824) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(825) BroadcastHashJoin
Left keys [1]: [plantUuid#1225708]
Right keys [1]: [plant#1225979]
Join type: Inner
Join condition: None
(826) Project
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Input [4]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715, plant#1225979]
(827) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225721.internalRefUUID, ), isnull(plant#1225721.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225708, ), isnull(plantUuid#1225708)]
Join type: Inner
Join condition: None
(828) Generate
Input [9]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: explode(filter(stockQuantities#1225723, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225715) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225714)), lambda x#1225727, false))), [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708], false, [stockQuantity#1225728]
(829) ObjectHashAggregate
Input [7]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708, stockQuantity#1225728]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [partial_first(calculationDateTime#1225722, false), partial_collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [3]: [first#1228648, valueSet#1228649, buf#1228650]
Results [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
(830) ObjectHashAggregate
Input [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [first(calculationDateTime#1225722, false), collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225722)()#1225742, collect_list(stockQuantity#1225728, 0, 0)#1225743]
Results [4]: [product#1225720, plant#1225721, first(calculationDateTime#1225722)()#1225742 AS calculationDateTime#1225729, collect_list(stockQuantity#1225728, 0, 0)#1225743 AS stockQuantities#1225730]
(831) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Condition : ((size(stockQuantities#1225730, true) > 0) AND isnotnull(calculationDateTime#1225729))
(832) Generate
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Arguments: explode(stockQuantities#1225730), [product#1225720, plant#1225721, calculationDateTime#1225729], false, [stockQuantity#1225745]
(833) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
Condition : (((isnotnull(stockQuantity#1225745.specialStockIndicator.code) AND isnotnull(stockQuantity#1225745.stockType.code)) AND (stockQuantity#1225745.specialStockIndicator.code = )) AND (stockQuantity#1225745.stockType.code = 01))
(834) Project
Output [4]: [plant#1225721.internalRefUUID AS plantUuid#1225747, product#1225720.internalRefUUID AS productUuid#1225749, calculationDateTime#1225729, stockQuantity#1225745.storagelocation.id AS storageLocId#1225750]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
(835) Exchange
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: hashpartitioning(productUuid#1225749, plantUuid#1225747, 37), ENSURE_REQUIREMENTS, [plan_id=1970570]
(836) ShuffleQueryStage
Output [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: 161
(837) AQEShuffleRead
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: local
(838) BroadcastExchange
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1972200]
(839) BroadcastQueryStage
Output [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: 167
(840) Scan parquet
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(841) ColumnarToRow
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
(842) Filter
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Condition : ((isnotnull(orderDateTime#1225766) AND isnotnull(plant#1225765)) AND isnotnull(product#1225764))
(843) Exchange
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: hashpartitioning(product#1225764, plant#1225765, 37), REPARTITION_BY_NUM, [plan_id=1941645]
(844) ShuffleQueryStage
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: 12
(845) ReusedExchange [Reuses operator id: 746]
Output [4]: [_extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
(846) BroadcastQueryStage
Output [4]: [_extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
Arguments: 103
(847) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225764, ), isnull(product#1225764), coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226777, ), isnull(_extract_internalRefUUID#1226777), coalesce(_extract_internalRefUUID#1226776, ), isnull(_extract_internalRefUUID#1226776)]
Join type: LeftOuter
Join condition: None
(848) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775]
Input [7]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
(849) ReusedExchange [Reuses operator id: 808]
Output [1]: [internalUUID#1225778]
(850) BroadcastQueryStage
Output [1]: [internalUUID#1225778]
Arguments: 130
(851) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [2]: [coalesce(internalUUID#1225778, ), isnull(internalUUID#1225778)]
Join type: LeftOuter
Join condition: None
(852) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775]
Input [6]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, internalUUID#1225778]
(853) ReusedExchange [Reuses operator id: 765]
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(854) BroadcastQueryStage
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: 104
(855) BroadcastHashJoin
Left keys [1]: [product#1225764]
Right keys [1]: [internalUUID#1225792]
Join type: LeftOuter
Join condition: None
(856) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filter(unitOfMeasureConversions#1225798, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226774) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226775)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225796.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225796.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225803]
Input [8]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(857) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803]
Arguments: explode(filteredUnitOfMeasureConversions#1225803.quantityNumerator), [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803], true, [quantityNumerator#1225804]
(858) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803.quantityDenominator AS _extract_quantityDenominator#1226582]
Input [5]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804]
(859) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_quantityDenominator#1226582]
Arguments: explode(_extract_quantityDenominator#1226582), [product#1225764, plant#1225765, orderDateTime#1225766], true, [quantityDenominator#1225805]
(860) Project
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, quantityDenominator#1225805]
(861) BroadcastHashJoin
Left keys [2]: [plantUuid#1225747, productUuid#1225749]
Right keys [2]: [plant#1225765, product#1225764]
Join type: Inner
Join condition: (calculationDateTime#1225729 <= orderDateTime#1225766)
(862) Project
Output [4]: [plantUuid#1225747 AS plant#1225812, productUuid#1225749 AS product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Input [7]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, product#1225764, plant#1225765, orderDateTime#1225766]
(863) Exchange
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: hashpartitioning(coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729), 37), ENSURE_REQUIREMENTS, [plan_id=1973605]
(864) ShuffleQueryStage
Output [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: 173
(865) AQEShuffleRead
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: local
(866) BroadcastExchange
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, timestamp, true], 1970-01-01 00:00:00), isnull(input[3, timestamp, true])),false), [plan_id=1974625]
(867) BroadcastQueryStage
Output [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: 178
(868) ReusedExchange [Reuses operator id: 838]
Output [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
(869) BroadcastQueryStage
Output [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: 169
(870) ReusedExchange [Reuses operator id: 843]
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
(871) ShuffleQueryStage
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: 32
(872) ReusedExchange [Reuses operator id: 746]
Output [4]: [_extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
(873) BroadcastQueryStage
Output [4]: [_extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
Arguments: 109
(874) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225912, ), isnull(product#1225912), coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226784, ), isnull(_extract_internalRefUUID#1226784), coalesce(_extract_internalRefUUID#1226785, ), isnull(_extract_internalRefUUID#1226785)]
Join type: LeftOuter
Join condition: None
(875) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783]
Input [7]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
(876) ReusedExchange [Reuses operator id: 808]
Output [1]: [internalUUID#1225926]
(877) BroadcastQueryStage
Output [1]: [internalUUID#1225926]
Arguments: 132
(878) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [2]: [coalesce(internalUUID#1225926, ), isnull(internalUUID#1225926)]
Join type: LeftOuter
Join condition: None
(879) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783]
Input [6]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, internalUUID#1225926]
(880) ReusedExchange [Reuses operator id: 765]
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(881) BroadcastQueryStage
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: 110
(882) BroadcastHashJoin
Left keys [1]: [product#1225912]
Right keys [1]: [internalUUID#1225940]
Join type: LeftOuter
Join condition: None
(883) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filter(unitOfMeasureConversions#1225946, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226782) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226783)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225944.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225944.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225951]
Input [8]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(884) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951]
Arguments: explode(filteredUnitOfMeasureConversions#1225951.quantityNumerator), [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951], true, [quantityNumerator#1225952]
(885) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951.quantityDenominator AS _extract_quantityDenominator#1226592]
Input [5]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952]
(886) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_quantityDenominator#1226592]
Arguments: explode(_extract_quantityDenominator#1226592), [product#1225912, plant#1225913, orderDateTime#1225914], true, [quantityDenominator#1225953]
(887) Project
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, quantityDenominator#1225953]
(888) BroadcastHashJoin
Left keys [2]: [plantUuid#1225904, productUuid#1225906]
Right keys [2]: [plant#1225913, product#1225912]
Join type: Inner
Join condition: (calculationDateTime#1225900 <= orderDateTime#1225914)
(889) Project
Output [4]: [plantUuid#1225904 AS plant#1225956, productUuid#1225906 AS product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Input [7]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907, product#1225912, plant#1225913, orderDateTime#1225914]
(890) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [partial_max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max#1228654]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
(891) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max(calculationDateTime#1225900)#1225820]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max(calculationDateTime#1225900)#1225820 AS max_calc_datetime#1225814]
(892) Exchange
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: hashpartitioning(coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814), 37), ENSURE_REQUIREMENTS, [plan_id=1973664]
(893) ShuffleQueryStage
Output [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: 174
(894) AQEShuffleRead
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: local
(895) BroadcastHashJoin
Left keys [8]: [coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729)]
Right keys [8]: [coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814)]
Join type: Inner
Join condition: None
(896) Project
Output [3]: [plant#1225812, product#1225813, calculationDateTime#1225729]
Input [8]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
(897) HashAggregate
Input [3]: [plant#1225812, product#1225813, calculationDateTime#1225729]
Keys [2]: [product#1225813, plant#1225812]
Functions [1]: [partial_min(calculationDateTime#1225729)]
Aggregate Attributes [1]: [min#1228646]
Results [3]: [product#1225813, plant#1225812, min#1228647]
(898) Exchange
Input [3]: [product#1225813, plant#1225812, min#1228647]
Arguments: hashpartitioning(product#1225813, plant#1225812, 37), ENSURE_REQUIREMENTS, [plan_id=1975962]
(899) ShuffleQueryStage
Output [3]: [product#1225813, plant#1225812, min#1228647]
Arguments: 180
(900) AQEShuffleRead
Input [3]: [product#1225813, plant#1225812, min#1228647]
Arguments: coalesced
(901) HashAggregate
Input [3]: [product#1225813, plant#1225812, min#1228647]
Keys [2]: [product#1225813, plant#1225812]
Functions [1]: [min(calculationDateTime#1225729)]
Aggregate Attributes [1]: [min(calculationDateTime#1225729)#1225976]
Results [3]: [product#1225813, plant#1225812, min(calculationDateTime#1225729)#1225976 AS minCalculationDateTime#1225969]
(902) BroadcastExchange
Input [3]: [product#1225813, plant#1225812, minCalculationDateTime#1225969]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=1976571]
(903) BroadcastQueryStage
Output [3]: [product#1225813, plant#1225812, minCalculationDateTime#1225969]
Arguments: 183
(904) BroadcastHashJoin
Left keys [2]: [plant#1225623, product#1225622]
Right keys [2]: [plant#1225812, product#1225813]
Join type: LeftOuter
Join condition: None
(905) Project
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, CASE WHEN isnotnull(minCalculationDateTime#1225969) THEN minCalculationDateTime#1225969 ELSE orderDateTime#1225624 END AS stockDatetime#1226026]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, product#1225813, plant#1225812, minCalculationDateTime#1225969]
(906) Exchange
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: hashpartitioning(coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622), 37), ENSURE_REQUIREMENTS, [plan_id=1976846]
(907) ShuffleQueryStage
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: 184
(908) AQEShuffleRead
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: local
(909) Scan parquet
Output [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(910) ColumnarToRow
Input [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
(911) Exchange
Input [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Arguments: hashpartitioning(product#1226104, plant#1226105, 37), REPARTITION_BY_NUM, [plan_id=1941988]
(912) ShuffleQueryStage
Output [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Arguments: 39
(913) Scan parquet
Output [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>
(914) ColumnarToRow
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(915) Project
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(916) Exchange
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1942002]
(917) ShuffleQueryStage
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: 40
(918) Project
Output [1]: [struct(systemId, systemId#1226108, internalUUID, internalUUID#1226109, plant, plant#1226110, product, product#1226111, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226112, productionAspect, productionAspect#1226113, salesPlant, salesPlant#1226114, listing, listing#1226115) AS productPlant#1226116]
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
(919) BroadcastExchange
Input [1]: [productPlant#1226116]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1954063]
(920) BroadcastQueryStage
Output [1]: [productPlant#1226116]
Arguments: 149
(921) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226104, ), isnull(product#1226104), coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [4]: [coalesce(productPlant#1226116.product.internalRefUUID, ), isnull(productPlant#1226116.product.internalRefUUID), coalesce(productPlant#1226116.plant.internalRefUUID, ), isnull(productPlant#1226116.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(922) ReusedExchange [Reuses operator id: 755]
Output [2]: [internalUUID#1226118, timezonecode#1226129]
(923) BroadcastQueryStage
Output [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: 128
(924) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [2]: [coalesce(internalUUID#1226118, ), isnull(internalUUID#1226118)]
Join type: LeftOuter
Join condition: None
(925) Project
Output [5]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, CASE WHEN isnotnull(timezonecode#1226129) THEN timezonecode#1226129 ELSE UTC END AS timezonecode#1226130]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, internalUUID#1226118, timezonecode#1226129]
(926) ReusedExchange [Reuses operator id: 765]
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(927) BroadcastQueryStage
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: 111
(928) BroadcastHashJoin
Left keys [1]: [product#1226104]
Right keys [1]: [internalUUID#1226132]
Join type: LeftOuter
Join condition: None
(929) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filter(unitOfMeasureConversions#1226138, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226136.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226136.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226143]
Input [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(930) Project
Output [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143.quantityDenominator AS _extract_quantityDenominator#1226654, filteredUnitOfMeasureConversions#1226143.quantityNumerator AS _extract_quantityNumerator#1226655]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143]
(931) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654, _extract_quantityNumerator#1226655]
Arguments: explode(_extract_quantityNumerator#1226655), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654], true, [quantityNumerator#1226144]
(932) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654, quantityNumerator#1226144]
Arguments: explode(_extract_quantityDenominator#1226654), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144], true, [quantityDenominator#1226145]
(933) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, (cast(quantityNumerator#1226144 as double) / cast(quantityDenominator#1226145 as double)) AS outboundUnit#1226146]
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144, quantityDenominator#1226145]
(934) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, CASE WHEN (isnull(outboundUnit#1226146) OR (outboundUnit#1226146 <= 0.0)) THEN 1.0 ELSE outboundUnit#1226146 END AS outboundUnit#1226147]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226146]
(935) ReusedExchange [Reuses operator id: 779]
Output [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
(936) BroadcastQueryStage
Output [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Arguments: 150
(937) ReusedExchange [Reuses operator id: 792]
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
(938) BroadcastQueryStage
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: 142
(939) ReusedExchange [Reuses operator id: 821]
Output [1]: [plant#1226183]
(940) ShuffleQueryStage
Output [1]: [plant#1226183]
Arguments: 156
(941) AQEShuffleRead
Input [1]: [plant#1226183]
Arguments: coalesced
(942) HashAggregate
Input [1]: [plant#1226183]
Keys [1]: [plant#1226183]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226183]
(943) BroadcastHashJoin
Left keys [1]: [plantUuid#1226179]
Right keys [1]: [plant#1226183]
Join type: Inner
Join condition: None
(944) Project
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Input [4]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181, plant#1226183]
(945) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226151.internalRefUUID, ), isnull(plant#1226151.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1226179, ), isnull(plantUuid#1226179)]
Join type: Inner
Join condition: None
(946) Generate
Input [9]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: explode(filter(stockQuantities#1226153, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226181) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226180)), lambda x#1225727, false))), [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179], false, [stockQuantity#1226226]
(947) ObjectHashAggregate
Input [7]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179, stockQuantity#1226226]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [partial_first(calculationDateTime#1226152, false), partial_collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [3]: [first#1228670, valueSet#1228671, buf#1228672]
Results [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
(948) ObjectHashAggregate
Input [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [first(calculationDateTime#1226152, false), collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1226152)()#1225742, collect_list(stockQuantity#1226226, 0, 0)#1225743]
Results [4]: [product#1226150, plant#1226151, first(calculationDateTime#1226152)()#1225742 AS calculationDateTime#1226227, collect_list(stockQuantity#1226226, 0, 0)#1225743 AS stockQuantities#1226228]
(949) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Condition : ((size(stockQuantities#1226228, true) > 0) AND isnotnull(calculationDateTime#1226227))
(950) Generate
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Arguments: explode(stockQuantities#1226228), [product#1226150, plant#1226151, calculationDateTime#1226227], false, [stockQuantity#1226229]
(951) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
Condition : (((isnotnull(stockQuantity#1226229.specialStockIndicator.code) AND isnotnull(stockQuantity#1226229.stockType.code)) AND (stockQuantity#1226229.specialStockIndicator.code = )) AND (stockQuantity#1226229.stockType.code = 01))
(952) Project
Output [5]: [plant#1226151.internalRefUUID AS plantUuid#1226231, product#1226150.internalRefUUID AS productUuid#1226233, calculationDateTime#1226227, stockQuantity#1226229.storagelocation.id AS storageLocId#1226234, stockQuantity#1226229.quantity.measure AS quantity#1226236]
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
(953) Exchange
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: hashpartitioning(productUuid#1226233, plantUuid#1226231, 37), ENSURE_REQUIREMENTS, [plan_id=1970720]
(954) ShuffleQueryStage
Output [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: 164
(955) AQEShuffleRead
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: local
(956) BroadcastExchange
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1972915]
(957) BroadcastQueryStage
Output [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: 172
(958) ReusedExchange [Reuses operator id: 843]
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
(959) ShuffleQueryStage
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Arguments: 58
(960) ReusedExchange [Reuses operator id: 746]
Output [4]: [_extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
(961) BroadcastQueryStage
Output [4]: [_extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
Arguments: 116
(962) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226239, ), isnull(product#1226239), coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226790, ), isnull(_extract_internalRefUUID#1226790), coalesce(_extract_internalRefUUID#1226793, ), isnull(_extract_internalRefUUID#1226793)]
Join type: LeftOuter
Join condition: None
(963) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792]
Input [7]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
(964) ReusedExchange [Reuses operator id: 808]
Output [1]: [internalUUID#1226253]
(965) BroadcastQueryStage
Output [1]: [internalUUID#1226253]
Arguments: 134
(966) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [2]: [coalesce(internalUUID#1226253, ), isnull(internalUUID#1226253)]
Join type: LeftOuter
Join condition: None
(967) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792]
Input [6]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, internalUUID#1226253]
(968) ReusedExchange [Reuses operator id: 765]
Output [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
(969) BroadcastQueryStage
Output [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Arguments: 117
(970) BroadcastHashJoin
Left keys [1]: [product#1226239]
Right keys [1]: [internalUUID#1226267]
Join type: LeftOuter
Join condition: None
(971) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filter(unitOfMeasureConversions#1226273, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226791) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226792)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226271.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226271.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226278]
Input [8]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
(972) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278]
Arguments: explode(filteredUnitOfMeasureConversions#1226278.quantityNumerator), [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278], true, [quantityNumerator#1226279]
(973) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278.quantityDenominator AS _extract_quantityDenominator#1226604]
Input [5]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279]
(974) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_quantityDenominator#1226604]
Arguments: explode(_extract_quantityDenominator#1226604), [product#1226239, plant#1226240, orderDateTime#1226241], true, [quantityDenominator#1226280]
(975) Project
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, quantityDenominator#1226280]
(976) BroadcastHashJoin
Left keys [2]: [plantUuid#1226231, productUuid#1226233]
Right keys [2]: [plant#1226240, product#1226239]
Join type: Inner
Join condition: (calculationDateTime#1226227 <= orderDateTime#1226241)
(977) Project
Output [5]: [plantUuid#1226231 AS plant#1226283, productUuid#1226233 AS product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Input [8]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236, product#1226239, plant#1226240, orderDateTime#1226241]
(978) Exchange
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: hashpartitioning(coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227), 37), ENSURE_REQUIREMENTS, [plan_id=1974231]
(979) ShuffleQueryStage
Output [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: 177
(980) AQEShuffleRead
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: local
(981) BroadcastExchange
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, timestamp, true], 1970-01-01 00:00:00), isnull(input[3, timestamp, true])),false), [plan_id=1975292]
(982) BroadcastQueryStage
Output [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: 179
(983) ReusedExchange [Reuses operator id: 892]
Output [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
(984) ShuffleQueryStage
Output [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: 176
(985) AQEShuffleRead
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: local
(986) BroadcastHashJoin
Left keys [8]: [coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227)]
Right keys [8]: [coalesce(plant#1226420, ), isnull(plant#1226420), coalesce(product#1226421, ), isnull(product#1226421), coalesce(storageLocId#1226371, ), isnull(storageLocId#1226371), coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00), isnull(max_calc_datetime#1226422)]
Join type: Inner
Join condition: None
(987) Project
Output [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Input [9]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236, plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
(988) HashAggregate
Input [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [partial_min(calculationDateTime#1226227), partial_sum(quantity#1226236)]
Aggregate Attributes [2]: [min#1228666, sum#1228667]
Results [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
(989) Exchange
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: hashpartitioning(product#1226284, plant#1226283, 37), ENSURE_REQUIREMENTS, [plan_id=1975997]
(990) ShuffleQueryStage
Output [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: 181
(991) AQEShuffleRead
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: coalesced
(992) HashAggregate
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [min(calculationDateTime#1226227), sum(quantity#1226236)]
Aggregate Attributes [2]: [min(calculationDateTime#1226227)#1225976, sum(quantity#1226236)#1225975]
Results [4]: [product#1226284, plant#1226283, min(calculationDateTime#1226227)#1225976 AS minCalculationDateTime#1226424, round(sum(quantity#1226236)#1225975, 0) AS roundedQuantitySum#1226425]
(993) BroadcastExchange
Input [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=1976298]
(994) BroadcastQueryStage
Output [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
Arguments: 182
(995) BroadcastHashJoin
Left keys [2]: [plant#1226105, product#1226104]
Right keys [2]: [plant#1226283, product#1226284]
Join type: LeftOuter
Join condition: None
(996) Project
Output [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, CASE WHEN isnotnull(minCalculationDateTime#1226424) THEN minCalculationDateTime#1226424 ELSE orderDateTime#1226106 END AS stockDatetime#1226426, CASE WHEN isnotnull(roundedQuantitySum#1226425) THEN array(roundedQuantitySum#1226425) ELSE [0.0] END AS stockBatchQuantities#1226427]
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
(997) Scan parquet
Output [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001356/0_1_10000001356]
PushedFilters: [IsNotNull(product), IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(998) ColumnarToRow
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(999) Filter
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Condition : (isnotnull(product#1226029) AND isnotnull(plant#1226030))
(1000) BroadcastExchange
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1942566]
(1001) BroadcastQueryStage
Output [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: 85
(1002) BroadcastHashJoin
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226029, plant#1226030]
Join type: LeftOuter
Join condition: None
(1003) Project
Output [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, CASE WHEN isnotnull(product#1226029) THEN struct(demandChannel, demandChannel#1226031, demandStream, demandStream#1226032, considerVariance, considerVariance#1226033, demandTimeBuckets, demandTimeBuckets#1226034, demandPointInTimeStart, demandPointInTimeStart#1226035, demandPointInTimeEnd, demandPointInTimeEnd#1226036, demandPointInTime, demandPointInTime#1226037) END AS rawDemands#1226050]
Input [17]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(1004) ObjectHashAggregate
Input [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, rawDemands#1226050]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, knownfloatingpointnormalized(if (isnull(productPlant#1226116)) null else named_struct(systemId, productPlant#1226116.systemId, internalUUID, productPlant#1226116.internalUUID, plant, productPlant#1226116.plant, product, productPlant#1226116.product, blockedForReplenishmentStartingFrom, productPlant#1226116.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect)) null else named_struct(productMovementPlants, productPlant#1226116.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1226116.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1226116.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1226116.salesPlant, listing, productPlant#1226116.listing)) AS productPlant#1226116, timezonecode#1226130, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1226147)) AS outboundUnit#1226147, stockDatetime#1226426, knownfloatingpointnormalized(transform(stockBatchQuantities#1226427, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1236851)), lambda arg#1236851, false))) AS stockBatchQuantities#1226427, [7226582400000000] AS [7226582400000000]#1236850]
Functions [1]: [partial_collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [buf#1228664]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1236850, buf#1228665]
(1005) ObjectHashAggregate
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1236850, buf#1228665]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1236850]
Functions [1]: [collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1226050, 0, 0)#1226069]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1226428, collect_list(rawDemands#1226050, 0, 0)#1226069 AS rawDemands#1226051]
(1006) DeserializeToObject
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, rawDemands#1226051]
Arguments: createexternalrow(invoke(product#1226104.toString()), invoke(plant#1226105.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1226106)), if (isnull(productPlant#1226116)) null else createexternalrow(invoke(productPlant#1226116.systemId.toString()), invoke(productPlant#1226116.internalUUID.toString()), if (isnull(productPlant#1226116.plant)) null else createexternalrow(invoke(productPlant#1226116.plant.internalRefUUID.toString()), invoke(productPlant#1226116.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1226116.product)) null else createexternalrow(invoke(productPlant#1226116.product.internalRefUUID.toString()), invoke(productPlant#1226116.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1226116.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1226116.productionAspect)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1226116.salesPlant)) null else createexternalrow(if (isnull(productPlant#1226116.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1226116.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1226116.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1226116.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1226130.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1226147)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1226426)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#1226427, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#1226428, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1226051, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(1007) MapElements
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(1008) SerializeFromObject
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1226100, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1226101]
(1009) Exchange
Input [2]: [product#1226100, plant#1226101]
Arguments: hashpartitioning(coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100), 37), ENSURE_REQUIREMENTS, [plan_id=1976913]
(1010) ShuffleQueryStage
Output [2]: [product#1226100, plant#1226101]
Arguments: 185
(1011) AQEShuffleRead
Input [2]: [product#1226100, plant#1226101]
Arguments: local
(1012) BroadcastExchange
Input [2]: [product#1226100, plant#1226101]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1977086]
(1013) BroadcastQueryStage
Output [2]: [product#1226100, plant#1226101]
Arguments: 186
(1014) BroadcastHashJoin
Left keys [4]: [coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622)]
Right keys [4]: [coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100)]
Join type: LeftOuter
Join condition: None
(1015) Project
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Input [6]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026, product#1226100, plant#1226101]
(1016) Exchange
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: hashpartitioning(plant#1225623, 37), ENSURE_REQUIREMENTS, [plan_id=1977157]
(1017) ShuffleQueryStage
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: 187
(1018) Sort
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: [plant#1225623 ASC NULLS FIRST], false, 0
(1019) ReusedExchange [Reuses operator id: 785]
Output [1]: [distributionCenters#1226499]
(1020) ShuffleQueryStage
Output [1]: [distributionCenters#1226499]
Arguments: 87
(1021) Generate
Input [1]: [distributionCenters#1226499]
Arguments: explode(distributionCenters#1226499), false, [distributionCenters#1226515]
(1022) Filter
Input [1]: [distributionCenters#1226515]
Condition : (((size(distributionCenters#1226515.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1226515.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1226515.internalRefUUID))
(1023) Project
Output [2]: [distributionCenters#1226515.internalRefUUID AS _extract_internalRefUUID#1226618, distributionCenters#1226515.storageLocations.internalRefUUID AS _extract_internalRefUUID#1226803]
Input [1]: [distributionCenters#1226515]
(1024) Generate
Input [2]: [_extract_internalRefUUID#1226618, _extract_internalRefUUID#1226803]
Arguments: explode(_extract_internalRefUUID#1226803), [_extract_internalRefUUID#1226618], false, [storageLocations#1226516]
(1025) Filter
Input [2]: [_extract_internalRefUUID#1226618, storageLocations#1226516]
Condition : isnotnull(storageLocations#1226516)
(1026) Project
Output [2]: [_extract_internalRefUUID#1226618 AS plantUuid#1226518, storageLocations#1226516 AS storageLocUuid#1226520]
Input [2]: [_extract_internalRefUUID#1226618, storageLocations#1226516]
(1027) BroadcastExchange
Input [2]: [plantUuid#1226518, storageLocUuid#1226520]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1951742]
(1028) BroadcastQueryStage
Output [2]: [plantUuid#1226518, storageLocUuid#1226520]
Arguments: 145
(1029) ReusedExchange [Reuses operator id: 821]
Output [1]: [plant#1226522]
(1030) ShuffleQueryStage
Output [1]: [plant#1226522]
Arguments: 160
(1031) HashAggregate
Input [1]: [plant#1226522]
Keys [1]: [plant#1226522]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226522]
(1032) BroadcastHashJoin
Left keys [1]: [plantUuid#1226518]
Right keys [1]: [plant#1226522]
Join type: Inner
Join condition: None
(1033) Project
Output [2]: [plantUuid#1226518 AS plant#1226492, storageLocUuid#1226520]
Input [3]: [plantUuid#1226518, storageLocUuid#1226520, plant#1226522]
(1034) Sort
Input [2]: [plant#1226492, storageLocUuid#1226520]
Arguments: [plant#1226492 ASC NULLS FIRST], false, 0
(1035) SortMergeJoin
Left keys [1]: [plant#1225623]
Right keys [1]: [plant#1226492]
Join type: Inner
Join condition: None
(1036) Project
Output [5]: [plant#1225623, product#1225622, timezonecode#1225654, stockDatetime#1226026, storageLocUuid#1226520]
Input [6]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026, plant#1226492, storageLocUuid#1226520]
(1037) Scan parquet
Output [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-procurement-purchaseorder]
PushedFilters: [IsNotNull(isMarkedForDeletion), Not(EqualTo(isMarkedForDeletion,true)), IsNotNull(items)]
ReadSchema: struct<internalUUID:string,id:string,supplier:struct<internalRefUUID:string,id:string>,isMarkedForDeletion:boolean,items:array<struct<number:string,completeIndicator:boolean,returnIndicator:boolean,deletionIndicator:boolean,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,quantityNumerator:double,quantityDenominator:double,scheduleLines:array<struct<number:string,deliveryAt:timestamp,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,receivedQuantity:double,deliveredQuantity:double,productAvailabilityDateTime:timestamp>>,confirmations:array<struct<number:string,confirmationCategory:struct<internalRefUUID:string,code:string>,confirmationDeliveryDate:date,confirmedDeliveryAt:timestamp,confirmedQuantity:double,mrpRelevantQuantity:double,confirmationCreationCategory:string,deletionIndicator:boolean,isRelevantForConfirmation:boolean,delivery:struct<internalRefUUID:string,id:string>,deliveryItemNumber:string>>>>>
(1038) ColumnarToRow
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
(1039) Filter
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
Condition : (((isnotnull(isMarkedForDeletion#1226460) AND NOT isMarkedForDeletion#1226460) AND (size(items#1226461, true) > 0)) AND isnotnull(items#1226461))
(1040) Project
Output [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
(1041) Exchange
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1942799]
(1042) ShuffleQueryStage
Output [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: 96
(1043) Generate
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: explode(items#1226461), [internalUUID#1226454, id#1226455, supplier#1226457], false, [item#1226465]
(1044) Filter
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, item#1226465]
Condition : ((((isnotnull(item#1226465.deletionIndicator) AND isnotnull(item#1226465.completeIndicator)) AND isnotnull(item#1226465.returnIndicator)) AND ((NOT item#1226465.deletionIndicator AND NOT item#1226465.completeIndicator) AND NOT item#1226465.returnIndicator)) AND ((isnotnull(item#1226465.product.internalRefUUID) AND isnotnull(item#1226465.plant.internalRefUUID)) AND isnotnull(item#1226465.storageLocation.internalRefUUID)))
(1045) Project
Output [14]: [id#1226455, internalUUID#1226454, supplier#1226457.internalRefUUID AS supplierUuid#1226462, item#1226465.plant.internalRefUUID AS plant#1226470, item#1226465.product.internalRefUUID AS product#1226471, item#1226465.plant.id AS externalPlantId#1226472, item#1226465.product.id AS externalProductId#1226473, item#1226465.storageLocation.internalRefUUID AS storageLocUuid#1226474, item#1226465.quantityUnit.code AS quantityUom#1226475, item#1226465.quantityUnit.internalRefUUID AS quantityUomUuid#1226476, item#1226465.quantityNumerator AS quantityNumerator#1226477, item#1226465.quantityDenominator AS quantityDenominator#1226478, item#1226465.scheduleLines AS scheduleLines#1226479, item#1226465.confirmations AS confirmations#1226480]
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, item#1226465]
(1046) BroadcastExchange
Input [14]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
Arguments: HashedRelationBroadcastMode(List(input[4, string, true], input[3, string, true], input[7, string, true]),false), [plan_id=1953141]
(1047) BroadcastQueryStage
Output [14]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
Arguments: 146
(1048) BroadcastHashJoin
Left keys [3]: [product#1225622, plant#1225623, storageLocUuid#1226520]
Right keys [3]: [product#1226471, plant#1226470, storageLocUuid#1226474]
Join type: Inner
Join condition: None
(1049) Project
Output [17]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, filter(confirmations#1226480, lambdafunction(((NOT lambda x_149#1226571.deletionIndicator AND lambda x_149#1226571.isRelevantForConfirmation) AND isnotnull(lambda x_149#1226571.confirmedDeliveryAt)), lambda x_149#1226571, false)) AS validConfirmations#1226570]
Input [19]: [plant#1225623, product#1225622, timezonecode#1225654, stockDatetime#1226026, storageLocUuid#1226520, id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
(1050) ResultQueryStage
Output [17]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, validConfirmations#1226570]
Arguments: 188
(1051) Filter
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Condition : (isnotnull(plant#1225623) AND isnotnull(product#1225622))
(1052) Exchange
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: hashpartitioning(product#1225622, plant#1225623, 37), REPARTITION_BY_NUM, [plan_id=1924116]
(1053) Project
Output [4]: [plant#1225629.internalRefUUID AS _extract_internalRefUUID#1226767, product#1225630.internalRefUUID AS _extract_internalRefUUID#1226766, productionAspect#1225632.productMovementPlants.unitOfIssue.code AS _extract_code#1226768, productionAspect#1225632.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226769]
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(1054) Exchange
Input [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923687]
(1055) Project
Output [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Input [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
(1056) BroadcastExchange
Input [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924315]
(1057) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225622, ), isnull(product#1225622), coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226766, ), isnull(_extract_internalRefUUID#1226766), coalesce(_extract_internalRefUUID#1226767, ), isnull(_extract_internalRefUUID#1226767)]
Join type: LeftOuter
Join condition: None
(1058) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
(1059) Project
Output [2]: [internalUUID#1225640, address#1225646.timeZone.code AS timezonecode#1225651]
Input [3]: [internalUUID#1225640, address#1225646, systemId#1225639]
(1060) Exchange
Input [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923693]
(1061) BroadcastExchange
Input [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924319]
(1062) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [2]: [coalesce(internalUUID#1225640, ), isnull(internalUUID#1225640)]
Join type: LeftOuter
Join condition: None
(1063) Project
Output [6]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, CASE WHEN isnotnull(timezonecode#1225651) THEN timezonecode#1225651 ELSE UTC END AS timezonecode#1225654]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, internalUUID#1225640, timezonecode#1225651]
(1064) Filter
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Condition : isnotnull(internalUUID#1225656)
(1065) Project
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(1066) Exchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923699]
(1067) BroadcastExchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924323]
(1068) BroadcastHashJoin
Left keys [1]: [product#1225622]
Right keys [1]: [internalUUID#1225656]
Join type: LeftOuter
Join condition: None
(1069) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filter(unitOfMeasureConversions#1225662, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226768) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226769)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225660.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225660.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225668]
Input [9]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, timezonecode#1225654, internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
(1070) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668]
Arguments: explode(filteredUnitOfMeasureConversions#1225668.quantityNumerator), [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668], true, [quantityNumerator#1225676]
(1071) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668.quantityDenominator AS _extract_quantityDenominator#1226572]
Input [6]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668, quantityNumerator#1225676]
(1072) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, _extract_quantityDenominator#1226572]
Arguments: explode(_extract_quantityDenominator#1226572), [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654], true, [quantityDenominator#1225679]
(1073) Project
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654]
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, quantityDenominator#1225679]
(1074) Sort
Input [4]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654]
Arguments: [product#1225622 ASC NULLS FIRST, plant#1225623 ASC NULLS FIRST], false, 0
(1075) Filter
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Condition : (isnotnull(plant#1225721.internalRefUUID) AND isnotnull(product#1225720.internalRefUUID))
(1076) Project
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(1077) Exchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923709]
(1078) BroadcastExchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1924354]
(1079) Filter
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
Condition : (((marketUnit#1225682 <=> AUTO_MUV2) AND (size(distributionCenters#1225688, true) > 0)) AND isnotnull(distributionCenters#1225688))
(1080) Project
Output [1]: [distributionCenters#1225688]
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(1081) Exchange
Input [1]: [distributionCenters#1225688]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923713]
(1082) Generate
Input [1]: [distributionCenters#1225688]
Arguments: explode(distributionCenters#1225688), false, [distributionCenters#1225706]
(1083) Filter
Input [1]: [distributionCenters#1225706]
Condition : (((size(distributionCenters#1225706.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225706.storageLocations)) AND isnotnull(distributionCenters#1225706.internalRefUUID))
(1084) Project
Output [2]: [distributionCenters#1225706.internalRefUUID AS _extract_internalRefUUID#1226576, distributionCenters#1225706.storageLocations AS _extract_storageLocations#1226577]
Input [1]: [distributionCenters#1225706]
(1085) Generate
Input [2]: [_extract_internalRefUUID#1226576, _extract_storageLocations#1226577]
Arguments: explode(_extract_storageLocations#1226577), [_extract_internalRefUUID#1226576], false, [storageLocations#1225713]
(1086) Project
Output [3]: [_extract_internalRefUUID#1226576 AS plantUuid#1225708, storageLocations#1225713.id AS storageLocId#1225714, storageLocations#1225713.internalRefUUID AS storageLocUuid#1225715]
Input [2]: [_extract_internalRefUUID#1226576, storageLocations#1225713]
(1087) BroadcastExchange
Input [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924350]
(1088) Filter
Input [2]: [product#1225978, plant#1225979]
Condition : isnotnull(plant#1225979)
(1089) Exchange
Input [2]: [product#1225978, plant#1225979]
Arguments: hashpartitioning(product#1225978, plant#1225979, 37), REPARTITION_BY_NUM, [plan_id=1924127]
(1090) Scan parquet
Output [4]: [plant#1225984, product#1225985, productionAspect#1225987, systemId#1225982]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1091) Project
Output [4]: [plant#1225984.internalRefUUID AS _extract_internalRefUUID#1226771, product#1225985.internalRefUUID AS _extract_internalRefUUID#1226770, productionAspect#1225987.productMovementPlants.unitOfIssue.code AS _extract_code#1226772, productionAspect#1225987.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226773]
Input [4]: [plant#1225984, product#1225985, productionAspect#1225987, systemId#1225982]
(1092) Exchange
Input [4]: [_extract_internalRefUUID#1226771, _extract_internalRefUUID#1226770, _extract_code#1226772, _extract_internalRefUUID#1226773]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923725]
(1093) Project
Output [4]: [_extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
Input [4]: [_extract_internalRefUUID#1226771, _extract_internalRefUUID#1226770, _extract_code#1226772, _extract_internalRefUUID#1226773]
(1094) BroadcastExchange
Input [4]: [_extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924330]
(1095) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225978, ), isnull(product#1225978), coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226770, ), isnull(_extract_internalRefUUID#1226770), coalesce(_extract_internalRefUUID#1226771, ), isnull(_extract_internalRefUUID#1226771)]
Join type: LeftOuter
Join condition: None
(1096) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773]
Input [6]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
(1097) Project
Output [1]: [internalUUID#1225992]
Input [2]: [internalUUID#1225992, systemId#1225991]
(1098) Exchange
Input [1]: [internalUUID#1225992]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923731]
(1099) BroadcastExchange
Input [1]: [internalUUID#1225992]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924334]
(1100) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [2]: [coalesce(internalUUID#1225992, ), isnull(internalUUID#1225992)]
Join type: LeftOuter
Join condition: None
(1101) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773]
Input [5]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, internalUUID#1225992]
(1102) Scan parquet
Output [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1103) Filter
Input [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
Condition : isnotnull(internalUUID#1226006)
(1104) Project
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Input [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
(1105) Exchange
Input [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923737]
(1106) BroadcastExchange
Input [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924338]
(1107) BroadcastHashJoin
Left keys [1]: [product#1225978]
Right keys [1]: [internalUUID#1226006]
Join type: LeftOuter
Join condition: None
(1108) Project
Output [2]: [plant#1225979, filter(unitOfMeasureConversions#1226012, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226772) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226773)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226010.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226010.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226017]
Input [7]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(1109) Generate
Input [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017]
Arguments: explode(filteredUnitOfMeasureConversions#1226017.quantityNumerator), [plant#1225979, filteredUnitOfMeasureConversions#1226017], true, [quantityNumerator#1226018]
(1110) Project
Output [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017.quantityDenominator AS _extract_quantityDenominator#1226578]
Input [3]: [plant#1225979, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018]
(1111) Generate
Input [2]: [plant#1225979, _extract_quantityDenominator#1226578]
Arguments: explode(_extract_quantityDenominator#1226578), [plant#1225979], true, [quantityDenominator#1226019]
(1112) Project
Output [1]: [plant#1225979]
Input [2]: [plant#1225979, quantityDenominator#1226019]
(1113) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(1114) Exchange
Input [1]: [plant#1225979]
Arguments: hashpartitioning(plant#1225979, 37), ENSURE_REQUIREMENTS, [plan_id=1924347]
(1115) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(1116) BroadcastHashJoin
Left keys [1]: [plantUuid#1225708]
Right keys [1]: [plant#1225979]
Join type: Inner
Join condition: None
(1117) Project
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Input [4]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715, plant#1225979]
(1118) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225721.internalRefUUID, ), isnull(plant#1225721.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225708, ), isnull(plantUuid#1225708)]
Join type: Inner
Join condition: None
(1119) Generate
Input [9]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: explode(filter(stockQuantities#1225723, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225715) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225714)), lambda x#1225727, false))), [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708], false, [stockQuantity#1225728]
(1120) ObjectHashAggregate
Input [7]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708, stockQuantity#1225728]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [partial_first(calculationDateTime#1225722, false), partial_collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [3]: [first#1228648, valueSet#1228649, buf#1228650]
Results [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
(1121) ObjectHashAggregate
Input [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [first(calculationDateTime#1225722, false), collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225722)()#1225742, collect_list(stockQuantity#1225728, 0, 0)#1225743]
Results [4]: [product#1225720, plant#1225721, first(calculationDateTime#1225722)()#1225742 AS calculationDateTime#1225729, collect_list(stockQuantity#1225728, 0, 0)#1225743 AS stockQuantities#1225730]
(1122) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Condition : ((size(stockQuantities#1225730, true) > 0) AND isnotnull(calculationDateTime#1225729))
(1123) Generate
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Arguments: explode(stockQuantities#1225730), [product#1225720, plant#1225721, calculationDateTime#1225729], false, [stockQuantity#1225745]
(1124) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
Condition : (((isnotnull(stockQuantity#1225745.specialStockIndicator.code) AND isnotnull(stockQuantity#1225745.stockType.code)) AND (stockQuantity#1225745.specialStockIndicator.code = )) AND (stockQuantity#1225745.stockType.code = 01))
(1125) Project
Output [4]: [plant#1225721.internalRefUUID AS plantUuid#1225747, product#1225720.internalRefUUID AS productUuid#1225749, calculationDateTime#1225729, stockQuantity#1225745.storagelocation.id AS storageLocId#1225750]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
(1126) Exchange
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: hashpartitioning(productUuid#1225749, plantUuid#1225747, 37), ENSURE_REQUIREMENTS, [plan_id=1924380]
(1127) Sort
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: [productUuid#1225749 ASC NULLS FIRST, plantUuid#1225747 ASC NULLS FIRST], false, 0
(1128) Filter
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Condition : ((isnotnull(orderDateTime#1225766) AND isnotnull(plant#1225765)) AND isnotnull(product#1225764))
(1129) Exchange
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: hashpartitioning(product#1225764, plant#1225765, 37), REPARTITION_BY_NUM, [plan_id=1924150]
(1130) Scan parquet
Output [4]: [plant#1225770, product#1225771, productionAspect#1225773, systemId#1225768]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1131) Project
Output [4]: [plant#1225770.internalRefUUID AS _extract_internalRefUUID#1226776, product#1225771.internalRefUUID AS _extract_internalRefUUID#1226777, productionAspect#1225773.productMovementPlants.unitOfIssue.code AS _extract_code#1226774, productionAspect#1225773.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226775]
Input [4]: [plant#1225770, product#1225771, productionAspect#1225773, systemId#1225768]
(1132) Exchange
Input [4]: [_extract_internalRefUUID#1226776, _extract_internalRefUUID#1226777, _extract_code#1226774, _extract_internalRefUUID#1226775]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923762]
(1133) Project
Output [4]: [_extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
Input [4]: [_extract_internalRefUUID#1226776, _extract_internalRefUUID#1226777, _extract_code#1226774, _extract_internalRefUUID#1226775]
(1134) BroadcastExchange
Input [4]: [_extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924363]
(1135) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225764, ), isnull(product#1225764), coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226777, ), isnull(_extract_internalRefUUID#1226777), coalesce(_extract_internalRefUUID#1226776, ), isnull(_extract_internalRefUUID#1226776)]
Join type: LeftOuter
Join condition: None
(1136) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775]
Input [7]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
(1137) Scan parquet
Output [2]: [internalUUID#1225778, systemId#1225777]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1138) Project
Output [1]: [internalUUID#1225778]
Input [2]: [internalUUID#1225778, systemId#1225777]
(1139) Exchange
Input [1]: [internalUUID#1225778]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923768]
(1140) BroadcastExchange
Input [1]: [internalUUID#1225778]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924367]
(1141) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [2]: [coalesce(internalUUID#1225778, ), isnull(internalUUID#1225778)]
Join type: LeftOuter
Join condition: None
(1142) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775]
Input [6]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, internalUUID#1225778]
(1143) Scan parquet
Output [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1144) Filter
Input [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
Condition : isnotnull(internalUUID#1225792)
(1145) Project
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Input [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
(1146) Exchange
Input [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923774]
(1147) BroadcastExchange
Input [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924371]
(1148) BroadcastHashJoin
Left keys [1]: [product#1225764]
Right keys [1]: [internalUUID#1225792]
Join type: LeftOuter
Join condition: None
(1149) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filter(unitOfMeasureConversions#1225798, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226774) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226775)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225796.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225796.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225803]
Input [8]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(1150) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803]
Arguments: explode(filteredUnitOfMeasureConversions#1225803.quantityNumerator), [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803], true, [quantityNumerator#1225804]
(1151) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803.quantityDenominator AS _extract_quantityDenominator#1226582]
Input [5]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804]
(1152) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_quantityDenominator#1226582]
Arguments: explode(_extract_quantityDenominator#1226582), [product#1225764, plant#1225765, orderDateTime#1225766], true, [quantityDenominator#1225805]
(1153) Project
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, quantityDenominator#1225805]
(1154) Sort
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: [product#1225764 ASC NULLS FIRST, plant#1225765 ASC NULLS FIRST], false, 0
(1155) SortMergeJoin
Left keys [2]: [productUuid#1225749, plantUuid#1225747]
Right keys [2]: [product#1225764, plant#1225765]
Join type: Inner
Join condition: (calculationDateTime#1225729 <= orderDateTime#1225766)
(1156) Project
Output [4]: [plantUuid#1225747 AS plant#1225812, productUuid#1225749 AS product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Input [7]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, product#1225764, plant#1225765, orderDateTime#1225766]
(1157) Exchange
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: hashpartitioning(coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729), 37), ENSURE_REQUIREMENTS, [plan_id=1924444]
(1158) Sort
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: [coalesce(plant#1225812, ) ASC NULLS FIRST, isnull(plant#1225812) ASC NULLS FIRST, coalesce(product#1225813, ) ASC NULLS FIRST, isnull(product#1225813) ASC NULLS FIRST, coalesce(storageLocId#1225750, ) ASC NULLS FIRST, isnull(storageLocId#1225750) ASC NULLS FIRST, coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1225729) ASC NULLS FIRST], false, 0
(1159) Scan parquet
Output [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(1160) Filter
Input [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
Condition : (isnotnull(plant#1225824.internalRefUUID) AND isnotnull(product#1225823.internalRefUUID))
(1161) Project
Output [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Input [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
(1162) Exchange
Input [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923786]
(1163) BroadcastExchange
Input [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1924409]
(1164) Scan parquet
Output [2]: [marketUnit#1225827, distributionCenters#1225833]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(1165) Filter
Input [2]: [marketUnit#1225827, distributionCenters#1225833]
Condition : (((marketUnit#1225827 <=> AUTO_MUV2) AND (size(distributionCenters#1225833, true) > 0)) AND isnotnull(distributionCenters#1225833))
(1166) Project
Output [1]: [distributionCenters#1225833]
Input [2]: [marketUnit#1225827, distributionCenters#1225833]
(1167) Exchange
Input [1]: [distributionCenters#1225833]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923790]
(1168) Generate
Input [1]: [distributionCenters#1225833]
Arguments: explode(distributionCenters#1225833), false, [distributionCenters#1225849]
(1169) Filter
Input [1]: [distributionCenters#1225849]
Condition : (((size(distributionCenters#1225849.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225849.storageLocations)) AND isnotnull(distributionCenters#1225849.internalRefUUID))
(1170) Project
Output [2]: [distributionCenters#1225849.internalRefUUID AS _extract_internalRefUUID#1226586, distributionCenters#1225849.storageLocations AS _extract_storageLocations#1226587]
Input [1]: [distributionCenters#1225849]
(1171) Generate
Input [2]: [_extract_internalRefUUID#1226586, _extract_storageLocations#1226587]
Arguments: explode(_extract_storageLocations#1226587), [_extract_internalRefUUID#1226586], false, [storageLocations#1225850]
(1172) Project
Output [3]: [_extract_internalRefUUID#1226586 AS plantUuid#1225852, storageLocations#1225850.id AS storageLocId#1225853, storageLocations#1225850.internalRefUUID AS storageLocUuid#1225854]
Input [2]: [_extract_internalRefUUID#1226586, storageLocations#1225850]
(1173) BroadcastExchange
Input [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924405]
(1174) Scan parquet
Output [2]: [product#1225855, plant#1225856]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(1175) Filter
Input [2]: [product#1225855, plant#1225856]
Condition : isnotnull(plant#1225856)
(1176) Exchange
Input [2]: [product#1225855, plant#1225856]
Arguments: hashpartitioning(product#1225855, plant#1225856, 37), REPARTITION_BY_NUM, [plan_id=1924163]
(1177) Scan parquet
Output [4]: [plant#1225861, product#1225862, productionAspect#1225864, systemId#1225859]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1178) Project
Output [4]: [plant#1225861.internalRefUUID AS _extract_internalRefUUID#1226778, product#1225862.internalRefUUID AS _extract_internalRefUUID#1226779, productionAspect#1225864.productMovementPlants.unitOfIssue.code AS _extract_code#1226780, productionAspect#1225864.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226781]
Input [4]: [plant#1225861, product#1225862, productionAspect#1225864, systemId#1225859]
(1179) Exchange
Input [4]: [_extract_internalRefUUID#1226778, _extract_internalRefUUID#1226779, _extract_code#1226780, _extract_internalRefUUID#1226781]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923802]
(1180) Project
Output [4]: [_extract_code#1226780, _extract_internalRefUUID#1226781, _extract_internalRefUUID#1226779, _extract_internalRefUUID#1226778]
Input [4]: [_extract_internalRefUUID#1226778, _extract_internalRefUUID#1226779, _extract_code#1226780, _extract_internalRefUUID#1226781]
(1181) BroadcastExchange
Input [4]: [_extract_code#1226780, _extract_internalRefUUID#1226781, _extract_internalRefUUID#1226779, _extract_internalRefUUID#1226778]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924385]
(1182) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225855, ), isnull(product#1225855), coalesce(plant#1225856, ), isnull(plant#1225856)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226779, ), isnull(_extract_internalRefUUID#1226779), coalesce(_extract_internalRefUUID#1226778, ), isnull(_extract_internalRefUUID#1226778)]
Join type: LeftOuter
Join condition: None
(1183) Project
Output [4]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781]
Input [6]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781, _extract_internalRefUUID#1226779, _extract_internalRefUUID#1226778]
(1184) Scan parquet
Output [2]: [internalUUID#1225869, systemId#1225868]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1185) Project
Output [1]: [internalUUID#1225869]
Input [2]: [internalUUID#1225869, systemId#1225868]
(1186) Exchange
Input [1]: [internalUUID#1225869]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923808]
(1187) BroadcastExchange
Input [1]: [internalUUID#1225869]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924389]
(1188) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225856, ), isnull(plant#1225856)]
Right keys [2]: [coalesce(internalUUID#1225869, ), isnull(internalUUID#1225869)]
Join type: LeftOuter
Join condition: None
(1189) Project
Output [4]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781]
Input [5]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781, internalUUID#1225869]
(1190) Scan parquet
Output [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1191) Filter
Input [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
Condition : isnotnull(internalUUID#1225883)
(1192) Project
Output [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Input [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
(1193) Exchange
Input [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923814]
(1194) BroadcastExchange
Input [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924393]
(1195) BroadcastHashJoin
Left keys [1]: [product#1225855]
Right keys [1]: [internalUUID#1225883]
Join type: LeftOuter
Join condition: None
(1196) Project
Output [2]: [plant#1225856, filter(unitOfMeasureConversions#1225889, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226780) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226781)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225887.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225887.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225894]
Input [7]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781, internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
(1197) Generate
Input [2]: [plant#1225856, filteredUnitOfMeasureConversions#1225894]
Arguments: explode(filteredUnitOfMeasureConversions#1225894.quantityNumerator), [plant#1225856, filteredUnitOfMeasureConversions#1225894], true, [quantityNumerator#1225895]
(1198) Project
Output [2]: [plant#1225856, filteredUnitOfMeasureConversions#1225894.quantityDenominator AS _extract_quantityDenominator#1226588]
Input [3]: [plant#1225856, filteredUnitOfMeasureConversions#1225894, quantityNumerator#1225895]
(1199) Generate
Input [2]: [plant#1225856, _extract_quantityDenominator#1226588]
Arguments: explode(_extract_quantityDenominator#1226588), [plant#1225856], true, [quantityDenominator#1225896]
(1200) Project
Output [1]: [plant#1225856]
Input [2]: [plant#1225856, quantityDenominator#1225896]
(1201) HashAggregate
Input [1]: [plant#1225856]
Keys [1]: [plant#1225856]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225856]
(1202) Exchange
Input [1]: [plant#1225856]
Arguments: hashpartitioning(plant#1225856, 37), ENSURE_REQUIREMENTS, [plan_id=1924402]
(1203) HashAggregate
Input [1]: [plant#1225856]
Keys [1]: [plant#1225856]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225856]
(1204) BroadcastHashJoin
Left keys [1]: [plantUuid#1225852]
Right keys [1]: [plant#1225856]
Join type: Inner
Join condition: None
(1205) Project
Output [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Input [4]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854, plant#1225856]
(1206) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225824.internalRefUUID, ), isnull(plant#1225824.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225852, ), isnull(plantUuid#1225852)]
Join type: Inner
Join condition: None
(1207) Generate
Input [9]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Arguments: explode(filter(stockQuantities#1225826, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225854) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225853)), lambda x#1225727, false))), [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, plantUuid#1225852], false, [stockQuantity#1225899]
(1208) ObjectHashAggregate
Input [7]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, plantUuid#1225852, stockQuantity#1225899]
Keys [5]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821]
Functions [2]: [partial_first(calculationDateTime#1225825, false), partial_collect_list(stockQuantity#1225899, 0, 0)]
Aggregate Attributes [3]: [first#1228656, valueSet#1228657, buf#1228658]
Results [8]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first#1228659, valueSet#1228660, buf#1228661]
(1209) ObjectHashAggregate
Input [8]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first#1228659, valueSet#1228660, buf#1228661]
Keys [5]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821]
Functions [2]: [first(calculationDateTime#1225825, false), collect_list(stockQuantity#1225899, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225825)()#1225742, collect_list(stockQuantity#1225899, 0, 0)#1225743]
Results [4]: [product#1225823, plant#1225824, first(calculationDateTime#1225825)()#1225742 AS calculationDateTime#1225900, collect_list(stockQuantity#1225899, 0, 0)#1225743 AS stockQuantities#1225901]
(1210) Filter
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
Condition : ((size(stockQuantities#1225901, true) > 0) AND isnotnull(calculationDateTime#1225900))
(1211) Generate
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
Arguments: explode(stockQuantities#1225901), [product#1225823, plant#1225824, calculationDateTime#1225900], false, [stockQuantity#1225902]
(1212) Filter
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantity#1225902]
Condition : (((isnotnull(stockQuantity#1225902.specialStockIndicator.code) AND isnotnull(stockQuantity#1225902.stockType.code)) AND (stockQuantity#1225902.specialStockIndicator.code = )) AND (stockQuantity#1225902.stockType.code = 01))
(1213) Project
Output [4]: [plant#1225824.internalRefUUID AS plantUuid#1225904, product#1225823.internalRefUUID AS productUuid#1225906, calculationDateTime#1225900, stockQuantity#1225902.storagelocation.id AS storageLocId#1225907]
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantity#1225902]
(1214) Exchange
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: hashpartitioning(productUuid#1225906, plantUuid#1225904, 37), ENSURE_REQUIREMENTS, [plan_id=1924435]
(1215) Sort
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: [productUuid#1225906 ASC NULLS FIRST, plantUuid#1225904 ASC NULLS FIRST], false, 0
(1216) Scan parquet
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1217) Filter
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Condition : ((isnotnull(orderDateTime#1225914) AND isnotnull(plant#1225913)) AND isnotnull(product#1225912))
(1218) Exchange
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: hashpartitioning(product#1225912, plant#1225913, 37), REPARTITION_BY_NUM, [plan_id=1924186]
(1219) Scan parquet
Output [4]: [plant#1225918, product#1225919, productionAspect#1225921, systemId#1225916]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1220) Project
Output [4]: [plant#1225918.internalRefUUID AS _extract_internalRefUUID#1226785, product#1225919.internalRefUUID AS _extract_internalRefUUID#1226784, productionAspect#1225921.productMovementPlants.unitOfIssue.code AS _extract_code#1226782, productionAspect#1225921.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226783]
Input [4]: [plant#1225918, product#1225919, productionAspect#1225921, systemId#1225916]
(1221) Exchange
Input [4]: [_extract_internalRefUUID#1226785, _extract_internalRefUUID#1226784, _extract_code#1226782, _extract_internalRefUUID#1226783]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923839]
(1222) Project
Output [4]: [_extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
Input [4]: [_extract_internalRefUUID#1226785, _extract_internalRefUUID#1226784, _extract_code#1226782, _extract_internalRefUUID#1226783]
(1223) BroadcastExchange
Input [4]: [_extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924418]
(1224) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225912, ), isnull(product#1225912), coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226784, ), isnull(_extract_internalRefUUID#1226784), coalesce(_extract_internalRefUUID#1226785, ), isnull(_extract_internalRefUUID#1226785)]
Join type: LeftOuter
Join condition: None
(1225) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783]
Input [7]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
(1226) Scan parquet
Output [2]: [internalUUID#1225926, systemId#1225925]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1227) Project
Output [1]: [internalUUID#1225926]
Input [2]: [internalUUID#1225926, systemId#1225925]
(1228) Exchange
Input [1]: [internalUUID#1225926]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923845]
(1229) BroadcastExchange
Input [1]: [internalUUID#1225926]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924422]
(1230) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [2]: [coalesce(internalUUID#1225926, ), isnull(internalUUID#1225926)]
Join type: LeftOuter
Join condition: None
(1231) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783]
Input [6]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, internalUUID#1225926]
(1232) Scan parquet
Output [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1233) Filter
Input [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
Condition : isnotnull(internalUUID#1225940)
(1234) Project
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Input [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
(1235) Exchange
Input [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923851]
(1236) BroadcastExchange
Input [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924426]
(1237) BroadcastHashJoin
Left keys [1]: [product#1225912]
Right keys [1]: [internalUUID#1225940]
Join type: LeftOuter
Join condition: None
(1238) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filter(unitOfMeasureConversions#1225946, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226782) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226783)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225944.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225944.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225951]
Input [8]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(1239) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951]
Arguments: explode(filteredUnitOfMeasureConversions#1225951.quantityNumerator), [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951], true, [quantityNumerator#1225952]
(1240) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951.quantityDenominator AS _extract_quantityDenominator#1226592]
Input [5]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952]
(1241) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_quantityDenominator#1226592]
Arguments: explode(_extract_quantityDenominator#1226592), [product#1225912, plant#1225913, orderDateTime#1225914], true, [quantityDenominator#1225953]
(1242) Project
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, quantityDenominator#1225953]
(1243) Sort
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: [product#1225912 ASC NULLS FIRST, plant#1225913 ASC NULLS FIRST], false, 0
(1244) SortMergeJoin
Left keys [2]: [productUuid#1225906, plantUuid#1225904]
Right keys [2]: [product#1225912, plant#1225913]
Join type: Inner
Join condition: (calculationDateTime#1225900 <= orderDateTime#1225914)
(1245) Project
Output [4]: [plantUuid#1225904 AS plant#1225956, productUuid#1225906 AS product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Input [7]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907, product#1225912, plant#1225913, orderDateTime#1225914]
(1246) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [partial_max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max#1228654]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
(1247) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max(calculationDateTime#1225900)#1225820]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max(calculationDateTime#1225900)#1225820 AS max_calc_datetime#1225814]
(1248) Exchange
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: hashpartitioning(coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814), 37), ENSURE_REQUIREMENTS, [plan_id=1924445]
(1249) Sort
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: [coalesce(plant#1225956, ) ASC NULLS FIRST, isnull(plant#1225956) ASC NULLS FIRST, coalesce(product#1225957, ) ASC NULLS FIRST, isnull(product#1225957) ASC NULLS FIRST, coalesce(storageLocId#1225907, ) ASC NULLS FIRST, isnull(storageLocId#1225907) ASC NULLS FIRST, coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1225814) ASC NULLS FIRST], false, 0
(1250) SortMergeJoin
Left keys [8]: [coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729)]
Right keys [8]: [coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814)]
Join type: Inner
Join condition: None
(1251) Project
Output [3]: [plant#1225812, product#1225813, calculationDateTime#1225729]
Input [8]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
(1252) HashAggregate
Input [3]: [plant#1225812, product#1225813, calculationDateTime#1225729]
Keys [2]: [product#1225813, plant#1225812]
Functions [1]: [partial_min(calculationDateTime#1225729)]
Aggregate Attributes [1]: [min#1228646]
Results [3]: [product#1225813, plant#1225812, min#1228647]
(1253) Exchange
Input [3]: [product#1225813, plant#1225812, min#1228647]
Arguments: hashpartitioning(product#1225813, plant#1225812, 37), ENSURE_REQUIREMENTS, [plan_id=1924452]
(1254) HashAggregate
Input [3]: [product#1225813, plant#1225812, min#1228647]
Keys [2]: [product#1225813, plant#1225812]
Functions [1]: [min(calculationDateTime#1225729)]
Aggregate Attributes [1]: [min(calculationDateTime#1225729)#1225976]
Results [3]: [product#1225813, plant#1225812, min(calculationDateTime#1225729)#1225976 AS minCalculationDateTime#1225969]
(1255) Sort
Input [3]: [product#1225813, plant#1225812, minCalculationDateTime#1225969]
Arguments: [product#1225813 ASC NULLS FIRST, plant#1225812 ASC NULLS FIRST], false, 0
(1256) SortMergeJoin
Left keys [2]: [product#1225622, plant#1225623]
Right keys [2]: [product#1225813, plant#1225812]
Join type: LeftOuter
Join condition: None
(1257) Project
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, CASE WHEN isnotnull(minCalculationDateTime#1225969) THEN minCalculationDateTime#1225969 ELSE orderDateTime#1225624 END AS stockDatetime#1226026]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, product#1225813, plant#1225812, minCalculationDateTime#1225969]
(1258) Exchange
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: hashpartitioning(coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622), 37), ENSURE_REQUIREMENTS, [plan_id=1924616]
(1259) Sort
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: [coalesce(plant#1225623, ) ASC NULLS FIRST, isnull(plant#1225623) ASC NULLS FIRST, coalesce(product#1225622, ) ASC NULLS FIRST, isnull(product#1225622) ASC NULLS FIRST], false, 0
(1260) Exchange
Input [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Arguments: hashpartitioning(product#1226104, plant#1226105, 37), REPARTITION_BY_NUM, [plan_id=1923869]
(1261) Project
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(1262) Exchange
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923872]
(1263) Project
Output [1]: [struct(systemId, systemId#1226108, internalUUID, internalUUID#1226109, plant, plant#1226110, product, product#1226111, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226112, productionAspect, productionAspect#1226113, salesPlant, salesPlant#1226114, listing, listing#1226115) AS productPlant#1226116]
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
(1264) BroadcastExchange
Input [1]: [productPlant#1226116]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1924460]
(1265) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226104, ), isnull(product#1226104), coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [4]: [coalesce(productPlant#1226116.product.internalRefUUID, ), isnull(productPlant#1226116.product.internalRefUUID), coalesce(productPlant#1226116.plant.internalRefUUID, ), isnull(productPlant#1226116.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(1266) Scan parquet
Output [3]: [internalUUID#1226118, address#1226124, systemId#1226117]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(1267) Project
Output [2]: [internalUUID#1226118, address#1226124.timeZone.code AS timezonecode#1226129]
Input [3]: [internalUUID#1226118, address#1226124, systemId#1226117]
(1268) Exchange
Input [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923877]
(1269) BroadcastExchange
Input [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924463]
(1270) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [2]: [coalesce(internalUUID#1226118, ), isnull(internalUUID#1226118)]
Join type: LeftOuter
Join condition: None
(1271) Project
Output [5]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, CASE WHEN isnotnull(timezonecode#1226129) THEN timezonecode#1226129 ELSE UTC END AS timezonecode#1226130]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, internalUUID#1226118, timezonecode#1226129]
(1272) Scan parquet
Output [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1273) Filter
Input [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
Condition : isnotnull(internalUUID#1226132)
(1274) Project
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Input [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
(1275) Exchange
Input [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923883]
(1276) BroadcastExchange
Input [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924467]
(1277) BroadcastHashJoin
Left keys [1]: [product#1226104]
Right keys [1]: [internalUUID#1226132]
Join type: LeftOuter
Join condition: None
(1278) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filter(unitOfMeasureConversions#1226138, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226136.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226136.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226143]
Input [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(1279) Project
Output [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143.quantityDenominator AS _extract_quantityDenominator#1226654, filteredUnitOfMeasureConversions#1226143.quantityNumerator AS _extract_quantityNumerator#1226655]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143]
(1280) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654, _extract_quantityNumerator#1226655]
Arguments: explode(_extract_quantityNumerator#1226655), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654], true, [quantityNumerator#1226144]
(1281) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654, quantityNumerator#1226144]
Arguments: explode(_extract_quantityDenominator#1226654), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144], true, [quantityDenominator#1226145]
(1282) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, (cast(quantityNumerator#1226144 as double) / cast(quantityDenominator#1226145 as double)) AS outboundUnit#1226146]
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144, quantityDenominator#1226145]
(1283) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, CASE WHEN (isnull(outboundUnit#1226146) OR (outboundUnit#1226146 <= 0.0)) THEN 1.0 ELSE outboundUnit#1226146 END AS outboundUnit#1226147]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226146]
(1284) Sort
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147]
Arguments: [product#1226104 ASC NULLS FIRST, plant#1226105 ASC NULLS FIRST], false, 0
(1285) Scan parquet
Output [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(1286) Filter
Input [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
Condition : (isnotnull(plant#1226151.internalRefUUID) AND isnotnull(product#1226150.internalRefUUID))
(1287) Project
Output [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Input [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
(1288) Exchange
Input [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923894]
(1289) BroadcastExchange
Input [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1924499]
(1290) Scan parquet
Output [2]: [marketUnit#1226154, distributionCenters#1226160]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(1291) Filter
Input [2]: [marketUnit#1226154, distributionCenters#1226160]
Condition : (((marketUnit#1226154 <=> AUTO_MUV2) AND (size(distributionCenters#1226160, true) > 0)) AND isnotnull(distributionCenters#1226160))
(1292) Project
Output [1]: [distributionCenters#1226160]
Input [2]: [marketUnit#1226154, distributionCenters#1226160]
(1293) Exchange
Input [1]: [distributionCenters#1226160]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923898]
(1294) Generate
Input [1]: [distributionCenters#1226160]
Arguments: explode(distributionCenters#1226160), false, [distributionCenters#1226176]
(1295) Filter
Input [1]: [distributionCenters#1226176]
Condition : (((size(distributionCenters#1226176.storageLocations, true) > 0) AND isnotnull(distributionCenters#1226176.storageLocations)) AND isnotnull(distributionCenters#1226176.internalRefUUID))
(1296) Project
Output [2]: [distributionCenters#1226176.internalRefUUID AS _extract_internalRefUUID#1226598, distributionCenters#1226176.storageLocations AS _extract_storageLocations#1226599]
Input [1]: [distributionCenters#1226176]
(1297) Generate
Input [2]: [_extract_internalRefUUID#1226598, _extract_storageLocations#1226599]
Arguments: explode(_extract_storageLocations#1226599), [_extract_internalRefUUID#1226598], false, [storageLocations#1226177]
(1298) Project
Output [3]: [_extract_internalRefUUID#1226598 AS plantUuid#1226179, storageLocations#1226177.id AS storageLocId#1226180, storageLocations#1226177.internalRefUUID AS storageLocUuid#1226181]
Input [2]: [_extract_internalRefUUID#1226598, storageLocations#1226177]
(1299) BroadcastExchange
Input [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924495]
(1300) Scan parquet
Output [2]: [product#1226182, plant#1226183]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(1301) Filter
Input [2]: [product#1226182, plant#1226183]
Condition : isnotnull(plant#1226183)
(1302) Exchange
Input [2]: [product#1226182, plant#1226183]
Arguments: hashpartitioning(product#1226182, plant#1226183, 37), REPARTITION_BY_NUM, [plan_id=1924207]
(1303) Scan parquet
Output [4]: [plant#1226188, product#1226189, productionAspect#1226191, systemId#1226186]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1304) Project
Output [4]: [plant#1226188.internalRefUUID AS _extract_internalRefUUID#1226786, product#1226189.internalRefUUID AS _extract_internalRefUUID#1226787, productionAspect#1226191.productMovementPlants.unitOfIssue.code AS _extract_code#1226788, productionAspect#1226191.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226789]
Input [4]: [plant#1226188, product#1226189, productionAspect#1226191, systemId#1226186]
(1305) Exchange
Input [4]: [_extract_internalRefUUID#1226786, _extract_internalRefUUID#1226787, _extract_code#1226788, _extract_internalRefUUID#1226789]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923910]
(1306) Project
Output [4]: [_extract_code#1226788, _extract_internalRefUUID#1226789, _extract_internalRefUUID#1226787, _extract_internalRefUUID#1226786]
Input [4]: [_extract_internalRefUUID#1226786, _extract_internalRefUUID#1226787, _extract_code#1226788, _extract_internalRefUUID#1226789]
(1307) BroadcastExchange
Input [4]: [_extract_code#1226788, _extract_internalRefUUID#1226789, _extract_internalRefUUID#1226787, _extract_internalRefUUID#1226786]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924475]
(1308) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226182, ), isnull(product#1226182), coalesce(plant#1226183, ), isnull(plant#1226183)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226787, ), isnull(_extract_internalRefUUID#1226787), coalesce(_extract_internalRefUUID#1226786, ), isnull(_extract_internalRefUUID#1226786)]
Join type: LeftOuter
Join condition: None
(1309) Project
Output [4]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789]
Input [6]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789, _extract_internalRefUUID#1226787, _extract_internalRefUUID#1226786]
(1310) Scan parquet
Output [2]: [internalUUID#1226196, systemId#1226195]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1311) Project
Output [1]: [internalUUID#1226196]
Input [2]: [internalUUID#1226196, systemId#1226195]
(1312) Exchange
Input [1]: [internalUUID#1226196]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923916]
(1313) BroadcastExchange
Input [1]: [internalUUID#1226196]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924479]
(1314) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226183, ), isnull(plant#1226183)]
Right keys [2]: [coalesce(internalUUID#1226196, ), isnull(internalUUID#1226196)]
Join type: LeftOuter
Join condition: None
(1315) Project
Output [4]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789]
Input [5]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789, internalUUID#1226196]
(1316) Scan parquet
Output [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1317) Filter
Input [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
Condition : isnotnull(internalUUID#1226210)
(1318) Project
Output [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Input [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
(1319) Exchange
Input [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923922]
(1320) BroadcastExchange
Input [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924483]
(1321) BroadcastHashJoin
Left keys [1]: [product#1226182]
Right keys [1]: [internalUUID#1226210]
Join type: LeftOuter
Join condition: None
(1322) Project
Output [2]: [plant#1226183, filter(unitOfMeasureConversions#1226216, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226788) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226789)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226214.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226214.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226221]
Input [7]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789, internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
(1323) Generate
Input [2]: [plant#1226183, filteredUnitOfMeasureConversions#1226221]
Arguments: explode(filteredUnitOfMeasureConversions#1226221.quantityNumerator), [plant#1226183, filteredUnitOfMeasureConversions#1226221], true, [quantityNumerator#1226222]
(1324) Project
Output [2]: [plant#1226183, filteredUnitOfMeasureConversions#1226221.quantityDenominator AS _extract_quantityDenominator#1226600]
Input [3]: [plant#1226183, filteredUnitOfMeasureConversions#1226221, quantityNumerator#1226222]
(1325) Generate
Input [2]: [plant#1226183, _extract_quantityDenominator#1226600]
Arguments: explode(_extract_quantityDenominator#1226600), [plant#1226183], true, [quantityDenominator#1226223]
(1326) Project
Output [1]: [plant#1226183]
Input [2]: [plant#1226183, quantityDenominator#1226223]
(1327) HashAggregate
Input [1]: [plant#1226183]
Keys [1]: [plant#1226183]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226183]
(1328) Exchange
Input [1]: [plant#1226183]
Arguments: hashpartitioning(plant#1226183, 37), ENSURE_REQUIREMENTS, [plan_id=1924492]
(1329) HashAggregate
Input [1]: [plant#1226183]
Keys [1]: [plant#1226183]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226183]
(1330) BroadcastHashJoin
Left keys [1]: [plantUuid#1226179]
Right keys [1]: [plant#1226183]
Join type: Inner
Join condition: None
(1331) Project
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Input [4]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181, plant#1226183]
(1332) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226151.internalRefUUID, ), isnull(plant#1226151.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1226179, ), isnull(plantUuid#1226179)]
Join type: Inner
Join condition: None
(1333) Generate
Input [9]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: explode(filter(stockQuantities#1226153, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226181) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226180)), lambda x#1225727, false))), [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179], false, [stockQuantity#1226226]
(1334) ObjectHashAggregate
Input [7]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179, stockQuantity#1226226]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [partial_first(calculationDateTime#1226152, false), partial_collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [3]: [first#1228670, valueSet#1228671, buf#1228672]
Results [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
(1335) ObjectHashAggregate
Input [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [first(calculationDateTime#1226152, false), collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1226152)()#1225742, collect_list(stockQuantity#1226226, 0, 0)#1225743]
Results [4]: [product#1226150, plant#1226151, first(calculationDateTime#1226152)()#1225742 AS calculationDateTime#1226227, collect_list(stockQuantity#1226226, 0, 0)#1225743 AS stockQuantities#1226228]
(1336) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Condition : ((size(stockQuantities#1226228, true) > 0) AND isnotnull(calculationDateTime#1226227))
(1337) Generate
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Arguments: explode(stockQuantities#1226228), [product#1226150, plant#1226151, calculationDateTime#1226227], false, [stockQuantity#1226229]
(1338) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
Condition : (((isnotnull(stockQuantity#1226229.specialStockIndicator.code) AND isnotnull(stockQuantity#1226229.stockType.code)) AND (stockQuantity#1226229.specialStockIndicator.code = )) AND (stockQuantity#1226229.stockType.code = 01))
(1339) Project
Output [5]: [plant#1226151.internalRefUUID AS plantUuid#1226231, product#1226150.internalRefUUID AS productUuid#1226233, calculationDateTime#1226227, stockQuantity#1226229.storagelocation.id AS storageLocId#1226234, stockQuantity#1226229.quantity.measure AS quantity#1226236]
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
(1340) Exchange
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: hashpartitioning(productUuid#1226233, plantUuid#1226231, 37), ENSURE_REQUIREMENTS, [plan_id=1924525]
(1341) Sort
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: [productUuid#1226233 ASC NULLS FIRST, plantUuid#1226231 ASC NULLS FIRST], false, 0
(1342) Scan parquet
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1343) Filter
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Condition : ((isnotnull(orderDateTime#1226241) AND isnotnull(plant#1226240)) AND isnotnull(product#1226239))
(1344) Exchange
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Arguments: hashpartitioning(product#1226239, plant#1226240, 37), REPARTITION_BY_NUM, [plan_id=1924230]
(1345) Scan parquet
Output [4]: [plant#1226245, product#1226246, productionAspect#1226248, systemId#1226243]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1346) Project
Output [4]: [plant#1226245.internalRefUUID AS _extract_internalRefUUID#1226793, product#1226246.internalRefUUID AS _extract_internalRefUUID#1226790, productionAspect#1226248.productMovementPlants.unitOfIssue.code AS _extract_code#1226791, productionAspect#1226248.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226792]
Input [4]: [plant#1226245, product#1226246, productionAspect#1226248, systemId#1226243]
(1347) Exchange
Input [4]: [_extract_internalRefUUID#1226793, _extract_internalRefUUID#1226790, _extract_code#1226791, _extract_internalRefUUID#1226792]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923947]
(1348) Project
Output [4]: [_extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
Input [4]: [_extract_internalRefUUID#1226793, _extract_internalRefUUID#1226790, _extract_code#1226791, _extract_internalRefUUID#1226792]
(1349) BroadcastExchange
Input [4]: [_extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924508]
(1350) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226239, ), isnull(product#1226239), coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226790, ), isnull(_extract_internalRefUUID#1226790), coalesce(_extract_internalRefUUID#1226793, ), isnull(_extract_internalRefUUID#1226793)]
Join type: LeftOuter
Join condition: None
(1351) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792]
Input [7]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
(1352) Scan parquet
Output [2]: [internalUUID#1226253, systemId#1226252]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1353) Project
Output [1]: [internalUUID#1226253]
Input [2]: [internalUUID#1226253, systemId#1226252]
(1354) Exchange
Input [1]: [internalUUID#1226253]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923953]
(1355) BroadcastExchange
Input [1]: [internalUUID#1226253]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924512]
(1356) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [2]: [coalesce(internalUUID#1226253, ), isnull(internalUUID#1226253)]
Join type: LeftOuter
Join condition: None
(1357) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792]
Input [6]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, internalUUID#1226253]
(1358) Scan parquet
Output [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1359) Filter
Input [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
Condition : isnotnull(internalUUID#1226267)
(1360) Project
Output [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Input [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
(1361) Exchange
Input [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923959]
(1362) BroadcastExchange
Input [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924516]
(1363) BroadcastHashJoin
Left keys [1]: [product#1226239]
Right keys [1]: [internalUUID#1226267]
Join type: LeftOuter
Join condition: None
(1364) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filter(unitOfMeasureConversions#1226273, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226791) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226792)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226271.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226271.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226278]
Input [8]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
(1365) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278]
Arguments: explode(filteredUnitOfMeasureConversions#1226278.quantityNumerator), [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278], true, [quantityNumerator#1226279]
(1366) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278.quantityDenominator AS _extract_quantityDenominator#1226604]
Input [5]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279]
(1367) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_quantityDenominator#1226604]
Arguments: explode(_extract_quantityDenominator#1226604), [product#1226239, plant#1226240, orderDateTime#1226241], true, [quantityDenominator#1226280]
(1368) Project
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, quantityDenominator#1226280]
(1369) Sort
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Arguments: [product#1226239 ASC NULLS FIRST, plant#1226240 ASC NULLS FIRST], false, 0
(1370) SortMergeJoin
Left keys [2]: [productUuid#1226233, plantUuid#1226231]
Right keys [2]: [product#1226239, plant#1226240]
Join type: Inner
Join condition: (calculationDateTime#1226227 <= orderDateTime#1226241)
(1371) Project
Output [5]: [plantUuid#1226231 AS plant#1226283, productUuid#1226233 AS product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Input [8]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236, product#1226239, plant#1226240, orderDateTime#1226241]
(1372) Exchange
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: hashpartitioning(coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227), 37), ENSURE_REQUIREMENTS, [plan_id=1924589]
(1373) Sort
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: [coalesce(plant#1226283, ) ASC NULLS FIRST, isnull(plant#1226283) ASC NULLS FIRST, coalesce(product#1226284, ) ASC NULLS FIRST, isnull(product#1226284) ASC NULLS FIRST, coalesce(storageLocId#1226234, ) ASC NULLS FIRST, isnull(storageLocId#1226234) ASC NULLS FIRST, coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1226227) ASC NULLS FIRST], false, 0
(1374) Scan parquet
Output [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(1375) Filter
Input [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
Condition : (isnotnull(plant#1226288.internalRefUUID) AND isnotnull(product#1226287.internalRefUUID))
(1376) Project
Output [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Input [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
(1377) Exchange
Input [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923971]
(1378) BroadcastExchange
Input [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1924554]
(1379) Scan parquet
Output [2]: [marketUnit#1226291, distributionCenters#1226297]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(1380) Filter
Input [2]: [marketUnit#1226291, distributionCenters#1226297]
Condition : (((marketUnit#1226291 <=> AUTO_MUV2) AND (size(distributionCenters#1226297, true) > 0)) AND isnotnull(distributionCenters#1226297))
(1381) Project
Output [1]: [distributionCenters#1226297]
Input [2]: [marketUnit#1226291, distributionCenters#1226297]
(1382) Exchange
Input [1]: [distributionCenters#1226297]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923975]
(1383) Generate
Input [1]: [distributionCenters#1226297]
Arguments: explode(distributionCenters#1226297), false, [distributionCenters#1226313]
(1384) Filter
Input [1]: [distributionCenters#1226313]
Condition : (((size(distributionCenters#1226313.storageLocations, true) > 0) AND isnotnull(distributionCenters#1226313.storageLocations)) AND isnotnull(distributionCenters#1226313.internalRefUUID))
(1385) Project
Output [2]: [distributionCenters#1226313.internalRefUUID AS _extract_internalRefUUID#1226608, distributionCenters#1226313.storageLocations AS _extract_storageLocations#1226609]
Input [1]: [distributionCenters#1226313]
(1386) Generate
Input [2]: [_extract_internalRefUUID#1226608, _extract_storageLocations#1226609]
Arguments: explode(_extract_storageLocations#1226609), [_extract_internalRefUUID#1226608], false, [storageLocations#1226314]
(1387) Project
Output [3]: [_extract_internalRefUUID#1226608 AS plantUuid#1226316, storageLocations#1226314.id AS storageLocId#1226317, storageLocations#1226314.internalRefUUID AS storageLocUuid#1226318]
Input [2]: [_extract_internalRefUUID#1226608, storageLocations#1226314]
(1388) BroadcastExchange
Input [3]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924550]
(1389) Scan parquet
Output [2]: [product#1226319, plant#1226320]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(1390) Filter
Input [2]: [product#1226319, plant#1226320]
Condition : isnotnull(plant#1226320)
(1391) Exchange
Input [2]: [product#1226319, plant#1226320]
Arguments: hashpartitioning(product#1226319, plant#1226320, 37), REPARTITION_BY_NUM, [plan_id=1924243]
(1392) Scan parquet
Output [4]: [plant#1226325, product#1226326, productionAspect#1226328, systemId#1226323]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1393) Project
Output [4]: [plant#1226325.internalRefUUID AS _extract_internalRefUUID#1226797, product#1226326.internalRefUUID AS _extract_internalRefUUID#1226796, productionAspect#1226328.productMovementPlants.unitOfIssue.code AS _extract_code#1226794, productionAspect#1226328.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226795]
Input [4]: [plant#1226325, product#1226326, productionAspect#1226328, systemId#1226323]
(1394) Exchange
Input [4]: [_extract_internalRefUUID#1226797, _extract_internalRefUUID#1226796, _extract_code#1226794, _extract_internalRefUUID#1226795]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923987]
(1395) Project
Output [4]: [_extract_code#1226794, _extract_internalRefUUID#1226795, _extract_internalRefUUID#1226796, _extract_internalRefUUID#1226797]
Input [4]: [_extract_internalRefUUID#1226797, _extract_internalRefUUID#1226796, _extract_code#1226794, _extract_internalRefUUID#1226795]
(1396) BroadcastExchange
Input [4]: [_extract_code#1226794, _extract_internalRefUUID#1226795, _extract_internalRefUUID#1226796, _extract_internalRefUUID#1226797]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924530]
(1397) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226319, ), isnull(product#1226319), coalesce(plant#1226320, ), isnull(plant#1226320)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226796, ), isnull(_extract_internalRefUUID#1226796), coalesce(_extract_internalRefUUID#1226797, ), isnull(_extract_internalRefUUID#1226797)]
Join type: LeftOuter
Join condition: None
(1398) Project
Output [4]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795]
Input [6]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795, _extract_internalRefUUID#1226796, _extract_internalRefUUID#1226797]
(1399) Scan parquet
Output [2]: [internalUUID#1226333, systemId#1226332]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1400) Project
Output [1]: [internalUUID#1226333]
Input [2]: [internalUUID#1226333, systemId#1226332]
(1401) Exchange
Input [1]: [internalUUID#1226333]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923993]
(1402) BroadcastExchange
Input [1]: [internalUUID#1226333]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924534]
(1403) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226320, ), isnull(plant#1226320)]
Right keys [2]: [coalesce(internalUUID#1226333, ), isnull(internalUUID#1226333)]
Join type: LeftOuter
Join condition: None
(1404) Project
Output [4]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795]
Input [5]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795, internalUUID#1226333]
(1405) Scan parquet
Output [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1406) Filter
Input [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
Condition : isnotnull(internalUUID#1226347)
(1407) Project
Output [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Input [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
(1408) Exchange
Input [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923999]
(1409) BroadcastExchange
Input [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924538]
(1410) BroadcastHashJoin
Left keys [1]: [product#1226319]
Right keys [1]: [internalUUID#1226347]
Join type: LeftOuter
Join condition: None
(1411) Project
Output [2]: [plant#1226320, filter(unitOfMeasureConversions#1226353, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226794) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226795)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226351.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226351.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226358]
Input [7]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795, internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
(1412) Generate
Input [2]: [plant#1226320, filteredUnitOfMeasureConversions#1226358]
Arguments: explode(filteredUnitOfMeasureConversions#1226358.quantityNumerator), [plant#1226320, filteredUnitOfMeasureConversions#1226358], true, [quantityNumerator#1226359]
(1413) Project
Output [2]: [plant#1226320, filteredUnitOfMeasureConversions#1226358.quantityDenominator AS _extract_quantityDenominator#1226610]
Input [3]: [plant#1226320, filteredUnitOfMeasureConversions#1226358, quantityNumerator#1226359]
(1414) Generate
Input [2]: [plant#1226320, _extract_quantityDenominator#1226610]
Arguments: explode(_extract_quantityDenominator#1226610), [plant#1226320], true, [quantityDenominator#1226360]
(1415) Project
Output [1]: [plant#1226320]
Input [2]: [plant#1226320, quantityDenominator#1226360]
(1416) HashAggregate
Input [1]: [plant#1226320]
Keys [1]: [plant#1226320]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226320]
(1417) Exchange
Input [1]: [plant#1226320]
Arguments: hashpartitioning(plant#1226320, 37), ENSURE_REQUIREMENTS, [plan_id=1924547]
(1418) HashAggregate
Input [1]: [plant#1226320]
Keys [1]: [plant#1226320]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226320]
(1419) BroadcastHashJoin
Left keys [1]: [plantUuid#1226316]
Right keys [1]: [plant#1226320]
Join type: Inner
Join condition: None
(1420) Project
Output [3]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Input [4]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318, plant#1226320]
(1421) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226288.internalRefUUID, ), isnull(plant#1226288.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1226316, ), isnull(plantUuid#1226316)]
Join type: Inner
Join condition: None
(1422) Generate
Input [9]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Arguments: explode(filter(stockQuantities#1226290, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226318) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226317)), lambda x#1225727, false))), [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, plantUuid#1226316], false, [stockQuantity#1226363]
(1423) ObjectHashAggregate
Input [7]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, plantUuid#1226316, stockQuantity#1226363]
Keys [5]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285]
Functions [2]: [partial_first(calculationDateTime#1226289, false), partial_collect_list(stockQuantity#1226363, 0, 0)]
Aggregate Attributes [3]: [first#1228678, valueSet#1228679, buf#1228680]
Results [8]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285, first#1228681, valueSet#1228682, buf#1228683]
(1424) ObjectHashAggregate
Input [8]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285, first#1228681, valueSet#1228682, buf#1228683]
Keys [5]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285]
Functions [2]: [first(calculationDateTime#1226289, false), collect_list(stockQuantity#1226363, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1226289)()#1225742, collect_list(stockQuantity#1226363, 0, 0)#1225743]
Results [4]: [product#1226287, plant#1226288, first(calculationDateTime#1226289)()#1225742 AS calculationDateTime#1226364, collect_list(stockQuantity#1226363, 0, 0)#1225743 AS stockQuantities#1226365]
(1425) Filter
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantities#1226365]
Condition : ((size(stockQuantities#1226365, true) > 0) AND isnotnull(calculationDateTime#1226364))
(1426) Generate
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantities#1226365]
Arguments: explode(stockQuantities#1226365), [product#1226287, plant#1226288, calculationDateTime#1226364], false, [stockQuantity#1226366]
(1427) Filter
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantity#1226366]
Condition : (((isnotnull(stockQuantity#1226366.specialStockIndicator.code) AND isnotnull(stockQuantity#1226366.stockType.code)) AND (stockQuantity#1226366.specialStockIndicator.code = )) AND (stockQuantity#1226366.stockType.code = 01))
(1428) Project
Output [4]: [plant#1226288.internalRefUUID AS plantUuid#1226368, product#1226287.internalRefUUID AS productUuid#1226370, calculationDateTime#1226364, stockQuantity#1226366.storagelocation.id AS storageLocId#1226371]
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantity#1226366]
(1429) Exchange
Input [4]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371]
Arguments: hashpartitioning(productUuid#1226370, plantUuid#1226368, 37), ENSURE_REQUIREMENTS, [plan_id=1924580]
(1430) Sort
Input [4]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371]
Arguments: [productUuid#1226370 ASC NULLS FIRST, plantUuid#1226368 ASC NULLS FIRST], false, 0
(1431) Scan parquet
Output [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1432) Filter
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Condition : ((isnotnull(orderDateTime#1226378) AND isnotnull(plant#1226377)) AND isnotnull(product#1226376))
(1433) Exchange
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Arguments: hashpartitioning(product#1226376, plant#1226377, 37), REPARTITION_BY_NUM, [plan_id=1924266]
(1434) Scan parquet
Output [4]: [plant#1226382, product#1226383, productionAspect#1226385, systemId#1226380]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1435) Project
Output [4]: [plant#1226382.internalRefUUID AS _extract_internalRefUUID#1226801, product#1226383.internalRefUUID AS _extract_internalRefUUID#1226798, productionAspect#1226385.productMovementPlants.unitOfIssue.code AS _extract_code#1226799, productionAspect#1226385.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226800]
Input [4]: [plant#1226382, product#1226383, productionAspect#1226385, systemId#1226380]
(1436) Exchange
Input [4]: [_extract_internalRefUUID#1226801, _extract_internalRefUUID#1226798, _extract_code#1226799, _extract_internalRefUUID#1226800]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924024]
(1437) Project
Output [4]: [_extract_code#1226799, _extract_internalRefUUID#1226800, _extract_internalRefUUID#1226798, _extract_internalRefUUID#1226801]
Input [4]: [_extract_internalRefUUID#1226801, _extract_internalRefUUID#1226798, _extract_code#1226799, _extract_internalRefUUID#1226800]
(1438) BroadcastExchange
Input [4]: [_extract_code#1226799, _extract_internalRefUUID#1226800, _extract_internalRefUUID#1226798, _extract_internalRefUUID#1226801]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924563]
(1439) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226376, ), isnull(product#1226376), coalesce(plant#1226377, ), isnull(plant#1226377)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226798, ), isnull(_extract_internalRefUUID#1226798), coalesce(_extract_internalRefUUID#1226801, ), isnull(_extract_internalRefUUID#1226801)]
Join type: LeftOuter
Join condition: None
(1440) Project
Output [5]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800]
Input [7]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800, _extract_internalRefUUID#1226798, _extract_internalRefUUID#1226801]
(1441) Scan parquet
Output [2]: [internalUUID#1226390, systemId#1226389]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1442) Project
Output [1]: [internalUUID#1226390]
Input [2]: [internalUUID#1226390, systemId#1226389]
(1443) Exchange
Input [1]: [internalUUID#1226390]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924030]
(1444) BroadcastExchange
Input [1]: [internalUUID#1226390]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924567]
(1445) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226377, ), isnull(plant#1226377)]
Right keys [2]: [coalesce(internalUUID#1226390, ), isnull(internalUUID#1226390)]
Join type: LeftOuter
Join condition: None
(1446) Project
Output [5]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800]
Input [6]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800, internalUUID#1226390]
(1447) Scan parquet
Output [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1448) Filter
Input [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
Condition : isnotnull(internalUUID#1226404)
(1449) Project
Output [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Input [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
(1450) Exchange
Input [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924036]
(1451) BroadcastExchange
Input [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924571]
(1452) BroadcastHashJoin
Left keys [1]: [product#1226376]
Right keys [1]: [internalUUID#1226404]
Join type: LeftOuter
Join condition: None
(1453) Project
Output [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filter(unitOfMeasureConversions#1226410, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226799) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226800)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226408.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226408.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226415]
Input [8]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800, internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
(1454) Generate
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415]
Arguments: explode(filteredUnitOfMeasureConversions#1226415.quantityNumerator), [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415], true, [quantityNumerator#1226416]
(1455) Project
Output [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415.quantityDenominator AS _extract_quantityDenominator#1226614]
Input [5]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415, quantityNumerator#1226416]
(1456) Generate
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_quantityDenominator#1226614]
Arguments: explode(_extract_quantityDenominator#1226614), [product#1226376, plant#1226377, orderDateTime#1226378], true, [quantityDenominator#1226417]
(1457) Project
Output [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, quantityDenominator#1226417]
(1458) Sort
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Arguments: [product#1226376 ASC NULLS FIRST, plant#1226377 ASC NULLS FIRST], false, 0
(1459) SortMergeJoin
Left keys [2]: [productUuid#1226370, plantUuid#1226368]
Right keys [2]: [product#1226376, plant#1226377]
Join type: Inner
Join condition: (calculationDateTime#1226364 <= orderDateTime#1226378)
(1460) Project
Output [4]: [plantUuid#1226368 AS plant#1226420, productUuid#1226370 AS product#1226421, storageLocId#1226371, calculationDateTime#1226364]
Input [7]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371, product#1226376, plant#1226377, orderDateTime#1226378]
(1461) HashAggregate
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, calculationDateTime#1226364]
Keys [3]: [plant#1226420, product#1226421, storageLocId#1226371]
Functions [1]: [partial_max(calculationDateTime#1226364)]
Aggregate Attributes [1]: [max#1228676]
Results [4]: [plant#1226420, product#1226421, storageLocId#1226371, max#1228677]
(1462) HashAggregate
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max#1228677]
Keys [3]: [plant#1226420, product#1226421, storageLocId#1226371]
Functions [1]: [max(calculationDateTime#1226364)]
Aggregate Attributes [1]: [max(calculationDateTime#1226364)#1225820]
Results [4]: [plant#1226420, product#1226421, storageLocId#1226371, max(calculationDateTime#1226364)#1225820 AS max_calc_datetime#1226422]
(1463) Exchange
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: hashpartitioning(coalesce(plant#1226420, ), isnull(plant#1226420), coalesce(product#1226421, ), isnull(product#1226421), coalesce(storageLocId#1226371, ), isnull(storageLocId#1226371), coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00), isnull(max_calc_datetime#1226422), 37), ENSURE_REQUIREMENTS, [plan_id=1924590]
(1464) Sort
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: [coalesce(plant#1226420, ) ASC NULLS FIRST, isnull(plant#1226420) ASC NULLS FIRST, coalesce(product#1226421, ) ASC NULLS FIRST, isnull(product#1226421) ASC NULLS FIRST, coalesce(storageLocId#1226371, ) ASC NULLS FIRST, isnull(storageLocId#1226371) ASC NULLS FIRST, coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1226422) ASC NULLS FIRST], false, 0
(1465) SortMergeJoin
Left keys [8]: [coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227)]
Right keys [8]: [coalesce(plant#1226420, ), isnull(plant#1226420), coalesce(product#1226421, ), isnull(product#1226421), coalesce(storageLocId#1226371, ), isnull(storageLocId#1226371), coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00), isnull(max_calc_datetime#1226422)]
Join type: Inner
Join condition: None
(1466) Project
Output [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Input [9]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236, plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
(1467) HashAggregate
Input [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [partial_min(calculationDateTime#1226227), partial_sum(quantity#1226236)]
Aggregate Attributes [2]: [min#1228666, sum#1228667]
Results [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
(1468) Exchange
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: hashpartitioning(product#1226284, plant#1226283, 37), ENSURE_REQUIREMENTS, [plan_id=1924597]
(1469) HashAggregate
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [min(calculationDateTime#1226227), sum(quantity#1226236)]
Aggregate Attributes [2]: [min(calculationDateTime#1226227)#1225976, sum(quantity#1226236)#1225975]
Results [4]: [product#1226284, plant#1226283, min(calculationDateTime#1226227)#1225976 AS minCalculationDateTime#1226424, round(sum(quantity#1226236)#1225975, 0) AS roundedQuantitySum#1226425]
(1470) Sort
Input [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
Arguments: [product#1226284 ASC NULLS FIRST, plant#1226283 ASC NULLS FIRST], false, 0
(1471) SortMergeJoin
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226284, plant#1226283]
Join type: LeftOuter
Join condition: None
(1472) Project
Output [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, CASE WHEN isnotnull(minCalculationDateTime#1226424) THEN minCalculationDateTime#1226424 ELSE orderDateTime#1226106 END AS stockDatetime#1226426, CASE WHEN isnotnull(roundedQuantitySum#1226425) THEN array(roundedQuantitySum#1226425) ELSE [0.0] END AS stockBatchQuantities#1226427]
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
(1473) Filter
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Condition : (isnotnull(product#1226029) AND isnotnull(plant#1226030))
(1474) BroadcastExchange
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1924606]
(1475) BroadcastHashJoin
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226029, plant#1226030]
Join type: LeftOuter
Join condition: None
(1476) Project
Output [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, CASE WHEN isnotnull(product#1226029) THEN struct(demandChannel, demandChannel#1226031, demandStream, demandStream#1226032, considerVariance, considerVariance#1226033, demandTimeBuckets, demandTimeBuckets#1226034, demandPointInTimeStart, demandPointInTimeStart#1226035, demandPointInTimeEnd, demandPointInTimeEnd#1226036, demandPointInTime, demandPointInTime#1226037) END AS rawDemands#1226050]
Input [17]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(1477) ObjectHashAggregate
Input [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, rawDemands#1226050]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, knownfloatingpointnormalized(if (isnull(productPlant#1226116)) null else named_struct(systemId, productPlant#1226116.systemId, internalUUID, productPlant#1226116.internalUUID, plant, productPlant#1226116.plant, product, productPlant#1226116.product, blockedForReplenishmentStartingFrom, productPlant#1226116.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect)) null else named_struct(productMovementPlants, productPlant#1226116.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1226116.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1226116.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1226116.salesPlant, listing, productPlant#1226116.listing)) AS productPlant#1226116, timezonecode#1226130, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1226147)) AS outboundUnit#1226147, stockDatetime#1226426, knownfloatingpointnormalized(transform(stockBatchQuantities#1226427, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1228663)), lambda arg#1228663, false))) AS stockBatchQuantities#1226427, [7226582400000000] AS [7226582400000000]#1228662]
Functions [1]: [partial_collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [buf#1228664]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1228662, buf#1228665]
(1478) ObjectHashAggregate
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1228662, buf#1228665]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1228662]
Functions [1]: [collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1226050, 0, 0)#1226069]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1226428, collect_list(rawDemands#1226050, 0, 0)#1226069 AS rawDemands#1226051]
(1479) DeserializeToObject
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, rawDemands#1226051]
Arguments: createexternalrow(invoke(product#1226104.toString()), invoke(plant#1226105.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1226106)), if (isnull(productPlant#1226116)) null else createexternalrow(invoke(productPlant#1226116.systemId.toString()), invoke(productPlant#1226116.internalUUID.toString()), if (isnull(productPlant#1226116.plant)) null else createexternalrow(invoke(productPlant#1226116.plant.internalRefUUID.toString()), invoke(productPlant#1226116.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1226116.product)) null else createexternalrow(invoke(productPlant#1226116.product.internalRefUUID.toString()), invoke(productPlant#1226116.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1226116.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1226116.productionAspect)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1226116.salesPlant)) null else createexternalrow(if (isnull(productPlant#1226116.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1226116.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1226116.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1226116.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1226130.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1226147)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1226426)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#1226427, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#1226428, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1226051, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(1480) MapElements
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(1481) SerializeFromObject
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1226100, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1226101]
(1482) Exchange
Input [2]: [product#1226100, plant#1226101]
Arguments: hashpartitioning(coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100), 37), ENSURE_REQUIREMENTS, [plan_id=1924617]
(1483) Sort
Input [2]: [product#1226100, plant#1226101]
Arguments: [coalesce(plant#1226101, ) ASC NULLS FIRST, isnull(plant#1226101) ASC NULLS FIRST, coalesce(product#1226100, ) ASC NULLS FIRST, isnull(product#1226100) ASC NULLS FIRST], false, 0
(1484) SortMergeJoin
Left keys [4]: [coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622)]
Right keys [4]: [coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100)]
Join type: LeftOuter
Join condition: None
(1485) Project
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Input [6]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026, product#1226100, plant#1226101]
(1486) Exchange
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: hashpartitioning(plant#1225623, 37), ENSURE_REQUIREMENTS, [plan_id=1924647]
(1487) Sort
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: [plant#1225623 ASC NULLS FIRST], false, 0
(1488) Scan parquet
Output [2]: [marketUnit#1226493, distributionCenters#1226499]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(1489) Filter
Input [2]: [marketUnit#1226493, distributionCenters#1226499]
Condition : (((marketUnit#1226493 <=> AUTO_MUV2) AND (size(distributionCenters#1226499, true) > 0)) AND isnotnull(distributionCenters#1226499))
(1490) Project
Output [1]: [distributionCenters#1226499]
Input [2]: [marketUnit#1226493, distributionCenters#1226499]
(1491) Exchange
Input [1]: [distributionCenters#1226499]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924068]
(1492) Generate
Input [1]: [distributionCenters#1226499]
Arguments: explode(distributionCenters#1226499), false, [distributionCenters#1226515]
(1493) Filter
Input [1]: [distributionCenters#1226515]
Condition : (((size(distributionCenters#1226515.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1226515.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1226515.internalRefUUID))
(1494) Project
Output [2]: [distributionCenters#1226515.internalRefUUID AS _extract_internalRefUUID#1226618, distributionCenters#1226515.storageLocations.internalRefUUID AS _extract_internalRefUUID#1226803]
Input [1]: [distributionCenters#1226515]
(1495) Generate
Input [2]: [_extract_internalRefUUID#1226618, _extract_internalRefUUID#1226803]
Arguments: explode(_extract_internalRefUUID#1226803), [_extract_internalRefUUID#1226618], false, [storageLocations#1226516]
(1496) Filter
Input [2]: [_extract_internalRefUUID#1226618, storageLocations#1226516]
Condition : isnotnull(storageLocations#1226516)
(1497) Project
Output [2]: [_extract_internalRefUUID#1226618 AS plantUuid#1226518, storageLocations#1226516 AS storageLocUuid#1226520]
Input [2]: [_extract_internalRefUUID#1226618, storageLocations#1226516]
(1498) BroadcastExchange
Input [2]: [plantUuid#1226518, storageLocUuid#1226520]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924642]
(1499) Scan parquet
Output [2]: [product#1226521, plant#1226522]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(1500) Filter
Input [2]: [product#1226521, plant#1226522]
Condition : isnotnull(plant#1226522)
(1501) Exchange
Input [2]: [product#1226521, plant#1226522]
Arguments: hashpartitioning(product#1226521, plant#1226522, 37), REPARTITION_BY_NUM, [plan_id=1924296]
(1502) Scan parquet
Output [4]: [plant#1226527, product#1226528, productionAspect#1226530, systemId#1226525]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1503) Project
Output [4]: [plant#1226527.internalRefUUID AS _extract_internalRefUUID#1226804, product#1226528.internalRefUUID AS _extract_internalRefUUID#1226807, productionAspect#1226530.productMovementPlants.unitOfIssue.code AS _extract_code#1226805, productionAspect#1226530.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226806]
Input [4]: [plant#1226527, product#1226528, productionAspect#1226530, systemId#1226525]
(1504) Exchange
Input [4]: [_extract_internalRefUUID#1226804, _extract_internalRefUUID#1226807, _extract_code#1226805, _extract_internalRefUUID#1226806]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924081]
(1505) Project
Output [4]: [_extract_code#1226805, _extract_internalRefUUID#1226806, _extract_internalRefUUID#1226807, _extract_internalRefUUID#1226804]
Input [4]: [_extract_internalRefUUID#1226804, _extract_internalRefUUID#1226807, _extract_code#1226805, _extract_internalRefUUID#1226806]
(1506) BroadcastExchange
Input [4]: [_extract_code#1226805, _extract_internalRefUUID#1226806, _extract_internalRefUUID#1226807, _extract_internalRefUUID#1226804]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924622]
(1507) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226521, ), isnull(product#1226521), coalesce(plant#1226522, ), isnull(plant#1226522)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226807, ), isnull(_extract_internalRefUUID#1226807), coalesce(_extract_internalRefUUID#1226804, ), isnull(_extract_internalRefUUID#1226804)]
Join type: LeftOuter
Join condition: None
(1508) Project
Output [4]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806]
Input [6]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806, _extract_internalRefUUID#1226807, _extract_internalRefUUID#1226804]
(1509) Scan parquet
Output [2]: [internalUUID#1226535, systemId#1226534]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1510) Project
Output [1]: [internalUUID#1226535]
Input [2]: [internalUUID#1226535, systemId#1226534]
(1511) Exchange
Input [1]: [internalUUID#1226535]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924087]
(1512) BroadcastExchange
Input [1]: [internalUUID#1226535]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924626]
(1513) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226522, ), isnull(plant#1226522)]
Right keys [2]: [coalesce(internalUUID#1226535, ), isnull(internalUUID#1226535)]
Join type: LeftOuter
Join condition: None
(1514) Project
Output [4]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806]
Input [5]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806, internalUUID#1226535]
(1515) Scan parquet
Output [4]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555, systemId#1226548]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1516) Filter
Input [4]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555, systemId#1226548]
Condition : isnotnull(internalUUID#1226549)
(1517) Project
Output [3]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555]
Input [4]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555, systemId#1226548]
(1518) Exchange
Input [3]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924093]
(1519) BroadcastExchange
Input [3]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924630]
(1520) BroadcastHashJoin
Left keys [1]: [product#1226521]
Right keys [1]: [internalUUID#1226549]
Join type: LeftOuter
Join condition: None
(1521) Project
Output [2]: [plant#1226522, filter(unitOfMeasureConversions#1226555, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226805) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226806)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226553.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226553.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226560]
Input [7]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806, internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555]
(1522) Generate
Input [2]: [plant#1226522, filteredUnitOfMeasureConversions#1226560]
Arguments: explode(filteredUnitOfMeasureConversions#1226560.quantityNumerator), [plant#1226522, filteredUnitOfMeasureConversions#1226560], true, [quantityNumerator#1226561]
(1523) Project
Output [2]: [plant#1226522, filteredUnitOfMeasureConversions#1226560.quantityDenominator AS _extract_quantityDenominator#1226620]
Input [3]: [plant#1226522, filteredUnitOfMeasureConversions#1226560, quantityNumerator#1226561]
(1524) Generate
Input [2]: [plant#1226522, _extract_quantityDenominator#1226620]
Arguments: explode(_extract_quantityDenominator#1226620), [plant#1226522], true, [quantityDenominator#1226562]
(1525) Project
Output [1]: [plant#1226522]
Input [2]: [plant#1226522, quantityDenominator#1226562]
(1526) HashAggregate
Input [1]: [plant#1226522]
Keys [1]: [plant#1226522]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226522]
(1527) Exchange
Input [1]: [plant#1226522]
Arguments: hashpartitioning(plant#1226522, 37), ENSURE_REQUIREMENTS, [plan_id=1924639]
(1528) HashAggregate
Input [1]: [plant#1226522]
Keys [1]: [plant#1226522]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226522]
(1529) BroadcastHashJoin
Left keys [1]: [plantUuid#1226518]
Right keys [1]: [plant#1226522]
Join type: Inner
Join condition: None
(1530) Project
Output [2]: [plantUuid#1226518 AS plant#1226492, storageLocUuid#1226520]
Input [3]: [plantUuid#1226518, storageLocUuid#1226520, plant#1226522]
(1531) Sort
Input [2]: [plant#1226492, storageLocUuid#1226520]
Arguments: [plant#1226492 ASC NULLS FIRST], false, 0
(1532) SortMergeJoin
Left keys [1]: [plant#1225623]
Right keys [1]: [plant#1226492]
Join type: Inner
Join condition: None
(1533) Project
Output [5]: [plant#1225623, product#1225622, timezonecode#1225654, stockDatetime#1226026, storageLocUuid#1226520]
Input [6]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026, plant#1226492, storageLocUuid#1226520]
(1534) Filter
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
Condition : (((isnotnull(isMarkedForDeletion#1226460) AND NOT isMarkedForDeletion#1226460) AND (size(items#1226461, true) > 0)) AND isnotnull(items#1226461))
(1535) Project
Output [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
(1536) Exchange
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924109]
(1537) Generate
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: explode(items#1226461), [internalUUID#1226454, id#1226455, supplier#1226457], false, [item#1226465]
(1538) Filter
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, item#1226465]
Condition : ((((isnotnull(item#1226465.deletionIndicator) AND isnotnull(item#1226465.completeIndicator)) AND isnotnull(item#1226465.returnIndicator)) AND ((NOT item#1226465.deletionIndicator AND NOT item#1226465.completeIndicator) AND NOT item#1226465.returnIndicator)) AND ((isnotnull(item#1226465.product.internalRefUUID) AND isnotnull(item#1226465.plant.internalRefUUID)) AND isnotnull(item#1226465.storageLocation.internalRefUUID)))
(1539) Project
Output [14]: [id#1226455, internalUUID#1226454, supplier#1226457.internalRefUUID AS supplierUuid#1226462, item#1226465.plant.internalRefUUID AS plant#1226470, item#1226465.product.internalRefUUID AS product#1226471, item#1226465.plant.id AS externalPlantId#1226472, item#1226465.product.id AS externalProductId#1226473, item#1226465.storageLocation.internalRefUUID AS storageLocUuid#1226474, item#1226465.quantityUnit.code AS quantityUom#1226475, item#1226465.quantityUnit.internalRefUUID AS quantityUomUuid#1226476, item#1226465.quantityNumerator AS quantityNumerator#1226477, item#1226465.quantityDenominator AS quantityDenominator#1226478, item#1226465.scheduleLines AS scheduleLines#1226479, item#1226465.confirmations AS confirmations#1226480]
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, item#1226465]
(1540) BroadcastExchange
Input [14]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
Arguments: HashedRelationBroadcastMode(List(input[4, string, true], input[3, string, true], input[7, string, true]),false), [plan_id=1924653]
(1541) BroadcastHashJoin
Left keys [3]: [product#1225622, plant#1225623, storageLocUuid#1226520]
Right keys [3]: [product#1226471, plant#1226470, storageLocUuid#1226474]
Join type: Inner
Join condition: None
(1542) Project
Output [17]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, filter(confirmations#1226480, lambdafunction(((NOT lambda x_149#1226571.deletionIndicator AND lambda x_149#1226571.isRelevantForConfirmation) AND isnotnull(lambda x_149#1226571.confirmedDeliveryAt)), lambda x_149#1226571, false)) AS validConfirmations#1226570]
Input [19]: [plant#1225623, product#1225622, timezonecode#1225654, stockDatetime#1226026, storageLocUuid#1226520, id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
(1543) AdaptiveSparkPlan
Output [17]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, validConfirmations#1226570]
Arguments: isFinalPlan=true
(1544) Project
Output [11]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, size(validConfirmations#1226570, false) AS _w0#1228785]
Input [10]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityDenominator#1226478, quantityNumerator#1226477, quantityUom#1226475, quantityUomUuid#1226476, scheduleLines#1226479, validConfirmations#1226570]
(1545) Exchange
Input [11]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, _w0#1228785]
Arguments: hashpartitioning(internalUUID#1226454, 37), ENSURE_REQUIREMENTS, [plan_id=1924681]
(1546) Sort
Input [11]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, _w0#1228785]
Arguments: [internalUUID#1226454 ASC NULLS FIRST], false, 0
(1547) Window
Input [11]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, _w0#1228785]
Arguments: [sum(_w0#1228785) windowspecdefinition(internalUUID#1226454, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1228786L], [internalUUID#1226454]
(1548) Project
Output [3]: [plant#1226470, product#1226471, filter(transform(CASE WHEN (_we0#1228786L > 0) THEN transform(validConfirmations#1226570, lambdafunction(struct(openQty, greatest((lambda x_151#1228781.confirmedQuantity - coalesce(lambda x_151#1228781.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_151#1228781.confirmedDeliveryAt), lambda x_151#1228781, false)) ELSE transform(scheduleLines#1226479, lambdafunction(struct(openQty, greatest((lambda x_150#1228782.quantity - coalesce(lambda x_150#1228782.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_150#1228782.deliveryAt), lambda x_150#1228782, false)) END, lambdafunction(struct(documentId, id#1226455, documentUuid, internalUUID#1226454, openQty, lambda x_152#1228783.openQty, openQtyInBaseUnit, ((lambda x_152#1228783.openQty * quantityNumerator#1226477) / quantityDenominator#1226478), qtyUom, quantityUom#1226475, qtyUomUuid, quantityUomUuid#1226476, availabilityDatetime, lambda x_152#1228783.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_152#1228783, false)), lambdafunction(NOT (lambda x_153#1228784.openQty = 0.0), lambda x_153#1228784, false)) AS openGoodsMovements#1228779]
Input [12]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, _w0#1228785, _we0#1228786L]
(1549) ObjectHashAggregate
Input [3]: [plant#1226470, product#1226471, openGoodsMovements#1228779]
Keys [2]: [product#1226471, plant#1226470]
Functions [1]: [partial_collect_list(openGoodsMovements#1228779, 0, 0)]
Aggregate Attributes [1]: [buf#1229062]
Results [3]: [product#1226471, plant#1226470, buf#1229063]
(1550) Exchange
Input [3]: [product#1226471, plant#1226470, buf#1229063]
Arguments: hashpartitioning(product#1226471, plant#1226470, 37), ENSURE_REQUIREMENTS, [plan_id=1924687]
(1551) ObjectHashAggregate
Input [3]: [product#1226471, plant#1226470, buf#1229063]
Keys [2]: [product#1226471, plant#1226470]
Functions [1]: [collect_list(openGoodsMovements#1228779, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1228779, 0, 0)#1228806]
Results [3]: [product#1226471, plant#1226470, flatten(collect_list(openGoodsMovements#1228779, 0, 0)#1228806) AS openGoodsMovements#1228787]
(1552) Filter
Input [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Condition : (size(openGoodsMovements#1228787, false) > 0)
(1553) AdaptiveSparkPlan
Output [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Arguments: isFinalPlan=true
(1554) Filter
Input [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Condition : (isnotnull(product#1226471) AND isnotnull(plant#1226470))
(1555) Scan parquet
Output [3]: [product#1229110, plant#1229111, orderDateTime#1229112]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1556) Filter
Input [3]: [product#1229110, plant#1229111, orderDateTime#1229112]
Condition : isnotnull(plant#1229111)
(1557) Exchange
Input [3]: [product#1229110, plant#1229111, orderDateTime#1229112]
Arguments: hashpartitioning(product#1229110, plant#1229111, 37), REPARTITION_BY_NUM, [plan_id=1930780]
(1558) Scan parquet
Output [4]: [plant#1229116, product#1229117, productionAspect#1229119, systemId#1229114]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1559) Project
Output [4]: [plant#1229116.internalRefUUID AS _extract_internalRefUUID#1234056, product#1229117.internalRefUUID AS _extract_internalRefUUID#1234053, productionAspect#1229119.productMovementPlants.unitOfIssue.code AS _extract_code#1234054, productionAspect#1229119.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234055]
Input [4]: [plant#1229116, product#1229117, productionAspect#1229119, systemId#1229114]
(1560) Exchange
Input [4]: [_extract_internalRefUUID#1234056, _extract_internalRefUUID#1234053, _extract_code#1234054, _extract_internalRefUUID#1234055]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929422]
(1561) Project
Output [4]: [_extract_code#1234054, _extract_internalRefUUID#1234055, _extract_internalRefUUID#1234053, _extract_internalRefUUID#1234056]
Input [4]: [_extract_internalRefUUID#1234056, _extract_internalRefUUID#1234053, _extract_code#1234054, _extract_internalRefUUID#1234055]
(1562) BroadcastExchange
Input [4]: [_extract_code#1234054, _extract_internalRefUUID#1234055, _extract_internalRefUUID#1234053, _extract_internalRefUUID#1234056]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931645]
(1563) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229110, ), isnull(product#1229110), coalesce(plant#1229111, ), isnull(plant#1229111)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234053, ), isnull(_extract_internalRefUUID#1234053), coalesce(_extract_internalRefUUID#1234056, ), isnull(_extract_internalRefUUID#1234056)]
Join type: LeftOuter
Join condition: None
(1564) Project
Output [5]: [product#1229110, plant#1229111, orderDateTime#1229112, _extract_code#1234054, _extract_internalRefUUID#1234055]
Input [7]: [product#1229110, plant#1229111, orderDateTime#1229112, _extract_code#1234054, _extract_internalRefUUID#1234055, _extract_internalRefUUID#1234053, _extract_internalRefUUID#1234056]
(1565) Scan parquet
Output [2]: [internalUUID#1229124, systemId#1229123]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1566) Project
Output [1]: [internalUUID#1229124]
Input [2]: [internalUUID#1229124, systemId#1229123]
(1567) Exchange
Input [1]: [internalUUID#1229124]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929428]
(1568) BroadcastExchange
Input [1]: [internalUUID#1229124]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931649]
(1569) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229111, ), isnull(plant#1229111)]
Right keys [2]: [coalesce(internalUUID#1229124, ), isnull(internalUUID#1229124)]
Join type: LeftOuter
Join condition: None
(1570) Project
Output [5]: [product#1229110, plant#1229111, orderDateTime#1229112, _extract_code#1234054, _extract_internalRefUUID#1234055]
Input [6]: [product#1229110, plant#1229111, orderDateTime#1229112, _extract_code#1234054, _extract_internalRefUUID#1234055, internalUUID#1229124]
(1571) Scan parquet
Output [4]: [internalUUID#1229138, baseUnitOfMeasure#1229142, unitOfMeasureConversions#1229144, systemId#1229137]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1572) Filter
Input [4]: [internalUUID#1229138, baseUnitOfMeasure#1229142, unitOfMeasureConversions#1229144, systemId#1229137]
Condition : isnotnull(internalUUID#1229138)
(1573) Project
Output [3]: [internalUUID#1229138, baseUnitOfMeasure#1229142, unitOfMeasureConversions#1229144]
Input [4]: [internalUUID#1229138, baseUnitOfMeasure#1229142, unitOfMeasureConversions#1229144, systemId#1229137]
(1574) Exchange
Input [3]: [internalUUID#1229138, baseUnitOfMeasure#1229142, unitOfMeasureConversions#1229144]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929434]
(1575) BroadcastExchange
Input [3]: [internalUUID#1229138, baseUnitOfMeasure#1229142, unitOfMeasureConversions#1229144]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931653]
(1576) BroadcastHashJoin
Left keys [1]: [product#1229110]
Right keys [1]: [internalUUID#1229138]
Join type: LeftOuter
Join condition: None
(1577) Project
Output [4]: [product#1229110, plant#1229111, orderDateTime#1229112, filter(unitOfMeasureConversions#1229144, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234054) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234055)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229142.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229142.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229149]
Input [8]: [product#1229110, plant#1229111, orderDateTime#1229112, _extract_code#1234054, _extract_internalRefUUID#1234055, internalUUID#1229138, baseUnitOfMeasure#1229142, unitOfMeasureConversions#1229144]
(1578) Generate
Input [4]: [product#1229110, plant#1229111, orderDateTime#1229112, filteredUnitOfMeasureConversions#1229149]
Arguments: explode(filteredUnitOfMeasureConversions#1229149.quantityNumerator), [product#1229110, plant#1229111, orderDateTime#1229112, filteredUnitOfMeasureConversions#1229149], true, [quantityNumerator#1229150]
(1579) Project
Output [4]: [product#1229110, plant#1229111, orderDateTime#1229112, filteredUnitOfMeasureConversions#1229149.quantityDenominator AS _extract_quantityDenominator#1233373]
Input [5]: [product#1229110, plant#1229111, orderDateTime#1229112, filteredUnitOfMeasureConversions#1229149, quantityNumerator#1229150]
(1580) Generate
Input [4]: [product#1229110, plant#1229111, orderDateTime#1229112, _extract_quantityDenominator#1233373]
Arguments: explode(_extract_quantityDenominator#1233373), [product#1229110, plant#1229111, orderDateTime#1229112], true, [quantityDenominator#1229151]
(1581) Project
Output [3]: [product#1229110, plant#1229111, orderDateTime#1229112]
Input [4]: [product#1229110, plant#1229111, orderDateTime#1229112, quantityDenominator#1229151]
(1582) Sort
Input [3]: [product#1229110, plant#1229111, orderDateTime#1229112]
Arguments: [product#1229110 ASC NULLS FIRST, plant#1229111 ASC NULLS FIRST], false, 0
(1583) Scan parquet
Output [6]: [internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159, systemId#1229154]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(1584) Filter
Input [6]: [internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159, systemId#1229154]
Condition : (isnotnull(plant#1229157.internalRefUUID) AND isnotnull(product#1229156.internalRefUUID))
(1585) Project
Output [6]: [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159]
Input [6]: [internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159, systemId#1229154]
(1586) Exchange
Input [6]: [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929444]
(1587) BroadcastExchange
Input [6]: [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1931684]
(1588) Scan parquet
Output [2]: [marketUnit#1229160, distributionCenters#1229166]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(1589) Filter
Input [2]: [marketUnit#1229160, distributionCenters#1229166]
Condition : (((marketUnit#1229160 <=> AUTO_MUV2) AND (size(distributionCenters#1229166, true) > 0)) AND isnotnull(distributionCenters#1229166))
(1590) Project
Output [1]: [distributionCenters#1229166]
Input [2]: [marketUnit#1229160, distributionCenters#1229166]
(1591) Exchange
Input [1]: [distributionCenters#1229166]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929448]
(1592) Generate
Input [1]: [distributionCenters#1229166]
Arguments: explode(distributionCenters#1229166), false, [distributionCenters#1229182]
(1593) Filter
Input [1]: [distributionCenters#1229182]
Condition : (((size(distributionCenters#1229182.storageLocations, true) > 0) AND isnotnull(distributionCenters#1229182.storageLocations)) AND isnotnull(distributionCenters#1229182.internalRefUUID))
(1594) Project
Output [2]: [distributionCenters#1229182.internalRefUUID AS _extract_internalRefUUID#1233377, distributionCenters#1229182.storageLocations AS _extract_storageLocations#1233378]
Input [1]: [distributionCenters#1229182]
(1595) Generate
Input [2]: [_extract_internalRefUUID#1233377, _extract_storageLocations#1233378]
Arguments: explode(_extract_storageLocations#1233378), [_extract_internalRefUUID#1233377], false, [storageLocations#1229183]
(1596) Project
Output [3]: [_extract_internalRefUUID#1233377 AS plantUuid#1229185, storageLocations#1229183.id AS storageLocId#1229186, storageLocations#1229183.internalRefUUID AS storageLocUuid#1229187]
Input [2]: [_extract_internalRefUUID#1233377, storageLocations#1229183]
(1597) BroadcastExchange
Input [3]: [plantUuid#1229185, storageLocId#1229186, storageLocUuid#1229187]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931680]
(1598) Scan parquet
Output [2]: [product#1229188, plant#1229189]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(1599) Filter
Input [2]: [product#1229188, plant#1229189]
Condition : isnotnull(plant#1229189)
(1600) Exchange
Input [2]: [product#1229188, plant#1229189]
Arguments: hashpartitioning(product#1229188, plant#1229189, 37), REPARTITION_BY_NUM, [plan_id=1930791]
(1601) Scan parquet
Output [4]: [plant#1229194, product#1229195, productionAspect#1229197, systemId#1229192]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1602) Project
Output [4]: [plant#1229194.internalRefUUID AS _extract_internalRefUUID#1234060, product#1229195.internalRefUUID AS _extract_internalRefUUID#1234059, productionAspect#1229197.productMovementPlants.unitOfIssue.code AS _extract_code#1234057, productionAspect#1229197.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234058]
Input [4]: [plant#1229194, product#1229195, productionAspect#1229197, systemId#1229192]
(1603) Exchange
Input [4]: [_extract_internalRefUUID#1234060, _extract_internalRefUUID#1234059, _extract_code#1234057, _extract_internalRefUUID#1234058]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929460]
(1604) Project
Output [4]: [_extract_code#1234057, _extract_internalRefUUID#1234058, _extract_internalRefUUID#1234059, _extract_internalRefUUID#1234060]
Input [4]: [_extract_internalRefUUID#1234060, _extract_internalRefUUID#1234059, _extract_code#1234057, _extract_internalRefUUID#1234058]
(1605) BroadcastExchange
Input [4]: [_extract_code#1234057, _extract_internalRefUUID#1234058, _extract_internalRefUUID#1234059, _extract_internalRefUUID#1234060]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931660]
(1606) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229188, ), isnull(product#1229188), coalesce(plant#1229189, ), isnull(plant#1229189)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234059, ), isnull(_extract_internalRefUUID#1234059), coalesce(_extract_internalRefUUID#1234060, ), isnull(_extract_internalRefUUID#1234060)]
Join type: LeftOuter
Join condition: None
(1607) Project
Output [4]: [product#1229188, plant#1229189, _extract_code#1234057, _extract_internalRefUUID#1234058]
Input [6]: [product#1229188, plant#1229189, _extract_code#1234057, _extract_internalRefUUID#1234058, _extract_internalRefUUID#1234059, _extract_internalRefUUID#1234060]
(1608) Scan parquet
Output [2]: [internalUUID#1229202, systemId#1229201]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1609) Project
Output [1]: [internalUUID#1229202]
Input [2]: [internalUUID#1229202, systemId#1229201]
(1610) Exchange
Input [1]: [internalUUID#1229202]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929466]
(1611) BroadcastExchange
Input [1]: [internalUUID#1229202]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931664]
(1612) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229189, ), isnull(plant#1229189)]
Right keys [2]: [coalesce(internalUUID#1229202, ), isnull(internalUUID#1229202)]
Join type: LeftOuter
Join condition: None
(1613) Project
Output [4]: [product#1229188, plant#1229189, _extract_code#1234057, _extract_internalRefUUID#1234058]
Input [5]: [product#1229188, plant#1229189, _extract_code#1234057, _extract_internalRefUUID#1234058, internalUUID#1229202]
(1614) Scan parquet
Output [4]: [internalUUID#1229216, baseUnitOfMeasure#1229220, unitOfMeasureConversions#1229222, systemId#1229215]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1615) Filter
Input [4]: [internalUUID#1229216, baseUnitOfMeasure#1229220, unitOfMeasureConversions#1229222, systemId#1229215]
Condition : isnotnull(internalUUID#1229216)
(1616) Project
Output [3]: [internalUUID#1229216, baseUnitOfMeasure#1229220, unitOfMeasureConversions#1229222]
Input [4]: [internalUUID#1229216, baseUnitOfMeasure#1229220, unitOfMeasureConversions#1229222, systemId#1229215]
(1617) Exchange
Input [3]: [internalUUID#1229216, baseUnitOfMeasure#1229220, unitOfMeasureConversions#1229222]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929472]
(1618) BroadcastExchange
Input [3]: [internalUUID#1229216, baseUnitOfMeasure#1229220, unitOfMeasureConversions#1229222]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931668]
(1619) BroadcastHashJoin
Left keys [1]: [product#1229188]
Right keys [1]: [internalUUID#1229216]
Join type: LeftOuter
Join condition: None
(1620) Project
Output [2]: [plant#1229189, filter(unitOfMeasureConversions#1229222, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234057) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234058)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229220.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229220.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229227]
Input [7]: [product#1229188, plant#1229189, _extract_code#1234057, _extract_internalRefUUID#1234058, internalUUID#1229216, baseUnitOfMeasure#1229220, unitOfMeasureConversions#1229222]
(1621) Generate
Input [2]: [plant#1229189, filteredUnitOfMeasureConversions#1229227]
Arguments: explode(filteredUnitOfMeasureConversions#1229227.quantityNumerator), [plant#1229189, filteredUnitOfMeasureConversions#1229227], true, [quantityNumerator#1229228]
(1622) Project
Output [2]: [plant#1229189, filteredUnitOfMeasureConversions#1229227.quantityDenominator AS _extract_quantityDenominator#1233379]
Input [3]: [plant#1229189, filteredUnitOfMeasureConversions#1229227, quantityNumerator#1229228]
(1623) Generate
Input [2]: [plant#1229189, _extract_quantityDenominator#1233379]
Arguments: explode(_extract_quantityDenominator#1233379), [plant#1229189], true, [quantityDenominator#1229229]
(1624) Project
Output [1]: [plant#1229189]
Input [2]: [plant#1229189, quantityDenominator#1229229]
(1625) HashAggregate
Input [1]: [plant#1229189]
Keys [1]: [plant#1229189]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1229189]
(1626) Exchange
Input [1]: [plant#1229189]
Arguments: hashpartitioning(plant#1229189, 37), ENSURE_REQUIREMENTS, [plan_id=1931677]
(1627) HashAggregate
Input [1]: [plant#1229189]
Keys [1]: [plant#1229189]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1229189]
(1628) BroadcastHashJoin
Left keys [1]: [plantUuid#1229185]
Right keys [1]: [plant#1229189]
Join type: Inner
Join condition: None
(1629) Project
Output [3]: [plantUuid#1229185, storageLocId#1229186, storageLocUuid#1229187]
Input [4]: [plantUuid#1229185, storageLocId#1229186, storageLocUuid#1229187, plant#1229189]
(1630) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229157.internalRefUUID, ), isnull(plant#1229157.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1229185, ), isnull(plantUuid#1229185)]
Join type: Inner
Join condition: None
(1631) Generate
Input [9]: [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, stockQuantities#1229159, plantUuid#1229185, storageLocId#1229186, storageLocUuid#1229187]
Arguments: explode(filter(stockQuantities#1229159, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229187) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229186)), lambda x#1225727, false))), [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, plantUuid#1229185], false, [stockQuantity#1229232]
(1632) ObjectHashAggregate
Input [7]: [systemId#1229154, internalUUID#1229155, product#1229156, plant#1229157, calculationDateTime#1229158, plantUuid#1229185, stockQuantity#1229232]
Keys [5]: [plantUuid#1229185, internalUUID#1229155, plant#1229157, product#1229156, systemId#1229154]
Functions [2]: [partial_first(calculationDateTime#1229158, false), partial_collect_list(stockQuantity#1229232, 0, 0)]
Aggregate Attributes [3]: [first#1235073, valueSet#1235074, buf#1235075]
Results [8]: [plantUuid#1229185, internalUUID#1229155, plant#1229157, product#1229156, systemId#1229154, first#1235076, valueSet#1235077, buf#1235078]
(1633) ObjectHashAggregate
Input [8]: [plantUuid#1229185, internalUUID#1229155, plant#1229157, product#1229156, systemId#1229154, first#1235076, valueSet#1235077, buf#1235078]
Keys [5]: [plantUuid#1229185, internalUUID#1229155, plant#1229157, product#1229156, systemId#1229154]
Functions [2]: [first(calculationDateTime#1229158, false), collect_list(stockQuantity#1229232, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1229158)()#1225742, collect_list(stockQuantity#1229232, 0, 0)#1225743]
Results [4]: [product#1229156, plant#1229157, first(calculationDateTime#1229158)()#1225742 AS calculationDateTime#1229233, collect_list(stockQuantity#1229232, 0, 0)#1225743 AS stockQuantities#1229234]
(1634) Filter
Input [4]: [product#1229156, plant#1229157, calculationDateTime#1229233, stockQuantities#1229234]
Condition : ((size(stockQuantities#1229234, true) > 0) AND isnotnull(calculationDateTime#1229233))
(1635) Generate
Input [4]: [product#1229156, plant#1229157, calculationDateTime#1229233, stockQuantities#1229234]
Arguments: explode(stockQuantities#1229234), [product#1229156, plant#1229157, calculationDateTime#1229233], false, [stockQuantity#1229235]
(1636) Filter
Input [4]: [product#1229156, plant#1229157, calculationDateTime#1229233, stockQuantity#1229235]
Condition : (((isnotnull(stockQuantity#1229235.specialStockIndicator.code) AND isnotnull(stockQuantity#1229235.stockType.code)) AND (stockQuantity#1229235.specialStockIndicator.code = )) AND (stockQuantity#1229235.stockType.code = 01))
(1637) Project
Output [4]: [plant#1229157.internalRefUUID AS plantUuid#1229237, product#1229156.internalRefUUID AS productUuid#1229239, calculationDateTime#1229233, stockQuantity#1229235.storagelocation.id AS storageLocId#1229240]
Input [4]: [product#1229156, plant#1229157, calculationDateTime#1229233, stockQuantity#1229235]
(1638) Exchange
Input [4]: [plantUuid#1229237, productUuid#1229239, calculationDateTime#1229233, storageLocId#1229240]
Arguments: hashpartitioning(productUuid#1229239, plantUuid#1229237, 37), ENSURE_REQUIREMENTS, [plan_id=1931710]
(1639) Sort
Input [4]: [plantUuid#1229237, productUuid#1229239, calculationDateTime#1229233, storageLocId#1229240]
Arguments: [productUuid#1229239 ASC NULLS FIRST, plantUuid#1229237 ASC NULLS FIRST], false, 0
(1640) Scan parquet
Output [3]: [product#1229245, plant#1229246, orderDateTime#1229247]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1641) Filter
Input [3]: [product#1229245, plant#1229246, orderDateTime#1229247]
Condition : ((isnotnull(orderDateTime#1229247) AND isnotnull(plant#1229246)) AND isnotnull(product#1229245))
(1642) Exchange
Input [3]: [product#1229245, plant#1229246, orderDateTime#1229247]
Arguments: hashpartitioning(product#1229245, plant#1229246, 37), REPARTITION_BY_NUM, [plan_id=1930814]
(1643) Scan parquet
Output [4]: [plant#1229251, product#1229252, productionAspect#1229254, systemId#1229249]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1644) Project
Output [4]: [plant#1229251.internalRefUUID AS _extract_internalRefUUID#1234061, product#1229252.internalRefUUID AS _extract_internalRefUUID#1234062, productionAspect#1229254.productMovementPlants.unitOfIssue.code AS _extract_code#1234063, productionAspect#1229254.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234064]
Input [4]: [plant#1229251, product#1229252, productionAspect#1229254, systemId#1229249]
(1645) Exchange
Input [4]: [_extract_internalRefUUID#1234061, _extract_internalRefUUID#1234062, _extract_code#1234063, _extract_internalRefUUID#1234064]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929497]
(1646) Project
Output [4]: [_extract_code#1234063, _extract_internalRefUUID#1234064, _extract_internalRefUUID#1234062, _extract_internalRefUUID#1234061]
Input [4]: [_extract_internalRefUUID#1234061, _extract_internalRefUUID#1234062, _extract_code#1234063, _extract_internalRefUUID#1234064]
(1647) BroadcastExchange
Input [4]: [_extract_code#1234063, _extract_internalRefUUID#1234064, _extract_internalRefUUID#1234062, _extract_internalRefUUID#1234061]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931693]
(1648) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229245, ), isnull(product#1229245), coalesce(plant#1229246, ), isnull(plant#1229246)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234062, ), isnull(_extract_internalRefUUID#1234062), coalesce(_extract_internalRefUUID#1234061, ), isnull(_extract_internalRefUUID#1234061)]
Join type: LeftOuter
Join condition: None
(1649) Project
Output [5]: [product#1229245, plant#1229246, orderDateTime#1229247, _extract_code#1234063, _extract_internalRefUUID#1234064]
Input [7]: [product#1229245, plant#1229246, orderDateTime#1229247, _extract_code#1234063, _extract_internalRefUUID#1234064, _extract_internalRefUUID#1234062, _extract_internalRefUUID#1234061]
(1650) Scan parquet
Output [2]: [internalUUID#1229259, systemId#1229258]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1651) Project
Output [1]: [internalUUID#1229259]
Input [2]: [internalUUID#1229259, systemId#1229258]
(1652) Exchange
Input [1]: [internalUUID#1229259]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929503]
(1653) BroadcastExchange
Input [1]: [internalUUID#1229259]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931697]
(1654) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229246, ), isnull(plant#1229246)]
Right keys [2]: [coalesce(internalUUID#1229259, ), isnull(internalUUID#1229259)]
Join type: LeftOuter
Join condition: None
(1655) Project
Output [5]: [product#1229245, plant#1229246, orderDateTime#1229247, _extract_code#1234063, _extract_internalRefUUID#1234064]
Input [6]: [product#1229245, plant#1229246, orderDateTime#1229247, _extract_code#1234063, _extract_internalRefUUID#1234064, internalUUID#1229259]
(1656) Scan parquet
Output [4]: [internalUUID#1229273, baseUnitOfMeasure#1229277, unitOfMeasureConversions#1229279, systemId#1229272]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1657) Filter
Input [4]: [internalUUID#1229273, baseUnitOfMeasure#1229277, unitOfMeasureConversions#1229279, systemId#1229272]
Condition : isnotnull(internalUUID#1229273)
(1658) Project
Output [3]: [internalUUID#1229273, baseUnitOfMeasure#1229277, unitOfMeasureConversions#1229279]
Input [4]: [internalUUID#1229273, baseUnitOfMeasure#1229277, unitOfMeasureConversions#1229279, systemId#1229272]
(1659) Exchange
Input [3]: [internalUUID#1229273, baseUnitOfMeasure#1229277, unitOfMeasureConversions#1229279]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929509]
(1660) BroadcastExchange
Input [3]: [internalUUID#1229273, baseUnitOfMeasure#1229277, unitOfMeasureConversions#1229279]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931701]
(1661) BroadcastHashJoin
Left keys [1]: [product#1229245]
Right keys [1]: [internalUUID#1229273]
Join type: LeftOuter
Join condition: None
(1662) Project
Output [4]: [product#1229245, plant#1229246, orderDateTime#1229247, filter(unitOfMeasureConversions#1229279, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234063) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234064)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229277.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229277.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229284]
Input [8]: [product#1229245, plant#1229246, orderDateTime#1229247, _extract_code#1234063, _extract_internalRefUUID#1234064, internalUUID#1229273, baseUnitOfMeasure#1229277, unitOfMeasureConversions#1229279]
(1663) Generate
Input [4]: [product#1229245, plant#1229246, orderDateTime#1229247, filteredUnitOfMeasureConversions#1229284]
Arguments: explode(filteredUnitOfMeasureConversions#1229284.quantityNumerator), [product#1229245, plant#1229246, orderDateTime#1229247, filteredUnitOfMeasureConversions#1229284], true, [quantityNumerator#1229285]
(1664) Project
Output [4]: [product#1229245, plant#1229246, orderDateTime#1229247, filteredUnitOfMeasureConversions#1229284.quantityDenominator AS _extract_quantityDenominator#1233383]
Input [5]: [product#1229245, plant#1229246, orderDateTime#1229247, filteredUnitOfMeasureConversions#1229284, quantityNumerator#1229285]
(1665) Generate
Input [4]: [product#1229245, plant#1229246, orderDateTime#1229247, _extract_quantityDenominator#1233383]
Arguments: explode(_extract_quantityDenominator#1233383), [product#1229245, plant#1229246, orderDateTime#1229247], true, [quantityDenominator#1229286]
(1666) Project
Output [3]: [product#1229245, plant#1229246, orderDateTime#1229247]
Input [4]: [product#1229245, plant#1229246, orderDateTime#1229247, quantityDenominator#1229286]
(1667) Sort
Input [3]: [product#1229245, plant#1229246, orderDateTime#1229247]
Arguments: [product#1229245 ASC NULLS FIRST, plant#1229246 ASC NULLS FIRST], false, 0
(1668) SortMergeJoin
Left keys [2]: [productUuid#1229239, plantUuid#1229237]
Right keys [2]: [product#1229245, plant#1229246]
Join type: Inner
Join condition: (calculationDateTime#1229233 <= orderDateTime#1229247)
(1669) Project
Output [4]: [plantUuid#1229237 AS plant#1229289, productUuid#1229239 AS product#1229290, storageLocId#1229240, calculationDateTime#1229233]
Input [7]: [plantUuid#1229237, productUuid#1229239, calculationDateTime#1229233, storageLocId#1229240, product#1229245, plant#1229246, orderDateTime#1229247]
(1670) Exchange
Input [4]: [plant#1229289, product#1229290, storageLocId#1229240, calculationDateTime#1229233]
Arguments: hashpartitioning(coalesce(plant#1229289, ), isnull(plant#1229289), coalesce(product#1229290, ), isnull(product#1229290), coalesce(storageLocId#1229240, ), isnull(storageLocId#1229240), coalesce(calculationDateTime#1229233, 1970-01-01 00:00:00), isnull(calculationDateTime#1229233), 37), ENSURE_REQUIREMENTS, [plan_id=1931774]
(1671) Sort
Input [4]: [plant#1229289, product#1229290, storageLocId#1229240, calculationDateTime#1229233]
Arguments: [coalesce(plant#1229289, ) ASC NULLS FIRST, isnull(plant#1229289) ASC NULLS FIRST, coalesce(product#1229290, ) ASC NULLS FIRST, isnull(product#1229290) ASC NULLS FIRST, coalesce(storageLocId#1229240, ) ASC NULLS FIRST, isnull(storageLocId#1229240) ASC NULLS FIRST, coalesce(calculationDateTime#1229233, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1229233) ASC NULLS FIRST], false, 0
(1672) Scan parquet
Output [6]: [internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296, systemId#1229291]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(1673) Filter
Input [6]: [internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296, systemId#1229291]
Condition : (isnotnull(plant#1229294.internalRefUUID) AND isnotnull(product#1229293.internalRefUUID))
(1674) Project
Output [6]: [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296]
Input [6]: [internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296, systemId#1229291]
(1675) Exchange
Input [6]: [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929521]
(1676) BroadcastExchange
Input [6]: [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1931739]
(1677) Scan parquet
Output [2]: [marketUnit#1229297, distributionCenters#1229303]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(1678) Filter
Input [2]: [marketUnit#1229297, distributionCenters#1229303]
Condition : (((marketUnit#1229297 <=> AUTO_MUV2) AND (size(distributionCenters#1229303, true) > 0)) AND isnotnull(distributionCenters#1229303))
(1679) Project
Output [1]: [distributionCenters#1229303]
Input [2]: [marketUnit#1229297, distributionCenters#1229303]
(1680) Exchange
Input [1]: [distributionCenters#1229303]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929525]
(1681) Generate
Input [1]: [distributionCenters#1229303]
Arguments: explode(distributionCenters#1229303), false, [distributionCenters#1229319]
(1682) Filter
Input [1]: [distributionCenters#1229319]
Condition : (((size(distributionCenters#1229319.storageLocations, true) > 0) AND isnotnull(distributionCenters#1229319.storageLocations)) AND isnotnull(distributionCenters#1229319.internalRefUUID))
(1683) Project
Output [2]: [distributionCenters#1229319.internalRefUUID AS _extract_internalRefUUID#1233387, distributionCenters#1229319.storageLocations AS _extract_storageLocations#1233388]
Input [1]: [distributionCenters#1229319]
(1684) Generate
Input [2]: [_extract_internalRefUUID#1233387, _extract_storageLocations#1233388]
Arguments: explode(_extract_storageLocations#1233388), [_extract_internalRefUUID#1233387], false, [storageLocations#1229320]
(1685) Project
Output [3]: [_extract_internalRefUUID#1233387 AS plantUuid#1229322, storageLocations#1229320.id AS storageLocId#1229323, storageLocations#1229320.internalRefUUID AS storageLocUuid#1229324]
Input [2]: [_extract_internalRefUUID#1233387, storageLocations#1229320]
(1686) BroadcastExchange
Input [3]: [plantUuid#1229322, storageLocId#1229323, storageLocUuid#1229324]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931735]
(1687) Scan parquet
Output [2]: [product#1229325, plant#1229326]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(1688) Filter
Input [2]: [product#1229325, plant#1229326]
Condition : isnotnull(plant#1229326)
(1689) Exchange
Input [2]: [product#1229325, plant#1229326]
Arguments: hashpartitioning(product#1229325, plant#1229326, 37), REPARTITION_BY_NUM, [plan_id=1930827]
(1690) Scan parquet
Output [4]: [plant#1229331, product#1229332, productionAspect#1229334, systemId#1229329]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1691) Project
Output [4]: [plant#1229331.internalRefUUID AS _extract_internalRefUUID#1234068, product#1229332.internalRefUUID AS _extract_internalRefUUID#1234067, productionAspect#1229334.productMovementPlants.unitOfIssue.code AS _extract_code#1234065, productionAspect#1229334.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234066]
Input [4]: [plant#1229331, product#1229332, productionAspect#1229334, systemId#1229329]
(1692) Exchange
Input [4]: [_extract_internalRefUUID#1234068, _extract_internalRefUUID#1234067, _extract_code#1234065, _extract_internalRefUUID#1234066]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929537]
(1693) Project
Output [4]: [_extract_code#1234065, _extract_internalRefUUID#1234066, _extract_internalRefUUID#1234067, _extract_internalRefUUID#1234068]
Input [4]: [_extract_internalRefUUID#1234068, _extract_internalRefUUID#1234067, _extract_code#1234065, _extract_internalRefUUID#1234066]
(1694) BroadcastExchange
Input [4]: [_extract_code#1234065, _extract_internalRefUUID#1234066, _extract_internalRefUUID#1234067, _extract_internalRefUUID#1234068]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931715]
(1695) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229325, ), isnull(product#1229325), coalesce(plant#1229326, ), isnull(plant#1229326)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234067, ), isnull(_extract_internalRefUUID#1234067), coalesce(_extract_internalRefUUID#1234068, ), isnull(_extract_internalRefUUID#1234068)]
Join type: LeftOuter
Join condition: None
(1696) Project
Output [4]: [product#1229325, plant#1229326, _extract_code#1234065, _extract_internalRefUUID#1234066]
Input [6]: [product#1229325, plant#1229326, _extract_code#1234065, _extract_internalRefUUID#1234066, _extract_internalRefUUID#1234067, _extract_internalRefUUID#1234068]
(1697) Scan parquet
Output [2]: [internalUUID#1229339, systemId#1229338]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1698) Project
Output [1]: [internalUUID#1229339]
Input [2]: [internalUUID#1229339, systemId#1229338]
(1699) Exchange
Input [1]: [internalUUID#1229339]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929543]
(1700) BroadcastExchange
Input [1]: [internalUUID#1229339]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931719]
(1701) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229326, ), isnull(plant#1229326)]
Right keys [2]: [coalesce(internalUUID#1229339, ), isnull(internalUUID#1229339)]
Join type: LeftOuter
Join condition: None
(1702) Project
Output [4]: [product#1229325, plant#1229326, _extract_code#1234065, _extract_internalRefUUID#1234066]
Input [5]: [product#1229325, plant#1229326, _extract_code#1234065, _extract_internalRefUUID#1234066, internalUUID#1229339]
(1703) Scan parquet
Output [4]: [internalUUID#1229353, baseUnitOfMeasure#1229357, unitOfMeasureConversions#1229359, systemId#1229352]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1704) Filter
Input [4]: [internalUUID#1229353, baseUnitOfMeasure#1229357, unitOfMeasureConversions#1229359, systemId#1229352]
Condition : isnotnull(internalUUID#1229353)
(1705) Project
Output [3]: [internalUUID#1229353, baseUnitOfMeasure#1229357, unitOfMeasureConversions#1229359]
Input [4]: [internalUUID#1229353, baseUnitOfMeasure#1229357, unitOfMeasureConversions#1229359, systemId#1229352]
(1706) Exchange
Input [3]: [internalUUID#1229353, baseUnitOfMeasure#1229357, unitOfMeasureConversions#1229359]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929549]
(1707) BroadcastExchange
Input [3]: [internalUUID#1229353, baseUnitOfMeasure#1229357, unitOfMeasureConversions#1229359]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931723]
(1708) BroadcastHashJoin
Left keys [1]: [product#1229325]
Right keys [1]: [internalUUID#1229353]
Join type: LeftOuter
Join condition: None
(1709) Project
Output [2]: [plant#1229326, filter(unitOfMeasureConversions#1229359, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234065) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234066)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229357.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229357.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229364]
Input [7]: [product#1229325, plant#1229326, _extract_code#1234065, _extract_internalRefUUID#1234066, internalUUID#1229353, baseUnitOfMeasure#1229357, unitOfMeasureConversions#1229359]
(1710) Generate
Input [2]: [plant#1229326, filteredUnitOfMeasureConversions#1229364]
Arguments: explode(filteredUnitOfMeasureConversions#1229364.quantityNumerator), [plant#1229326, filteredUnitOfMeasureConversions#1229364], true, [quantityNumerator#1229365]
(1711) Project
Output [2]: [plant#1229326, filteredUnitOfMeasureConversions#1229364.quantityDenominator AS _extract_quantityDenominator#1233389]
Input [3]: [plant#1229326, filteredUnitOfMeasureConversions#1229364, quantityNumerator#1229365]
(1712) Generate
Input [2]: [plant#1229326, _extract_quantityDenominator#1233389]
Arguments: explode(_extract_quantityDenominator#1233389), [plant#1229326], true, [quantityDenominator#1229366]
(1713) Project
Output [1]: [plant#1229326]
Input [2]: [plant#1229326, quantityDenominator#1229366]
(1714) HashAggregate
Input [1]: [plant#1229326]
Keys [1]: [plant#1229326]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1229326]
(1715) Exchange
Input [1]: [plant#1229326]
Arguments: hashpartitioning(plant#1229326, 37), ENSURE_REQUIREMENTS, [plan_id=1931732]
(1716) HashAggregate
Input [1]: [plant#1229326]
Keys [1]: [plant#1229326]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1229326]
(1717) BroadcastHashJoin
Left keys [1]: [plantUuid#1229322]
Right keys [1]: [plant#1229326]
Join type: Inner
Join condition: None
(1718) Project
Output [3]: [plantUuid#1229322, storageLocId#1229323, storageLocUuid#1229324]
Input [4]: [plantUuid#1229322, storageLocId#1229323, storageLocUuid#1229324, plant#1229326]
(1719) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229294.internalRefUUID, ), isnull(plant#1229294.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1229322, ), isnull(plantUuid#1229322)]
Join type: Inner
Join condition: None
(1720) Generate
Input [9]: [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, stockQuantities#1229296, plantUuid#1229322, storageLocId#1229323, storageLocUuid#1229324]
Arguments: explode(filter(stockQuantities#1229296, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229324) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229323)), lambda x#1225727, false))), [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, plantUuid#1229322], false, [stockQuantity#1229369]
(1721) ObjectHashAggregate
Input [7]: [systemId#1229291, internalUUID#1229292, product#1229293, plant#1229294, calculationDateTime#1229295, plantUuid#1229322, stockQuantity#1229369]
Keys [5]: [plantUuid#1229322, internalUUID#1229292, plant#1229294, product#1229293, systemId#1229291]
Functions [2]: [partial_first(calculationDateTime#1229295, false), partial_collect_list(stockQuantity#1229369, 0, 0)]
Aggregate Attributes [3]: [first#1235081, valueSet#1235082, buf#1235083]
Results [8]: [plantUuid#1229322, internalUUID#1229292, plant#1229294, product#1229293, systemId#1229291, first#1235084, valueSet#1235085, buf#1235086]
(1722) ObjectHashAggregate
Input [8]: [plantUuid#1229322, internalUUID#1229292, plant#1229294, product#1229293, systemId#1229291, first#1235084, valueSet#1235085, buf#1235086]
Keys [5]: [plantUuid#1229322, internalUUID#1229292, plant#1229294, product#1229293, systemId#1229291]
Functions [2]: [first(calculationDateTime#1229295, false), collect_list(stockQuantity#1229369, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1229295)()#1225742, collect_list(stockQuantity#1229369, 0, 0)#1225743]
Results [4]: [product#1229293, plant#1229294, first(calculationDateTime#1229295)()#1225742 AS calculationDateTime#1229370, collect_list(stockQuantity#1229369, 0, 0)#1225743 AS stockQuantities#1229371]
(1723) Filter
Input [4]: [product#1229293, plant#1229294, calculationDateTime#1229370, stockQuantities#1229371]
Condition : ((size(stockQuantities#1229371, true) > 0) AND isnotnull(calculationDateTime#1229370))
(1724) Generate
Input [4]: [product#1229293, plant#1229294, calculationDateTime#1229370, stockQuantities#1229371]
Arguments: explode(stockQuantities#1229371), [product#1229293, plant#1229294, calculationDateTime#1229370], false, [stockQuantity#1229372]
(1725) Filter
Input [4]: [product#1229293, plant#1229294, calculationDateTime#1229370, stockQuantity#1229372]
Condition : (((isnotnull(stockQuantity#1229372.specialStockIndicator.code) AND isnotnull(stockQuantity#1229372.stockType.code)) AND (stockQuantity#1229372.specialStockIndicator.code = )) AND (stockQuantity#1229372.stockType.code = 01))
(1726) Project
Output [4]: [plant#1229294.internalRefUUID AS plantUuid#1229374, product#1229293.internalRefUUID AS productUuid#1229376, calculationDateTime#1229370, stockQuantity#1229372.storagelocation.id AS storageLocId#1229377]
Input [4]: [product#1229293, plant#1229294, calculationDateTime#1229370, stockQuantity#1229372]
(1727) Exchange
Input [4]: [plantUuid#1229374, productUuid#1229376, calculationDateTime#1229370, storageLocId#1229377]
Arguments: hashpartitioning(productUuid#1229376, plantUuid#1229374, 37), ENSURE_REQUIREMENTS, [plan_id=1931765]
(1728) Sort
Input [4]: [plantUuid#1229374, productUuid#1229376, calculationDateTime#1229370, storageLocId#1229377]
Arguments: [productUuid#1229376 ASC NULLS FIRST, plantUuid#1229374 ASC NULLS FIRST], false, 0
(1729) Scan parquet
Output [3]: [product#1229382, plant#1229383, orderDateTime#1229384]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1730) Filter
Input [3]: [product#1229382, plant#1229383, orderDateTime#1229384]
Condition : ((isnotnull(orderDateTime#1229384) AND isnotnull(plant#1229383)) AND isnotnull(product#1229382))
(1731) Exchange
Input [3]: [product#1229382, plant#1229383, orderDateTime#1229384]
Arguments: hashpartitioning(product#1229382, plant#1229383, 37), REPARTITION_BY_NUM, [plan_id=1930850]
(1732) Scan parquet
Output [4]: [plant#1229388, product#1229389, productionAspect#1229391, systemId#1229386]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1733) Project
Output [4]: [plant#1229388.internalRefUUID AS _extract_internalRefUUID#1234071, product#1229389.internalRefUUID AS _extract_internalRefUUID#1234072, productionAspect#1229391.productMovementPlants.unitOfIssue.code AS _extract_code#1234069, productionAspect#1229391.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234070]
Input [4]: [plant#1229388, product#1229389, productionAspect#1229391, systemId#1229386]
(1734) Exchange
Input [4]: [_extract_internalRefUUID#1234071, _extract_internalRefUUID#1234072, _extract_code#1234069, _extract_internalRefUUID#1234070]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929574]
(1735) Project
Output [4]: [_extract_code#1234069, _extract_internalRefUUID#1234070, _extract_internalRefUUID#1234072, _extract_internalRefUUID#1234071]
Input [4]: [_extract_internalRefUUID#1234071, _extract_internalRefUUID#1234072, _extract_code#1234069, _extract_internalRefUUID#1234070]
(1736) BroadcastExchange
Input [4]: [_extract_code#1234069, _extract_internalRefUUID#1234070, _extract_internalRefUUID#1234072, _extract_internalRefUUID#1234071]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931748]
(1737) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229382, ), isnull(product#1229382), coalesce(plant#1229383, ), isnull(plant#1229383)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234072, ), isnull(_extract_internalRefUUID#1234072), coalesce(_extract_internalRefUUID#1234071, ), isnull(_extract_internalRefUUID#1234071)]
Join type: LeftOuter
Join condition: None
(1738) Project
Output [5]: [product#1229382, plant#1229383, orderDateTime#1229384, _extract_code#1234069, _extract_internalRefUUID#1234070]
Input [7]: [product#1229382, plant#1229383, orderDateTime#1229384, _extract_code#1234069, _extract_internalRefUUID#1234070, _extract_internalRefUUID#1234072, _extract_internalRefUUID#1234071]
(1739) Scan parquet
Output [2]: [internalUUID#1229396, systemId#1229395]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1740) Project
Output [1]: [internalUUID#1229396]
Input [2]: [internalUUID#1229396, systemId#1229395]
(1741) Exchange
Input [1]: [internalUUID#1229396]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929580]
(1742) BroadcastExchange
Input [1]: [internalUUID#1229396]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931752]
(1743) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229383, ), isnull(plant#1229383)]
Right keys [2]: [coalesce(internalUUID#1229396, ), isnull(internalUUID#1229396)]
Join type: LeftOuter
Join condition: None
(1744) Project
Output [5]: [product#1229382, plant#1229383, orderDateTime#1229384, _extract_code#1234069, _extract_internalRefUUID#1234070]
Input [6]: [product#1229382, plant#1229383, orderDateTime#1229384, _extract_code#1234069, _extract_internalRefUUID#1234070, internalUUID#1229396]
(1745) Scan parquet
Output [4]: [internalUUID#1229410, baseUnitOfMeasure#1229414, unitOfMeasureConversions#1229416, systemId#1229409]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1746) Filter
Input [4]: [internalUUID#1229410, baseUnitOfMeasure#1229414, unitOfMeasureConversions#1229416, systemId#1229409]
Condition : isnotnull(internalUUID#1229410)
(1747) Project
Output [3]: [internalUUID#1229410, baseUnitOfMeasure#1229414, unitOfMeasureConversions#1229416]
Input [4]: [internalUUID#1229410, baseUnitOfMeasure#1229414, unitOfMeasureConversions#1229416, systemId#1229409]
(1748) Exchange
Input [3]: [internalUUID#1229410, baseUnitOfMeasure#1229414, unitOfMeasureConversions#1229416]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929586]
(1749) BroadcastExchange
Input [3]: [internalUUID#1229410, baseUnitOfMeasure#1229414, unitOfMeasureConversions#1229416]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931756]
(1750) BroadcastHashJoin
Left keys [1]: [product#1229382]
Right keys [1]: [internalUUID#1229410]
Join type: LeftOuter
Join condition: None
(1751) Project
Output [4]: [product#1229382, plant#1229383, orderDateTime#1229384, filter(unitOfMeasureConversions#1229416, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234069) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234070)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229414.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229414.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229421]
Input [8]: [product#1229382, plant#1229383, orderDateTime#1229384, _extract_code#1234069, _extract_internalRefUUID#1234070, internalUUID#1229410, baseUnitOfMeasure#1229414, unitOfMeasureConversions#1229416]
(1752) Generate
Input [4]: [product#1229382, plant#1229383, orderDateTime#1229384, filteredUnitOfMeasureConversions#1229421]
Arguments: explode(filteredUnitOfMeasureConversions#1229421.quantityNumerator), [product#1229382, plant#1229383, orderDateTime#1229384, filteredUnitOfMeasureConversions#1229421], true, [quantityNumerator#1229422]
(1753) Project
Output [4]: [product#1229382, plant#1229383, orderDateTime#1229384, filteredUnitOfMeasureConversions#1229421.quantityDenominator AS _extract_quantityDenominator#1233393]
Input [5]: [product#1229382, plant#1229383, orderDateTime#1229384, filteredUnitOfMeasureConversions#1229421, quantityNumerator#1229422]
(1754) Generate
Input [4]: [product#1229382, plant#1229383, orderDateTime#1229384, _extract_quantityDenominator#1233393]
Arguments: explode(_extract_quantityDenominator#1233393), [product#1229382, plant#1229383, orderDateTime#1229384], true, [quantityDenominator#1229423]
(1755) Project
Output [3]: [product#1229382, plant#1229383, orderDateTime#1229384]
Input [4]: [product#1229382, plant#1229383, orderDateTime#1229384, quantityDenominator#1229423]
(1756) Sort
Input [3]: [product#1229382, plant#1229383, orderDateTime#1229384]
Arguments: [product#1229382 ASC NULLS FIRST, plant#1229383 ASC NULLS FIRST], false, 0
(1757) SortMergeJoin
Left keys [2]: [productUuid#1229376, plantUuid#1229374]
Right keys [2]: [product#1229382, plant#1229383]
Join type: Inner
Join condition: (calculationDateTime#1229370 <= orderDateTime#1229384)
(1758) Project
Output [4]: [plantUuid#1229374 AS plant#1229426, productUuid#1229376 AS product#1229427, storageLocId#1229377, calculationDateTime#1229370]
Input [7]: [plantUuid#1229374, productUuid#1229376, calculationDateTime#1229370, storageLocId#1229377, product#1229382, plant#1229383, orderDateTime#1229384]
(1759) HashAggregate
Input [4]: [plant#1229426, product#1229427, storageLocId#1229377, calculationDateTime#1229370]
Keys [3]: [plant#1229426, product#1229427, storageLocId#1229377]
Functions [1]: [partial_max(calculationDateTime#1229370)]
Aggregate Attributes [1]: [max#1235079]
Results [4]: [plant#1229426, product#1229427, storageLocId#1229377, max#1235080]
(1760) HashAggregate
Input [4]: [plant#1229426, product#1229427, storageLocId#1229377, max#1235080]
Keys [3]: [plant#1229426, product#1229427, storageLocId#1229377]
Functions [1]: [max(calculationDateTime#1229370)]
Aggregate Attributes [1]: [max(calculationDateTime#1229370)#1225820]
Results [4]: [plant#1229426, product#1229427, storageLocId#1229377, max(calculationDateTime#1229370)#1225820 AS max_calc_datetime#1229428]
(1761) Exchange
Input [4]: [plant#1229426, product#1229427, storageLocId#1229377, max_calc_datetime#1229428]
Arguments: hashpartitioning(coalesce(plant#1229426, ), isnull(plant#1229426), coalesce(product#1229427, ), isnull(product#1229427), coalesce(storageLocId#1229377, ), isnull(storageLocId#1229377), coalesce(max_calc_datetime#1229428, 1970-01-01 00:00:00), isnull(max_calc_datetime#1229428), 37), ENSURE_REQUIREMENTS, [plan_id=1931775]
(1762) Sort
Input [4]: [plant#1229426, product#1229427, storageLocId#1229377, max_calc_datetime#1229428]
Arguments: [coalesce(plant#1229426, ) ASC NULLS FIRST, isnull(plant#1229426) ASC NULLS FIRST, coalesce(product#1229427, ) ASC NULLS FIRST, isnull(product#1229427) ASC NULLS FIRST, coalesce(storageLocId#1229377, ) ASC NULLS FIRST, isnull(storageLocId#1229377) ASC NULLS FIRST, coalesce(max_calc_datetime#1229428, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1229428) ASC NULLS FIRST], false, 0
(1763) SortMergeJoin
Left keys [8]: [coalesce(plant#1229289, ), isnull(plant#1229289), coalesce(product#1229290, ), isnull(product#1229290), coalesce(storageLocId#1229240, ), isnull(storageLocId#1229240), coalesce(calculationDateTime#1229233, 1970-01-01 00:00:00), isnull(calculationDateTime#1229233)]
Right keys [8]: [coalesce(plant#1229426, ), isnull(plant#1229426), coalesce(product#1229427, ), isnull(product#1229427), coalesce(storageLocId#1229377, ), isnull(storageLocId#1229377), coalesce(max_calc_datetime#1229428, 1970-01-01 00:00:00), isnull(max_calc_datetime#1229428)]
Join type: Inner
Join condition: None
(1764) Project
Output [3]: [plant#1229289, product#1229290, calculationDateTime#1229233]
Input [8]: [plant#1229289, product#1229290, storageLocId#1229240, calculationDateTime#1229233, plant#1229426, product#1229427, storageLocId#1229377, max_calc_datetime#1229428]
(1765) HashAggregate
Input [3]: [plant#1229289, product#1229290, calculationDateTime#1229233]
Keys [2]: [product#1229290, plant#1229289]
Functions [1]: [partial_min(calculationDateTime#1229233)]
Aggregate Attributes [1]: [min#1235071]
Results [3]: [product#1229290, plant#1229289, min#1235072]
(1766) Exchange
Input [3]: [product#1229290, plant#1229289, min#1235072]
Arguments: hashpartitioning(product#1229290, plant#1229289, 37), ENSURE_REQUIREMENTS, [plan_id=1931782]
(1767) HashAggregate
Input [3]: [product#1229290, plant#1229289, min#1235072]
Keys [2]: [product#1229290, plant#1229289]
Functions [1]: [min(calculationDateTime#1229233)]
Aggregate Attributes [1]: [min(calculationDateTime#1229233)#1225976]
Results [3]: [product#1229290, plant#1229289, min(calculationDateTime#1229233)#1225976 AS minCalculationDateTime#1229430]
(1768) Sort
Input [3]: [product#1229290, plant#1229289, minCalculationDateTime#1229430]
Arguments: [product#1229290 ASC NULLS FIRST, plant#1229289 ASC NULLS FIRST], false, 0
(1769) SortMergeJoin
Left keys [2]: [product#1229110, plant#1229111]
Right keys [2]: [product#1229290, plant#1229289]
Join type: LeftOuter
Join condition: None
(1770) Project
Output [3]: [product#1229110, plant#1229111, CASE WHEN isnotnull(minCalculationDateTime#1229430) THEN minCalculationDateTime#1229430 ELSE orderDateTime#1229112 END AS stockDatetime#1229432]
Input [6]: [product#1229110, plant#1229111, orderDateTime#1229112, product#1229290, plant#1229289, minCalculationDateTime#1229430]
(1771) Exchange
Input [3]: [product#1229110, plant#1229111, stockDatetime#1229432]
Arguments: hashpartitioning(coalesce(plant#1229111, ), isnull(plant#1229111), coalesce(product#1229110, ), isnull(product#1229110), 37), ENSURE_REQUIREMENTS, [plan_id=1931946]
(1772) Sort
Input [3]: [product#1229110, plant#1229111, stockDatetime#1229432]
Arguments: [coalesce(plant#1229111, ) ASC NULLS FIRST, isnull(plant#1229111) ASC NULLS FIRST, coalesce(product#1229110, ) ASC NULLS FIRST, isnull(product#1229110) ASC NULLS FIRST], false, 0
(1773) Scan parquet
Output [3]: [product#1229435, plant#1229436, orderDateTime#1229437]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1774) Exchange
Input [3]: [product#1229435, plant#1229436, orderDateTime#1229437]
Arguments: hashpartitioning(product#1229435, plant#1229436, 37), REPARTITION_BY_NUM, [plan_id=1929604]
(1775) Scan parquet
Output [8]: [internalUUID#1229440, plant#1229441, product#1229442, blockedForReplenishmentStartingFrom#1229443, productionAspect#1229444, salesPlant#1229445, listing#1229446, systemId#1229439]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>
(1776) Project
Output [8]: [systemId#1229439, internalUUID#1229440, plant#1229441, product#1229442, blockedForReplenishmentStartingFrom#1229443, productionAspect#1229444, salesPlant#1229445, listing#1229446]
Input [8]: [internalUUID#1229440, plant#1229441, product#1229442, blockedForReplenishmentStartingFrom#1229443, productionAspect#1229444, salesPlant#1229445, listing#1229446, systemId#1229439]
(1777) Exchange
Input [8]: [systemId#1229439, internalUUID#1229440, plant#1229441, product#1229442, blockedForReplenishmentStartingFrom#1229443, productionAspect#1229444, salesPlant#1229445, listing#1229446]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929607]
(1778) Project
Output [1]: [struct(systemId, systemId#1229439, internalUUID, internalUUID#1229440, plant, plant#1229441, product, product#1229442, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1229443, productionAspect, productionAspect#1229444, salesPlant, salesPlant#1229445, listing, listing#1229446) AS productPlant#1229447]
Input [8]: [systemId#1229439, internalUUID#1229440, plant#1229441, product#1229442, blockedForReplenishmentStartingFrom#1229443, productionAspect#1229444, salesPlant#1229445, listing#1229446]
(1779) BroadcastExchange
Input [1]: [productPlant#1229447]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1931790]
(1780) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229435, ), isnull(product#1229435), coalesce(plant#1229436, ), isnull(plant#1229436)]
Right keys [4]: [coalesce(productPlant#1229447.product.internalRefUUID, ), isnull(productPlant#1229447.product.internalRefUUID), coalesce(productPlant#1229447.plant.internalRefUUID, ), isnull(productPlant#1229447.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(1781) Scan parquet
Output [3]: [internalUUID#1229449, address#1229455, systemId#1229448]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(1782) Project
Output [2]: [internalUUID#1229449, address#1229455.timeZone.code AS timezonecode#1229460]
Input [3]: [internalUUID#1229449, address#1229455, systemId#1229448]
(1783) Exchange
Input [2]: [internalUUID#1229449, timezonecode#1229460]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929612]
(1784) BroadcastExchange
Input [2]: [internalUUID#1229449, timezonecode#1229460]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931793]
(1785) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229436, ), isnull(plant#1229436)]
Right keys [2]: [coalesce(internalUUID#1229449, ), isnull(internalUUID#1229449)]
Join type: LeftOuter
Join condition: None
(1786) Project
Output [5]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, CASE WHEN isnotnull(timezonecode#1229460) THEN timezonecode#1229460 ELSE UTC END AS timezonecode#1229461]
Input [6]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, internalUUID#1229449, timezonecode#1229460]
(1787) Scan parquet
Output [4]: [internalUUID#1229463, baseUnitOfMeasure#1229467, unitOfMeasureConversions#1229469, systemId#1229462]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1788) Filter
Input [4]: [internalUUID#1229463, baseUnitOfMeasure#1229467, unitOfMeasureConversions#1229469, systemId#1229462]
Condition : isnotnull(internalUUID#1229463)
(1789) Project
Output [3]: [internalUUID#1229463, baseUnitOfMeasure#1229467, unitOfMeasureConversions#1229469]
Input [4]: [internalUUID#1229463, baseUnitOfMeasure#1229467, unitOfMeasureConversions#1229469, systemId#1229462]
(1790) Exchange
Input [3]: [internalUUID#1229463, baseUnitOfMeasure#1229467, unitOfMeasureConversions#1229469]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929618]
(1791) BroadcastExchange
Input [3]: [internalUUID#1229463, baseUnitOfMeasure#1229467, unitOfMeasureConversions#1229469]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931797]
(1792) BroadcastHashJoin
Left keys [1]: [product#1229435]
Right keys [1]: [internalUUID#1229463]
Join type: LeftOuter
Join condition: None
(1793) Project
Output [6]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, filter(unitOfMeasureConversions#1229469, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229467.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229467.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229474]
Input [8]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, internalUUID#1229463, baseUnitOfMeasure#1229467, unitOfMeasureConversions#1229469]
(1794) Project
Output [7]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, filteredUnitOfMeasureConversions#1229474.quantityDenominator AS _extract_quantityDenominator#1233600, filteredUnitOfMeasureConversions#1229474.quantityNumerator AS _extract_quantityNumerator#1233601]
Input [6]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, filteredUnitOfMeasureConversions#1229474]
(1795) Generate
Input [7]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, _extract_quantityDenominator#1233600, _extract_quantityNumerator#1233601]
Arguments: explode(_extract_quantityNumerator#1233601), [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, _extract_quantityDenominator#1233600], true, [quantityNumerator#1229475]
(1796) Generate
Input [7]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, _extract_quantityDenominator#1233600, quantityNumerator#1229475]
Arguments: explode(_extract_quantityDenominator#1233600), [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, quantityNumerator#1229475], true, [quantityDenominator#1229476]
(1797) Project
Output [6]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, (cast(quantityNumerator#1229475 as double) / cast(quantityDenominator#1229476 as double)) AS outboundUnit#1229477]
Input [7]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, quantityNumerator#1229475, quantityDenominator#1229476]
(1798) Project
Output [6]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, CASE WHEN (isnull(outboundUnit#1229477) OR (outboundUnit#1229477 <= 0.0)) THEN 1.0 ELSE outboundUnit#1229477 END AS outboundUnit#1229478]
Input [6]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229477]
(1799) Sort
Input [6]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478]
Arguments: [product#1229435 ASC NULLS FIRST, plant#1229436 ASC NULLS FIRST], false, 0
(1800) Scan parquet
Output [6]: [internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484, systemId#1229479]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(1801) Filter
Input [6]: [internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484, systemId#1229479]
Condition : (isnotnull(plant#1229482.internalRefUUID) AND isnotnull(product#1229481.internalRefUUID))
(1802) Project
Output [6]: [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484]
Input [6]: [internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484, systemId#1229479]
(1803) Exchange
Input [6]: [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929629]
(1804) BroadcastExchange
Input [6]: [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1931829]
(1805) Scan parquet
Output [2]: [marketUnit#1229485, distributionCenters#1229491]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(1806) Filter
Input [2]: [marketUnit#1229485, distributionCenters#1229491]
Condition : (((marketUnit#1229485 <=> AUTO_MUV2) AND (size(distributionCenters#1229491, true) > 0)) AND isnotnull(distributionCenters#1229491))
(1807) Project
Output [1]: [distributionCenters#1229491]
Input [2]: [marketUnit#1229485, distributionCenters#1229491]
(1808) Exchange
Input [1]: [distributionCenters#1229491]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929633]
(1809) Generate
Input [1]: [distributionCenters#1229491]
Arguments: explode(distributionCenters#1229491), false, [distributionCenters#1229507]
(1810) Filter
Input [1]: [distributionCenters#1229507]
Condition : (((size(distributionCenters#1229507.storageLocations, true) > 0) AND isnotnull(distributionCenters#1229507.storageLocations)) AND isnotnull(distributionCenters#1229507.internalRefUUID))
(1811) Project
Output [2]: [distributionCenters#1229507.internalRefUUID AS _extract_internalRefUUID#1233399, distributionCenters#1229507.storageLocations AS _extract_storageLocations#1233400]
Input [1]: [distributionCenters#1229507]
(1812) Generate
Input [2]: [_extract_internalRefUUID#1233399, _extract_storageLocations#1233400]
Arguments: explode(_extract_storageLocations#1233400), [_extract_internalRefUUID#1233399], false, [storageLocations#1229508]
(1813) Project
Output [3]: [_extract_internalRefUUID#1233399 AS plantUuid#1229510, storageLocations#1229508.id AS storageLocId#1229511, storageLocations#1229508.internalRefUUID AS storageLocUuid#1229512]
Input [2]: [_extract_internalRefUUID#1233399, storageLocations#1229508]
(1814) BroadcastExchange
Input [3]: [plantUuid#1229510, storageLocId#1229511, storageLocUuid#1229512]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931825]
(1815) Scan parquet
Output [2]: [product#1229513, plant#1229514]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(1816) Filter
Input [2]: [product#1229513, plant#1229514]
Condition : isnotnull(plant#1229514)
(1817) Exchange
Input [2]: [product#1229513, plant#1229514]
Arguments: hashpartitioning(product#1229513, plant#1229514, 37), REPARTITION_BY_NUM, [plan_id=1930871]
(1818) Scan parquet
Output [4]: [plant#1229519, product#1229520, productionAspect#1229522, systemId#1229517]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1819) Project
Output [4]: [plant#1229519.internalRefUUID AS _extract_internalRefUUID#1234074, product#1229520.internalRefUUID AS _extract_internalRefUUID#1234073, productionAspect#1229522.productMovementPlants.unitOfIssue.code AS _extract_code#1234075, productionAspect#1229522.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234076]
Input [4]: [plant#1229519, product#1229520, productionAspect#1229522, systemId#1229517]
(1820) Exchange
Input [4]: [_extract_internalRefUUID#1234074, _extract_internalRefUUID#1234073, _extract_code#1234075, _extract_internalRefUUID#1234076]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929645]
(1821) Project
Output [4]: [_extract_code#1234075, _extract_internalRefUUID#1234076, _extract_internalRefUUID#1234073, _extract_internalRefUUID#1234074]
Input [4]: [_extract_internalRefUUID#1234074, _extract_internalRefUUID#1234073, _extract_code#1234075, _extract_internalRefUUID#1234076]
(1822) BroadcastExchange
Input [4]: [_extract_code#1234075, _extract_internalRefUUID#1234076, _extract_internalRefUUID#1234073, _extract_internalRefUUID#1234074]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931805]
(1823) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229513, ), isnull(product#1229513), coalesce(plant#1229514, ), isnull(plant#1229514)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234073, ), isnull(_extract_internalRefUUID#1234073), coalesce(_extract_internalRefUUID#1234074, ), isnull(_extract_internalRefUUID#1234074)]
Join type: LeftOuter
Join condition: None
(1824) Project
Output [4]: [product#1229513, plant#1229514, _extract_code#1234075, _extract_internalRefUUID#1234076]
Input [6]: [product#1229513, plant#1229514, _extract_code#1234075, _extract_internalRefUUID#1234076, _extract_internalRefUUID#1234073, _extract_internalRefUUID#1234074]
(1825) Scan parquet
Output [2]: [internalUUID#1229527, systemId#1229526]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1826) Project
Output [1]: [internalUUID#1229527]
Input [2]: [internalUUID#1229527, systemId#1229526]
(1827) Exchange
Input [1]: [internalUUID#1229527]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929651]
(1828) BroadcastExchange
Input [1]: [internalUUID#1229527]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931809]
(1829) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229514, ), isnull(plant#1229514)]
Right keys [2]: [coalesce(internalUUID#1229527, ), isnull(internalUUID#1229527)]
Join type: LeftOuter
Join condition: None
(1830) Project
Output [4]: [product#1229513, plant#1229514, _extract_code#1234075, _extract_internalRefUUID#1234076]
Input [5]: [product#1229513, plant#1229514, _extract_code#1234075, _extract_internalRefUUID#1234076, internalUUID#1229527]
(1831) Scan parquet
Output [4]: [internalUUID#1229541, baseUnitOfMeasure#1229545, unitOfMeasureConversions#1229547, systemId#1229540]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1832) Filter
Input [4]: [internalUUID#1229541, baseUnitOfMeasure#1229545, unitOfMeasureConversions#1229547, systemId#1229540]
Condition : isnotnull(internalUUID#1229541)
(1833) Project
Output [3]: [internalUUID#1229541, baseUnitOfMeasure#1229545, unitOfMeasureConversions#1229547]
Input [4]: [internalUUID#1229541, baseUnitOfMeasure#1229545, unitOfMeasureConversions#1229547, systemId#1229540]
(1834) Exchange
Input [3]: [internalUUID#1229541, baseUnitOfMeasure#1229545, unitOfMeasureConversions#1229547]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929657]
(1835) BroadcastExchange
Input [3]: [internalUUID#1229541, baseUnitOfMeasure#1229545, unitOfMeasureConversions#1229547]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931813]
(1836) BroadcastHashJoin
Left keys [1]: [product#1229513]
Right keys [1]: [internalUUID#1229541]
Join type: LeftOuter
Join condition: None
(1837) Project
Output [2]: [plant#1229514, filter(unitOfMeasureConversions#1229547, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234075) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234076)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229545.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229545.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229552]
Input [7]: [product#1229513, plant#1229514, _extract_code#1234075, _extract_internalRefUUID#1234076, internalUUID#1229541, baseUnitOfMeasure#1229545, unitOfMeasureConversions#1229547]
(1838) Generate
Input [2]: [plant#1229514, filteredUnitOfMeasureConversions#1229552]
Arguments: explode(filteredUnitOfMeasureConversions#1229552.quantityNumerator), [plant#1229514, filteredUnitOfMeasureConversions#1229552], true, [quantityNumerator#1229553]
(1839) Project
Output [2]: [plant#1229514, filteredUnitOfMeasureConversions#1229552.quantityDenominator AS _extract_quantityDenominator#1233401]
Input [3]: [plant#1229514, filteredUnitOfMeasureConversions#1229552, quantityNumerator#1229553]
(1840) Generate
Input [2]: [plant#1229514, _extract_quantityDenominator#1233401]
Arguments: explode(_extract_quantityDenominator#1233401), [plant#1229514], true, [quantityDenominator#1229554]
(1841) Project
Output [1]: [plant#1229514]
Input [2]: [plant#1229514, quantityDenominator#1229554]
(1842) HashAggregate
Input [1]: [plant#1229514]
Keys [1]: [plant#1229514]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1229514]
(1843) Exchange
Input [1]: [plant#1229514]
Arguments: hashpartitioning(plant#1229514, 37), ENSURE_REQUIREMENTS, [plan_id=1931822]
(1844) HashAggregate
Input [1]: [plant#1229514]
Keys [1]: [plant#1229514]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1229514]
(1845) BroadcastHashJoin
Left keys [1]: [plantUuid#1229510]
Right keys [1]: [plant#1229514]
Join type: Inner
Join condition: None
(1846) Project
Output [3]: [plantUuid#1229510, storageLocId#1229511, storageLocUuid#1229512]
Input [4]: [plantUuid#1229510, storageLocId#1229511, storageLocUuid#1229512, plant#1229514]
(1847) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229482.internalRefUUID, ), isnull(plant#1229482.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1229510, ), isnull(plantUuid#1229510)]
Join type: Inner
Join condition: None
(1848) Generate
Input [9]: [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, stockQuantities#1229484, plantUuid#1229510, storageLocId#1229511, storageLocUuid#1229512]
Arguments: explode(filter(stockQuantities#1229484, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229512) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229511)), lambda x#1225727, false))), [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, plantUuid#1229510], false, [stockQuantity#1229557]
(1849) ObjectHashAggregate
Input [7]: [systemId#1229479, internalUUID#1229480, product#1229481, plant#1229482, calculationDateTime#1229483, plantUuid#1229510, stockQuantity#1229557]
Keys [5]: [plantUuid#1229510, internalUUID#1229480, plant#1229482, product#1229481, systemId#1229479]
Functions [2]: [partial_first(calculationDateTime#1229483, false), partial_collect_list(stockQuantity#1229557, 0, 0)]
Aggregate Attributes [3]: [first#1235095, valueSet#1235096, buf#1235097]
Results [8]: [plantUuid#1229510, internalUUID#1229480, plant#1229482, product#1229481, systemId#1229479, first#1235098, valueSet#1235099, buf#1235100]
(1850) ObjectHashAggregate
Input [8]: [plantUuid#1229510, internalUUID#1229480, plant#1229482, product#1229481, systemId#1229479, first#1235098, valueSet#1235099, buf#1235100]
Keys [5]: [plantUuid#1229510, internalUUID#1229480, plant#1229482, product#1229481, systemId#1229479]
Functions [2]: [first(calculationDateTime#1229483, false), collect_list(stockQuantity#1229557, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1229483)()#1225742, collect_list(stockQuantity#1229557, 0, 0)#1225743]
Results [4]: [product#1229481, plant#1229482, first(calculationDateTime#1229483)()#1225742 AS calculationDateTime#1229558, collect_list(stockQuantity#1229557, 0, 0)#1225743 AS stockQuantities#1229559]
(1851) Filter
Input [4]: [product#1229481, plant#1229482, calculationDateTime#1229558, stockQuantities#1229559]
Condition : ((size(stockQuantities#1229559, true) > 0) AND isnotnull(calculationDateTime#1229558))
(1852) Generate
Input [4]: [product#1229481, plant#1229482, calculationDateTime#1229558, stockQuantities#1229559]
Arguments: explode(stockQuantities#1229559), [product#1229481, plant#1229482, calculationDateTime#1229558], false, [stockQuantity#1229560]
(1853) Filter
Input [4]: [product#1229481, plant#1229482, calculationDateTime#1229558, stockQuantity#1229560]
Condition : (((isnotnull(stockQuantity#1229560.specialStockIndicator.code) AND isnotnull(stockQuantity#1229560.stockType.code)) AND (stockQuantity#1229560.specialStockIndicator.code = )) AND (stockQuantity#1229560.stockType.code = 01))
(1854) Project
Output [5]: [plant#1229482.internalRefUUID AS plantUuid#1229562, product#1229481.internalRefUUID AS productUuid#1229564, calculationDateTime#1229558, stockQuantity#1229560.storagelocation.id AS storageLocId#1229565, stockQuantity#1229560.quantity.measure AS quantity#1229567]
Input [4]: [product#1229481, plant#1229482, calculationDateTime#1229558, stockQuantity#1229560]
(1855) Exchange
Input [5]: [plantUuid#1229562, productUuid#1229564, calculationDateTime#1229558, storageLocId#1229565, quantity#1229567]
Arguments: hashpartitioning(productUuid#1229564, plantUuid#1229562, 37), ENSURE_REQUIREMENTS, [plan_id=1931855]
(1856) Sort
Input [5]: [plantUuid#1229562, productUuid#1229564, calculationDateTime#1229558, storageLocId#1229565, quantity#1229567]
Arguments: [productUuid#1229564 ASC NULLS FIRST, plantUuid#1229562 ASC NULLS FIRST], false, 0
(1857) Scan parquet
Output [3]: [product#1229570, plant#1229571, orderDateTime#1229572]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1858) Filter
Input [3]: [product#1229570, plant#1229571, orderDateTime#1229572]
Condition : ((isnotnull(orderDateTime#1229572) AND isnotnull(plant#1229571)) AND isnotnull(product#1229570))
(1859) Exchange
Input [3]: [product#1229570, plant#1229571, orderDateTime#1229572]
Arguments: hashpartitioning(product#1229570, plant#1229571, 37), REPARTITION_BY_NUM, [plan_id=1930894]
(1860) Scan parquet
Output [4]: [plant#1229576, product#1229577, productionAspect#1229579, systemId#1229574]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1861) Project
Output [4]: [plant#1229576.internalRefUUID AS _extract_internalRefUUID#1234077, product#1229577.internalRefUUID AS _extract_internalRefUUID#1234080, productionAspect#1229579.productMovementPlants.unitOfIssue.code AS _extract_code#1234078, productionAspect#1229579.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234079]
Input [4]: [plant#1229576, product#1229577, productionAspect#1229579, systemId#1229574]
(1862) Exchange
Input [4]: [_extract_internalRefUUID#1234077, _extract_internalRefUUID#1234080, _extract_code#1234078, _extract_internalRefUUID#1234079]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929682]
(1863) Project
Output [4]: [_extract_code#1234078, _extract_internalRefUUID#1234079, _extract_internalRefUUID#1234080, _extract_internalRefUUID#1234077]
Input [4]: [_extract_internalRefUUID#1234077, _extract_internalRefUUID#1234080, _extract_code#1234078, _extract_internalRefUUID#1234079]
(1864) BroadcastExchange
Input [4]: [_extract_code#1234078, _extract_internalRefUUID#1234079, _extract_internalRefUUID#1234080, _extract_internalRefUUID#1234077]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931838]
(1865) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229570, ), isnull(product#1229570), coalesce(plant#1229571, ), isnull(plant#1229571)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234080, ), isnull(_extract_internalRefUUID#1234080), coalesce(_extract_internalRefUUID#1234077, ), isnull(_extract_internalRefUUID#1234077)]
Join type: LeftOuter
Join condition: None
(1866) Project
Output [5]: [product#1229570, plant#1229571, orderDateTime#1229572, _extract_code#1234078, _extract_internalRefUUID#1234079]
Input [7]: [product#1229570, plant#1229571, orderDateTime#1229572, _extract_code#1234078, _extract_internalRefUUID#1234079, _extract_internalRefUUID#1234080, _extract_internalRefUUID#1234077]
(1867) Scan parquet
Output [2]: [internalUUID#1229584, systemId#1229583]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1868) Project
Output [1]: [internalUUID#1229584]
Input [2]: [internalUUID#1229584, systemId#1229583]
(1869) Exchange
Input [1]: [internalUUID#1229584]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929688]
(1870) BroadcastExchange
Input [1]: [internalUUID#1229584]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931842]
(1871) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229571, ), isnull(plant#1229571)]
Right keys [2]: [coalesce(internalUUID#1229584, ), isnull(internalUUID#1229584)]
Join type: LeftOuter
Join condition: None
(1872) Project
Output [5]: [product#1229570, plant#1229571, orderDateTime#1229572, _extract_code#1234078, _extract_internalRefUUID#1234079]
Input [6]: [product#1229570, plant#1229571, orderDateTime#1229572, _extract_code#1234078, _extract_internalRefUUID#1234079, internalUUID#1229584]
(1873) Scan parquet
Output [4]: [internalUUID#1229598, baseUnitOfMeasure#1229602, unitOfMeasureConversions#1229604, systemId#1229597]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1874) Filter
Input [4]: [internalUUID#1229598, baseUnitOfMeasure#1229602, unitOfMeasureConversions#1229604, systemId#1229597]
Condition : isnotnull(internalUUID#1229598)
(1875) Project
Output [3]: [internalUUID#1229598, baseUnitOfMeasure#1229602, unitOfMeasureConversions#1229604]
Input [4]: [internalUUID#1229598, baseUnitOfMeasure#1229602, unitOfMeasureConversions#1229604, systemId#1229597]
(1876) Exchange
Input [3]: [internalUUID#1229598, baseUnitOfMeasure#1229602, unitOfMeasureConversions#1229604]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929694]
(1877) BroadcastExchange
Input [3]: [internalUUID#1229598, baseUnitOfMeasure#1229602, unitOfMeasureConversions#1229604]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931846]
(1878) BroadcastHashJoin
Left keys [1]: [product#1229570]
Right keys [1]: [internalUUID#1229598]
Join type: LeftOuter
Join condition: None
(1879) Project
Output [4]: [product#1229570, plant#1229571, orderDateTime#1229572, filter(unitOfMeasureConversions#1229604, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234078) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234079)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229602.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229602.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229609]
Input [8]: [product#1229570, plant#1229571, orderDateTime#1229572, _extract_code#1234078, _extract_internalRefUUID#1234079, internalUUID#1229598, baseUnitOfMeasure#1229602, unitOfMeasureConversions#1229604]
(1880) Generate
Input [4]: [product#1229570, plant#1229571, orderDateTime#1229572, filteredUnitOfMeasureConversions#1229609]
Arguments: explode(filteredUnitOfMeasureConversions#1229609.quantityNumerator), [product#1229570, plant#1229571, orderDateTime#1229572, filteredUnitOfMeasureConversions#1229609], true, [quantityNumerator#1229610]
(1881) Project
Output [4]: [product#1229570, plant#1229571, orderDateTime#1229572, filteredUnitOfMeasureConversions#1229609.quantityDenominator AS _extract_quantityDenominator#1233405]
Input [5]: [product#1229570, plant#1229571, orderDateTime#1229572, filteredUnitOfMeasureConversions#1229609, quantityNumerator#1229610]
(1882) Generate
Input [4]: [product#1229570, plant#1229571, orderDateTime#1229572, _extract_quantityDenominator#1233405]
Arguments: explode(_extract_quantityDenominator#1233405), [product#1229570, plant#1229571, orderDateTime#1229572], true, [quantityDenominator#1229611]
(1883) Project
Output [3]: [product#1229570, plant#1229571, orderDateTime#1229572]
Input [4]: [product#1229570, plant#1229571, orderDateTime#1229572, quantityDenominator#1229611]
(1884) Sort
Input [3]: [product#1229570, plant#1229571, orderDateTime#1229572]
Arguments: [product#1229570 ASC NULLS FIRST, plant#1229571 ASC NULLS FIRST], false, 0
(1885) SortMergeJoin
Left keys [2]: [productUuid#1229564, plantUuid#1229562]
Right keys [2]: [product#1229570, plant#1229571]
Join type: Inner
Join condition: (calculationDateTime#1229558 <= orderDateTime#1229572)
(1886) Project
Output [5]: [plantUuid#1229562 AS plant#1229614, productUuid#1229564 AS product#1229615, storageLocId#1229565, calculationDateTime#1229558, quantity#1229567]
Input [8]: [plantUuid#1229562, productUuid#1229564, calculationDateTime#1229558, storageLocId#1229565, quantity#1229567, product#1229570, plant#1229571, orderDateTime#1229572]
(1887) Exchange
Input [5]: [plant#1229614, product#1229615, storageLocId#1229565, calculationDateTime#1229558, quantity#1229567]
Arguments: hashpartitioning(coalesce(plant#1229614, ), isnull(plant#1229614), coalesce(product#1229615, ), isnull(product#1229615), coalesce(storageLocId#1229565, ), isnull(storageLocId#1229565), coalesce(calculationDateTime#1229558, 1970-01-01 00:00:00), isnull(calculationDateTime#1229558), 37), ENSURE_REQUIREMENTS, [plan_id=1931919]
(1888) Sort
Input [5]: [plant#1229614, product#1229615, storageLocId#1229565, calculationDateTime#1229558, quantity#1229567]
Arguments: [coalesce(plant#1229614, ) ASC NULLS FIRST, isnull(plant#1229614) ASC NULLS FIRST, coalesce(product#1229615, ) ASC NULLS FIRST, isnull(product#1229615) ASC NULLS FIRST, coalesce(storageLocId#1229565, ) ASC NULLS FIRST, isnull(storageLocId#1229565) ASC NULLS FIRST, coalesce(calculationDateTime#1229558, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1229558) ASC NULLS FIRST], false, 0
(1889) Scan parquet
Output [6]: [internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621, systemId#1229616]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(1890) Filter
Input [6]: [internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621, systemId#1229616]
Condition : (isnotnull(plant#1229619.internalRefUUID) AND isnotnull(product#1229618.internalRefUUID))
(1891) Project
Output [6]: [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621]
Input [6]: [internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621, systemId#1229616]
(1892) Exchange
Input [6]: [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929706]
(1893) BroadcastExchange
Input [6]: [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1931884]
(1894) Scan parquet
Output [2]: [marketUnit#1229622, distributionCenters#1229628]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(1895) Filter
Input [2]: [marketUnit#1229622, distributionCenters#1229628]
Condition : (((marketUnit#1229622 <=> AUTO_MUV2) AND (size(distributionCenters#1229628, true) > 0)) AND isnotnull(distributionCenters#1229628))
(1896) Project
Output [1]: [distributionCenters#1229628]
Input [2]: [marketUnit#1229622, distributionCenters#1229628]
(1897) Exchange
Input [1]: [distributionCenters#1229628]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929710]
(1898) Generate
Input [1]: [distributionCenters#1229628]
Arguments: explode(distributionCenters#1229628), false, [distributionCenters#1229644]
(1899) Filter
Input [1]: [distributionCenters#1229644]
Condition : (((size(distributionCenters#1229644.storageLocations, true) > 0) AND isnotnull(distributionCenters#1229644.storageLocations)) AND isnotnull(distributionCenters#1229644.internalRefUUID))
(1900) Project
Output [2]: [distributionCenters#1229644.internalRefUUID AS _extract_internalRefUUID#1233409, distributionCenters#1229644.storageLocations AS _extract_storageLocations#1233410]
Input [1]: [distributionCenters#1229644]
(1901) Generate
Input [2]: [_extract_internalRefUUID#1233409, _extract_storageLocations#1233410]
Arguments: explode(_extract_storageLocations#1233410), [_extract_internalRefUUID#1233409], false, [storageLocations#1229645]
(1902) Project
Output [3]: [_extract_internalRefUUID#1233409 AS plantUuid#1229647, storageLocations#1229645.id AS storageLocId#1229648, storageLocations#1229645.internalRefUUID AS storageLocUuid#1229649]
Input [2]: [_extract_internalRefUUID#1233409, storageLocations#1229645]
(1903) BroadcastExchange
Input [3]: [plantUuid#1229647, storageLocId#1229648, storageLocUuid#1229649]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931880]
(1904) Scan parquet
Output [2]: [product#1229650, plant#1229651]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(1905) Filter
Input [2]: [product#1229650, plant#1229651]
Condition : isnotnull(plant#1229651)
(1906) Exchange
Input [2]: [product#1229650, plant#1229651]
Arguments: hashpartitioning(product#1229650, plant#1229651, 37), REPARTITION_BY_NUM, [plan_id=1930907]
(1907) Scan parquet
Output [4]: [plant#1229656, product#1229657, productionAspect#1229659, systemId#1229654]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1908) Project
Output [4]: [plant#1229656.internalRefUUID AS _extract_internalRefUUID#1234082, product#1229657.internalRefUUID AS _extract_internalRefUUID#1234081, productionAspect#1229659.productMovementPlants.unitOfIssue.code AS _extract_code#1234083, productionAspect#1229659.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234084]
Input [4]: [plant#1229656, product#1229657, productionAspect#1229659, systemId#1229654]
(1909) Exchange
Input [4]: [_extract_internalRefUUID#1234082, _extract_internalRefUUID#1234081, _extract_code#1234083, _extract_internalRefUUID#1234084]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929722]
(1910) Project
Output [4]: [_extract_code#1234083, _extract_internalRefUUID#1234084, _extract_internalRefUUID#1234081, _extract_internalRefUUID#1234082]
Input [4]: [_extract_internalRefUUID#1234082, _extract_internalRefUUID#1234081, _extract_code#1234083, _extract_internalRefUUID#1234084]
(1911) BroadcastExchange
Input [4]: [_extract_code#1234083, _extract_internalRefUUID#1234084, _extract_internalRefUUID#1234081, _extract_internalRefUUID#1234082]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931860]
(1912) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229650, ), isnull(product#1229650), coalesce(plant#1229651, ), isnull(plant#1229651)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234081, ), isnull(_extract_internalRefUUID#1234081), coalesce(_extract_internalRefUUID#1234082, ), isnull(_extract_internalRefUUID#1234082)]
Join type: LeftOuter
Join condition: None
(1913) Project
Output [4]: [product#1229650, plant#1229651, _extract_code#1234083, _extract_internalRefUUID#1234084]
Input [6]: [product#1229650, plant#1229651, _extract_code#1234083, _extract_internalRefUUID#1234084, _extract_internalRefUUID#1234081, _extract_internalRefUUID#1234082]
(1914) Scan parquet
Output [2]: [internalUUID#1229664, systemId#1229663]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1915) Project
Output [1]: [internalUUID#1229664]
Input [2]: [internalUUID#1229664, systemId#1229663]
(1916) Exchange
Input [1]: [internalUUID#1229664]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929728]
(1917) BroadcastExchange
Input [1]: [internalUUID#1229664]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931864]
(1918) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229651, ), isnull(plant#1229651)]
Right keys [2]: [coalesce(internalUUID#1229664, ), isnull(internalUUID#1229664)]
Join type: LeftOuter
Join condition: None
(1919) Project
Output [4]: [product#1229650, plant#1229651, _extract_code#1234083, _extract_internalRefUUID#1234084]
Input [5]: [product#1229650, plant#1229651, _extract_code#1234083, _extract_internalRefUUID#1234084, internalUUID#1229664]
(1920) Scan parquet
Output [4]: [internalUUID#1229678, baseUnitOfMeasure#1229682, unitOfMeasureConversions#1229684, systemId#1229677]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1921) Filter
Input [4]: [internalUUID#1229678, baseUnitOfMeasure#1229682, unitOfMeasureConversions#1229684, systemId#1229677]
Condition : isnotnull(internalUUID#1229678)
(1922) Project
Output [3]: [internalUUID#1229678, baseUnitOfMeasure#1229682, unitOfMeasureConversions#1229684]
Input [4]: [internalUUID#1229678, baseUnitOfMeasure#1229682, unitOfMeasureConversions#1229684, systemId#1229677]
(1923) Exchange
Input [3]: [internalUUID#1229678, baseUnitOfMeasure#1229682, unitOfMeasureConversions#1229684]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929734]
(1924) BroadcastExchange
Input [3]: [internalUUID#1229678, baseUnitOfMeasure#1229682, unitOfMeasureConversions#1229684]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931868]
(1925) BroadcastHashJoin
Left keys [1]: [product#1229650]
Right keys [1]: [internalUUID#1229678]
Join type: LeftOuter
Join condition: None
(1926) Project
Output [2]: [plant#1229651, filter(unitOfMeasureConversions#1229684, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234083) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234084)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229682.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229682.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229689]
Input [7]: [product#1229650, plant#1229651, _extract_code#1234083, _extract_internalRefUUID#1234084, internalUUID#1229678, baseUnitOfMeasure#1229682, unitOfMeasureConversions#1229684]
(1927) Generate
Input [2]: [plant#1229651, filteredUnitOfMeasureConversions#1229689]
Arguments: explode(filteredUnitOfMeasureConversions#1229689.quantityNumerator), [plant#1229651, filteredUnitOfMeasureConversions#1229689], true, [quantityNumerator#1229690]
(1928) Project
Output [2]: [plant#1229651, filteredUnitOfMeasureConversions#1229689.quantityDenominator AS _extract_quantityDenominator#1233411]
Input [3]: [plant#1229651, filteredUnitOfMeasureConversions#1229689, quantityNumerator#1229690]
(1929) Generate
Input [2]: [plant#1229651, _extract_quantityDenominator#1233411]
Arguments: explode(_extract_quantityDenominator#1233411), [plant#1229651], true, [quantityDenominator#1229691]
(1930) Project
Output [1]: [plant#1229651]
Input [2]: [plant#1229651, quantityDenominator#1229691]
(1931) HashAggregate
Input [1]: [plant#1229651]
Keys [1]: [plant#1229651]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1229651]
(1932) Exchange
Input [1]: [plant#1229651]
Arguments: hashpartitioning(plant#1229651, 37), ENSURE_REQUIREMENTS, [plan_id=1931877]
(1933) HashAggregate
Input [1]: [plant#1229651]
Keys [1]: [plant#1229651]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1229651]
(1934) BroadcastHashJoin
Left keys [1]: [plantUuid#1229647]
Right keys [1]: [plant#1229651]
Join type: Inner
Join condition: None
(1935) Project
Output [3]: [plantUuid#1229647, storageLocId#1229648, storageLocUuid#1229649]
Input [4]: [plantUuid#1229647, storageLocId#1229648, storageLocUuid#1229649, plant#1229651]
(1936) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229619.internalRefUUID, ), isnull(plant#1229619.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1229647, ), isnull(plantUuid#1229647)]
Join type: Inner
Join condition: None
(1937) Generate
Input [9]: [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, stockQuantities#1229621, plantUuid#1229647, storageLocId#1229648, storageLocUuid#1229649]
Arguments: explode(filter(stockQuantities#1229621, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1229649) AND (lambda x#1225727.storageLocation.Id = storageLocId#1229648)), lambda x#1225727, false))), [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, plantUuid#1229647], false, [stockQuantity#1229694]
(1938) ObjectHashAggregate
Input [7]: [systemId#1229616, internalUUID#1229617, product#1229618, plant#1229619, calculationDateTime#1229620, plantUuid#1229647, stockQuantity#1229694]
Keys [5]: [plantUuid#1229647, internalUUID#1229617, plant#1229619, product#1229618, systemId#1229616]
Functions [2]: [partial_first(calculationDateTime#1229620, false), partial_collect_list(stockQuantity#1229694, 0, 0)]
Aggregate Attributes [3]: [first#1235103, valueSet#1235104, buf#1235105]
Results [8]: [plantUuid#1229647, internalUUID#1229617, plant#1229619, product#1229618, systemId#1229616, first#1235106, valueSet#1235107, buf#1235108]
(1939) ObjectHashAggregate
Input [8]: [plantUuid#1229647, internalUUID#1229617, plant#1229619, product#1229618, systemId#1229616, first#1235106, valueSet#1235107, buf#1235108]
Keys [5]: [plantUuid#1229647, internalUUID#1229617, plant#1229619, product#1229618, systemId#1229616]
Functions [2]: [first(calculationDateTime#1229620, false), collect_list(stockQuantity#1229694, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1229620)()#1225742, collect_list(stockQuantity#1229694, 0, 0)#1225743]
Results [4]: [product#1229618, plant#1229619, first(calculationDateTime#1229620)()#1225742 AS calculationDateTime#1229695, collect_list(stockQuantity#1229694, 0, 0)#1225743 AS stockQuantities#1229696]
(1940) Filter
Input [4]: [product#1229618, plant#1229619, calculationDateTime#1229695, stockQuantities#1229696]
Condition : ((size(stockQuantities#1229696, true) > 0) AND isnotnull(calculationDateTime#1229695))
(1941) Generate
Input [4]: [product#1229618, plant#1229619, calculationDateTime#1229695, stockQuantities#1229696]
Arguments: explode(stockQuantities#1229696), [product#1229618, plant#1229619, calculationDateTime#1229695], false, [stockQuantity#1229697]
(1942) Filter
Input [4]: [product#1229618, plant#1229619, calculationDateTime#1229695, stockQuantity#1229697]
Condition : (((isnotnull(stockQuantity#1229697.specialStockIndicator.code) AND isnotnull(stockQuantity#1229697.stockType.code)) AND (stockQuantity#1229697.specialStockIndicator.code = )) AND (stockQuantity#1229697.stockType.code = 01))
(1943) Project
Output [4]: [plant#1229619.internalRefUUID AS plantUuid#1229699, product#1229618.internalRefUUID AS productUuid#1229701, calculationDateTime#1229695, stockQuantity#1229697.storagelocation.id AS storageLocId#1229702]
Input [4]: [product#1229618, plant#1229619, calculationDateTime#1229695, stockQuantity#1229697]
(1944) Exchange
Input [4]: [plantUuid#1229699, productUuid#1229701, calculationDateTime#1229695, storageLocId#1229702]
Arguments: hashpartitioning(productUuid#1229701, plantUuid#1229699, 37), ENSURE_REQUIREMENTS, [plan_id=1931910]
(1945) Sort
Input [4]: [plantUuid#1229699, productUuid#1229701, calculationDateTime#1229695, storageLocId#1229702]
Arguments: [productUuid#1229701 ASC NULLS FIRST, plantUuid#1229699 ASC NULLS FIRST], false, 0
(1946) Scan parquet
Output [3]: [product#1229707, plant#1229708, orderDateTime#1229709]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(1947) Filter
Input [3]: [product#1229707, plant#1229708, orderDateTime#1229709]
Condition : ((isnotnull(orderDateTime#1229709) AND isnotnull(plant#1229708)) AND isnotnull(product#1229707))
(1948) Exchange
Input [3]: [product#1229707, plant#1229708, orderDateTime#1229709]
Arguments: hashpartitioning(product#1229707, plant#1229708, 37), REPARTITION_BY_NUM, [plan_id=1930930]
(1949) Scan parquet
Output [4]: [plant#1229713, product#1229714, productionAspect#1229716, systemId#1229711]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(1950) Project
Output [4]: [plant#1229713.internalRefUUID AS _extract_internalRefUUID#1234088, product#1229714.internalRefUUID AS _extract_internalRefUUID#1234085, productionAspect#1229716.productMovementPlants.unitOfIssue.code AS _extract_code#1234086, productionAspect#1229716.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234087]
Input [4]: [plant#1229713, product#1229714, productionAspect#1229716, systemId#1229711]
(1951) Exchange
Input [4]: [_extract_internalRefUUID#1234088, _extract_internalRefUUID#1234085, _extract_code#1234086, _extract_internalRefUUID#1234087]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929759]
(1952) Project
Output [4]: [_extract_code#1234086, _extract_internalRefUUID#1234087, _extract_internalRefUUID#1234085, _extract_internalRefUUID#1234088]
Input [4]: [_extract_internalRefUUID#1234088, _extract_internalRefUUID#1234085, _extract_code#1234086, _extract_internalRefUUID#1234087]
(1953) BroadcastExchange
Input [4]: [_extract_code#1234086, _extract_internalRefUUID#1234087, _extract_internalRefUUID#1234085, _extract_internalRefUUID#1234088]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931893]
(1954) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229707, ), isnull(product#1229707), coalesce(plant#1229708, ), isnull(plant#1229708)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234085, ), isnull(_extract_internalRefUUID#1234085), coalesce(_extract_internalRefUUID#1234088, ), isnull(_extract_internalRefUUID#1234088)]
Join type: LeftOuter
Join condition: None
(1955) Project
Output [5]: [product#1229707, plant#1229708, orderDateTime#1229709, _extract_code#1234086, _extract_internalRefUUID#1234087]
Input [7]: [product#1229707, plant#1229708, orderDateTime#1229709, _extract_code#1234086, _extract_internalRefUUID#1234087, _extract_internalRefUUID#1234085, _extract_internalRefUUID#1234088]
(1956) Scan parquet
Output [2]: [internalUUID#1229721, systemId#1229720]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(1957) Project
Output [1]: [internalUUID#1229721]
Input [2]: [internalUUID#1229721, systemId#1229720]
(1958) Exchange
Input [1]: [internalUUID#1229721]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929765]
(1959) BroadcastExchange
Input [1]: [internalUUID#1229721]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931897]
(1960) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1229708, ), isnull(plant#1229708)]
Right keys [2]: [coalesce(internalUUID#1229721, ), isnull(internalUUID#1229721)]
Join type: LeftOuter
Join condition: None
(1961) Project
Output [5]: [product#1229707, plant#1229708, orderDateTime#1229709, _extract_code#1234086, _extract_internalRefUUID#1234087]
Input [6]: [product#1229707, plant#1229708, orderDateTime#1229709, _extract_code#1234086, _extract_internalRefUUID#1234087, internalUUID#1229721]
(1962) Scan parquet
Output [4]: [internalUUID#1229735, baseUnitOfMeasure#1229739, unitOfMeasureConversions#1229741, systemId#1229734]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(1963) Filter
Input [4]: [internalUUID#1229735, baseUnitOfMeasure#1229739, unitOfMeasureConversions#1229741, systemId#1229734]
Condition : isnotnull(internalUUID#1229735)
(1964) Project
Output [3]: [internalUUID#1229735, baseUnitOfMeasure#1229739, unitOfMeasureConversions#1229741]
Input [4]: [internalUUID#1229735, baseUnitOfMeasure#1229739, unitOfMeasureConversions#1229741, systemId#1229734]
(1965) Exchange
Input [3]: [internalUUID#1229735, baseUnitOfMeasure#1229739, unitOfMeasureConversions#1229741]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929771]
(1966) BroadcastExchange
Input [3]: [internalUUID#1229735, baseUnitOfMeasure#1229739, unitOfMeasureConversions#1229741]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931901]
(1967) BroadcastHashJoin
Left keys [1]: [product#1229707]
Right keys [1]: [internalUUID#1229735]
Join type: LeftOuter
Join condition: None
(1968) Project
Output [4]: [product#1229707, plant#1229708, orderDateTime#1229709, filter(unitOfMeasureConversions#1229741, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234086) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234087)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1229739.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1229739.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1229746]
Input [8]: [product#1229707, plant#1229708, orderDateTime#1229709, _extract_code#1234086, _extract_internalRefUUID#1234087, internalUUID#1229735, baseUnitOfMeasure#1229739, unitOfMeasureConversions#1229741]
(1969) Generate
Input [4]: [product#1229707, plant#1229708, orderDateTime#1229709, filteredUnitOfMeasureConversions#1229746]
Arguments: explode(filteredUnitOfMeasureConversions#1229746.quantityNumerator), [product#1229707, plant#1229708, orderDateTime#1229709, filteredUnitOfMeasureConversions#1229746], true, [quantityNumerator#1229747]
(1970) Project
Output [4]: [product#1229707, plant#1229708, orderDateTime#1229709, filteredUnitOfMeasureConversions#1229746.quantityDenominator AS _extract_quantityDenominator#1233415]
Input [5]: [product#1229707, plant#1229708, orderDateTime#1229709, filteredUnitOfMeasureConversions#1229746, quantityNumerator#1229747]
(1971) Generate
Input [4]: [product#1229707, plant#1229708, orderDateTime#1229709, _extract_quantityDenominator#1233415]
Arguments: explode(_extract_quantityDenominator#1233415), [product#1229707, plant#1229708, orderDateTime#1229709], true, [quantityDenominator#1229748]
(1972) Project
Output [3]: [product#1229707, plant#1229708, orderDateTime#1229709]
Input [4]: [product#1229707, plant#1229708, orderDateTime#1229709, quantityDenominator#1229748]
(1973) Sort
Input [3]: [product#1229707, plant#1229708, orderDateTime#1229709]
Arguments: [product#1229707 ASC NULLS FIRST, plant#1229708 ASC NULLS FIRST], false, 0
(1974) SortMergeJoin
Left keys [2]: [productUuid#1229701, plantUuid#1229699]
Right keys [2]: [product#1229707, plant#1229708]
Join type: Inner
Join condition: (calculationDateTime#1229695 <= orderDateTime#1229709)
(1975) Project
Output [4]: [plantUuid#1229699 AS plant#1229751, productUuid#1229701 AS product#1229752, storageLocId#1229702, calculationDateTime#1229695]
Input [7]: [plantUuid#1229699, productUuid#1229701, calculationDateTime#1229695, storageLocId#1229702, product#1229707, plant#1229708, orderDateTime#1229709]
(1976) HashAggregate
Input [4]: [plant#1229751, product#1229752, storageLocId#1229702, calculationDateTime#1229695]
Keys [3]: [plant#1229751, product#1229752, storageLocId#1229702]
Functions [1]: [partial_max(calculationDateTime#1229695)]
Aggregate Attributes [1]: [max#1235101]
Results [4]: [plant#1229751, product#1229752, storageLocId#1229702, max#1235102]
(1977) HashAggregate
Input [4]: [plant#1229751, product#1229752, storageLocId#1229702, max#1235102]
Keys [3]: [plant#1229751, product#1229752, storageLocId#1229702]
Functions [1]: [max(calculationDateTime#1229695)]
Aggregate Attributes [1]: [max(calculationDateTime#1229695)#1225820]
Results [4]: [plant#1229751, product#1229752, storageLocId#1229702, max(calculationDateTime#1229695)#1225820 AS max_calc_datetime#1229753]
(1978) Exchange
Input [4]: [plant#1229751, product#1229752, storageLocId#1229702, max_calc_datetime#1229753]
Arguments: hashpartitioning(coalesce(plant#1229751, ), isnull(plant#1229751), coalesce(product#1229752, ), isnull(product#1229752), coalesce(storageLocId#1229702, ), isnull(storageLocId#1229702), coalesce(max_calc_datetime#1229753, 1970-01-01 00:00:00), isnull(max_calc_datetime#1229753), 37), ENSURE_REQUIREMENTS, [plan_id=1931920]
(1979) Sort
Input [4]: [plant#1229751, product#1229752, storageLocId#1229702, max_calc_datetime#1229753]
Arguments: [coalesce(plant#1229751, ) ASC NULLS FIRST, isnull(plant#1229751) ASC NULLS FIRST, coalesce(product#1229752, ) ASC NULLS FIRST, isnull(product#1229752) ASC NULLS FIRST, coalesce(storageLocId#1229702, ) ASC NULLS FIRST, isnull(storageLocId#1229702) ASC NULLS FIRST, coalesce(max_calc_datetime#1229753, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1229753) ASC NULLS FIRST], false, 0
(1980) SortMergeJoin
Left keys [8]: [coalesce(plant#1229614, ), isnull(plant#1229614), coalesce(product#1229615, ), isnull(product#1229615), coalesce(storageLocId#1229565, ), isnull(storageLocId#1229565), coalesce(calculationDateTime#1229558, 1970-01-01 00:00:00), isnull(calculationDateTime#1229558)]
Right keys [8]: [coalesce(plant#1229751, ), isnull(plant#1229751), coalesce(product#1229752, ), isnull(product#1229752), coalesce(storageLocId#1229702, ), isnull(storageLocId#1229702), coalesce(max_calc_datetime#1229753, 1970-01-01 00:00:00), isnull(max_calc_datetime#1229753)]
Join type: Inner
Join condition: None
(1981) Project
Output [4]: [plant#1229614, product#1229615, calculationDateTime#1229558, quantity#1229567]
Input [9]: [plant#1229614, product#1229615, storageLocId#1229565, calculationDateTime#1229558, quantity#1229567, plant#1229751, product#1229752, storageLocId#1229702, max_calc_datetime#1229753]
(1982) HashAggregate
Input [4]: [plant#1229614, product#1229615, calculationDateTime#1229558, quantity#1229567]
Keys [2]: [product#1229615, plant#1229614]
Functions [2]: [partial_min(calculationDateTime#1229558), partial_sum(quantity#1229567)]
Aggregate Attributes [2]: [min#1235091, sum#1235092]
Results [4]: [product#1229615, plant#1229614, min#1235093, sum#1235094]
(1983) Exchange
Input [4]: [product#1229615, plant#1229614, min#1235093, sum#1235094]
Arguments: hashpartitioning(product#1229615, plant#1229614, 37), ENSURE_REQUIREMENTS, [plan_id=1931927]
(1984) HashAggregate
Input [4]: [product#1229615, plant#1229614, min#1235093, sum#1235094]
Keys [2]: [product#1229615, plant#1229614]
Functions [2]: [min(calculationDateTime#1229558), sum(quantity#1229567)]
Aggregate Attributes [2]: [min(calculationDateTime#1229558)#1225976, sum(quantity#1229567)#1225975]
Results [4]: [product#1229615, plant#1229614, min(calculationDateTime#1229558)#1225976 AS minCalculationDateTime#1229755, round(sum(quantity#1229567)#1225975, 0) AS roundedQuantitySum#1229756]
(1985) Sort
Input [4]: [product#1229615, plant#1229614, minCalculationDateTime#1229755, roundedQuantitySum#1229756]
Arguments: [product#1229615 ASC NULLS FIRST, plant#1229614 ASC NULLS FIRST], false, 0
(1986) SortMergeJoin
Left keys [2]: [product#1229435, plant#1229436]
Right keys [2]: [product#1229615, plant#1229614]
Join type: LeftOuter
Join condition: None
(1987) Project
Output [8]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, CASE WHEN isnotnull(minCalculationDateTime#1229755) THEN minCalculationDateTime#1229755 ELSE orderDateTime#1229437 END AS stockDatetime#1229757, CASE WHEN isnotnull(roundedQuantitySum#1229756) THEN array(roundedQuantitySum#1229756) ELSE [0.0] END AS stockBatchQuantities#1229758]
Input [10]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, product#1229615, plant#1229614, minCalculationDateTime#1229755, roundedQuantitySum#1229756]
(1988) Scan parquet
Output [9]: [product#1229760, plant#1229761, demandChannel#1229762, demandStream#1229763, considerVariance#1229764, demandTimeBuckets#1229765, demandPointInTimeStart#1229766, demandPointInTimeEnd#1229767, demandPointInTime#1229768]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001356/0_1_10000001356]
PushedFilters: [IsNotNull(product), IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(1989) Filter
Input [9]: [product#1229760, plant#1229761, demandChannel#1229762, demandStream#1229763, considerVariance#1229764, demandTimeBuckets#1229765, demandPointInTimeStart#1229766, demandPointInTimeEnd#1229767, demandPointInTime#1229768]
Condition : (isnotnull(product#1229760) AND isnotnull(plant#1229761))
(1990) BroadcastExchange
Input [9]: [product#1229760, plant#1229761, demandChannel#1229762, demandStream#1229763, considerVariance#1229764, demandTimeBuckets#1229765, demandPointInTimeStart#1229766, demandPointInTimeEnd#1229767, demandPointInTime#1229768]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1931936]
(1991) BroadcastHashJoin
Left keys [2]: [product#1229435, plant#1229436]
Right keys [2]: [product#1229760, plant#1229761]
Join type: LeftOuter
Join condition: None
(1992) Project
Output [9]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, CASE WHEN isnotnull(product#1229760) THEN struct(demandChannel, demandChannel#1229762, demandStream, demandStream#1229763, considerVariance, considerVariance#1229764, demandTimeBuckets, demandTimeBuckets#1229765, demandPointInTimeStart, demandPointInTimeStart#1229766, demandPointInTimeEnd, demandPointInTimeEnd#1229767, demandPointInTime, demandPointInTime#1229768) END AS rawDemands#1229769]
Input [17]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, product#1229760, plant#1229761, demandChannel#1229762, demandStream#1229763, considerVariance#1229764, demandTimeBuckets#1229765, demandPointInTimeStart#1229766, demandPointInTimeEnd#1229767, demandPointInTime#1229768]
(1993) ObjectHashAggregate
Input [9]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, rawDemands#1229769]
Keys [9]: [product#1229435, plant#1229436, orderDateTime#1229437, knownfloatingpointnormalized(if (isnull(productPlant#1229447)) null else named_struct(systemId, productPlant#1229447.systemId, internalUUID, productPlant#1229447.internalUUID, plant, productPlant#1229447.plant, product, productPlant#1229447.product, blockedForReplenishmentStartingFrom, productPlant#1229447.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1229447.productionAspect)) null else named_struct(productMovementPlants, productPlant#1229447.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1229447.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1229447.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1229447.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1229447.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1229447.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1229447.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1229447.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1229447.salesPlant, listing, productPlant#1229447.listing)) AS productPlant#1229447, timezonecode#1229461, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1229478)) AS outboundUnit#1229478, stockDatetime#1229757, knownfloatingpointnormalized(transform(stockBatchQuantities#1229758, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1235088)), lambda arg#1235088, false))) AS stockBatchQuantities#1229758, [7226582400000000] AS [7226582400000000]#1235087]
Functions [1]: [partial_collect_list(rawDemands#1229769, 0, 0)]
Aggregate Attributes [1]: [buf#1235089]
Results [10]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, [7226582400000000]#1235087, buf#1235090]
(1994) ObjectHashAggregate
Input [10]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, [7226582400000000]#1235087, buf#1235090]
Keys [9]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, [7226582400000000]#1235087]
Functions [1]: [collect_list(rawDemands#1229769, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1229769, 0, 0)#1226069]
Results [10]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1229759, collect_list(rawDemands#1229769, 0, 0)#1226069 AS rawDemands#1229770]
(1995) DeserializeToObject
Input [10]: [product#1229435, plant#1229436, orderDateTime#1229437, productPlant#1229447, timezonecode#1229461, outboundUnit#1229478, stockDatetime#1229757, stockBatchQuantities#1229758, stockBatchShelfLifeEndDatetimes#1229759, rawDemands#1229770]
Arguments: createexternalrow(invoke(product#1229435.toString()), invoke(plant#1229436.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1229437)), if (isnull(productPlant#1229447)) null else createexternalrow(invoke(productPlant#1229447.systemId.toString()), invoke(productPlant#1229447.internalUUID.toString()), if (isnull(productPlant#1229447.plant)) null else createexternalrow(invoke(productPlant#1229447.plant.internalRefUUID.toString()), invoke(productPlant#1229447.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1229447.product)) null else createexternalrow(invoke(productPlant#1229447.product.internalRefUUID.toString()), invoke(productPlant#1229447.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1229447.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1229447.productionAspect)) null else createexternalrow(if (isnull(productPlant#1229447.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1229447.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1229447.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1229447.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1229447.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1229447.salesPlant)) null else createexternalrow(if (isnull(productPlant#1229447.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1229447.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1229447.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1229447.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1229461.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1229478)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1229757)), mapobjects(lambdavariable(MapObject, DoubleType, true, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1229758, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), stockBatchShelfLifeEndDatetimes#1229759, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1229770, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(1996) MapElements
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(1997) SerializeFromObject
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1229771, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1229772]
(1998) Exchange
Input [2]: [product#1229771, plant#1229772]
Arguments: hashpartitioning(coalesce(plant#1229772, ), isnull(plant#1229772), coalesce(product#1229771, ), isnull(product#1229771), 37), ENSURE_REQUIREMENTS, [plan_id=1931947]
(1999) Sort
Input [2]: [product#1229771, plant#1229772]
Arguments: [coalesce(plant#1229772, ) ASC NULLS FIRST, isnull(plant#1229772) ASC NULLS FIRST, coalesce(product#1229771, ) ASC NULLS FIRST, isnull(product#1229771) ASC NULLS FIRST], false, 0
(2000) SortMergeJoin
Left keys [4]: [coalesce(plant#1229111, ), isnull(plant#1229111), coalesce(product#1229110, ), isnull(product#1229110)]
Right keys [4]: [coalesce(plant#1229772, ), isnull(plant#1229772), coalesce(product#1229771, ), isnull(product#1229771)]
Join type: LeftOuter
Join condition: None
(2001) Project
Output [3]: [product#1229110, plant#1229111, stockDatetime#1229432]
Input [5]: [product#1229110, plant#1229111, stockDatetime#1229432, product#1229771, plant#1229772]
(2002) Scan parquet
Output [6]: [internalUUID#1229776, id#1229777, supplier#1229779, isMarkedForDeletion#1229782, items#1229783, systemId#1229775]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-procurement-purchaseorder]
PushedFilters: [IsNotNull(isMarkedForDeletion), Not(EqualTo(isMarkedForDeletion,true)), IsNotNull(items)]
ReadSchema: struct<internalUUID:string,id:string,supplier:struct<internalRefUUID:string,id:string>,isMarkedForDeletion:boolean,items:array<struct<number:string,completeIndicator:boolean,returnIndicator:boolean,deletionIndicator:boolean,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,quantityNumerator:double,quantityDenominator:double,scheduleLines:array<struct<number:string,deliveryAt:timestamp,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,receivedQuantity:double,deliveredQuantity:double,productAvailabilityDateTime:timestamp>>,confirmations:array<struct<number:string,confirmationCategory:struct<internalRefUUID:string,code:string>,confirmationDeliveryDate:date,confirmedDeliveryAt:timestamp,confirmedQuantity:double,mrpRelevantQuantity:double,confirmationCreationCategory:string,deletionIndicator:boolean,isRelevantForConfirmation:boolean,delivery:struct<internalRefUUID:string,id:string>,deliveryItemNumber:string>>>>>
(2003) Filter
Input [6]: [internalUUID#1229776, id#1229777, supplier#1229779, isMarkedForDeletion#1229782, items#1229783, systemId#1229775]
Condition : (((isnotnull(isMarkedForDeletion#1229782) AND NOT isMarkedForDeletion#1229782) AND (size(items#1229783, true) > 0)) AND isnotnull(items#1229783))
(2004) Project
Output [4]: [internalUUID#1229776, id#1229777, supplier#1229779, items#1229783]
Input [6]: [internalUUID#1229776, id#1229777, supplier#1229779, isMarkedForDeletion#1229782, items#1229783, systemId#1229775]
(2005) Exchange
Input [4]: [internalUUID#1229776, id#1229777, supplier#1229779, items#1229783]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929803]
(2006) Generate
Input [4]: [internalUUID#1229776, id#1229777, supplier#1229779, items#1229783]
Arguments: explode(items#1229783), [internalUUID#1229776, id#1229777, supplier#1229779], false, [item#1229784]
(2007) Filter
Input [4]: [internalUUID#1229776, id#1229777, supplier#1229779, item#1229784]
Condition : ((((isnotnull(item#1229784.deletionIndicator) AND isnotnull(item#1229784.completeIndicator)) AND isnotnull(item#1229784.returnIndicator)) AND ((NOT item#1229784.deletionIndicator AND NOT item#1229784.completeIndicator) AND NOT item#1229784.returnIndicator)) AND isnotnull(item#1229784.product.internalRefUUID))
(2008) Project
Output [9]: [id#1229777, internalUUID#1229776, supplier#1229779.internalRefUUID AS supplierUuid#1229785, item#1229784.product.internalRefUUID AS product#1229787, item#1229784.quantityUnit.code AS quantityUom#1229791, item#1229784.quantityUnit.internalRefUUID AS quantityUomUuid#1229792, item#1229784.quantityNumerator AS quantityNumerator#1229793, item#1229784.quantityDenominator AS quantityDenominator#1229794, item#1229784.scheduleLines AS scheduleLines#1229795]
Input [4]: [internalUUID#1229776, id#1229777, supplier#1229779, item#1229784]
(2009) BroadcastExchange
Input [9]: [id#1229777, internalUUID#1229776, supplierUuid#1229785, product#1229787, quantityUom#1229791, quantityUomUuid#1229792, quantityNumerator#1229793, quantityDenominator#1229794, scheduleLines#1229795]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, string, true], ), isnull(input[3, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true])),false), [plan_id=1931953]
(2010) BroadcastHashJoin
Left keys [4]: [coalesce(product#1229110, ), isnull(product#1229110), coalesce(plant#1229111, ), isnull(plant#1229111)]
Right keys [4]: [coalesce(product#1229787, ), isnull(product#1229787), coalesce(supplierUuid#1229785, ), isnull(supplierUuid#1229785)]
Join type: Inner
Join condition: None
(2011) Project
Output [3]: [product#1229787, plant#1229111, filter(transform(filter(transform(scheduleLines#1229795, lambdafunction(struct(openQty, (greatest((lambda x_154#1229088.quantity - coalesce(lambda x_154#1229088.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_154#1229088.productAvailabilityDateTime, lambda x_154#1229088.deliveryAt)), lambda x_154#1229088, false)), lambdafunction((lambda x_155#1229089.availabilityDatetime < stockDatetime#1229432), lambda x_155#1229089, false)), lambdafunction(struct(documentId, id#1229777, documentUuid, internalUUID#1229776, openQty, lambda x_156#1229090.openQty, openQtyInBaseUnit, ((lambda x_156#1229090.openQty * quantityNumerator#1229793) / quantityDenominator#1229794), qtyUom, quantityUom#1229791, qtyUomUuid, quantityUomUuid#1229792, availabilityDatetime, lambda x_156#1229090.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_156#1229090, false)), lambdafunction(NOT (lambda x_157#1229091.openQty = 0.0), lambda x_157#1229091, false)) AS openGoodsMovements#1229087]
Input [12]: [product#1229110, plant#1229111, stockDatetime#1229432, id#1229777, internalUUID#1229776, supplierUuid#1229785, product#1229787, quantityUom#1229791, quantityUomUuid#1229792, quantityNumerator#1229793, quantityDenominator#1229794, scheduleLines#1229795]
(2012) ObjectHashAggregate
Input [3]: [product#1229787, plant#1229111, openGoodsMovements#1229087]
Keys [2]: [product#1229787, plant#1229111]
Functions [1]: [partial_collect_list(openGoodsMovements#1229087, 0, 0)]
Aggregate Attributes [1]: [buf#1235069]
Results [3]: [product#1229787, plant#1229111, buf#1235070]
(2013) Exchange
Input [3]: [product#1229787, plant#1229111, buf#1235070]
Arguments: hashpartitioning(product#1229787, plant#1229111, 37), ENSURE_REQUIREMENTS, [plan_id=1931958]
(2014) ObjectHashAggregate
Input [3]: [product#1229787, plant#1229111, buf#1235070]
Keys [2]: [product#1229787, plant#1229111]
Functions [1]: [collect_list(openGoodsMovements#1229087, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1229087, 0, 0)#1229109]
Results [3]: [product#1229787, plant#1229111, flatten(collect_list(openGoodsMovements#1229087, 0, 0)#1229109) AS openGoodsMovements#1229092]
(2015) Filter
Input [3]: [product#1229787, plant#1229111, openGoodsMovements#1229092]
Condition : (size(openGoodsMovements#1229092, false) > 0)
(2016) Union
(2017) ObjectHashAggregate
Input [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Keys [2]: [product#1226471, plant#1226470]
Functions [1]: [partial_collect_list(openGoodsMovements#1228787, 0, 0)]
Aggregate Attributes [1]: [buf#1235067]
Results [3]: [product#1226471, plant#1226470, buf#1235068]
(2018) Exchange
Input [3]: [product#1226471, plant#1226470, buf#1235068]
Arguments: hashpartitioning(product#1226471, plant#1226470, 37), ENSURE_REQUIREMENTS, [plan_id=1931964]
(2019) ObjectHashAggregate
Input [3]: [product#1226471, plant#1226470, buf#1235068]
Keys [2]: [product#1226471, plant#1226470]
Functions [1]: [collect_list(openGoodsMovements#1228787, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1228787, 0, 0)#1229851]
Results [3]: [product#1226471, plant#1226470, flatten(collect_list(openGoodsMovements#1228787, 0, 0)#1229851) AS openGoodsMovements#1229847]
(2020) Project
Output [5]: [product#1226471, plant#1226470, openGoodsMovements#1229847.openQtyInBaseUnit AS _extract_openQtyInBaseUnit#1233509, openGoodsMovements#1229847.availabilityDatetime AS _extract_availabilityDatetime#1233510, openGoodsMovements#1229847.shelfLifeEndDatetime AS _extract_shelfLifeEndDatetime#1233511]
Input [3]: [product#1226471, plant#1226470, openGoodsMovements#1229847]
(2021) Sort
Input [5]: [product#1226471, plant#1226470, _extract_openQtyInBaseUnit#1233509, _extract_availabilityDatetime#1233510, _extract_shelfLifeEndDatetime#1233511]
Arguments: [product#1226471 ASC NULLS FIRST, plant#1226470 ASC NULLS FIRST], false, 0
(2022) SortMergeJoin
Left keys [2]: [product#1225622, plant#1225623]
Right keys [2]: [product#1226471, plant#1226470]
Join type: LeftOuter
Join condition: None
(2023) Project
Output [10]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103, coalesce(_extract_openQtyInBaseUnit#1233509, []) AS openGoodsMovementQuantities#1230566, coalesce(_extract_availabilityDatetime#1233510, []) AS openGoodsMovementAvailabilityDatetimes#1230567, coalesce(_extract_shelfLifeEndDatetime#1233511, []) AS openGoodsMovementShelfLifeEndDatetimes#1230568]
Input [12]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103, product#1226471, plant#1226470, _extract_openQtyInBaseUnit#1233509, _extract_availabilityDatetime#1233510, _extract_shelfLifeEndDatetime#1233511]
(2024) Scan parquet
Output [3]: [product#1230868, plant#1230869, orderDateTime#1230870]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2025) Exchange
Input [3]: [product#1230868, plant#1230869, orderDateTime#1230870]
Arguments: hashpartitioning(product#1230868, plant#1230869, 37), REPARTITION_BY_NUM, [plan_id=1929819]
(2026) Scan parquet
Output [8]: [internalUUID#1230873, plant#1230874, product#1230875, blockedForReplenishmentStartingFrom#1230876, productionAspect#1230877, salesPlant#1230878, listing#1230879, systemId#1230872]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>
(2027) Project
Output [8]: [systemId#1230872, internalUUID#1230873, plant#1230874, product#1230875, blockedForReplenishmentStartingFrom#1230876, productionAspect#1230877, salesPlant#1230878, listing#1230879]
Input [8]: [internalUUID#1230873, plant#1230874, product#1230875, blockedForReplenishmentStartingFrom#1230876, productionAspect#1230877, salesPlant#1230878, listing#1230879, systemId#1230872]
(2028) Exchange
Input [8]: [systemId#1230872, internalUUID#1230873, plant#1230874, product#1230875, blockedForReplenishmentStartingFrom#1230876, productionAspect#1230877, salesPlant#1230878, listing#1230879]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929822]
(2029) Project
Output [1]: [struct(systemId, systemId#1230872, internalUUID, internalUUID#1230873, plant, plant#1230874, product, product#1230875, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1230876, productionAspect, productionAspect#1230877, salesPlant, salesPlant#1230878, listing, listing#1230879) AS productPlant#1230880]
Input [8]: [systemId#1230872, internalUUID#1230873, plant#1230874, product#1230875, blockedForReplenishmentStartingFrom#1230876, productionAspect#1230877, salesPlant#1230878, listing#1230879]
(2030) BroadcastExchange
Input [1]: [productPlant#1230880]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1931974]
(2031) BroadcastHashJoin
Left keys [4]: [coalesce(product#1230868, ), isnull(product#1230868), coalesce(plant#1230869, ), isnull(plant#1230869)]
Right keys [4]: [coalesce(productPlant#1230880.product.internalRefUUID, ), isnull(productPlant#1230880.product.internalRefUUID), coalesce(productPlant#1230880.plant.internalRefUUID, ), isnull(productPlant#1230880.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(2032) Scan parquet
Output [3]: [internalUUID#1230882, address#1230888, systemId#1230881]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(2033) Project
Output [2]: [internalUUID#1230882, address#1230888.timeZone.code AS timezonecode#1230893]
Input [3]: [internalUUID#1230882, address#1230888, systemId#1230881]
(2034) Exchange
Input [2]: [internalUUID#1230882, timezonecode#1230893]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929827]
(2035) BroadcastExchange
Input [2]: [internalUUID#1230882, timezonecode#1230893]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931977]
(2036) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1230869, ), isnull(plant#1230869)]
Right keys [2]: [coalesce(internalUUID#1230882, ), isnull(internalUUID#1230882)]
Join type: LeftOuter
Join condition: None
(2037) Project
Output [5]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, CASE WHEN isnotnull(timezonecode#1230893) THEN timezonecode#1230893 ELSE UTC END AS timezonecode#1230894]
Input [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, internalUUID#1230882, timezonecode#1230893]
(2038) Scan parquet
Output [4]: [internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902, systemId#1230895]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2039) Filter
Input [4]: [internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902, systemId#1230895]
Condition : isnotnull(internalUUID#1230896)
(2040) Project
Output [3]: [internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902]
Input [4]: [internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902, systemId#1230895]
(2041) Exchange
Input [3]: [internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929833]
(2042) BroadcastExchange
Input [3]: [internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931981]
(2043) BroadcastHashJoin
Left keys [1]: [product#1230868]
Right keys [1]: [internalUUID#1230896]
Join type: LeftOuter
Join condition: None
(2044) Project
Output [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, filter(unitOfMeasureConversions#1230902, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230900.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230900.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230907]
Input [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, internalUUID#1230896, baseUnitOfMeasure#1230900, unitOfMeasureConversions#1230902]
(2045) Project
Output [7]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, filteredUnitOfMeasureConversions#1230907.quantityDenominator AS _extract_quantityDenominator#1233629, filteredUnitOfMeasureConversions#1230907.quantityNumerator AS _extract_quantityNumerator#1233630]
Input [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, filteredUnitOfMeasureConversions#1230907]
(2046) Generate
Input [7]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, _extract_quantityDenominator#1233629, _extract_quantityNumerator#1233630]
Arguments: explode(_extract_quantityNumerator#1233630), [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, _extract_quantityDenominator#1233629], true, [quantityNumerator#1230908]
(2047) Generate
Input [7]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, _extract_quantityDenominator#1233629, quantityNumerator#1230908]
Arguments: explode(_extract_quantityDenominator#1233629), [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, quantityNumerator#1230908], true, [quantityDenominator#1230909]
(2048) Project
Output [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, (cast(quantityNumerator#1230908 as double) / cast(quantityDenominator#1230909 as double)) AS outboundUnit#1230910]
Input [7]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, quantityNumerator#1230908, quantityDenominator#1230909]
(2049) Project
Output [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, CASE WHEN (isnull(outboundUnit#1230910) OR (outboundUnit#1230910 <= 0.0)) THEN 1.0 ELSE outboundUnit#1230910 END AS outboundUnit#1230911]
Input [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230910]
(2050) Sort
Input [6]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911]
Arguments: [product#1230868 ASC NULLS FIRST, plant#1230869 ASC NULLS FIRST], false, 0
(2051) Scan parquet
Output [6]: [internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917, systemId#1230912]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(2052) Filter
Input [6]: [internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917, systemId#1230912]
Condition : (isnotnull(plant#1230915.internalRefUUID) AND isnotnull(product#1230914.internalRefUUID))
(2053) Project
Output [6]: [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917]
Input [6]: [internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917, systemId#1230912]
(2054) Exchange
Input [6]: [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929844]
(2055) BroadcastExchange
Input [6]: [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1932013]
(2056) Scan parquet
Output [2]: [marketUnit#1230918, distributionCenters#1230924]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(2057) Filter
Input [2]: [marketUnit#1230918, distributionCenters#1230924]
Condition : (((marketUnit#1230918 <=> AUTO_MUV2) AND (size(distributionCenters#1230924, true) > 0)) AND isnotnull(distributionCenters#1230924))
(2058) Project
Output [1]: [distributionCenters#1230924]
Input [2]: [marketUnit#1230918, distributionCenters#1230924]
(2059) Exchange
Input [1]: [distributionCenters#1230924]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929848]
(2060) Generate
Input [1]: [distributionCenters#1230924]
Arguments: explode(distributionCenters#1230924), false, [distributionCenters#1230940]
(2061) Filter
Input [1]: [distributionCenters#1230940]
Condition : (((size(distributionCenters#1230940.storageLocations, true) > 0) AND isnotnull(distributionCenters#1230940.storageLocations)) AND isnotnull(distributionCenters#1230940.internalRefUUID))
(2062) Project
Output [2]: [distributionCenters#1230940.internalRefUUID AS _extract_internalRefUUID#1233421, distributionCenters#1230940.storageLocations AS _extract_storageLocations#1233422]
Input [1]: [distributionCenters#1230940]
(2063) Generate
Input [2]: [_extract_internalRefUUID#1233421, _extract_storageLocations#1233422]
Arguments: explode(_extract_storageLocations#1233422), [_extract_internalRefUUID#1233421], false, [storageLocations#1230941]
(2064) Project
Output [3]: [_extract_internalRefUUID#1233421 AS plantUuid#1230943, storageLocations#1230941.id AS storageLocId#1230944, storageLocations#1230941.internalRefUUID AS storageLocUuid#1230945]
Input [2]: [_extract_internalRefUUID#1233421, storageLocations#1230941]
(2065) BroadcastExchange
Input [3]: [plantUuid#1230943, storageLocId#1230944, storageLocUuid#1230945]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932009]
(2066) Scan parquet
Output [2]: [product#1230946, plant#1230947]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(2067) Filter
Input [2]: [product#1230946, plant#1230947]
Condition : isnotnull(plant#1230947)
(2068) Exchange
Input [2]: [product#1230946, plant#1230947]
Arguments: hashpartitioning(product#1230946, plant#1230947, 37), REPARTITION_BY_NUM, [plan_id=1930971]
(2069) Scan parquet
Output [4]: [plant#1230952, product#1230953, productionAspect#1230955, systemId#1230950]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2070) Project
Output [4]: [plant#1230952.internalRefUUID AS _extract_internalRefUUID#1234089, product#1230953.internalRefUUID AS _extract_internalRefUUID#1234090, productionAspect#1230955.productMovementPlants.unitOfIssue.code AS _extract_code#1234091, productionAspect#1230955.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234092]
Input [4]: [plant#1230952, product#1230953, productionAspect#1230955, systemId#1230950]
(2071) Exchange
Input [4]: [_extract_internalRefUUID#1234089, _extract_internalRefUUID#1234090, _extract_code#1234091, _extract_internalRefUUID#1234092]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929860]
(2072) Project
Output [4]: [_extract_code#1234091, _extract_internalRefUUID#1234092, _extract_internalRefUUID#1234090, _extract_internalRefUUID#1234089]
Input [4]: [_extract_internalRefUUID#1234089, _extract_internalRefUUID#1234090, _extract_code#1234091, _extract_internalRefUUID#1234092]
(2073) BroadcastExchange
Input [4]: [_extract_code#1234091, _extract_internalRefUUID#1234092, _extract_internalRefUUID#1234090, _extract_internalRefUUID#1234089]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1931989]
(2074) BroadcastHashJoin
Left keys [4]: [coalesce(product#1230946, ), isnull(product#1230946), coalesce(plant#1230947, ), isnull(plant#1230947)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234090, ), isnull(_extract_internalRefUUID#1234090), coalesce(_extract_internalRefUUID#1234089, ), isnull(_extract_internalRefUUID#1234089)]
Join type: LeftOuter
Join condition: None
(2075) Project
Output [4]: [product#1230946, plant#1230947, _extract_code#1234091, _extract_internalRefUUID#1234092]
Input [6]: [product#1230946, plant#1230947, _extract_code#1234091, _extract_internalRefUUID#1234092, _extract_internalRefUUID#1234090, _extract_internalRefUUID#1234089]
(2076) Scan parquet
Output [2]: [internalUUID#1230960, systemId#1230959]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2077) Project
Output [1]: [internalUUID#1230960]
Input [2]: [internalUUID#1230960, systemId#1230959]
(2078) Exchange
Input [1]: [internalUUID#1230960]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929866]
(2079) BroadcastExchange
Input [1]: [internalUUID#1230960]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1931993]
(2080) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1230947, ), isnull(plant#1230947)]
Right keys [2]: [coalesce(internalUUID#1230960, ), isnull(internalUUID#1230960)]
Join type: LeftOuter
Join condition: None
(2081) Project
Output [4]: [product#1230946, plant#1230947, _extract_code#1234091, _extract_internalRefUUID#1234092]
Input [5]: [product#1230946, plant#1230947, _extract_code#1234091, _extract_internalRefUUID#1234092, internalUUID#1230960]
(2082) Scan parquet
Output [4]: [internalUUID#1230974, baseUnitOfMeasure#1230978, unitOfMeasureConversions#1230980, systemId#1230973]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2083) Filter
Input [4]: [internalUUID#1230974, baseUnitOfMeasure#1230978, unitOfMeasureConversions#1230980, systemId#1230973]
Condition : isnotnull(internalUUID#1230974)
(2084) Project
Output [3]: [internalUUID#1230974, baseUnitOfMeasure#1230978, unitOfMeasureConversions#1230980]
Input [4]: [internalUUID#1230974, baseUnitOfMeasure#1230978, unitOfMeasureConversions#1230980, systemId#1230973]
(2085) Exchange
Input [3]: [internalUUID#1230974, baseUnitOfMeasure#1230978, unitOfMeasureConversions#1230980]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929872]
(2086) BroadcastExchange
Input [3]: [internalUUID#1230974, baseUnitOfMeasure#1230978, unitOfMeasureConversions#1230980]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1931997]
(2087) BroadcastHashJoin
Left keys [1]: [product#1230946]
Right keys [1]: [internalUUID#1230974]
Join type: LeftOuter
Join condition: None
(2088) Project
Output [2]: [plant#1230947, filter(unitOfMeasureConversions#1230980, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234091) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234092)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1230978.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1230978.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1230985]
Input [7]: [product#1230946, plant#1230947, _extract_code#1234091, _extract_internalRefUUID#1234092, internalUUID#1230974, baseUnitOfMeasure#1230978, unitOfMeasureConversions#1230980]
(2089) Generate
Input [2]: [plant#1230947, filteredUnitOfMeasureConversions#1230985]
Arguments: explode(filteredUnitOfMeasureConversions#1230985.quantityNumerator), [plant#1230947, filteredUnitOfMeasureConversions#1230985], true, [quantityNumerator#1230986]
(2090) Project
Output [2]: [plant#1230947, filteredUnitOfMeasureConversions#1230985.quantityDenominator AS _extract_quantityDenominator#1233423]
Input [3]: [plant#1230947, filteredUnitOfMeasureConversions#1230985, quantityNumerator#1230986]
(2091) Generate
Input [2]: [plant#1230947, _extract_quantityDenominator#1233423]
Arguments: explode(_extract_quantityDenominator#1233423), [plant#1230947], true, [quantityDenominator#1230987]
(2092) Project
Output [1]: [plant#1230947]
Input [2]: [plant#1230947, quantityDenominator#1230987]
(2093) HashAggregate
Input [1]: [plant#1230947]
Keys [1]: [plant#1230947]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1230947]
(2094) Exchange
Input [1]: [plant#1230947]
Arguments: hashpartitioning(plant#1230947, 37), ENSURE_REQUIREMENTS, [plan_id=1932006]
(2095) HashAggregate
Input [1]: [plant#1230947]
Keys [1]: [plant#1230947]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1230947]
(2096) BroadcastHashJoin
Left keys [1]: [plantUuid#1230943]
Right keys [1]: [plant#1230947]
Join type: Inner
Join condition: None
(2097) Project
Output [3]: [plantUuid#1230943, storageLocId#1230944, storageLocUuid#1230945]
Input [4]: [plantUuid#1230943, storageLocId#1230944, storageLocUuid#1230945, plant#1230947]
(2098) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1230915.internalRefUUID, ), isnull(plant#1230915.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1230943, ), isnull(plantUuid#1230943)]
Join type: Inner
Join condition: None
(2099) Generate
Input [9]: [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, stockQuantities#1230917, plantUuid#1230943, storageLocId#1230944, storageLocUuid#1230945]
Arguments: explode(filter(stockQuantities#1230917, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1230945) AND (lambda x#1225727.storageLocation.Id = storageLocId#1230944)), lambda x#1225727, false))), [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, plantUuid#1230943], false, [stockQuantity#1230990]
(2100) ObjectHashAggregate
Input [7]: [systemId#1230912, internalUUID#1230913, product#1230914, plant#1230915, calculationDateTime#1230916, plantUuid#1230943, stockQuantity#1230990]
Keys [5]: [plantUuid#1230943, internalUUID#1230913, plant#1230915, product#1230914, systemId#1230912]
Functions [2]: [partial_first(calculationDateTime#1230916, false), partial_collect_list(stockQuantity#1230990, 0, 0)]
Aggregate Attributes [3]: [first#1235113, valueSet#1235114, buf#1235115]
Results [8]: [plantUuid#1230943, internalUUID#1230913, plant#1230915, product#1230914, systemId#1230912, first#1235116, valueSet#1235117, buf#1235118]
(2101) ObjectHashAggregate
Input [8]: [plantUuid#1230943, internalUUID#1230913, plant#1230915, product#1230914, systemId#1230912, first#1235116, valueSet#1235117, buf#1235118]
Keys [5]: [plantUuid#1230943, internalUUID#1230913, plant#1230915, product#1230914, systemId#1230912]
Functions [2]: [first(calculationDateTime#1230916, false), collect_list(stockQuantity#1230990, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1230916)()#1225742, collect_list(stockQuantity#1230990, 0, 0)#1225743]
Results [4]: [product#1230914, plant#1230915, first(calculationDateTime#1230916)()#1225742 AS calculationDateTime#1230991, collect_list(stockQuantity#1230990, 0, 0)#1225743 AS stockQuantities#1230992]
(2102) Filter
Input [4]: [product#1230914, plant#1230915, calculationDateTime#1230991, stockQuantities#1230992]
Condition : ((size(stockQuantities#1230992, true) > 0) AND isnotnull(calculationDateTime#1230991))
(2103) Generate
Input [4]: [product#1230914, plant#1230915, calculationDateTime#1230991, stockQuantities#1230992]
Arguments: explode(stockQuantities#1230992), [product#1230914, plant#1230915, calculationDateTime#1230991], false, [stockQuantity#1230993]
(2104) Filter
Input [4]: [product#1230914, plant#1230915, calculationDateTime#1230991, stockQuantity#1230993]
Condition : (((isnotnull(stockQuantity#1230993.specialStockIndicator.code) AND isnotnull(stockQuantity#1230993.stockType.code)) AND (stockQuantity#1230993.specialStockIndicator.code = )) AND (stockQuantity#1230993.stockType.code = 01))
(2105) Project
Output [5]: [plant#1230915.internalRefUUID AS plantUuid#1230995, product#1230914.internalRefUUID AS productUuid#1230997, calculationDateTime#1230991, stockQuantity#1230993.storagelocation.id AS storageLocId#1230998, stockQuantity#1230993.quantity.measure AS quantity#1231000]
Input [4]: [product#1230914, plant#1230915, calculationDateTime#1230991, stockQuantity#1230993]
(2106) Exchange
Input [5]: [plantUuid#1230995, productUuid#1230997, calculationDateTime#1230991, storageLocId#1230998, quantity#1231000]
Arguments: hashpartitioning(productUuid#1230997, plantUuid#1230995, 37), ENSURE_REQUIREMENTS, [plan_id=1932039]
(2107) Sort
Input [5]: [plantUuid#1230995, productUuid#1230997, calculationDateTime#1230991, storageLocId#1230998, quantity#1231000]
Arguments: [productUuid#1230997 ASC NULLS FIRST, plantUuid#1230995 ASC NULLS FIRST], false, 0
(2108) Scan parquet
Output [3]: [product#1231003, plant#1231004, orderDateTime#1231005]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2109) Filter
Input [3]: [product#1231003, plant#1231004, orderDateTime#1231005]
Condition : ((isnotnull(orderDateTime#1231005) AND isnotnull(plant#1231004)) AND isnotnull(product#1231003))
(2110) Exchange
Input [3]: [product#1231003, plant#1231004, orderDateTime#1231005]
Arguments: hashpartitioning(product#1231003, plant#1231004, 37), REPARTITION_BY_NUM, [plan_id=1930994]
(2111) Scan parquet
Output [4]: [plant#1231009, product#1231010, productionAspect#1231012, systemId#1231007]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2112) Project
Output [4]: [plant#1231009.internalRefUUID AS _extract_internalRefUUID#1234096, product#1231010.internalRefUUID AS _extract_internalRefUUID#1234093, productionAspect#1231012.productMovementPlants.unitOfIssue.code AS _extract_code#1234094, productionAspect#1231012.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234095]
Input [4]: [plant#1231009, product#1231010, productionAspect#1231012, systemId#1231007]
(2113) Exchange
Input [4]: [_extract_internalRefUUID#1234096, _extract_internalRefUUID#1234093, _extract_code#1234094, _extract_internalRefUUID#1234095]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929897]
(2114) Project
Output [4]: [_extract_code#1234094, _extract_internalRefUUID#1234095, _extract_internalRefUUID#1234093, _extract_internalRefUUID#1234096]
Input [4]: [_extract_internalRefUUID#1234096, _extract_internalRefUUID#1234093, _extract_code#1234094, _extract_internalRefUUID#1234095]
(2115) BroadcastExchange
Input [4]: [_extract_code#1234094, _extract_internalRefUUID#1234095, _extract_internalRefUUID#1234093, _extract_internalRefUUID#1234096]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932022]
(2116) BroadcastHashJoin
Left keys [4]: [coalesce(product#1231003, ), isnull(product#1231003), coalesce(plant#1231004, ), isnull(plant#1231004)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234093, ), isnull(_extract_internalRefUUID#1234093), coalesce(_extract_internalRefUUID#1234096, ), isnull(_extract_internalRefUUID#1234096)]
Join type: LeftOuter
Join condition: None
(2117) Project
Output [5]: [product#1231003, plant#1231004, orderDateTime#1231005, _extract_code#1234094, _extract_internalRefUUID#1234095]
Input [7]: [product#1231003, plant#1231004, orderDateTime#1231005, _extract_code#1234094, _extract_internalRefUUID#1234095, _extract_internalRefUUID#1234093, _extract_internalRefUUID#1234096]
(2118) Scan parquet
Output [2]: [internalUUID#1231017, systemId#1231016]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2119) Project
Output [1]: [internalUUID#1231017]
Input [2]: [internalUUID#1231017, systemId#1231016]
(2120) Exchange
Input [1]: [internalUUID#1231017]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929903]
(2121) BroadcastExchange
Input [1]: [internalUUID#1231017]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932026]
(2122) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231004, ), isnull(plant#1231004)]
Right keys [2]: [coalesce(internalUUID#1231017, ), isnull(internalUUID#1231017)]
Join type: LeftOuter
Join condition: None
(2123) Project
Output [5]: [product#1231003, plant#1231004, orderDateTime#1231005, _extract_code#1234094, _extract_internalRefUUID#1234095]
Input [6]: [product#1231003, plant#1231004, orderDateTime#1231005, _extract_code#1234094, _extract_internalRefUUID#1234095, internalUUID#1231017]
(2124) Scan parquet
Output [4]: [internalUUID#1231031, baseUnitOfMeasure#1231035, unitOfMeasureConversions#1231037, systemId#1231030]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2125) Filter
Input [4]: [internalUUID#1231031, baseUnitOfMeasure#1231035, unitOfMeasureConversions#1231037, systemId#1231030]
Condition : isnotnull(internalUUID#1231031)
(2126) Project
Output [3]: [internalUUID#1231031, baseUnitOfMeasure#1231035, unitOfMeasureConversions#1231037]
Input [4]: [internalUUID#1231031, baseUnitOfMeasure#1231035, unitOfMeasureConversions#1231037, systemId#1231030]
(2127) Exchange
Input [3]: [internalUUID#1231031, baseUnitOfMeasure#1231035, unitOfMeasureConversions#1231037]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929909]
(2128) BroadcastExchange
Input [3]: [internalUUID#1231031, baseUnitOfMeasure#1231035, unitOfMeasureConversions#1231037]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932030]
(2129) BroadcastHashJoin
Left keys [1]: [product#1231003]
Right keys [1]: [internalUUID#1231031]
Join type: LeftOuter
Join condition: None
(2130) Project
Output [4]: [product#1231003, plant#1231004, orderDateTime#1231005, filter(unitOfMeasureConversions#1231037, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234094) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234095)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231035.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231035.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231042]
Input [8]: [product#1231003, plant#1231004, orderDateTime#1231005, _extract_code#1234094, _extract_internalRefUUID#1234095, internalUUID#1231031, baseUnitOfMeasure#1231035, unitOfMeasureConversions#1231037]
(2131) Generate
Input [4]: [product#1231003, plant#1231004, orderDateTime#1231005, filteredUnitOfMeasureConversions#1231042]
Arguments: explode(filteredUnitOfMeasureConversions#1231042.quantityNumerator), [product#1231003, plant#1231004, orderDateTime#1231005, filteredUnitOfMeasureConversions#1231042], true, [quantityNumerator#1231043]
(2132) Project
Output [4]: [product#1231003, plant#1231004, orderDateTime#1231005, filteredUnitOfMeasureConversions#1231042.quantityDenominator AS _extract_quantityDenominator#1233427]
Input [5]: [product#1231003, plant#1231004, orderDateTime#1231005, filteredUnitOfMeasureConversions#1231042, quantityNumerator#1231043]
(2133) Generate
Input [4]: [product#1231003, plant#1231004, orderDateTime#1231005, _extract_quantityDenominator#1233427]
Arguments: explode(_extract_quantityDenominator#1233427), [product#1231003, plant#1231004, orderDateTime#1231005], true, [quantityDenominator#1231044]
(2134) Project
Output [3]: [product#1231003, plant#1231004, orderDateTime#1231005]
Input [4]: [product#1231003, plant#1231004, orderDateTime#1231005, quantityDenominator#1231044]
(2135) Sort
Input [3]: [product#1231003, plant#1231004, orderDateTime#1231005]
Arguments: [product#1231003 ASC NULLS FIRST, plant#1231004 ASC NULLS FIRST], false, 0
(2136) SortMergeJoin
Left keys [2]: [productUuid#1230997, plantUuid#1230995]
Right keys [2]: [product#1231003, plant#1231004]
Join type: Inner
Join condition: (calculationDateTime#1230991 <= orderDateTime#1231005)
(2137) Project
Output [5]: [plantUuid#1230995 AS plant#1231047, productUuid#1230997 AS product#1231048, storageLocId#1230998, calculationDateTime#1230991, quantity#1231000]
Input [8]: [plantUuid#1230995, productUuid#1230997, calculationDateTime#1230991, storageLocId#1230998, quantity#1231000, product#1231003, plant#1231004, orderDateTime#1231005]
(2138) Exchange
Input [5]: [plant#1231047, product#1231048, storageLocId#1230998, calculationDateTime#1230991, quantity#1231000]
Arguments: hashpartitioning(coalesce(plant#1231047, ), isnull(plant#1231047), coalesce(product#1231048, ), isnull(product#1231048), coalesce(storageLocId#1230998, ), isnull(storageLocId#1230998), coalesce(calculationDateTime#1230991, 1970-01-01 00:00:00), isnull(calculationDateTime#1230991), 37), ENSURE_REQUIREMENTS, [plan_id=1932103]
(2139) Sort
Input [5]: [plant#1231047, product#1231048, storageLocId#1230998, calculationDateTime#1230991, quantity#1231000]
Arguments: [coalesce(plant#1231047, ) ASC NULLS FIRST, isnull(plant#1231047) ASC NULLS FIRST, coalesce(product#1231048, ) ASC NULLS FIRST, isnull(product#1231048) ASC NULLS FIRST, coalesce(storageLocId#1230998, ) ASC NULLS FIRST, isnull(storageLocId#1230998) ASC NULLS FIRST, coalesce(calculationDateTime#1230991, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1230991) ASC NULLS FIRST], false, 0
(2140) Scan parquet
Output [6]: [internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054, systemId#1231049]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(2141) Filter
Input [6]: [internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054, systemId#1231049]
Condition : (isnotnull(plant#1231052.internalRefUUID) AND isnotnull(product#1231051.internalRefUUID))
(2142) Project
Output [6]: [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054]
Input [6]: [internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054, systemId#1231049]
(2143) Exchange
Input [6]: [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929921]
(2144) BroadcastExchange
Input [6]: [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1932068]
(2145) Scan parquet
Output [2]: [marketUnit#1231055, distributionCenters#1231061]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(2146) Filter
Input [2]: [marketUnit#1231055, distributionCenters#1231061]
Condition : (((marketUnit#1231055 <=> AUTO_MUV2) AND (size(distributionCenters#1231061, true) > 0)) AND isnotnull(distributionCenters#1231061))
(2147) Project
Output [1]: [distributionCenters#1231061]
Input [2]: [marketUnit#1231055, distributionCenters#1231061]
(2148) Exchange
Input [1]: [distributionCenters#1231061]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929925]
(2149) Generate
Input [1]: [distributionCenters#1231061]
Arguments: explode(distributionCenters#1231061), false, [distributionCenters#1231077]
(2150) Filter
Input [1]: [distributionCenters#1231077]
Condition : (((size(distributionCenters#1231077.storageLocations, true) > 0) AND isnotnull(distributionCenters#1231077.storageLocations)) AND isnotnull(distributionCenters#1231077.internalRefUUID))
(2151) Project
Output [2]: [distributionCenters#1231077.internalRefUUID AS _extract_internalRefUUID#1233431, distributionCenters#1231077.storageLocations AS _extract_storageLocations#1233432]
Input [1]: [distributionCenters#1231077]
(2152) Generate
Input [2]: [_extract_internalRefUUID#1233431, _extract_storageLocations#1233432]
Arguments: explode(_extract_storageLocations#1233432), [_extract_internalRefUUID#1233431], false, [storageLocations#1231078]
(2153) Project
Output [3]: [_extract_internalRefUUID#1233431 AS plantUuid#1231080, storageLocations#1231078.id AS storageLocId#1231081, storageLocations#1231078.internalRefUUID AS storageLocUuid#1231082]
Input [2]: [_extract_internalRefUUID#1233431, storageLocations#1231078]
(2154) BroadcastExchange
Input [3]: [plantUuid#1231080, storageLocId#1231081, storageLocUuid#1231082]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932064]
(2155) Scan parquet
Output [2]: [product#1231083, plant#1231084]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(2156) Filter
Input [2]: [product#1231083, plant#1231084]
Condition : isnotnull(plant#1231084)
(2157) Exchange
Input [2]: [product#1231083, plant#1231084]
Arguments: hashpartitioning(product#1231083, plant#1231084, 37), REPARTITION_BY_NUM, [plan_id=1931007]
(2158) Scan parquet
Output [4]: [plant#1231089, product#1231090, productionAspect#1231092, systemId#1231087]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2159) Project
Output [4]: [plant#1231089.internalRefUUID AS _extract_internalRefUUID#1234099, product#1231090.internalRefUUID AS _extract_internalRefUUID#1234100, productionAspect#1231092.productMovementPlants.unitOfIssue.code AS _extract_code#1234097, productionAspect#1231092.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234098]
Input [4]: [plant#1231089, product#1231090, productionAspect#1231092, systemId#1231087]
(2160) Exchange
Input [4]: [_extract_internalRefUUID#1234099, _extract_internalRefUUID#1234100, _extract_code#1234097, _extract_internalRefUUID#1234098]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929937]
(2161) Project
Output [4]: [_extract_code#1234097, _extract_internalRefUUID#1234098, _extract_internalRefUUID#1234100, _extract_internalRefUUID#1234099]
Input [4]: [_extract_internalRefUUID#1234099, _extract_internalRefUUID#1234100, _extract_code#1234097, _extract_internalRefUUID#1234098]
(2162) BroadcastExchange
Input [4]: [_extract_code#1234097, _extract_internalRefUUID#1234098, _extract_internalRefUUID#1234100, _extract_internalRefUUID#1234099]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932044]
(2163) BroadcastHashJoin
Left keys [4]: [coalesce(product#1231083, ), isnull(product#1231083), coalesce(plant#1231084, ), isnull(plant#1231084)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234100, ), isnull(_extract_internalRefUUID#1234100), coalesce(_extract_internalRefUUID#1234099, ), isnull(_extract_internalRefUUID#1234099)]
Join type: LeftOuter
Join condition: None
(2164) Project
Output [4]: [product#1231083, plant#1231084, _extract_code#1234097, _extract_internalRefUUID#1234098]
Input [6]: [product#1231083, plant#1231084, _extract_code#1234097, _extract_internalRefUUID#1234098, _extract_internalRefUUID#1234100, _extract_internalRefUUID#1234099]
(2165) Scan parquet
Output [2]: [internalUUID#1231097, systemId#1231096]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2166) Project
Output [1]: [internalUUID#1231097]
Input [2]: [internalUUID#1231097, systemId#1231096]
(2167) Exchange
Input [1]: [internalUUID#1231097]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929943]
(2168) BroadcastExchange
Input [1]: [internalUUID#1231097]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932048]
(2169) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231084, ), isnull(plant#1231084)]
Right keys [2]: [coalesce(internalUUID#1231097, ), isnull(internalUUID#1231097)]
Join type: LeftOuter
Join condition: None
(2170) Project
Output [4]: [product#1231083, plant#1231084, _extract_code#1234097, _extract_internalRefUUID#1234098]
Input [5]: [product#1231083, plant#1231084, _extract_code#1234097, _extract_internalRefUUID#1234098, internalUUID#1231097]
(2171) Scan parquet
Output [4]: [internalUUID#1231111, baseUnitOfMeasure#1231115, unitOfMeasureConversions#1231117, systemId#1231110]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2172) Filter
Input [4]: [internalUUID#1231111, baseUnitOfMeasure#1231115, unitOfMeasureConversions#1231117, systemId#1231110]
Condition : isnotnull(internalUUID#1231111)
(2173) Project
Output [3]: [internalUUID#1231111, baseUnitOfMeasure#1231115, unitOfMeasureConversions#1231117]
Input [4]: [internalUUID#1231111, baseUnitOfMeasure#1231115, unitOfMeasureConversions#1231117, systemId#1231110]
(2174) Exchange
Input [3]: [internalUUID#1231111, baseUnitOfMeasure#1231115, unitOfMeasureConversions#1231117]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929949]
(2175) BroadcastExchange
Input [3]: [internalUUID#1231111, baseUnitOfMeasure#1231115, unitOfMeasureConversions#1231117]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932052]
(2176) BroadcastHashJoin
Left keys [1]: [product#1231083]
Right keys [1]: [internalUUID#1231111]
Join type: LeftOuter
Join condition: None
(2177) Project
Output [2]: [plant#1231084, filter(unitOfMeasureConversions#1231117, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234097) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234098)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231115.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231115.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231122]
Input [7]: [product#1231083, plant#1231084, _extract_code#1234097, _extract_internalRefUUID#1234098, internalUUID#1231111, baseUnitOfMeasure#1231115, unitOfMeasureConversions#1231117]
(2178) Generate
Input [2]: [plant#1231084, filteredUnitOfMeasureConversions#1231122]
Arguments: explode(filteredUnitOfMeasureConversions#1231122.quantityNumerator), [plant#1231084, filteredUnitOfMeasureConversions#1231122], true, [quantityNumerator#1231123]
(2179) Project
Output [2]: [plant#1231084, filteredUnitOfMeasureConversions#1231122.quantityDenominator AS _extract_quantityDenominator#1233433]
Input [3]: [plant#1231084, filteredUnitOfMeasureConversions#1231122, quantityNumerator#1231123]
(2180) Generate
Input [2]: [plant#1231084, _extract_quantityDenominator#1233433]
Arguments: explode(_extract_quantityDenominator#1233433), [plant#1231084], true, [quantityDenominator#1231124]
(2181) Project
Output [1]: [plant#1231084]
Input [2]: [plant#1231084, quantityDenominator#1231124]
(2182) HashAggregate
Input [1]: [plant#1231084]
Keys [1]: [plant#1231084]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1231084]
(2183) Exchange
Input [1]: [plant#1231084]
Arguments: hashpartitioning(plant#1231084, 37), ENSURE_REQUIREMENTS, [plan_id=1932061]
(2184) HashAggregate
Input [1]: [plant#1231084]
Keys [1]: [plant#1231084]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1231084]
(2185) BroadcastHashJoin
Left keys [1]: [plantUuid#1231080]
Right keys [1]: [plant#1231084]
Join type: Inner
Join condition: None
(2186) Project
Output [3]: [plantUuid#1231080, storageLocId#1231081, storageLocUuid#1231082]
Input [4]: [plantUuid#1231080, storageLocId#1231081, storageLocUuid#1231082, plant#1231084]
(2187) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231052.internalRefUUID, ), isnull(plant#1231052.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1231080, ), isnull(plantUuid#1231080)]
Join type: Inner
Join condition: None
(2188) Generate
Input [9]: [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, stockQuantities#1231054, plantUuid#1231080, storageLocId#1231081, storageLocUuid#1231082]
Arguments: explode(filter(stockQuantities#1231054, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231082) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231081)), lambda x#1225727, false))), [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, plantUuid#1231080], false, [stockQuantity#1231127]
(2189) ObjectHashAggregate
Input [7]: [systemId#1231049, internalUUID#1231050, product#1231051, plant#1231052, calculationDateTime#1231053, plantUuid#1231080, stockQuantity#1231127]
Keys [5]: [plantUuid#1231080, internalUUID#1231050, plant#1231052, product#1231051, systemId#1231049]
Functions [2]: [partial_first(calculationDateTime#1231053, false), partial_collect_list(stockQuantity#1231127, 0, 0)]
Aggregate Attributes [3]: [first#1235121, valueSet#1235122, buf#1235123]
Results [8]: [plantUuid#1231080, internalUUID#1231050, plant#1231052, product#1231051, systemId#1231049, first#1235124, valueSet#1235125, buf#1235126]
(2190) ObjectHashAggregate
Input [8]: [plantUuid#1231080, internalUUID#1231050, plant#1231052, product#1231051, systemId#1231049, first#1235124, valueSet#1235125, buf#1235126]
Keys [5]: [plantUuid#1231080, internalUUID#1231050, plant#1231052, product#1231051, systemId#1231049]
Functions [2]: [first(calculationDateTime#1231053, false), collect_list(stockQuantity#1231127, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1231053)()#1225742, collect_list(stockQuantity#1231127, 0, 0)#1225743]
Results [4]: [product#1231051, plant#1231052, first(calculationDateTime#1231053)()#1225742 AS calculationDateTime#1231128, collect_list(stockQuantity#1231127, 0, 0)#1225743 AS stockQuantities#1231129]
(2191) Filter
Input [4]: [product#1231051, plant#1231052, calculationDateTime#1231128, stockQuantities#1231129]
Condition : ((size(stockQuantities#1231129, true) > 0) AND isnotnull(calculationDateTime#1231128))
(2192) Generate
Input [4]: [product#1231051, plant#1231052, calculationDateTime#1231128, stockQuantities#1231129]
Arguments: explode(stockQuantities#1231129), [product#1231051, plant#1231052, calculationDateTime#1231128], false, [stockQuantity#1231130]
(2193) Filter
Input [4]: [product#1231051, plant#1231052, calculationDateTime#1231128, stockQuantity#1231130]
Condition : (((isnotnull(stockQuantity#1231130.specialStockIndicator.code) AND isnotnull(stockQuantity#1231130.stockType.code)) AND (stockQuantity#1231130.specialStockIndicator.code = )) AND (stockQuantity#1231130.stockType.code = 01))
(2194) Project
Output [4]: [plant#1231052.internalRefUUID AS plantUuid#1231132, product#1231051.internalRefUUID AS productUuid#1231134, calculationDateTime#1231128, stockQuantity#1231130.storagelocation.id AS storageLocId#1231135]
Input [4]: [product#1231051, plant#1231052, calculationDateTime#1231128, stockQuantity#1231130]
(2195) Exchange
Input [4]: [plantUuid#1231132, productUuid#1231134, calculationDateTime#1231128, storageLocId#1231135]
Arguments: hashpartitioning(productUuid#1231134, plantUuid#1231132, 37), ENSURE_REQUIREMENTS, [plan_id=1932094]
(2196) Sort
Input [4]: [plantUuid#1231132, productUuid#1231134, calculationDateTime#1231128, storageLocId#1231135]
Arguments: [productUuid#1231134 ASC NULLS FIRST, plantUuid#1231132 ASC NULLS FIRST], false, 0
(2197) Scan parquet
Output [3]: [product#1231140, plant#1231141, orderDateTime#1231142]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2198) Filter
Input [3]: [product#1231140, plant#1231141, orderDateTime#1231142]
Condition : ((isnotnull(orderDateTime#1231142) AND isnotnull(plant#1231141)) AND isnotnull(product#1231140))
(2199) Exchange
Input [3]: [product#1231140, plant#1231141, orderDateTime#1231142]
Arguments: hashpartitioning(product#1231140, plant#1231141, 37), REPARTITION_BY_NUM, [plan_id=1931030]
(2200) Scan parquet
Output [4]: [plant#1231146, product#1231147, productionAspect#1231149, systemId#1231144]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2201) Project
Output [4]: [plant#1231146.internalRefUUID AS _extract_internalRefUUID#1234101, product#1231147.internalRefUUID AS _extract_internalRefUUID#1234104, productionAspect#1231149.productMovementPlants.unitOfIssue.code AS _extract_code#1234102, productionAspect#1231149.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234103]
Input [4]: [plant#1231146, product#1231147, productionAspect#1231149, systemId#1231144]
(2202) Exchange
Input [4]: [_extract_internalRefUUID#1234101, _extract_internalRefUUID#1234104, _extract_code#1234102, _extract_internalRefUUID#1234103]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929974]
(2203) Project
Output [4]: [_extract_code#1234102, _extract_internalRefUUID#1234103, _extract_internalRefUUID#1234104, _extract_internalRefUUID#1234101]
Input [4]: [_extract_internalRefUUID#1234101, _extract_internalRefUUID#1234104, _extract_code#1234102, _extract_internalRefUUID#1234103]
(2204) BroadcastExchange
Input [4]: [_extract_code#1234102, _extract_internalRefUUID#1234103, _extract_internalRefUUID#1234104, _extract_internalRefUUID#1234101]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932077]
(2205) BroadcastHashJoin
Left keys [4]: [coalesce(product#1231140, ), isnull(product#1231140), coalesce(plant#1231141, ), isnull(plant#1231141)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234104, ), isnull(_extract_internalRefUUID#1234104), coalesce(_extract_internalRefUUID#1234101, ), isnull(_extract_internalRefUUID#1234101)]
Join type: LeftOuter
Join condition: None
(2206) Project
Output [5]: [product#1231140, plant#1231141, orderDateTime#1231142, _extract_code#1234102, _extract_internalRefUUID#1234103]
Input [7]: [product#1231140, plant#1231141, orderDateTime#1231142, _extract_code#1234102, _extract_internalRefUUID#1234103, _extract_internalRefUUID#1234104, _extract_internalRefUUID#1234101]
(2207) Scan parquet
Output [2]: [internalUUID#1231154, systemId#1231153]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2208) Project
Output [1]: [internalUUID#1231154]
Input [2]: [internalUUID#1231154, systemId#1231153]
(2209) Exchange
Input [1]: [internalUUID#1231154]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929980]
(2210) BroadcastExchange
Input [1]: [internalUUID#1231154]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932081]
(2211) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231141, ), isnull(plant#1231141)]
Right keys [2]: [coalesce(internalUUID#1231154, ), isnull(internalUUID#1231154)]
Join type: LeftOuter
Join condition: None
(2212) Project
Output [5]: [product#1231140, plant#1231141, orderDateTime#1231142, _extract_code#1234102, _extract_internalRefUUID#1234103]
Input [6]: [product#1231140, plant#1231141, orderDateTime#1231142, _extract_code#1234102, _extract_internalRefUUID#1234103, internalUUID#1231154]
(2213) Scan parquet
Output [4]: [internalUUID#1231168, baseUnitOfMeasure#1231172, unitOfMeasureConversions#1231174, systemId#1231167]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2214) Filter
Input [4]: [internalUUID#1231168, baseUnitOfMeasure#1231172, unitOfMeasureConversions#1231174, systemId#1231167]
Condition : isnotnull(internalUUID#1231168)
(2215) Project
Output [3]: [internalUUID#1231168, baseUnitOfMeasure#1231172, unitOfMeasureConversions#1231174]
Input [4]: [internalUUID#1231168, baseUnitOfMeasure#1231172, unitOfMeasureConversions#1231174, systemId#1231167]
(2216) Exchange
Input [3]: [internalUUID#1231168, baseUnitOfMeasure#1231172, unitOfMeasureConversions#1231174]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1929986]
(2217) BroadcastExchange
Input [3]: [internalUUID#1231168, baseUnitOfMeasure#1231172, unitOfMeasureConversions#1231174]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932085]
(2218) BroadcastHashJoin
Left keys [1]: [product#1231140]
Right keys [1]: [internalUUID#1231168]
Join type: LeftOuter
Join condition: None
(2219) Project
Output [4]: [product#1231140, plant#1231141, orderDateTime#1231142, filter(unitOfMeasureConversions#1231174, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234102) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234103)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231172.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231172.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231179]
Input [8]: [product#1231140, plant#1231141, orderDateTime#1231142, _extract_code#1234102, _extract_internalRefUUID#1234103, internalUUID#1231168, baseUnitOfMeasure#1231172, unitOfMeasureConversions#1231174]
(2220) Generate
Input [4]: [product#1231140, plant#1231141, orderDateTime#1231142, filteredUnitOfMeasureConversions#1231179]
Arguments: explode(filteredUnitOfMeasureConversions#1231179.quantityNumerator), [product#1231140, plant#1231141, orderDateTime#1231142, filteredUnitOfMeasureConversions#1231179], true, [quantityNumerator#1231180]
(2221) Project
Output [4]: [product#1231140, plant#1231141, orderDateTime#1231142, filteredUnitOfMeasureConversions#1231179.quantityDenominator AS _extract_quantityDenominator#1233437]
Input [5]: [product#1231140, plant#1231141, orderDateTime#1231142, filteredUnitOfMeasureConversions#1231179, quantityNumerator#1231180]
(2222) Generate
Input [4]: [product#1231140, plant#1231141, orderDateTime#1231142, _extract_quantityDenominator#1233437]
Arguments: explode(_extract_quantityDenominator#1233437), [product#1231140, plant#1231141, orderDateTime#1231142], true, [quantityDenominator#1231181]
(2223) Project
Output [3]: [product#1231140, plant#1231141, orderDateTime#1231142]
Input [4]: [product#1231140, plant#1231141, orderDateTime#1231142, quantityDenominator#1231181]
(2224) Sort
Input [3]: [product#1231140, plant#1231141, orderDateTime#1231142]
Arguments: [product#1231140 ASC NULLS FIRST, plant#1231141 ASC NULLS FIRST], false, 0
(2225) SortMergeJoin
Left keys [2]: [productUuid#1231134, plantUuid#1231132]
Right keys [2]: [product#1231140, plant#1231141]
Join type: Inner
Join condition: (calculationDateTime#1231128 <= orderDateTime#1231142)
(2226) Project
Output [4]: [plantUuid#1231132 AS plant#1231184, productUuid#1231134 AS product#1231185, storageLocId#1231135, calculationDateTime#1231128]
Input [7]: [plantUuid#1231132, productUuid#1231134, calculationDateTime#1231128, storageLocId#1231135, product#1231140, plant#1231141, orderDateTime#1231142]
(2227) HashAggregate
Input [4]: [plant#1231184, product#1231185, storageLocId#1231135, calculationDateTime#1231128]
Keys [3]: [plant#1231184, product#1231185, storageLocId#1231135]
Functions [1]: [partial_max(calculationDateTime#1231128)]
Aggregate Attributes [1]: [max#1235119]
Results [4]: [plant#1231184, product#1231185, storageLocId#1231135, max#1235120]
(2228) HashAggregate
Input [4]: [plant#1231184, product#1231185, storageLocId#1231135, max#1235120]
Keys [3]: [plant#1231184, product#1231185, storageLocId#1231135]
Functions [1]: [max(calculationDateTime#1231128)]
Aggregate Attributes [1]: [max(calculationDateTime#1231128)#1225820]
Results [4]: [plant#1231184, product#1231185, storageLocId#1231135, max(calculationDateTime#1231128)#1225820 AS max_calc_datetime#1231186]
(2229) Exchange
Input [4]: [plant#1231184, product#1231185, storageLocId#1231135, max_calc_datetime#1231186]
Arguments: hashpartitioning(coalesce(plant#1231184, ), isnull(plant#1231184), coalesce(product#1231185, ), isnull(product#1231185), coalesce(storageLocId#1231135, ), isnull(storageLocId#1231135), coalesce(max_calc_datetime#1231186, 1970-01-01 00:00:00), isnull(max_calc_datetime#1231186), 37), ENSURE_REQUIREMENTS, [plan_id=1932104]
(2230) Sort
Input [4]: [plant#1231184, product#1231185, storageLocId#1231135, max_calc_datetime#1231186]
Arguments: [coalesce(plant#1231184, ) ASC NULLS FIRST, isnull(plant#1231184) ASC NULLS FIRST, coalesce(product#1231185, ) ASC NULLS FIRST, isnull(product#1231185) ASC NULLS FIRST, coalesce(storageLocId#1231135, ) ASC NULLS FIRST, isnull(storageLocId#1231135) ASC NULLS FIRST, coalesce(max_calc_datetime#1231186, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1231186) ASC NULLS FIRST], false, 0
(2231) SortMergeJoin
Left keys [8]: [coalesce(plant#1231047, ), isnull(plant#1231047), coalesce(product#1231048, ), isnull(product#1231048), coalesce(storageLocId#1230998, ), isnull(storageLocId#1230998), coalesce(calculationDateTime#1230991, 1970-01-01 00:00:00), isnull(calculationDateTime#1230991)]
Right keys [8]: [coalesce(plant#1231184, ), isnull(plant#1231184), coalesce(product#1231185, ), isnull(product#1231185), coalesce(storageLocId#1231135, ), isnull(storageLocId#1231135), coalesce(max_calc_datetime#1231186, 1970-01-01 00:00:00), isnull(max_calc_datetime#1231186)]
Join type: Inner
Join condition: None
(2232) Project
Output [4]: [plant#1231047, product#1231048, calculationDateTime#1230991, quantity#1231000]
Input [9]: [plant#1231047, product#1231048, storageLocId#1230998, calculationDateTime#1230991, quantity#1231000, plant#1231184, product#1231185, storageLocId#1231135, max_calc_datetime#1231186]
(2233) HashAggregate
Input [4]: [plant#1231047, product#1231048, calculationDateTime#1230991, quantity#1231000]
Keys [2]: [product#1231048, plant#1231047]
Functions [2]: [partial_min(calculationDateTime#1230991), partial_sum(quantity#1231000)]
Aggregate Attributes [2]: [min#1235109, sum#1235110]
Results [4]: [product#1231048, plant#1231047, min#1235111, sum#1235112]
(2234) Exchange
Input [4]: [product#1231048, plant#1231047, min#1235111, sum#1235112]
Arguments: hashpartitioning(product#1231048, plant#1231047, 37), ENSURE_REQUIREMENTS, [plan_id=1932111]
(2235) HashAggregate
Input [4]: [product#1231048, plant#1231047, min#1235111, sum#1235112]
Keys [2]: [product#1231048, plant#1231047]
Functions [2]: [min(calculationDateTime#1230991), sum(quantity#1231000)]
Aggregate Attributes [2]: [min(calculationDateTime#1230991)#1225976, sum(quantity#1231000)#1225975]
Results [4]: [product#1231048, plant#1231047, min(calculationDateTime#1230991)#1225976 AS minCalculationDateTime#1231188, round(sum(quantity#1231000)#1225975, 0) AS roundedQuantitySum#1231189]
(2236) Sort
Input [4]: [product#1231048, plant#1231047, minCalculationDateTime#1231188, roundedQuantitySum#1231189]
Arguments: [product#1231048 ASC NULLS FIRST, plant#1231047 ASC NULLS FIRST], false, 0
(2237) SortMergeJoin
Left keys [2]: [product#1230868, plant#1230869]
Right keys [2]: [product#1231048, plant#1231047]
Join type: LeftOuter
Join condition: None
(2238) Project
Output [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, CASE WHEN isnotnull(minCalculationDateTime#1231188) THEN minCalculationDateTime#1231188 ELSE orderDateTime#1230870 END AS stockDatetime#1231190, CASE WHEN isnotnull(roundedQuantitySum#1231189) THEN array(roundedQuantitySum#1231189) ELSE [0.0] END AS stockBatchQuantities#1231191]
Input [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, product#1231048, plant#1231047, minCalculationDateTime#1231188, roundedQuantitySum#1231189]
(2239) Exchange
Input [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191]
Arguments: hashpartitioning(coalesce(plant#1230869, ), isnull(plant#1230869), coalesce(product#1230868, ), isnull(product#1230868), 37), ENSURE_REQUIREMENTS, [plan_id=1932275]
(2240) Sort
Input [8]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191]
Arguments: [coalesce(plant#1230869, ) ASC NULLS FIRST, isnull(plant#1230869) ASC NULLS FIRST, coalesce(product#1230868, ) ASC NULLS FIRST, isnull(product#1230868) ASC NULLS FIRST], false, 0
(2241) Scan parquet
Output [3]: [product#1231193, plant#1231194, orderDateTime#1231195]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2242) Exchange
Input [3]: [product#1231193, plant#1231194, orderDateTime#1231195]
Arguments: hashpartitioning(product#1231193, plant#1231194, 37), REPARTITION_BY_NUM, [plan_id=1930004]
(2243) Scan parquet
Output [8]: [internalUUID#1231198, plant#1231199, product#1231200, blockedForReplenishmentStartingFrom#1231201, productionAspect#1231202, salesPlant#1231203, listing#1231204, systemId#1231197]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>
(2244) Project
Output [8]: [systemId#1231197, internalUUID#1231198, plant#1231199, product#1231200, blockedForReplenishmentStartingFrom#1231201, productionAspect#1231202, salesPlant#1231203, listing#1231204]
Input [8]: [internalUUID#1231198, plant#1231199, product#1231200, blockedForReplenishmentStartingFrom#1231201, productionAspect#1231202, salesPlant#1231203, listing#1231204, systemId#1231197]
(2245) Exchange
Input [8]: [systemId#1231197, internalUUID#1231198, plant#1231199, product#1231200, blockedForReplenishmentStartingFrom#1231201, productionAspect#1231202, salesPlant#1231203, listing#1231204]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930007]
(2246) Project
Output [1]: [struct(systemId, systemId#1231197, internalUUID, internalUUID#1231198, plant, plant#1231199, product, product#1231200, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1231201, productionAspect, productionAspect#1231202, salesPlant, salesPlant#1231203, listing, listing#1231204) AS productPlant#1231205]
Input [8]: [systemId#1231197, internalUUID#1231198, plant#1231199, product#1231200, blockedForReplenishmentStartingFrom#1231201, productionAspect#1231202, salesPlant#1231203, listing#1231204]
(2247) BroadcastExchange
Input [1]: [productPlant#1231205]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1932119]
(2248) BroadcastHashJoin
Left keys [4]: [coalesce(product#1231193, ), isnull(product#1231193), coalesce(plant#1231194, ), isnull(plant#1231194)]
Right keys [4]: [coalesce(productPlant#1231205.product.internalRefUUID, ), isnull(productPlant#1231205.product.internalRefUUID), coalesce(productPlant#1231205.plant.internalRefUUID, ), isnull(productPlant#1231205.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(2249) Scan parquet
Output [3]: [internalUUID#1231207, address#1231213, systemId#1231206]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(2250) Project
Output [2]: [internalUUID#1231207, address#1231213.timeZone.code AS timezonecode#1231218]
Input [3]: [internalUUID#1231207, address#1231213, systemId#1231206]
(2251) Exchange
Input [2]: [internalUUID#1231207, timezonecode#1231218]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930012]
(2252) BroadcastExchange
Input [2]: [internalUUID#1231207, timezonecode#1231218]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932122]
(2253) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231194, ), isnull(plant#1231194)]
Right keys [2]: [coalesce(internalUUID#1231207, ), isnull(internalUUID#1231207)]
Join type: LeftOuter
Join condition: None
(2254) Project
Output [5]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, CASE WHEN isnotnull(timezonecode#1231218) THEN timezonecode#1231218 ELSE UTC END AS timezonecode#1231219]
Input [6]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, internalUUID#1231207, timezonecode#1231218]
(2255) Scan parquet
Output [4]: [internalUUID#1231221, baseUnitOfMeasure#1231225, unitOfMeasureConversions#1231227, systemId#1231220]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2256) Filter
Input [4]: [internalUUID#1231221, baseUnitOfMeasure#1231225, unitOfMeasureConversions#1231227, systemId#1231220]
Condition : isnotnull(internalUUID#1231221)
(2257) Project
Output [3]: [internalUUID#1231221, baseUnitOfMeasure#1231225, unitOfMeasureConversions#1231227]
Input [4]: [internalUUID#1231221, baseUnitOfMeasure#1231225, unitOfMeasureConversions#1231227, systemId#1231220]
(2258) Exchange
Input [3]: [internalUUID#1231221, baseUnitOfMeasure#1231225, unitOfMeasureConversions#1231227]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930018]
(2259) BroadcastExchange
Input [3]: [internalUUID#1231221, baseUnitOfMeasure#1231225, unitOfMeasureConversions#1231227]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932126]
(2260) BroadcastHashJoin
Left keys [1]: [product#1231193]
Right keys [1]: [internalUUID#1231221]
Join type: LeftOuter
Join condition: None
(2261) Project
Output [6]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, filter(unitOfMeasureConversions#1231227, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231225.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231225.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231232]
Input [8]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, internalUUID#1231221, baseUnitOfMeasure#1231225, unitOfMeasureConversions#1231227]
(2262) Project
Output [7]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, filteredUnitOfMeasureConversions#1231232.quantityDenominator AS _extract_quantityDenominator#1233655, filteredUnitOfMeasureConversions#1231232.quantityNumerator AS _extract_quantityNumerator#1233656]
Input [6]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, filteredUnitOfMeasureConversions#1231232]
(2263) Generate
Input [7]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, _extract_quantityDenominator#1233655, _extract_quantityNumerator#1233656]
Arguments: explode(_extract_quantityNumerator#1233656), [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, _extract_quantityDenominator#1233655], true, [quantityNumerator#1231233]
(2264) Generate
Input [7]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, _extract_quantityDenominator#1233655, quantityNumerator#1231233]
Arguments: explode(_extract_quantityDenominator#1233655), [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, quantityNumerator#1231233], true, [quantityDenominator#1231234]
(2265) Project
Output [6]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, (cast(quantityNumerator#1231233 as double) / cast(quantityDenominator#1231234 as double)) AS outboundUnit#1231235]
Input [7]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, quantityNumerator#1231233, quantityDenominator#1231234]
(2266) Project
Output [6]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, CASE WHEN (isnull(outboundUnit#1231235) OR (outboundUnit#1231235 <= 0.0)) THEN 1.0 ELSE outboundUnit#1231235 END AS outboundUnit#1231236]
Input [6]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231235]
(2267) Sort
Input [6]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236]
Arguments: [product#1231193 ASC NULLS FIRST, plant#1231194 ASC NULLS FIRST], false, 0
(2268) Scan parquet
Output [6]: [internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242, systemId#1231237]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(2269) Filter
Input [6]: [internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242, systemId#1231237]
Condition : (isnotnull(plant#1231240.internalRefUUID) AND isnotnull(product#1231239.internalRefUUID))
(2270) Project
Output [6]: [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242]
Input [6]: [internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242, systemId#1231237]
(2271) Exchange
Input [6]: [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930029]
(2272) BroadcastExchange
Input [6]: [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1932158]
(2273) Scan parquet
Output [2]: [marketUnit#1231243, distributionCenters#1231249]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(2274) Filter
Input [2]: [marketUnit#1231243, distributionCenters#1231249]
Condition : (((marketUnit#1231243 <=> AUTO_MUV2) AND (size(distributionCenters#1231249, true) > 0)) AND isnotnull(distributionCenters#1231249))
(2275) Project
Output [1]: [distributionCenters#1231249]
Input [2]: [marketUnit#1231243, distributionCenters#1231249]
(2276) Exchange
Input [1]: [distributionCenters#1231249]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930033]
(2277) Generate
Input [1]: [distributionCenters#1231249]
Arguments: explode(distributionCenters#1231249), false, [distributionCenters#1231265]
(2278) Filter
Input [1]: [distributionCenters#1231265]
Condition : (((size(distributionCenters#1231265.storageLocations, true) > 0) AND isnotnull(distributionCenters#1231265.storageLocations)) AND isnotnull(distributionCenters#1231265.internalRefUUID))
(2279) Project
Output [2]: [distributionCenters#1231265.internalRefUUID AS _extract_internalRefUUID#1233443, distributionCenters#1231265.storageLocations AS _extract_storageLocations#1233444]
Input [1]: [distributionCenters#1231265]
(2280) Generate
Input [2]: [_extract_internalRefUUID#1233443, _extract_storageLocations#1233444]
Arguments: explode(_extract_storageLocations#1233444), [_extract_internalRefUUID#1233443], false, [storageLocations#1231266]
(2281) Project
Output [3]: [_extract_internalRefUUID#1233443 AS plantUuid#1231268, storageLocations#1231266.id AS storageLocId#1231269, storageLocations#1231266.internalRefUUID AS storageLocUuid#1231270]
Input [2]: [_extract_internalRefUUID#1233443, storageLocations#1231266]
(2282) BroadcastExchange
Input [3]: [plantUuid#1231268, storageLocId#1231269, storageLocUuid#1231270]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932154]
(2283) Scan parquet
Output [2]: [product#1231271, plant#1231272]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(2284) Filter
Input [2]: [product#1231271, plant#1231272]
Condition : isnotnull(plant#1231272)
(2285) Exchange
Input [2]: [product#1231271, plant#1231272]
Arguments: hashpartitioning(product#1231271, plant#1231272, 37), REPARTITION_BY_NUM, [plan_id=1931051]
(2286) Scan parquet
Output [4]: [plant#1231277, product#1231278, productionAspect#1231280, systemId#1231275]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2287) Project
Output [4]: [plant#1231277.internalRefUUID AS _extract_internalRefUUID#1234107, product#1231278.internalRefUUID AS _extract_internalRefUUID#1234108, productionAspect#1231280.productMovementPlants.unitOfIssue.code AS _extract_code#1234105, productionAspect#1231280.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234106]
Input [4]: [plant#1231277, product#1231278, productionAspect#1231280, systemId#1231275]
(2288) Exchange
Input [4]: [_extract_internalRefUUID#1234107, _extract_internalRefUUID#1234108, _extract_code#1234105, _extract_internalRefUUID#1234106]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930045]
(2289) Project
Output [4]: [_extract_code#1234105, _extract_internalRefUUID#1234106, _extract_internalRefUUID#1234108, _extract_internalRefUUID#1234107]
Input [4]: [_extract_internalRefUUID#1234107, _extract_internalRefUUID#1234108, _extract_code#1234105, _extract_internalRefUUID#1234106]
(2290) BroadcastExchange
Input [4]: [_extract_code#1234105, _extract_internalRefUUID#1234106, _extract_internalRefUUID#1234108, _extract_internalRefUUID#1234107]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932134]
(2291) BroadcastHashJoin
Left keys [4]: [coalesce(product#1231271, ), isnull(product#1231271), coalesce(plant#1231272, ), isnull(plant#1231272)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234108, ), isnull(_extract_internalRefUUID#1234108), coalesce(_extract_internalRefUUID#1234107, ), isnull(_extract_internalRefUUID#1234107)]
Join type: LeftOuter
Join condition: None
(2292) Project
Output [4]: [product#1231271, plant#1231272, _extract_code#1234105, _extract_internalRefUUID#1234106]
Input [6]: [product#1231271, plant#1231272, _extract_code#1234105, _extract_internalRefUUID#1234106, _extract_internalRefUUID#1234108, _extract_internalRefUUID#1234107]
(2293) Scan parquet
Output [2]: [internalUUID#1231285, systemId#1231284]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2294) Project
Output [1]: [internalUUID#1231285]
Input [2]: [internalUUID#1231285, systemId#1231284]
(2295) Exchange
Input [1]: [internalUUID#1231285]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930051]
(2296) BroadcastExchange
Input [1]: [internalUUID#1231285]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932138]
(2297) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231272, ), isnull(plant#1231272)]
Right keys [2]: [coalesce(internalUUID#1231285, ), isnull(internalUUID#1231285)]
Join type: LeftOuter
Join condition: None
(2298) Project
Output [4]: [product#1231271, plant#1231272, _extract_code#1234105, _extract_internalRefUUID#1234106]
Input [5]: [product#1231271, plant#1231272, _extract_code#1234105, _extract_internalRefUUID#1234106, internalUUID#1231285]
(2299) Scan parquet
Output [4]: [internalUUID#1231299, baseUnitOfMeasure#1231303, unitOfMeasureConversions#1231305, systemId#1231298]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2300) Filter
Input [4]: [internalUUID#1231299, baseUnitOfMeasure#1231303, unitOfMeasureConversions#1231305, systemId#1231298]
Condition : isnotnull(internalUUID#1231299)
(2301) Project
Output [3]: [internalUUID#1231299, baseUnitOfMeasure#1231303, unitOfMeasureConversions#1231305]
Input [4]: [internalUUID#1231299, baseUnitOfMeasure#1231303, unitOfMeasureConversions#1231305, systemId#1231298]
(2302) Exchange
Input [3]: [internalUUID#1231299, baseUnitOfMeasure#1231303, unitOfMeasureConversions#1231305]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930057]
(2303) BroadcastExchange
Input [3]: [internalUUID#1231299, baseUnitOfMeasure#1231303, unitOfMeasureConversions#1231305]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932142]
(2304) BroadcastHashJoin
Left keys [1]: [product#1231271]
Right keys [1]: [internalUUID#1231299]
Join type: LeftOuter
Join condition: None
(2305) Project
Output [2]: [plant#1231272, filter(unitOfMeasureConversions#1231305, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234105) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234106)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231303.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231303.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231310]
Input [7]: [product#1231271, plant#1231272, _extract_code#1234105, _extract_internalRefUUID#1234106, internalUUID#1231299, baseUnitOfMeasure#1231303, unitOfMeasureConversions#1231305]
(2306) Generate
Input [2]: [plant#1231272, filteredUnitOfMeasureConversions#1231310]
Arguments: explode(filteredUnitOfMeasureConversions#1231310.quantityNumerator), [plant#1231272, filteredUnitOfMeasureConversions#1231310], true, [quantityNumerator#1231311]
(2307) Project
Output [2]: [plant#1231272, filteredUnitOfMeasureConversions#1231310.quantityDenominator AS _extract_quantityDenominator#1233445]
Input [3]: [plant#1231272, filteredUnitOfMeasureConversions#1231310, quantityNumerator#1231311]
(2308) Generate
Input [2]: [plant#1231272, _extract_quantityDenominator#1233445]
Arguments: explode(_extract_quantityDenominator#1233445), [plant#1231272], true, [quantityDenominator#1231312]
(2309) Project
Output [1]: [plant#1231272]
Input [2]: [plant#1231272, quantityDenominator#1231312]
(2310) HashAggregate
Input [1]: [plant#1231272]
Keys [1]: [plant#1231272]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1231272]
(2311) Exchange
Input [1]: [plant#1231272]
Arguments: hashpartitioning(plant#1231272, 37), ENSURE_REQUIREMENTS, [plan_id=1932151]
(2312) HashAggregate
Input [1]: [plant#1231272]
Keys [1]: [plant#1231272]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1231272]
(2313) BroadcastHashJoin
Left keys [1]: [plantUuid#1231268]
Right keys [1]: [plant#1231272]
Join type: Inner
Join condition: None
(2314) Project
Output [3]: [plantUuid#1231268, storageLocId#1231269, storageLocUuid#1231270]
Input [4]: [plantUuid#1231268, storageLocId#1231269, storageLocUuid#1231270, plant#1231272]
(2315) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231240.internalRefUUID, ), isnull(plant#1231240.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1231268, ), isnull(plantUuid#1231268)]
Join type: Inner
Join condition: None
(2316) Generate
Input [9]: [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, stockQuantities#1231242, plantUuid#1231268, storageLocId#1231269, storageLocUuid#1231270]
Arguments: explode(filter(stockQuantities#1231242, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231270) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231269)), lambda x#1225727, false))), [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, plantUuid#1231268], false, [stockQuantity#1231315]
(2317) ObjectHashAggregate
Input [7]: [systemId#1231237, internalUUID#1231238, product#1231239, plant#1231240, calculationDateTime#1231241, plantUuid#1231268, stockQuantity#1231315]
Keys [5]: [plantUuid#1231268, internalUUID#1231238, plant#1231240, product#1231239, systemId#1231237]
Functions [2]: [partial_first(calculationDateTime#1231241, false), partial_collect_list(stockQuantity#1231315, 0, 0)]
Aggregate Attributes [3]: [first#1235135, valueSet#1235136, buf#1235137]
Results [8]: [plantUuid#1231268, internalUUID#1231238, plant#1231240, product#1231239, systemId#1231237, first#1235138, valueSet#1235139, buf#1235140]
(2318) ObjectHashAggregate
Input [8]: [plantUuid#1231268, internalUUID#1231238, plant#1231240, product#1231239, systemId#1231237, first#1235138, valueSet#1235139, buf#1235140]
Keys [5]: [plantUuid#1231268, internalUUID#1231238, plant#1231240, product#1231239, systemId#1231237]
Functions [2]: [first(calculationDateTime#1231241, false), collect_list(stockQuantity#1231315, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1231241)()#1225742, collect_list(stockQuantity#1231315, 0, 0)#1225743]
Results [4]: [product#1231239, plant#1231240, first(calculationDateTime#1231241)()#1225742 AS calculationDateTime#1231316, collect_list(stockQuantity#1231315, 0, 0)#1225743 AS stockQuantities#1231317]
(2319) Filter
Input [4]: [product#1231239, plant#1231240, calculationDateTime#1231316, stockQuantities#1231317]
Condition : ((size(stockQuantities#1231317, true) > 0) AND isnotnull(calculationDateTime#1231316))
(2320) Generate
Input [4]: [product#1231239, plant#1231240, calculationDateTime#1231316, stockQuantities#1231317]
Arguments: explode(stockQuantities#1231317), [product#1231239, plant#1231240, calculationDateTime#1231316], false, [stockQuantity#1231318]
(2321) Filter
Input [4]: [product#1231239, plant#1231240, calculationDateTime#1231316, stockQuantity#1231318]
Condition : (((isnotnull(stockQuantity#1231318.specialStockIndicator.code) AND isnotnull(stockQuantity#1231318.stockType.code)) AND (stockQuantity#1231318.specialStockIndicator.code = )) AND (stockQuantity#1231318.stockType.code = 01))
(2322) Project
Output [5]: [plant#1231240.internalRefUUID AS plantUuid#1231320, product#1231239.internalRefUUID AS productUuid#1231322, calculationDateTime#1231316, stockQuantity#1231318.storagelocation.id AS storageLocId#1231323, stockQuantity#1231318.quantity.measure AS quantity#1231325]
Input [4]: [product#1231239, plant#1231240, calculationDateTime#1231316, stockQuantity#1231318]
(2323) Exchange
Input [5]: [plantUuid#1231320, productUuid#1231322, calculationDateTime#1231316, storageLocId#1231323, quantity#1231325]
Arguments: hashpartitioning(productUuid#1231322, plantUuid#1231320, 37), ENSURE_REQUIREMENTS, [plan_id=1932184]
(2324) Sort
Input [5]: [plantUuid#1231320, productUuid#1231322, calculationDateTime#1231316, storageLocId#1231323, quantity#1231325]
Arguments: [productUuid#1231322 ASC NULLS FIRST, plantUuid#1231320 ASC NULLS FIRST], false, 0
(2325) Scan parquet
Output [3]: [product#1231328, plant#1231329, orderDateTime#1231330]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2326) Filter
Input [3]: [product#1231328, plant#1231329, orderDateTime#1231330]
Condition : ((isnotnull(orderDateTime#1231330) AND isnotnull(plant#1231329)) AND isnotnull(product#1231328))
(2327) Exchange
Input [3]: [product#1231328, plant#1231329, orderDateTime#1231330]
Arguments: hashpartitioning(product#1231328, plant#1231329, 37), REPARTITION_BY_NUM, [plan_id=1931074]
(2328) Scan parquet
Output [4]: [plant#1231334, product#1231335, productionAspect#1231337, systemId#1231332]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2329) Project
Output [4]: [plant#1231334.internalRefUUID AS _extract_internalRefUUID#1234109, product#1231335.internalRefUUID AS _extract_internalRefUUID#1234110, productionAspect#1231337.productMovementPlants.unitOfIssue.code AS _extract_code#1234111, productionAspect#1231337.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234112]
Input [4]: [plant#1231334, product#1231335, productionAspect#1231337, systemId#1231332]
(2330) Exchange
Input [4]: [_extract_internalRefUUID#1234109, _extract_internalRefUUID#1234110, _extract_code#1234111, _extract_internalRefUUID#1234112]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930082]
(2331) Project
Output [4]: [_extract_code#1234111, _extract_internalRefUUID#1234112, _extract_internalRefUUID#1234110, _extract_internalRefUUID#1234109]
Input [4]: [_extract_internalRefUUID#1234109, _extract_internalRefUUID#1234110, _extract_code#1234111, _extract_internalRefUUID#1234112]
(2332) BroadcastExchange
Input [4]: [_extract_code#1234111, _extract_internalRefUUID#1234112, _extract_internalRefUUID#1234110, _extract_internalRefUUID#1234109]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932167]
(2333) BroadcastHashJoin
Left keys [4]: [coalesce(product#1231328, ), isnull(product#1231328), coalesce(plant#1231329, ), isnull(plant#1231329)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234110, ), isnull(_extract_internalRefUUID#1234110), coalesce(_extract_internalRefUUID#1234109, ), isnull(_extract_internalRefUUID#1234109)]
Join type: LeftOuter
Join condition: None
(2334) Project
Output [5]: [product#1231328, plant#1231329, orderDateTime#1231330, _extract_code#1234111, _extract_internalRefUUID#1234112]
Input [7]: [product#1231328, plant#1231329, orderDateTime#1231330, _extract_code#1234111, _extract_internalRefUUID#1234112, _extract_internalRefUUID#1234110, _extract_internalRefUUID#1234109]
(2335) Scan parquet
Output [2]: [internalUUID#1231342, systemId#1231341]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2336) Project
Output [1]: [internalUUID#1231342]
Input [2]: [internalUUID#1231342, systemId#1231341]
(2337) Exchange
Input [1]: [internalUUID#1231342]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930088]
(2338) BroadcastExchange
Input [1]: [internalUUID#1231342]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932171]
(2339) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231329, ), isnull(plant#1231329)]
Right keys [2]: [coalesce(internalUUID#1231342, ), isnull(internalUUID#1231342)]
Join type: LeftOuter
Join condition: None
(2340) Project
Output [5]: [product#1231328, plant#1231329, orderDateTime#1231330, _extract_code#1234111, _extract_internalRefUUID#1234112]
Input [6]: [product#1231328, plant#1231329, orderDateTime#1231330, _extract_code#1234111, _extract_internalRefUUID#1234112, internalUUID#1231342]
(2341) Scan parquet
Output [4]: [internalUUID#1231356, baseUnitOfMeasure#1231360, unitOfMeasureConversions#1231362, systemId#1231355]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2342) Filter
Input [4]: [internalUUID#1231356, baseUnitOfMeasure#1231360, unitOfMeasureConversions#1231362, systemId#1231355]
Condition : isnotnull(internalUUID#1231356)
(2343) Project
Output [3]: [internalUUID#1231356, baseUnitOfMeasure#1231360, unitOfMeasureConversions#1231362]
Input [4]: [internalUUID#1231356, baseUnitOfMeasure#1231360, unitOfMeasureConversions#1231362, systemId#1231355]
(2344) Exchange
Input [3]: [internalUUID#1231356, baseUnitOfMeasure#1231360, unitOfMeasureConversions#1231362]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930094]
(2345) BroadcastExchange
Input [3]: [internalUUID#1231356, baseUnitOfMeasure#1231360, unitOfMeasureConversions#1231362]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932175]
(2346) BroadcastHashJoin
Left keys [1]: [product#1231328]
Right keys [1]: [internalUUID#1231356]
Join type: LeftOuter
Join condition: None
(2347) Project
Output [4]: [product#1231328, plant#1231329, orderDateTime#1231330, filter(unitOfMeasureConversions#1231362, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234111) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234112)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231360.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231360.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231367]
Input [8]: [product#1231328, plant#1231329, orderDateTime#1231330, _extract_code#1234111, _extract_internalRefUUID#1234112, internalUUID#1231356, baseUnitOfMeasure#1231360, unitOfMeasureConversions#1231362]
(2348) Generate
Input [4]: [product#1231328, plant#1231329, orderDateTime#1231330, filteredUnitOfMeasureConversions#1231367]
Arguments: explode(filteredUnitOfMeasureConversions#1231367.quantityNumerator), [product#1231328, plant#1231329, orderDateTime#1231330, filteredUnitOfMeasureConversions#1231367], true, [quantityNumerator#1231368]
(2349) Project
Output [4]: [product#1231328, plant#1231329, orderDateTime#1231330, filteredUnitOfMeasureConversions#1231367.quantityDenominator AS _extract_quantityDenominator#1233449]
Input [5]: [product#1231328, plant#1231329, orderDateTime#1231330, filteredUnitOfMeasureConversions#1231367, quantityNumerator#1231368]
(2350) Generate
Input [4]: [product#1231328, plant#1231329, orderDateTime#1231330, _extract_quantityDenominator#1233449]
Arguments: explode(_extract_quantityDenominator#1233449), [product#1231328, plant#1231329, orderDateTime#1231330], true, [quantityDenominator#1231369]
(2351) Project
Output [3]: [product#1231328, plant#1231329, orderDateTime#1231330]
Input [4]: [product#1231328, plant#1231329, orderDateTime#1231330, quantityDenominator#1231369]
(2352) Sort
Input [3]: [product#1231328, plant#1231329, orderDateTime#1231330]
Arguments: [product#1231328 ASC NULLS FIRST, plant#1231329 ASC NULLS FIRST], false, 0
(2353) SortMergeJoin
Left keys [2]: [productUuid#1231322, plantUuid#1231320]
Right keys [2]: [product#1231328, plant#1231329]
Join type: Inner
Join condition: (calculationDateTime#1231316 <= orderDateTime#1231330)
(2354) Project
Output [5]: [plantUuid#1231320 AS plant#1231372, productUuid#1231322 AS product#1231373, storageLocId#1231323, calculationDateTime#1231316, quantity#1231325]
Input [8]: [plantUuid#1231320, productUuid#1231322, calculationDateTime#1231316, storageLocId#1231323, quantity#1231325, product#1231328, plant#1231329, orderDateTime#1231330]
(2355) Exchange
Input [5]: [plant#1231372, product#1231373, storageLocId#1231323, calculationDateTime#1231316, quantity#1231325]
Arguments: hashpartitioning(coalesce(plant#1231372, ), isnull(plant#1231372), coalesce(product#1231373, ), isnull(product#1231373), coalesce(storageLocId#1231323, ), isnull(storageLocId#1231323), coalesce(calculationDateTime#1231316, 1970-01-01 00:00:00), isnull(calculationDateTime#1231316), 37), ENSURE_REQUIREMENTS, [plan_id=1932248]
(2356) Sort
Input [5]: [plant#1231372, product#1231373, storageLocId#1231323, calculationDateTime#1231316, quantity#1231325]
Arguments: [coalesce(plant#1231372, ) ASC NULLS FIRST, isnull(plant#1231372) ASC NULLS FIRST, coalesce(product#1231373, ) ASC NULLS FIRST, isnull(product#1231373) ASC NULLS FIRST, coalesce(storageLocId#1231323, ) ASC NULLS FIRST, isnull(storageLocId#1231323) ASC NULLS FIRST, coalesce(calculationDateTime#1231316, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1231316) ASC NULLS FIRST], false, 0
(2357) Scan parquet
Output [6]: [internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379, systemId#1231374]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(2358) Filter
Input [6]: [internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379, systemId#1231374]
Condition : (isnotnull(plant#1231377.internalRefUUID) AND isnotnull(product#1231376.internalRefUUID))
(2359) Project
Output [6]: [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379]
Input [6]: [internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379, systemId#1231374]
(2360) Exchange
Input [6]: [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930106]
(2361) BroadcastExchange
Input [6]: [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1932213]
(2362) Scan parquet
Output [2]: [marketUnit#1231380, distributionCenters#1231386]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(2363) Filter
Input [2]: [marketUnit#1231380, distributionCenters#1231386]
Condition : (((marketUnit#1231380 <=> AUTO_MUV2) AND (size(distributionCenters#1231386, true) > 0)) AND isnotnull(distributionCenters#1231386))
(2364) Project
Output [1]: [distributionCenters#1231386]
Input [2]: [marketUnit#1231380, distributionCenters#1231386]
(2365) Exchange
Input [1]: [distributionCenters#1231386]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930110]
(2366) Generate
Input [1]: [distributionCenters#1231386]
Arguments: explode(distributionCenters#1231386), false, [distributionCenters#1231402]
(2367) Filter
Input [1]: [distributionCenters#1231402]
Condition : (((size(distributionCenters#1231402.storageLocations, true) > 0) AND isnotnull(distributionCenters#1231402.storageLocations)) AND isnotnull(distributionCenters#1231402.internalRefUUID))
(2368) Project
Output [2]: [distributionCenters#1231402.internalRefUUID AS _extract_internalRefUUID#1233453, distributionCenters#1231402.storageLocations AS _extract_storageLocations#1233454]
Input [1]: [distributionCenters#1231402]
(2369) Generate
Input [2]: [_extract_internalRefUUID#1233453, _extract_storageLocations#1233454]
Arguments: explode(_extract_storageLocations#1233454), [_extract_internalRefUUID#1233453], false, [storageLocations#1231403]
(2370) Project
Output [3]: [_extract_internalRefUUID#1233453 AS plantUuid#1231405, storageLocations#1231403.id AS storageLocId#1231406, storageLocations#1231403.internalRefUUID AS storageLocUuid#1231407]
Input [2]: [_extract_internalRefUUID#1233453, storageLocations#1231403]
(2371) BroadcastExchange
Input [3]: [plantUuid#1231405, storageLocId#1231406, storageLocUuid#1231407]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932209]
(2372) Scan parquet
Output [2]: [product#1231408, plant#1231409]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(2373) Filter
Input [2]: [product#1231408, plant#1231409]
Condition : isnotnull(plant#1231409)
(2374) Exchange
Input [2]: [product#1231408, plant#1231409]
Arguments: hashpartitioning(product#1231408, plant#1231409, 37), REPARTITION_BY_NUM, [plan_id=1931087]
(2375) Scan parquet
Output [4]: [plant#1231414, product#1231415, productionAspect#1231417, systemId#1231412]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2376) Project
Output [4]: [plant#1231414.internalRefUUID AS _extract_internalRefUUID#1234114, product#1231415.internalRefUUID AS _extract_internalRefUUID#1234113, productionAspect#1231417.productMovementPlants.unitOfIssue.code AS _extract_code#1234115, productionAspect#1231417.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234116]
Input [4]: [plant#1231414, product#1231415, productionAspect#1231417, systemId#1231412]
(2377) Exchange
Input [4]: [_extract_internalRefUUID#1234114, _extract_internalRefUUID#1234113, _extract_code#1234115, _extract_internalRefUUID#1234116]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930122]
(2378) Project
Output [4]: [_extract_code#1234115, _extract_internalRefUUID#1234116, _extract_internalRefUUID#1234113, _extract_internalRefUUID#1234114]
Input [4]: [_extract_internalRefUUID#1234114, _extract_internalRefUUID#1234113, _extract_code#1234115, _extract_internalRefUUID#1234116]
(2379) BroadcastExchange
Input [4]: [_extract_code#1234115, _extract_internalRefUUID#1234116, _extract_internalRefUUID#1234113, _extract_internalRefUUID#1234114]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932189]
(2380) BroadcastHashJoin
Left keys [4]: [coalesce(product#1231408, ), isnull(product#1231408), coalesce(plant#1231409, ), isnull(plant#1231409)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234113, ), isnull(_extract_internalRefUUID#1234113), coalesce(_extract_internalRefUUID#1234114, ), isnull(_extract_internalRefUUID#1234114)]
Join type: LeftOuter
Join condition: None
(2381) Project
Output [4]: [product#1231408, plant#1231409, _extract_code#1234115, _extract_internalRefUUID#1234116]
Input [6]: [product#1231408, plant#1231409, _extract_code#1234115, _extract_internalRefUUID#1234116, _extract_internalRefUUID#1234113, _extract_internalRefUUID#1234114]
(2382) Scan parquet
Output [2]: [internalUUID#1231422, systemId#1231421]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2383) Project
Output [1]: [internalUUID#1231422]
Input [2]: [internalUUID#1231422, systemId#1231421]
(2384) Exchange
Input [1]: [internalUUID#1231422]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930128]
(2385) BroadcastExchange
Input [1]: [internalUUID#1231422]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932193]
(2386) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231409, ), isnull(plant#1231409)]
Right keys [2]: [coalesce(internalUUID#1231422, ), isnull(internalUUID#1231422)]
Join type: LeftOuter
Join condition: None
(2387) Project
Output [4]: [product#1231408, plant#1231409, _extract_code#1234115, _extract_internalRefUUID#1234116]
Input [5]: [product#1231408, plant#1231409, _extract_code#1234115, _extract_internalRefUUID#1234116, internalUUID#1231422]
(2388) Scan parquet
Output [4]: [internalUUID#1231436, baseUnitOfMeasure#1231440, unitOfMeasureConversions#1231442, systemId#1231435]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2389) Filter
Input [4]: [internalUUID#1231436, baseUnitOfMeasure#1231440, unitOfMeasureConversions#1231442, systemId#1231435]
Condition : isnotnull(internalUUID#1231436)
(2390) Project
Output [3]: [internalUUID#1231436, baseUnitOfMeasure#1231440, unitOfMeasureConversions#1231442]
Input [4]: [internalUUID#1231436, baseUnitOfMeasure#1231440, unitOfMeasureConversions#1231442, systemId#1231435]
(2391) Exchange
Input [3]: [internalUUID#1231436, baseUnitOfMeasure#1231440, unitOfMeasureConversions#1231442]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930134]
(2392) BroadcastExchange
Input [3]: [internalUUID#1231436, baseUnitOfMeasure#1231440, unitOfMeasureConversions#1231442]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932197]
(2393) BroadcastHashJoin
Left keys [1]: [product#1231408]
Right keys [1]: [internalUUID#1231436]
Join type: LeftOuter
Join condition: None
(2394) Project
Output [2]: [plant#1231409, filter(unitOfMeasureConversions#1231442, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234115) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234116)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231440.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231440.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231447]
Input [7]: [product#1231408, plant#1231409, _extract_code#1234115, _extract_internalRefUUID#1234116, internalUUID#1231436, baseUnitOfMeasure#1231440, unitOfMeasureConversions#1231442]
(2395) Generate
Input [2]: [plant#1231409, filteredUnitOfMeasureConversions#1231447]
Arguments: explode(filteredUnitOfMeasureConversions#1231447.quantityNumerator), [plant#1231409, filteredUnitOfMeasureConversions#1231447], true, [quantityNumerator#1231448]
(2396) Project
Output [2]: [plant#1231409, filteredUnitOfMeasureConversions#1231447.quantityDenominator AS _extract_quantityDenominator#1233455]
Input [3]: [plant#1231409, filteredUnitOfMeasureConversions#1231447, quantityNumerator#1231448]
(2397) Generate
Input [2]: [plant#1231409, _extract_quantityDenominator#1233455]
Arguments: explode(_extract_quantityDenominator#1233455), [plant#1231409], true, [quantityDenominator#1231449]
(2398) Project
Output [1]: [plant#1231409]
Input [2]: [plant#1231409, quantityDenominator#1231449]
(2399) HashAggregate
Input [1]: [plant#1231409]
Keys [1]: [plant#1231409]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1231409]
(2400) Exchange
Input [1]: [plant#1231409]
Arguments: hashpartitioning(plant#1231409, 37), ENSURE_REQUIREMENTS, [plan_id=1932206]
(2401) HashAggregate
Input [1]: [plant#1231409]
Keys [1]: [plant#1231409]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1231409]
(2402) BroadcastHashJoin
Left keys [1]: [plantUuid#1231405]
Right keys [1]: [plant#1231409]
Join type: Inner
Join condition: None
(2403) Project
Output [3]: [plantUuid#1231405, storageLocId#1231406, storageLocUuid#1231407]
Input [4]: [plantUuid#1231405, storageLocId#1231406, storageLocUuid#1231407, plant#1231409]
(2404) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231377.internalRefUUID, ), isnull(plant#1231377.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1231405, ), isnull(plantUuid#1231405)]
Join type: Inner
Join condition: None
(2405) Generate
Input [9]: [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, stockQuantities#1231379, plantUuid#1231405, storageLocId#1231406, storageLocUuid#1231407]
Arguments: explode(filter(stockQuantities#1231379, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1231407) AND (lambda x#1225727.storageLocation.Id = storageLocId#1231406)), lambda x#1225727, false))), [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, plantUuid#1231405], false, [stockQuantity#1231452]
(2406) ObjectHashAggregate
Input [7]: [systemId#1231374, internalUUID#1231375, product#1231376, plant#1231377, calculationDateTime#1231378, plantUuid#1231405, stockQuantity#1231452]
Keys [5]: [plantUuid#1231405, internalUUID#1231375, plant#1231377, product#1231376, systemId#1231374]
Functions [2]: [partial_first(calculationDateTime#1231378, false), partial_collect_list(stockQuantity#1231452, 0, 0)]
Aggregate Attributes [3]: [first#1235143, valueSet#1235144, buf#1235145]
Results [8]: [plantUuid#1231405, internalUUID#1231375, plant#1231377, product#1231376, systemId#1231374, first#1235146, valueSet#1235147, buf#1235148]
(2407) ObjectHashAggregate
Input [8]: [plantUuid#1231405, internalUUID#1231375, plant#1231377, product#1231376, systemId#1231374, first#1235146, valueSet#1235147, buf#1235148]
Keys [5]: [plantUuid#1231405, internalUUID#1231375, plant#1231377, product#1231376, systemId#1231374]
Functions [2]: [first(calculationDateTime#1231378, false), collect_list(stockQuantity#1231452, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1231378)()#1225742, collect_list(stockQuantity#1231452, 0, 0)#1225743]
Results [4]: [product#1231376, plant#1231377, first(calculationDateTime#1231378)()#1225742 AS calculationDateTime#1231453, collect_list(stockQuantity#1231452, 0, 0)#1225743 AS stockQuantities#1231454]
(2408) Filter
Input [4]: [product#1231376, plant#1231377, calculationDateTime#1231453, stockQuantities#1231454]
Condition : ((size(stockQuantities#1231454, true) > 0) AND isnotnull(calculationDateTime#1231453))
(2409) Generate
Input [4]: [product#1231376, plant#1231377, calculationDateTime#1231453, stockQuantities#1231454]
Arguments: explode(stockQuantities#1231454), [product#1231376, plant#1231377, calculationDateTime#1231453], false, [stockQuantity#1231455]
(2410) Filter
Input [4]: [product#1231376, plant#1231377, calculationDateTime#1231453, stockQuantity#1231455]
Condition : (((isnotnull(stockQuantity#1231455.specialStockIndicator.code) AND isnotnull(stockQuantity#1231455.stockType.code)) AND (stockQuantity#1231455.specialStockIndicator.code = )) AND (stockQuantity#1231455.stockType.code = 01))
(2411) Project
Output [4]: [plant#1231377.internalRefUUID AS plantUuid#1231457, product#1231376.internalRefUUID AS productUuid#1231459, calculationDateTime#1231453, stockQuantity#1231455.storagelocation.id AS storageLocId#1231460]
Input [4]: [product#1231376, plant#1231377, calculationDateTime#1231453, stockQuantity#1231455]
(2412) Exchange
Input [4]: [plantUuid#1231457, productUuid#1231459, calculationDateTime#1231453, storageLocId#1231460]
Arguments: hashpartitioning(productUuid#1231459, plantUuid#1231457, 37), ENSURE_REQUIREMENTS, [plan_id=1932239]
(2413) Sort
Input [4]: [plantUuid#1231457, productUuid#1231459, calculationDateTime#1231453, storageLocId#1231460]
Arguments: [productUuid#1231459 ASC NULLS FIRST, plantUuid#1231457 ASC NULLS FIRST], false, 0
(2414) Scan parquet
Output [3]: [product#1231465, plant#1231466, orderDateTime#1231467]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2415) Filter
Input [3]: [product#1231465, plant#1231466, orderDateTime#1231467]
Condition : ((isnotnull(orderDateTime#1231467) AND isnotnull(plant#1231466)) AND isnotnull(product#1231465))
(2416) Exchange
Input [3]: [product#1231465, plant#1231466, orderDateTime#1231467]
Arguments: hashpartitioning(product#1231465, plant#1231466, 37), REPARTITION_BY_NUM, [plan_id=1931110]
(2417) Scan parquet
Output [4]: [plant#1231471, product#1231472, productionAspect#1231474, systemId#1231469]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2418) Project
Output [4]: [plant#1231471.internalRefUUID AS _extract_internalRefUUID#1234119, product#1231472.internalRefUUID AS _extract_internalRefUUID#1234120, productionAspect#1231474.productMovementPlants.unitOfIssue.code AS _extract_code#1234117, productionAspect#1231474.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234118]
Input [4]: [plant#1231471, product#1231472, productionAspect#1231474, systemId#1231469]
(2419) Exchange
Input [4]: [_extract_internalRefUUID#1234119, _extract_internalRefUUID#1234120, _extract_code#1234117, _extract_internalRefUUID#1234118]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930159]
(2420) Project
Output [4]: [_extract_code#1234117, _extract_internalRefUUID#1234118, _extract_internalRefUUID#1234120, _extract_internalRefUUID#1234119]
Input [4]: [_extract_internalRefUUID#1234119, _extract_internalRefUUID#1234120, _extract_code#1234117, _extract_internalRefUUID#1234118]
(2421) BroadcastExchange
Input [4]: [_extract_code#1234117, _extract_internalRefUUID#1234118, _extract_internalRefUUID#1234120, _extract_internalRefUUID#1234119]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932222]
(2422) BroadcastHashJoin
Left keys [4]: [coalesce(product#1231465, ), isnull(product#1231465), coalesce(plant#1231466, ), isnull(plant#1231466)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234120, ), isnull(_extract_internalRefUUID#1234120), coalesce(_extract_internalRefUUID#1234119, ), isnull(_extract_internalRefUUID#1234119)]
Join type: LeftOuter
Join condition: None
(2423) Project
Output [5]: [product#1231465, plant#1231466, orderDateTime#1231467, _extract_code#1234117, _extract_internalRefUUID#1234118]
Input [7]: [product#1231465, plant#1231466, orderDateTime#1231467, _extract_code#1234117, _extract_internalRefUUID#1234118, _extract_internalRefUUID#1234120, _extract_internalRefUUID#1234119]
(2424) Scan parquet
Output [2]: [internalUUID#1231479, systemId#1231478]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2425) Project
Output [1]: [internalUUID#1231479]
Input [2]: [internalUUID#1231479, systemId#1231478]
(2426) Exchange
Input [1]: [internalUUID#1231479]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930165]
(2427) BroadcastExchange
Input [1]: [internalUUID#1231479]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932226]
(2428) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1231466, ), isnull(plant#1231466)]
Right keys [2]: [coalesce(internalUUID#1231479, ), isnull(internalUUID#1231479)]
Join type: LeftOuter
Join condition: None
(2429) Project
Output [5]: [product#1231465, plant#1231466, orderDateTime#1231467, _extract_code#1234117, _extract_internalRefUUID#1234118]
Input [6]: [product#1231465, plant#1231466, orderDateTime#1231467, _extract_code#1234117, _extract_internalRefUUID#1234118, internalUUID#1231479]
(2430) Scan parquet
Output [4]: [internalUUID#1231493, baseUnitOfMeasure#1231497, unitOfMeasureConversions#1231499, systemId#1231492]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2431) Filter
Input [4]: [internalUUID#1231493, baseUnitOfMeasure#1231497, unitOfMeasureConversions#1231499, systemId#1231492]
Condition : isnotnull(internalUUID#1231493)
(2432) Project
Output [3]: [internalUUID#1231493, baseUnitOfMeasure#1231497, unitOfMeasureConversions#1231499]
Input [4]: [internalUUID#1231493, baseUnitOfMeasure#1231497, unitOfMeasureConversions#1231499, systemId#1231492]
(2433) Exchange
Input [3]: [internalUUID#1231493, baseUnitOfMeasure#1231497, unitOfMeasureConversions#1231499]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930171]
(2434) BroadcastExchange
Input [3]: [internalUUID#1231493, baseUnitOfMeasure#1231497, unitOfMeasureConversions#1231499]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932230]
(2435) BroadcastHashJoin
Left keys [1]: [product#1231465]
Right keys [1]: [internalUUID#1231493]
Join type: LeftOuter
Join condition: None
(2436) Project
Output [4]: [product#1231465, plant#1231466, orderDateTime#1231467, filter(unitOfMeasureConversions#1231499, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234117) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234118)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1231497.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1231497.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1231504]
Input [8]: [product#1231465, plant#1231466, orderDateTime#1231467, _extract_code#1234117, _extract_internalRefUUID#1234118, internalUUID#1231493, baseUnitOfMeasure#1231497, unitOfMeasureConversions#1231499]
(2437) Generate
Input [4]: [product#1231465, plant#1231466, orderDateTime#1231467, filteredUnitOfMeasureConversions#1231504]
Arguments: explode(filteredUnitOfMeasureConversions#1231504.quantityNumerator), [product#1231465, plant#1231466, orderDateTime#1231467, filteredUnitOfMeasureConversions#1231504], true, [quantityNumerator#1231505]
(2438) Project
Output [4]: [product#1231465, plant#1231466, orderDateTime#1231467, filteredUnitOfMeasureConversions#1231504.quantityDenominator AS _extract_quantityDenominator#1233459]
Input [5]: [product#1231465, plant#1231466, orderDateTime#1231467, filteredUnitOfMeasureConversions#1231504, quantityNumerator#1231505]
(2439) Generate
Input [4]: [product#1231465, plant#1231466, orderDateTime#1231467, _extract_quantityDenominator#1233459]
Arguments: explode(_extract_quantityDenominator#1233459), [product#1231465, plant#1231466, orderDateTime#1231467], true, [quantityDenominator#1231506]
(2440) Project
Output [3]: [product#1231465, plant#1231466, orderDateTime#1231467]
Input [4]: [product#1231465, plant#1231466, orderDateTime#1231467, quantityDenominator#1231506]
(2441) Sort
Input [3]: [product#1231465, plant#1231466, orderDateTime#1231467]
Arguments: [product#1231465 ASC NULLS FIRST, plant#1231466 ASC NULLS FIRST], false, 0
(2442) SortMergeJoin
Left keys [2]: [productUuid#1231459, plantUuid#1231457]
Right keys [2]: [product#1231465, plant#1231466]
Join type: Inner
Join condition: (calculationDateTime#1231453 <= orderDateTime#1231467)
(2443) Project
Output [4]: [plantUuid#1231457 AS plant#1231509, productUuid#1231459 AS product#1231510, storageLocId#1231460, calculationDateTime#1231453]
Input [7]: [plantUuid#1231457, productUuid#1231459, calculationDateTime#1231453, storageLocId#1231460, product#1231465, plant#1231466, orderDateTime#1231467]
(2444) HashAggregate
Input [4]: [plant#1231509, product#1231510, storageLocId#1231460, calculationDateTime#1231453]
Keys [3]: [plant#1231509, product#1231510, storageLocId#1231460]
Functions [1]: [partial_max(calculationDateTime#1231453)]
Aggregate Attributes [1]: [max#1235141]
Results [4]: [plant#1231509, product#1231510, storageLocId#1231460, max#1235142]
(2445) HashAggregate
Input [4]: [plant#1231509, product#1231510, storageLocId#1231460, max#1235142]
Keys [3]: [plant#1231509, product#1231510, storageLocId#1231460]
Functions [1]: [max(calculationDateTime#1231453)]
Aggregate Attributes [1]: [max(calculationDateTime#1231453)#1225820]
Results [4]: [plant#1231509, product#1231510, storageLocId#1231460, max(calculationDateTime#1231453)#1225820 AS max_calc_datetime#1231511]
(2446) Exchange
Input [4]: [plant#1231509, product#1231510, storageLocId#1231460, max_calc_datetime#1231511]
Arguments: hashpartitioning(coalesce(plant#1231509, ), isnull(plant#1231509), coalesce(product#1231510, ), isnull(product#1231510), coalesce(storageLocId#1231460, ), isnull(storageLocId#1231460), coalesce(max_calc_datetime#1231511, 1970-01-01 00:00:00), isnull(max_calc_datetime#1231511), 37), ENSURE_REQUIREMENTS, [plan_id=1932249]
(2447) Sort
Input [4]: [plant#1231509, product#1231510, storageLocId#1231460, max_calc_datetime#1231511]
Arguments: [coalesce(plant#1231509, ) ASC NULLS FIRST, isnull(plant#1231509) ASC NULLS FIRST, coalesce(product#1231510, ) ASC NULLS FIRST, isnull(product#1231510) ASC NULLS FIRST, coalesce(storageLocId#1231460, ) ASC NULLS FIRST, isnull(storageLocId#1231460) ASC NULLS FIRST, coalesce(max_calc_datetime#1231511, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1231511) ASC NULLS FIRST], false, 0
(2448) SortMergeJoin
Left keys [8]: [coalesce(plant#1231372, ), isnull(plant#1231372), coalesce(product#1231373, ), isnull(product#1231373), coalesce(storageLocId#1231323, ), isnull(storageLocId#1231323), coalesce(calculationDateTime#1231316, 1970-01-01 00:00:00), isnull(calculationDateTime#1231316)]
Right keys [8]: [coalesce(plant#1231509, ), isnull(plant#1231509), coalesce(product#1231510, ), isnull(product#1231510), coalesce(storageLocId#1231460, ), isnull(storageLocId#1231460), coalesce(max_calc_datetime#1231511, 1970-01-01 00:00:00), isnull(max_calc_datetime#1231511)]
Join type: Inner
Join condition: None
(2449) Project
Output [4]: [plant#1231372, product#1231373, calculationDateTime#1231316, quantity#1231325]
Input [9]: [plant#1231372, product#1231373, storageLocId#1231323, calculationDateTime#1231316, quantity#1231325, plant#1231509, product#1231510, storageLocId#1231460, max_calc_datetime#1231511]
(2450) HashAggregate
Input [4]: [plant#1231372, product#1231373, calculationDateTime#1231316, quantity#1231325]
Keys [2]: [product#1231373, plant#1231372]
Functions [2]: [partial_min(calculationDateTime#1231316), partial_sum(quantity#1231325)]
Aggregate Attributes [2]: [min#1235131, sum#1235132]
Results [4]: [product#1231373, plant#1231372, min#1235133, sum#1235134]
(2451) Exchange
Input [4]: [product#1231373, plant#1231372, min#1235133, sum#1235134]
Arguments: hashpartitioning(product#1231373, plant#1231372, 37), ENSURE_REQUIREMENTS, [plan_id=1932256]
(2452) HashAggregate
Input [4]: [product#1231373, plant#1231372, min#1235133, sum#1235134]
Keys [2]: [product#1231373, plant#1231372]
Functions [2]: [min(calculationDateTime#1231316), sum(quantity#1231325)]
Aggregate Attributes [2]: [min(calculationDateTime#1231316)#1225976, sum(quantity#1231325)#1225975]
Results [4]: [product#1231373, plant#1231372, min(calculationDateTime#1231316)#1225976 AS minCalculationDateTime#1231513, round(sum(quantity#1231325)#1225975, 0) AS roundedQuantitySum#1231514]
(2453) Sort
Input [4]: [product#1231373, plant#1231372, minCalculationDateTime#1231513, roundedQuantitySum#1231514]
Arguments: [product#1231373 ASC NULLS FIRST, plant#1231372 ASC NULLS FIRST], false, 0
(2454) SortMergeJoin
Left keys [2]: [product#1231193, plant#1231194]
Right keys [2]: [product#1231373, plant#1231372]
Join type: LeftOuter
Join condition: None
(2455) Project
Output [8]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, CASE WHEN isnotnull(minCalculationDateTime#1231513) THEN minCalculationDateTime#1231513 ELSE orderDateTime#1231195 END AS stockDatetime#1231515, CASE WHEN isnotnull(roundedQuantitySum#1231514) THEN array(roundedQuantitySum#1231514) ELSE [0.0] END AS stockBatchQuantities#1231516]
Input [10]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, product#1231373, plant#1231372, minCalculationDateTime#1231513, roundedQuantitySum#1231514]
(2456) Scan parquet
Output [9]: [product#1231518, plant#1231519, demandChannel#1231520, demandStream#1231521, considerVariance#1231522, demandTimeBuckets#1231523, demandPointInTimeStart#1231524, demandPointInTimeEnd#1231525, demandPointInTime#1231526]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001356/0_1_10000001356]
PushedFilters: [IsNotNull(product), IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(2457) Filter
Input [9]: [product#1231518, plant#1231519, demandChannel#1231520, demandStream#1231521, considerVariance#1231522, demandTimeBuckets#1231523, demandPointInTimeStart#1231524, demandPointInTimeEnd#1231525, demandPointInTime#1231526]
Condition : (isnotnull(product#1231518) AND isnotnull(plant#1231519))
(2458) BroadcastExchange
Input [9]: [product#1231518, plant#1231519, demandChannel#1231520, demandStream#1231521, considerVariance#1231522, demandTimeBuckets#1231523, demandPointInTimeStart#1231524, demandPointInTimeEnd#1231525, demandPointInTime#1231526]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1932265]
(2459) BroadcastHashJoin
Left keys [2]: [product#1231193, plant#1231194]
Right keys [2]: [product#1231518, plant#1231519]
Join type: LeftOuter
Join condition: None
(2460) Project
Output [9]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, CASE WHEN isnotnull(product#1231518) THEN struct(demandChannel, demandChannel#1231520, demandStream, demandStream#1231521, considerVariance, considerVariance#1231522, demandTimeBuckets, demandTimeBuckets#1231523, demandPointInTimeStart, demandPointInTimeStart#1231524, demandPointInTimeEnd, demandPointInTimeEnd#1231525, demandPointInTime, demandPointInTime#1231526) END AS rawDemands#1231527]
Input [17]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, product#1231518, plant#1231519, demandChannel#1231520, demandStream#1231521, considerVariance#1231522, demandTimeBuckets#1231523, demandPointInTimeStart#1231524, demandPointInTimeEnd#1231525, demandPointInTime#1231526]
(2461) ObjectHashAggregate
Input [9]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, rawDemands#1231527]
Keys [9]: [product#1231193, plant#1231194, orderDateTime#1231195, knownfloatingpointnormalized(if (isnull(productPlant#1231205)) null else named_struct(systemId, productPlant#1231205.systemId, internalUUID, productPlant#1231205.internalUUID, plant, productPlant#1231205.plant, product, productPlant#1231205.product, blockedForReplenishmentStartingFrom, productPlant#1231205.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1231205.productionAspect)) null else named_struct(productMovementPlants, productPlant#1231205.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1231205.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1231205.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1231205.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1231205.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1231205.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1231205.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1231205.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1231205.salesPlant, listing, productPlant#1231205.listing)) AS productPlant#1231205, timezonecode#1231219, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1231236)) AS outboundUnit#1231236, stockDatetime#1231515, knownfloatingpointnormalized(transform(stockBatchQuantities#1231516, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1235128)), lambda arg#1235128, false))) AS stockBatchQuantities#1231516, [7226582400000000] AS [7226582400000000]#1235127]
Functions [1]: [partial_collect_list(rawDemands#1231527, 0, 0)]
Aggregate Attributes [1]: [buf#1235129]
Results [10]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, [7226582400000000]#1235127, buf#1235130]
(2462) ObjectHashAggregate
Input [10]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, [7226582400000000]#1235127, buf#1235130]
Keys [9]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, [7226582400000000]#1235127]
Functions [1]: [collect_list(rawDemands#1231527, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1231527, 0, 0)#1226069]
Results [10]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1231517, collect_list(rawDemands#1231527, 0, 0)#1226069 AS rawDemands#1231528]
(2463) DeserializeToObject
Input [10]: [product#1231193, plant#1231194, orderDateTime#1231195, productPlant#1231205, timezonecode#1231219, outboundUnit#1231236, stockDatetime#1231515, stockBatchQuantities#1231516, stockBatchShelfLifeEndDatetimes#1231517, rawDemands#1231528]
Arguments: createexternalrow(invoke(product#1231193.toString()), invoke(plant#1231194.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1231195)), if (isnull(productPlant#1231205)) null else createexternalrow(invoke(productPlant#1231205.systemId.toString()), invoke(productPlant#1231205.internalUUID.toString()), if (isnull(productPlant#1231205.plant)) null else createexternalrow(invoke(productPlant#1231205.plant.internalRefUUID.toString()), invoke(productPlant#1231205.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1231205.product)) null else createexternalrow(invoke(productPlant#1231205.product.internalRefUUID.toString()), invoke(productPlant#1231205.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1231205.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1231205.productionAspect)) null else createexternalrow(if (isnull(productPlant#1231205.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1231205.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1231205.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1231205.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1231205.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1231205.salesPlant)) null else createexternalrow(if (isnull(productPlant#1231205.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1231205.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1231205.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1231205.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1231219.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1231236)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1231515)), mapobjects(lambdavariable(MapObject, DoubleType, true, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1231516, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), stockBatchShelfLifeEndDatetimes#1231517, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1231528, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(2464) MapElements
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(2465) SerializeFromObject
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1231529, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1231530, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1231531, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1231532]
(2466) Exchange
Input [4]: [product#1231529, plant#1231530, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Arguments: hashpartitioning(coalesce(plant#1231530, ), isnull(plant#1231530), coalesce(product#1231529, ), isnull(product#1231529), 37), ENSURE_REQUIREMENTS, [plan_id=1932276]
(2467) Sort
Input [4]: [product#1231529, plant#1231530, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Arguments: [coalesce(plant#1231530, ) ASC NULLS FIRST, isnull(plant#1231530) ASC NULLS FIRST, coalesce(product#1231529, ) ASC NULLS FIRST, isnull(product#1231529) ASC NULLS FIRST], false, 0
(2468) SortMergeJoin
Left keys [4]: [coalesce(plant#1230869, ), isnull(plant#1230869), coalesce(product#1230868, ), isnull(product#1230868)]
Right keys [4]: [coalesce(plant#1231530, ), isnull(plant#1231530), coalesce(product#1231529, ), isnull(product#1231529)]
Join type: LeftOuter
Join condition: None
(2469) Project
Output [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Input [12]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, product#1231529, plant#1231530, dayBucketDemands#1231531, pointInTimeDemands#1231532]
(2470) Exchange
Input [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Arguments: hashpartitioning(product#1230868, plant#1230869, 37), ENSURE_REQUIREMENTS, [plan_id=1932605]
(2471) Sort
Input [10]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532]
Arguments: [product#1230868 ASC NULLS FIRST, plant#1230869 ASC NULLS FIRST], false, 0
(2472) InMemoryTableScan
Output [3]: [product#1232283, plant#1232282, openGoodsMovements#1232297]
Arguments: [product#1232283, plant#1232282, openGoodsMovements#1232297], [isnotnull(product#1232283), isnotnull(plant#1232282)]
(2473) InMemoryRelation
Arguments: [product#1232283, plant#1232282, openGoodsMovements#1232297], StorageLevel(disk, memory, 2 replicas)
(2474) Filter
Input [3]: [product#1232283, plant#1232282, openGoodsMovements#1232297]
Condition : (isnotnull(product#1232283) AND isnotnull(plant#1232282))
(2475) Scan parquet
Output [3]: [product#1232298, plant#1232299, orderDateTime#1232300]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2476) Filter
Input [3]: [product#1232298, plant#1232299, orderDateTime#1232300]
Condition : isnotnull(plant#1232299)
(2477) Exchange
Input [3]: [product#1232298, plant#1232299, orderDateTime#1232300]
Arguments: hashpartitioning(product#1232298, plant#1232299, 37), REPARTITION_BY_NUM, [plan_id=1931140]
(2478) Scan parquet
Output [4]: [plant#1232304, product#1232305, productionAspect#1232307, systemId#1232302]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2479) Project
Output [4]: [plant#1232304.internalRefUUID AS _extract_internalRefUUID#1234124, product#1232305.internalRefUUID AS _extract_internalRefUUID#1234123, productionAspect#1232307.productMovementPlants.unitOfIssue.code AS _extract_code#1234121, productionAspect#1232307.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234122]
Input [4]: [plant#1232304, product#1232305, productionAspect#1232307, systemId#1232302]
(2480) Exchange
Input [4]: [_extract_internalRefUUID#1234124, _extract_internalRefUUID#1234123, _extract_code#1234121, _extract_internalRefUUID#1234122]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930208]
(2481) Project
Output [4]: [_extract_code#1234121, _extract_internalRefUUID#1234122, _extract_internalRefUUID#1234123, _extract_internalRefUUID#1234124]
Input [4]: [_extract_internalRefUUID#1234124, _extract_internalRefUUID#1234123, _extract_code#1234121, _extract_internalRefUUID#1234122]
(2482) BroadcastExchange
Input [4]: [_extract_code#1234121, _extract_internalRefUUID#1234122, _extract_internalRefUUID#1234123, _extract_internalRefUUID#1234124]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932281]
(2483) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232298, ), isnull(product#1232298), coalesce(plant#1232299, ), isnull(plant#1232299)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234123, ), isnull(_extract_internalRefUUID#1234123), coalesce(_extract_internalRefUUID#1234124, ), isnull(_extract_internalRefUUID#1234124)]
Join type: LeftOuter
Join condition: None
(2484) Project
Output [5]: [product#1232298, plant#1232299, orderDateTime#1232300, _extract_code#1234121, _extract_internalRefUUID#1234122]
Input [7]: [product#1232298, plant#1232299, orderDateTime#1232300, _extract_code#1234121, _extract_internalRefUUID#1234122, _extract_internalRefUUID#1234123, _extract_internalRefUUID#1234124]
(2485) Scan parquet
Output [2]: [internalUUID#1232312, systemId#1232311]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2486) Project
Output [1]: [internalUUID#1232312]
Input [2]: [internalUUID#1232312, systemId#1232311]
(2487) Exchange
Input [1]: [internalUUID#1232312]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930214]
(2488) BroadcastExchange
Input [1]: [internalUUID#1232312]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932285]
(2489) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232299, ), isnull(plant#1232299)]
Right keys [2]: [coalesce(internalUUID#1232312, ), isnull(internalUUID#1232312)]
Join type: LeftOuter
Join condition: None
(2490) Project
Output [5]: [product#1232298, plant#1232299, orderDateTime#1232300, _extract_code#1234121, _extract_internalRefUUID#1234122]
Input [6]: [product#1232298, plant#1232299, orderDateTime#1232300, _extract_code#1234121, _extract_internalRefUUID#1234122, internalUUID#1232312]
(2491) Scan parquet
Output [4]: [internalUUID#1232326, baseUnitOfMeasure#1232330, unitOfMeasureConversions#1232332, systemId#1232325]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2492) Filter
Input [4]: [internalUUID#1232326, baseUnitOfMeasure#1232330, unitOfMeasureConversions#1232332, systemId#1232325]
Condition : isnotnull(internalUUID#1232326)
(2493) Project
Output [3]: [internalUUID#1232326, baseUnitOfMeasure#1232330, unitOfMeasureConversions#1232332]
Input [4]: [internalUUID#1232326, baseUnitOfMeasure#1232330, unitOfMeasureConversions#1232332, systemId#1232325]
(2494) Exchange
Input [3]: [internalUUID#1232326, baseUnitOfMeasure#1232330, unitOfMeasureConversions#1232332]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930220]
(2495) BroadcastExchange
Input [3]: [internalUUID#1232326, baseUnitOfMeasure#1232330, unitOfMeasureConversions#1232332]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932289]
(2496) BroadcastHashJoin
Left keys [1]: [product#1232298]
Right keys [1]: [internalUUID#1232326]
Join type: LeftOuter
Join condition: None
(2497) Project
Output [4]: [product#1232298, plant#1232299, orderDateTime#1232300, filter(unitOfMeasureConversions#1232332, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234121) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234122)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232330.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232330.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232337]
Input [8]: [product#1232298, plant#1232299, orderDateTime#1232300, _extract_code#1234121, _extract_internalRefUUID#1234122, internalUUID#1232326, baseUnitOfMeasure#1232330, unitOfMeasureConversions#1232332]
(2498) Generate
Input [4]: [product#1232298, plant#1232299, orderDateTime#1232300, filteredUnitOfMeasureConversions#1232337]
Arguments: explode(filteredUnitOfMeasureConversions#1232337.quantityNumerator), [product#1232298, plant#1232299, orderDateTime#1232300, filteredUnitOfMeasureConversions#1232337], true, [quantityNumerator#1232338]
(2499) Project
Output [4]: [product#1232298, plant#1232299, orderDateTime#1232300, filteredUnitOfMeasureConversions#1232337.quantityDenominator AS _extract_quantityDenominator#1233463]
Input [5]: [product#1232298, plant#1232299, orderDateTime#1232300, filteredUnitOfMeasureConversions#1232337, quantityNumerator#1232338]
(2500) Generate
Input [4]: [product#1232298, plant#1232299, orderDateTime#1232300, _extract_quantityDenominator#1233463]
Arguments: explode(_extract_quantityDenominator#1233463), [product#1232298, plant#1232299, orderDateTime#1232300], true, [quantityDenominator#1232339]
(2501) Project
Output [3]: [product#1232298, plant#1232299, orderDateTime#1232300]
Input [4]: [product#1232298, plant#1232299, orderDateTime#1232300, quantityDenominator#1232339]
(2502) Sort
Input [3]: [product#1232298, plant#1232299, orderDateTime#1232300]
Arguments: [product#1232298 ASC NULLS FIRST, plant#1232299 ASC NULLS FIRST], false, 0
(2503) Scan parquet
Output [6]: [internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347, systemId#1232342]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(2504) Filter
Input [6]: [internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347, systemId#1232342]
Condition : (isnotnull(plant#1232345.internalRefUUID) AND isnotnull(product#1232344.internalRefUUID))
(2505) Project
Output [6]: [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347]
Input [6]: [internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347, systemId#1232342]
(2506) Exchange
Input [6]: [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930230]
(2507) BroadcastExchange
Input [6]: [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1932320]
(2508) Scan parquet
Output [2]: [marketUnit#1232348, distributionCenters#1232354]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(2509) Filter
Input [2]: [marketUnit#1232348, distributionCenters#1232354]
Condition : (((marketUnit#1232348 <=> AUTO_MUV2) AND (size(distributionCenters#1232354, true) > 0)) AND isnotnull(distributionCenters#1232354))
(2510) Project
Output [1]: [distributionCenters#1232354]
Input [2]: [marketUnit#1232348, distributionCenters#1232354]
(2511) Exchange
Input [1]: [distributionCenters#1232354]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930234]
(2512) Generate
Input [1]: [distributionCenters#1232354]
Arguments: explode(distributionCenters#1232354), false, [distributionCenters#1232370]
(2513) Filter
Input [1]: [distributionCenters#1232370]
Condition : (((size(distributionCenters#1232370.storageLocations, true) > 0) AND isnotnull(distributionCenters#1232370.storageLocations)) AND isnotnull(distributionCenters#1232370.internalRefUUID))
(2514) Project
Output [2]: [distributionCenters#1232370.internalRefUUID AS _extract_internalRefUUID#1233467, distributionCenters#1232370.storageLocations AS _extract_storageLocations#1233468]
Input [1]: [distributionCenters#1232370]
(2515) Generate
Input [2]: [_extract_internalRefUUID#1233467, _extract_storageLocations#1233468]
Arguments: explode(_extract_storageLocations#1233468), [_extract_internalRefUUID#1233467], false, [storageLocations#1232371]
(2516) Project
Output [3]: [_extract_internalRefUUID#1233467 AS plantUuid#1232373, storageLocations#1232371.id AS storageLocId#1232374, storageLocations#1232371.internalRefUUID AS storageLocUuid#1232375]
Input [2]: [_extract_internalRefUUID#1233467, storageLocations#1232371]
(2517) BroadcastExchange
Input [3]: [plantUuid#1232373, storageLocId#1232374, storageLocUuid#1232375]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932316]
(2518) Scan parquet
Output [2]: [product#1232376, plant#1232377]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(2519) Filter
Input [2]: [product#1232376, plant#1232377]
Condition : isnotnull(plant#1232377)
(2520) Exchange
Input [2]: [product#1232376, plant#1232377]
Arguments: hashpartitioning(product#1232376, plant#1232377, 37), REPARTITION_BY_NUM, [plan_id=1931151]
(2521) Scan parquet
Output [4]: [plant#1232382, product#1232383, productionAspect#1232385, systemId#1232380]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2522) Project
Output [4]: [plant#1232382.internalRefUUID AS _extract_internalRefUUID#1234125, product#1232383.internalRefUUID AS _extract_internalRefUUID#1234128, productionAspect#1232385.productMovementPlants.unitOfIssue.code AS _extract_code#1234126, productionAspect#1232385.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234127]
Input [4]: [plant#1232382, product#1232383, productionAspect#1232385, systemId#1232380]
(2523) Exchange
Input [4]: [_extract_internalRefUUID#1234125, _extract_internalRefUUID#1234128, _extract_code#1234126, _extract_internalRefUUID#1234127]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930246]
(2524) Project
Output [4]: [_extract_code#1234126, _extract_internalRefUUID#1234127, _extract_internalRefUUID#1234128, _extract_internalRefUUID#1234125]
Input [4]: [_extract_internalRefUUID#1234125, _extract_internalRefUUID#1234128, _extract_code#1234126, _extract_internalRefUUID#1234127]
(2525) BroadcastExchange
Input [4]: [_extract_code#1234126, _extract_internalRefUUID#1234127, _extract_internalRefUUID#1234128, _extract_internalRefUUID#1234125]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932296]
(2526) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232376, ), isnull(product#1232376), coalesce(plant#1232377, ), isnull(plant#1232377)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234128, ), isnull(_extract_internalRefUUID#1234128), coalesce(_extract_internalRefUUID#1234125, ), isnull(_extract_internalRefUUID#1234125)]
Join type: LeftOuter
Join condition: None
(2527) Project
Output [4]: [product#1232376, plant#1232377, _extract_code#1234126, _extract_internalRefUUID#1234127]
Input [6]: [product#1232376, plant#1232377, _extract_code#1234126, _extract_internalRefUUID#1234127, _extract_internalRefUUID#1234128, _extract_internalRefUUID#1234125]
(2528) Scan parquet
Output [2]: [internalUUID#1232390, systemId#1232389]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2529) Project
Output [1]: [internalUUID#1232390]
Input [2]: [internalUUID#1232390, systemId#1232389]
(2530) Exchange
Input [1]: [internalUUID#1232390]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930252]
(2531) BroadcastExchange
Input [1]: [internalUUID#1232390]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932300]
(2532) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232377, ), isnull(plant#1232377)]
Right keys [2]: [coalesce(internalUUID#1232390, ), isnull(internalUUID#1232390)]
Join type: LeftOuter
Join condition: None
(2533) Project
Output [4]: [product#1232376, plant#1232377, _extract_code#1234126, _extract_internalRefUUID#1234127]
Input [5]: [product#1232376, plant#1232377, _extract_code#1234126, _extract_internalRefUUID#1234127, internalUUID#1232390]
(2534) Scan parquet
Output [4]: [internalUUID#1232404, baseUnitOfMeasure#1232408, unitOfMeasureConversions#1232410, systemId#1232403]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2535) Filter
Input [4]: [internalUUID#1232404, baseUnitOfMeasure#1232408, unitOfMeasureConversions#1232410, systemId#1232403]
Condition : isnotnull(internalUUID#1232404)
(2536) Project
Output [3]: [internalUUID#1232404, baseUnitOfMeasure#1232408, unitOfMeasureConversions#1232410]
Input [4]: [internalUUID#1232404, baseUnitOfMeasure#1232408, unitOfMeasureConversions#1232410, systemId#1232403]
(2537) Exchange
Input [3]: [internalUUID#1232404, baseUnitOfMeasure#1232408, unitOfMeasureConversions#1232410]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930258]
(2538) BroadcastExchange
Input [3]: [internalUUID#1232404, baseUnitOfMeasure#1232408, unitOfMeasureConversions#1232410]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932304]
(2539) BroadcastHashJoin
Left keys [1]: [product#1232376]
Right keys [1]: [internalUUID#1232404]
Join type: LeftOuter
Join condition: None
(2540) Project
Output [2]: [plant#1232377, filter(unitOfMeasureConversions#1232410, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234126) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234127)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232408.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232408.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232415]
Input [7]: [product#1232376, plant#1232377, _extract_code#1234126, _extract_internalRefUUID#1234127, internalUUID#1232404, baseUnitOfMeasure#1232408, unitOfMeasureConversions#1232410]
(2541) Generate
Input [2]: [plant#1232377, filteredUnitOfMeasureConversions#1232415]
Arguments: explode(filteredUnitOfMeasureConversions#1232415.quantityNumerator), [plant#1232377, filteredUnitOfMeasureConversions#1232415], true, [quantityNumerator#1232416]
(2542) Project
Output [2]: [plant#1232377, filteredUnitOfMeasureConversions#1232415.quantityDenominator AS _extract_quantityDenominator#1233469]
Input [3]: [plant#1232377, filteredUnitOfMeasureConversions#1232415, quantityNumerator#1232416]
(2543) Generate
Input [2]: [plant#1232377, _extract_quantityDenominator#1233469]
Arguments: explode(_extract_quantityDenominator#1233469), [plant#1232377], true, [quantityDenominator#1232417]
(2544) Project
Output [1]: [plant#1232377]
Input [2]: [plant#1232377, quantityDenominator#1232417]
(2545) HashAggregate
Input [1]: [plant#1232377]
Keys [1]: [plant#1232377]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1232377]
(2546) Exchange
Input [1]: [plant#1232377]
Arguments: hashpartitioning(plant#1232377, 37), ENSURE_REQUIREMENTS, [plan_id=1932313]
(2547) HashAggregate
Input [1]: [plant#1232377]
Keys [1]: [plant#1232377]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1232377]
(2548) BroadcastHashJoin
Left keys [1]: [plantUuid#1232373]
Right keys [1]: [plant#1232377]
Join type: Inner
Join condition: None
(2549) Project
Output [3]: [plantUuid#1232373, storageLocId#1232374, storageLocUuid#1232375]
Input [4]: [plantUuid#1232373, storageLocId#1232374, storageLocUuid#1232375, plant#1232377]
(2550) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232345.internalRefUUID, ), isnull(plant#1232345.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1232373, ), isnull(plantUuid#1232373)]
Join type: Inner
Join condition: None
(2551) Generate
Input [9]: [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, stockQuantities#1232347, plantUuid#1232373, storageLocId#1232374, storageLocUuid#1232375]
Arguments: explode(filter(stockQuantities#1232347, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232375) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232374)), lambda x#1225727, false))), [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, plantUuid#1232373], false, [stockQuantity#1232420]
(2552) ObjectHashAggregate
Input [7]: [systemId#1232342, internalUUID#1232343, product#1232344, plant#1232345, calculationDateTime#1232346, plantUuid#1232373, stockQuantity#1232420]
Keys [5]: [plantUuid#1232373, internalUUID#1232343, plant#1232345, product#1232344, systemId#1232342]
Functions [2]: [partial_first(calculationDateTime#1232346, false), partial_collect_list(stockQuantity#1232420, 0, 0)]
Aggregate Attributes [3]: [first#1235155, valueSet#1235156, buf#1235157]
Results [8]: [plantUuid#1232373, internalUUID#1232343, plant#1232345, product#1232344, systemId#1232342, first#1235158, valueSet#1235159, buf#1235160]
(2553) ObjectHashAggregate
Input [8]: [plantUuid#1232373, internalUUID#1232343, plant#1232345, product#1232344, systemId#1232342, first#1235158, valueSet#1235159, buf#1235160]
Keys [5]: [plantUuid#1232373, internalUUID#1232343, plant#1232345, product#1232344, systemId#1232342]
Functions [2]: [first(calculationDateTime#1232346, false), collect_list(stockQuantity#1232420, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1232346)()#1225742, collect_list(stockQuantity#1232420, 0, 0)#1225743]
Results [4]: [product#1232344, plant#1232345, first(calculationDateTime#1232346)()#1225742 AS calculationDateTime#1232421, collect_list(stockQuantity#1232420, 0, 0)#1225743 AS stockQuantities#1232422]
(2554) Filter
Input [4]: [product#1232344, plant#1232345, calculationDateTime#1232421, stockQuantities#1232422]
Condition : ((size(stockQuantities#1232422, true) > 0) AND isnotnull(calculationDateTime#1232421))
(2555) Generate
Input [4]: [product#1232344, plant#1232345, calculationDateTime#1232421, stockQuantities#1232422]
Arguments: explode(stockQuantities#1232422), [product#1232344, plant#1232345, calculationDateTime#1232421], false, [stockQuantity#1232423]
(2556) Filter
Input [4]: [product#1232344, plant#1232345, calculationDateTime#1232421, stockQuantity#1232423]
Condition : (((isnotnull(stockQuantity#1232423.specialStockIndicator.code) AND isnotnull(stockQuantity#1232423.stockType.code)) AND (stockQuantity#1232423.specialStockIndicator.code = )) AND (stockQuantity#1232423.stockType.code = 01))
(2557) Project
Output [4]: [plant#1232345.internalRefUUID AS plantUuid#1232425, product#1232344.internalRefUUID AS productUuid#1232427, calculationDateTime#1232421, stockQuantity#1232423.storagelocation.id AS storageLocId#1232428]
Input [4]: [product#1232344, plant#1232345, calculationDateTime#1232421, stockQuantity#1232423]
(2558) Exchange
Input [4]: [plantUuid#1232425, productUuid#1232427, calculationDateTime#1232421, storageLocId#1232428]
Arguments: hashpartitioning(productUuid#1232427, plantUuid#1232425, 37), ENSURE_REQUIREMENTS, [plan_id=1932346]
(2559) Sort
Input [4]: [plantUuid#1232425, productUuid#1232427, calculationDateTime#1232421, storageLocId#1232428]
Arguments: [productUuid#1232427 ASC NULLS FIRST, plantUuid#1232425 ASC NULLS FIRST], false, 0
(2560) Scan parquet
Output [3]: [product#1232433, plant#1232434, orderDateTime#1232435]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2561) Filter
Input [3]: [product#1232433, plant#1232434, orderDateTime#1232435]
Condition : ((isnotnull(orderDateTime#1232435) AND isnotnull(plant#1232434)) AND isnotnull(product#1232433))
(2562) Exchange
Input [3]: [product#1232433, plant#1232434, orderDateTime#1232435]
Arguments: hashpartitioning(product#1232433, plant#1232434, 37), REPARTITION_BY_NUM, [plan_id=1931174]
(2563) Scan parquet
Output [4]: [plant#1232439, product#1232440, productionAspect#1232442, systemId#1232437]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2564) Project
Output [4]: [plant#1232439.internalRefUUID AS _extract_internalRefUUID#1234131, product#1232440.internalRefUUID AS _extract_internalRefUUID#1234132, productionAspect#1232442.productMovementPlants.unitOfIssue.code AS _extract_code#1234129, productionAspect#1232442.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234130]
Input [4]: [plant#1232439, product#1232440, productionAspect#1232442, systemId#1232437]
(2565) Exchange
Input [4]: [_extract_internalRefUUID#1234131, _extract_internalRefUUID#1234132, _extract_code#1234129, _extract_internalRefUUID#1234130]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930283]
(2566) Project
Output [4]: [_extract_code#1234129, _extract_internalRefUUID#1234130, _extract_internalRefUUID#1234132, _extract_internalRefUUID#1234131]
Input [4]: [_extract_internalRefUUID#1234131, _extract_internalRefUUID#1234132, _extract_code#1234129, _extract_internalRefUUID#1234130]
(2567) BroadcastExchange
Input [4]: [_extract_code#1234129, _extract_internalRefUUID#1234130, _extract_internalRefUUID#1234132, _extract_internalRefUUID#1234131]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932329]
(2568) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232433, ), isnull(product#1232433), coalesce(plant#1232434, ), isnull(plant#1232434)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234132, ), isnull(_extract_internalRefUUID#1234132), coalesce(_extract_internalRefUUID#1234131, ), isnull(_extract_internalRefUUID#1234131)]
Join type: LeftOuter
Join condition: None
(2569) Project
Output [5]: [product#1232433, plant#1232434, orderDateTime#1232435, _extract_code#1234129, _extract_internalRefUUID#1234130]
Input [7]: [product#1232433, plant#1232434, orderDateTime#1232435, _extract_code#1234129, _extract_internalRefUUID#1234130, _extract_internalRefUUID#1234132, _extract_internalRefUUID#1234131]
(2570) Scan parquet
Output [2]: [internalUUID#1232447, systemId#1232446]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2571) Project
Output [1]: [internalUUID#1232447]
Input [2]: [internalUUID#1232447, systemId#1232446]
(2572) Exchange
Input [1]: [internalUUID#1232447]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930289]
(2573) BroadcastExchange
Input [1]: [internalUUID#1232447]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932333]
(2574) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232434, ), isnull(plant#1232434)]
Right keys [2]: [coalesce(internalUUID#1232447, ), isnull(internalUUID#1232447)]
Join type: LeftOuter
Join condition: None
(2575) Project
Output [5]: [product#1232433, plant#1232434, orderDateTime#1232435, _extract_code#1234129, _extract_internalRefUUID#1234130]
Input [6]: [product#1232433, plant#1232434, orderDateTime#1232435, _extract_code#1234129, _extract_internalRefUUID#1234130, internalUUID#1232447]
(2576) Scan parquet
Output [4]: [internalUUID#1232461, baseUnitOfMeasure#1232465, unitOfMeasureConversions#1232467, systemId#1232460]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2577) Filter
Input [4]: [internalUUID#1232461, baseUnitOfMeasure#1232465, unitOfMeasureConversions#1232467, systemId#1232460]
Condition : isnotnull(internalUUID#1232461)
(2578) Project
Output [3]: [internalUUID#1232461, baseUnitOfMeasure#1232465, unitOfMeasureConversions#1232467]
Input [4]: [internalUUID#1232461, baseUnitOfMeasure#1232465, unitOfMeasureConversions#1232467, systemId#1232460]
(2579) Exchange
Input [3]: [internalUUID#1232461, baseUnitOfMeasure#1232465, unitOfMeasureConversions#1232467]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930295]
(2580) BroadcastExchange
Input [3]: [internalUUID#1232461, baseUnitOfMeasure#1232465, unitOfMeasureConversions#1232467]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932337]
(2581) BroadcastHashJoin
Left keys [1]: [product#1232433]
Right keys [1]: [internalUUID#1232461]
Join type: LeftOuter
Join condition: None
(2582) Project
Output [4]: [product#1232433, plant#1232434, orderDateTime#1232435, filter(unitOfMeasureConversions#1232467, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234129) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234130)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232465.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232465.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232472]
Input [8]: [product#1232433, plant#1232434, orderDateTime#1232435, _extract_code#1234129, _extract_internalRefUUID#1234130, internalUUID#1232461, baseUnitOfMeasure#1232465, unitOfMeasureConversions#1232467]
(2583) Generate
Input [4]: [product#1232433, plant#1232434, orderDateTime#1232435, filteredUnitOfMeasureConversions#1232472]
Arguments: explode(filteredUnitOfMeasureConversions#1232472.quantityNumerator), [product#1232433, plant#1232434, orderDateTime#1232435, filteredUnitOfMeasureConversions#1232472], true, [quantityNumerator#1232473]
(2584) Project
Output [4]: [product#1232433, plant#1232434, orderDateTime#1232435, filteredUnitOfMeasureConversions#1232472.quantityDenominator AS _extract_quantityDenominator#1233473]
Input [5]: [product#1232433, plant#1232434, orderDateTime#1232435, filteredUnitOfMeasureConversions#1232472, quantityNumerator#1232473]
(2585) Generate
Input [4]: [product#1232433, plant#1232434, orderDateTime#1232435, _extract_quantityDenominator#1233473]
Arguments: explode(_extract_quantityDenominator#1233473), [product#1232433, plant#1232434, orderDateTime#1232435], true, [quantityDenominator#1232474]
(2586) Project
Output [3]: [product#1232433, plant#1232434, orderDateTime#1232435]
Input [4]: [product#1232433, plant#1232434, orderDateTime#1232435, quantityDenominator#1232474]
(2587) Sort
Input [3]: [product#1232433, plant#1232434, orderDateTime#1232435]
Arguments: [product#1232433 ASC NULLS FIRST, plant#1232434 ASC NULLS FIRST], false, 0
(2588) SortMergeJoin
Left keys [2]: [productUuid#1232427, plantUuid#1232425]
Right keys [2]: [product#1232433, plant#1232434]
Join type: Inner
Join condition: (calculationDateTime#1232421 <= orderDateTime#1232435)
(2589) Project
Output [4]: [plantUuid#1232425 AS plant#1232477, productUuid#1232427 AS product#1232478, storageLocId#1232428, calculationDateTime#1232421]
Input [7]: [plantUuid#1232425, productUuid#1232427, calculationDateTime#1232421, storageLocId#1232428, product#1232433, plant#1232434, orderDateTime#1232435]
(2590) Exchange
Input [4]: [plant#1232477, product#1232478, storageLocId#1232428, calculationDateTime#1232421]
Arguments: hashpartitioning(coalesce(plant#1232477, ), isnull(plant#1232477), coalesce(product#1232478, ), isnull(product#1232478), coalesce(storageLocId#1232428, ), isnull(storageLocId#1232428), coalesce(calculationDateTime#1232421, 1970-01-01 00:00:00), isnull(calculationDateTime#1232421), 37), ENSURE_REQUIREMENTS, [plan_id=1932410]
(2591) Sort
Input [4]: [plant#1232477, product#1232478, storageLocId#1232428, calculationDateTime#1232421]
Arguments: [coalesce(plant#1232477, ) ASC NULLS FIRST, isnull(plant#1232477) ASC NULLS FIRST, coalesce(product#1232478, ) ASC NULLS FIRST, isnull(product#1232478) ASC NULLS FIRST, coalesce(storageLocId#1232428, ) ASC NULLS FIRST, isnull(storageLocId#1232428) ASC NULLS FIRST, coalesce(calculationDateTime#1232421, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1232421) ASC NULLS FIRST], false, 0
(2592) Scan parquet
Output [6]: [internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484, systemId#1232479]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(2593) Filter
Input [6]: [internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484, systemId#1232479]
Condition : (isnotnull(plant#1232482.internalRefUUID) AND isnotnull(product#1232481.internalRefUUID))
(2594) Project
Output [6]: [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484]
Input [6]: [internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484, systemId#1232479]
(2595) Exchange
Input [6]: [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930307]
(2596) BroadcastExchange
Input [6]: [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1932375]
(2597) Scan parquet
Output [2]: [marketUnit#1232485, distributionCenters#1232491]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(2598) Filter
Input [2]: [marketUnit#1232485, distributionCenters#1232491]
Condition : (((marketUnit#1232485 <=> AUTO_MUV2) AND (size(distributionCenters#1232491, true) > 0)) AND isnotnull(distributionCenters#1232491))
(2599) Project
Output [1]: [distributionCenters#1232491]
Input [2]: [marketUnit#1232485, distributionCenters#1232491]
(2600) Exchange
Input [1]: [distributionCenters#1232491]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930311]
(2601) Generate
Input [1]: [distributionCenters#1232491]
Arguments: explode(distributionCenters#1232491), false, [distributionCenters#1232507]
(2602) Filter
Input [1]: [distributionCenters#1232507]
Condition : (((size(distributionCenters#1232507.storageLocations, true) > 0) AND isnotnull(distributionCenters#1232507.storageLocations)) AND isnotnull(distributionCenters#1232507.internalRefUUID))
(2603) Project
Output [2]: [distributionCenters#1232507.internalRefUUID AS _extract_internalRefUUID#1233477, distributionCenters#1232507.storageLocations AS _extract_storageLocations#1233478]
Input [1]: [distributionCenters#1232507]
(2604) Generate
Input [2]: [_extract_internalRefUUID#1233477, _extract_storageLocations#1233478]
Arguments: explode(_extract_storageLocations#1233478), [_extract_internalRefUUID#1233477], false, [storageLocations#1232508]
(2605) Project
Output [3]: [_extract_internalRefUUID#1233477 AS plantUuid#1232510, storageLocations#1232508.id AS storageLocId#1232511, storageLocations#1232508.internalRefUUID AS storageLocUuid#1232512]
Input [2]: [_extract_internalRefUUID#1233477, storageLocations#1232508]
(2606) BroadcastExchange
Input [3]: [plantUuid#1232510, storageLocId#1232511, storageLocUuid#1232512]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932371]
(2607) Scan parquet
Output [2]: [product#1232513, plant#1232514]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(2608) Filter
Input [2]: [product#1232513, plant#1232514]
Condition : isnotnull(plant#1232514)
(2609) Exchange
Input [2]: [product#1232513, plant#1232514]
Arguments: hashpartitioning(product#1232513, plant#1232514, 37), REPARTITION_BY_NUM, [plan_id=1931187]
(2610) Scan parquet
Output [4]: [plant#1232519, product#1232520, productionAspect#1232522, systemId#1232517]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2611) Project
Output [4]: [plant#1232519.internalRefUUID AS _extract_internalRefUUID#1234135, product#1232520.internalRefUUID AS _extract_internalRefUUID#1234136, productionAspect#1232522.productMovementPlants.unitOfIssue.code AS _extract_code#1234133, productionAspect#1232522.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234134]
Input [4]: [plant#1232519, product#1232520, productionAspect#1232522, systemId#1232517]
(2612) Exchange
Input [4]: [_extract_internalRefUUID#1234135, _extract_internalRefUUID#1234136, _extract_code#1234133, _extract_internalRefUUID#1234134]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930323]
(2613) Project
Output [4]: [_extract_code#1234133, _extract_internalRefUUID#1234134, _extract_internalRefUUID#1234136, _extract_internalRefUUID#1234135]
Input [4]: [_extract_internalRefUUID#1234135, _extract_internalRefUUID#1234136, _extract_code#1234133, _extract_internalRefUUID#1234134]
(2614) BroadcastExchange
Input [4]: [_extract_code#1234133, _extract_internalRefUUID#1234134, _extract_internalRefUUID#1234136, _extract_internalRefUUID#1234135]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932351]
(2615) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232513, ), isnull(product#1232513), coalesce(plant#1232514, ), isnull(plant#1232514)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234136, ), isnull(_extract_internalRefUUID#1234136), coalesce(_extract_internalRefUUID#1234135, ), isnull(_extract_internalRefUUID#1234135)]
Join type: LeftOuter
Join condition: None
(2616) Project
Output [4]: [product#1232513, plant#1232514, _extract_code#1234133, _extract_internalRefUUID#1234134]
Input [6]: [product#1232513, plant#1232514, _extract_code#1234133, _extract_internalRefUUID#1234134, _extract_internalRefUUID#1234136, _extract_internalRefUUID#1234135]
(2617) Scan parquet
Output [2]: [internalUUID#1232527, systemId#1232526]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2618) Project
Output [1]: [internalUUID#1232527]
Input [2]: [internalUUID#1232527, systemId#1232526]
(2619) Exchange
Input [1]: [internalUUID#1232527]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930329]
(2620) BroadcastExchange
Input [1]: [internalUUID#1232527]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932355]
(2621) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232514, ), isnull(plant#1232514)]
Right keys [2]: [coalesce(internalUUID#1232527, ), isnull(internalUUID#1232527)]
Join type: LeftOuter
Join condition: None
(2622) Project
Output [4]: [product#1232513, plant#1232514, _extract_code#1234133, _extract_internalRefUUID#1234134]
Input [5]: [product#1232513, plant#1232514, _extract_code#1234133, _extract_internalRefUUID#1234134, internalUUID#1232527]
(2623) Scan parquet
Output [4]: [internalUUID#1232541, baseUnitOfMeasure#1232545, unitOfMeasureConversions#1232547, systemId#1232540]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2624) Filter
Input [4]: [internalUUID#1232541, baseUnitOfMeasure#1232545, unitOfMeasureConversions#1232547, systemId#1232540]
Condition : isnotnull(internalUUID#1232541)
(2625) Project
Output [3]: [internalUUID#1232541, baseUnitOfMeasure#1232545, unitOfMeasureConversions#1232547]
Input [4]: [internalUUID#1232541, baseUnitOfMeasure#1232545, unitOfMeasureConversions#1232547, systemId#1232540]
(2626) Exchange
Input [3]: [internalUUID#1232541, baseUnitOfMeasure#1232545, unitOfMeasureConversions#1232547]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930335]
(2627) BroadcastExchange
Input [3]: [internalUUID#1232541, baseUnitOfMeasure#1232545, unitOfMeasureConversions#1232547]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932359]
(2628) BroadcastHashJoin
Left keys [1]: [product#1232513]
Right keys [1]: [internalUUID#1232541]
Join type: LeftOuter
Join condition: None
(2629) Project
Output [2]: [plant#1232514, filter(unitOfMeasureConversions#1232547, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234133) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234134)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232545.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232545.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232552]
Input [7]: [product#1232513, plant#1232514, _extract_code#1234133, _extract_internalRefUUID#1234134, internalUUID#1232541, baseUnitOfMeasure#1232545, unitOfMeasureConversions#1232547]
(2630) Generate
Input [2]: [plant#1232514, filteredUnitOfMeasureConversions#1232552]
Arguments: explode(filteredUnitOfMeasureConversions#1232552.quantityNumerator), [plant#1232514, filteredUnitOfMeasureConversions#1232552], true, [quantityNumerator#1232553]
(2631) Project
Output [2]: [plant#1232514, filteredUnitOfMeasureConversions#1232552.quantityDenominator AS _extract_quantityDenominator#1233479]
Input [3]: [plant#1232514, filteredUnitOfMeasureConversions#1232552, quantityNumerator#1232553]
(2632) Generate
Input [2]: [plant#1232514, _extract_quantityDenominator#1233479]
Arguments: explode(_extract_quantityDenominator#1233479), [plant#1232514], true, [quantityDenominator#1232554]
(2633) Project
Output [1]: [plant#1232514]
Input [2]: [plant#1232514, quantityDenominator#1232554]
(2634) HashAggregate
Input [1]: [plant#1232514]
Keys [1]: [plant#1232514]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1232514]
(2635) Exchange
Input [1]: [plant#1232514]
Arguments: hashpartitioning(plant#1232514, 37), ENSURE_REQUIREMENTS, [plan_id=1932368]
(2636) HashAggregate
Input [1]: [plant#1232514]
Keys [1]: [plant#1232514]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1232514]
(2637) BroadcastHashJoin
Left keys [1]: [plantUuid#1232510]
Right keys [1]: [plant#1232514]
Join type: Inner
Join condition: None
(2638) Project
Output [3]: [plantUuid#1232510, storageLocId#1232511, storageLocUuid#1232512]
Input [4]: [plantUuid#1232510, storageLocId#1232511, storageLocUuid#1232512, plant#1232514]
(2639) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232482.internalRefUUID, ), isnull(plant#1232482.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1232510, ), isnull(plantUuid#1232510)]
Join type: Inner
Join condition: None
(2640) Generate
Input [9]: [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, stockQuantities#1232484, plantUuid#1232510, storageLocId#1232511, storageLocUuid#1232512]
Arguments: explode(filter(stockQuantities#1232484, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232512) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232511)), lambda x#1225727, false))), [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, plantUuid#1232510], false, [stockQuantity#1232557]
(2641) ObjectHashAggregate
Input [7]: [systemId#1232479, internalUUID#1232480, product#1232481, plant#1232482, calculationDateTime#1232483, plantUuid#1232510, stockQuantity#1232557]
Keys [5]: [plantUuid#1232510, internalUUID#1232480, plant#1232482, product#1232481, systemId#1232479]
Functions [2]: [partial_first(calculationDateTime#1232483, false), partial_collect_list(stockQuantity#1232557, 0, 0)]
Aggregate Attributes [3]: [first#1235163, valueSet#1235164, buf#1235165]
Results [8]: [plantUuid#1232510, internalUUID#1232480, plant#1232482, product#1232481, systemId#1232479, first#1235166, valueSet#1235167, buf#1235168]
(2642) ObjectHashAggregate
Input [8]: [plantUuid#1232510, internalUUID#1232480, plant#1232482, product#1232481, systemId#1232479, first#1235166, valueSet#1235167, buf#1235168]
Keys [5]: [plantUuid#1232510, internalUUID#1232480, plant#1232482, product#1232481, systemId#1232479]
Functions [2]: [first(calculationDateTime#1232483, false), collect_list(stockQuantity#1232557, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1232483)()#1225742, collect_list(stockQuantity#1232557, 0, 0)#1225743]
Results [4]: [product#1232481, plant#1232482, first(calculationDateTime#1232483)()#1225742 AS calculationDateTime#1232558, collect_list(stockQuantity#1232557, 0, 0)#1225743 AS stockQuantities#1232559]
(2643) Filter
Input [4]: [product#1232481, plant#1232482, calculationDateTime#1232558, stockQuantities#1232559]
Condition : ((size(stockQuantities#1232559, true) > 0) AND isnotnull(calculationDateTime#1232558))
(2644) Generate
Input [4]: [product#1232481, plant#1232482, calculationDateTime#1232558, stockQuantities#1232559]
Arguments: explode(stockQuantities#1232559), [product#1232481, plant#1232482, calculationDateTime#1232558], false, [stockQuantity#1232560]
(2645) Filter
Input [4]: [product#1232481, plant#1232482, calculationDateTime#1232558, stockQuantity#1232560]
Condition : (((isnotnull(stockQuantity#1232560.specialStockIndicator.code) AND isnotnull(stockQuantity#1232560.stockType.code)) AND (stockQuantity#1232560.specialStockIndicator.code = )) AND (stockQuantity#1232560.stockType.code = 01))
(2646) Project
Output [4]: [plant#1232482.internalRefUUID AS plantUuid#1232562, product#1232481.internalRefUUID AS productUuid#1232564, calculationDateTime#1232558, stockQuantity#1232560.storagelocation.id AS storageLocId#1232565]
Input [4]: [product#1232481, plant#1232482, calculationDateTime#1232558, stockQuantity#1232560]
(2647) Exchange
Input [4]: [plantUuid#1232562, productUuid#1232564, calculationDateTime#1232558, storageLocId#1232565]
Arguments: hashpartitioning(productUuid#1232564, plantUuid#1232562, 37), ENSURE_REQUIREMENTS, [plan_id=1932401]
(2648) Sort
Input [4]: [plantUuid#1232562, productUuid#1232564, calculationDateTime#1232558, storageLocId#1232565]
Arguments: [productUuid#1232564 ASC NULLS FIRST, plantUuid#1232562 ASC NULLS FIRST], false, 0
(2649) Scan parquet
Output [3]: [product#1232570, plant#1232571, orderDateTime#1232572]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2650) Filter
Input [3]: [product#1232570, plant#1232571, orderDateTime#1232572]
Condition : ((isnotnull(orderDateTime#1232572) AND isnotnull(plant#1232571)) AND isnotnull(product#1232570))
(2651) Exchange
Input [3]: [product#1232570, plant#1232571, orderDateTime#1232572]
Arguments: hashpartitioning(product#1232570, plant#1232571, 37), REPARTITION_BY_NUM, [plan_id=1931210]
(2652) Scan parquet
Output [4]: [plant#1232576, product#1232577, productionAspect#1232579, systemId#1232574]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2653) Project
Output [4]: [plant#1232576.internalRefUUID AS _extract_internalRefUUID#1234139, product#1232577.internalRefUUID AS _extract_internalRefUUID#1234140, productionAspect#1232579.productMovementPlants.unitOfIssue.code AS _extract_code#1234137, productionAspect#1232579.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234138]
Input [4]: [plant#1232576, product#1232577, productionAspect#1232579, systemId#1232574]
(2654) Exchange
Input [4]: [_extract_internalRefUUID#1234139, _extract_internalRefUUID#1234140, _extract_code#1234137, _extract_internalRefUUID#1234138]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930360]
(2655) Project
Output [4]: [_extract_code#1234137, _extract_internalRefUUID#1234138, _extract_internalRefUUID#1234140, _extract_internalRefUUID#1234139]
Input [4]: [_extract_internalRefUUID#1234139, _extract_internalRefUUID#1234140, _extract_code#1234137, _extract_internalRefUUID#1234138]
(2656) BroadcastExchange
Input [4]: [_extract_code#1234137, _extract_internalRefUUID#1234138, _extract_internalRefUUID#1234140, _extract_internalRefUUID#1234139]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932384]
(2657) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232570, ), isnull(product#1232570), coalesce(plant#1232571, ), isnull(plant#1232571)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234140, ), isnull(_extract_internalRefUUID#1234140), coalesce(_extract_internalRefUUID#1234139, ), isnull(_extract_internalRefUUID#1234139)]
Join type: LeftOuter
Join condition: None
(2658) Project
Output [5]: [product#1232570, plant#1232571, orderDateTime#1232572, _extract_code#1234137, _extract_internalRefUUID#1234138]
Input [7]: [product#1232570, plant#1232571, orderDateTime#1232572, _extract_code#1234137, _extract_internalRefUUID#1234138, _extract_internalRefUUID#1234140, _extract_internalRefUUID#1234139]
(2659) Scan parquet
Output [2]: [internalUUID#1232584, systemId#1232583]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2660) Project
Output [1]: [internalUUID#1232584]
Input [2]: [internalUUID#1232584, systemId#1232583]
(2661) Exchange
Input [1]: [internalUUID#1232584]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930366]
(2662) BroadcastExchange
Input [1]: [internalUUID#1232584]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932388]
(2663) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232571, ), isnull(plant#1232571)]
Right keys [2]: [coalesce(internalUUID#1232584, ), isnull(internalUUID#1232584)]
Join type: LeftOuter
Join condition: None
(2664) Project
Output [5]: [product#1232570, plant#1232571, orderDateTime#1232572, _extract_code#1234137, _extract_internalRefUUID#1234138]
Input [6]: [product#1232570, plant#1232571, orderDateTime#1232572, _extract_code#1234137, _extract_internalRefUUID#1234138, internalUUID#1232584]
(2665) Scan parquet
Output [4]: [internalUUID#1232598, baseUnitOfMeasure#1232602, unitOfMeasureConversions#1232604, systemId#1232597]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2666) Filter
Input [4]: [internalUUID#1232598, baseUnitOfMeasure#1232602, unitOfMeasureConversions#1232604, systemId#1232597]
Condition : isnotnull(internalUUID#1232598)
(2667) Project
Output [3]: [internalUUID#1232598, baseUnitOfMeasure#1232602, unitOfMeasureConversions#1232604]
Input [4]: [internalUUID#1232598, baseUnitOfMeasure#1232602, unitOfMeasureConversions#1232604, systemId#1232597]
(2668) Exchange
Input [3]: [internalUUID#1232598, baseUnitOfMeasure#1232602, unitOfMeasureConversions#1232604]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930372]
(2669) BroadcastExchange
Input [3]: [internalUUID#1232598, baseUnitOfMeasure#1232602, unitOfMeasureConversions#1232604]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932392]
(2670) BroadcastHashJoin
Left keys [1]: [product#1232570]
Right keys [1]: [internalUUID#1232598]
Join type: LeftOuter
Join condition: None
(2671) Project
Output [4]: [product#1232570, plant#1232571, orderDateTime#1232572, filter(unitOfMeasureConversions#1232604, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234137) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234138)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232602.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232602.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232609]
Input [8]: [product#1232570, plant#1232571, orderDateTime#1232572, _extract_code#1234137, _extract_internalRefUUID#1234138, internalUUID#1232598, baseUnitOfMeasure#1232602, unitOfMeasureConversions#1232604]
(2672) Generate
Input [4]: [product#1232570, plant#1232571, orderDateTime#1232572, filteredUnitOfMeasureConversions#1232609]
Arguments: explode(filteredUnitOfMeasureConversions#1232609.quantityNumerator), [product#1232570, plant#1232571, orderDateTime#1232572, filteredUnitOfMeasureConversions#1232609], true, [quantityNumerator#1232610]
(2673) Project
Output [4]: [product#1232570, plant#1232571, orderDateTime#1232572, filteredUnitOfMeasureConversions#1232609.quantityDenominator AS _extract_quantityDenominator#1233483]
Input [5]: [product#1232570, plant#1232571, orderDateTime#1232572, filteredUnitOfMeasureConversions#1232609, quantityNumerator#1232610]
(2674) Generate
Input [4]: [product#1232570, plant#1232571, orderDateTime#1232572, _extract_quantityDenominator#1233483]
Arguments: explode(_extract_quantityDenominator#1233483), [product#1232570, plant#1232571, orderDateTime#1232572], true, [quantityDenominator#1232611]
(2675) Project
Output [3]: [product#1232570, plant#1232571, orderDateTime#1232572]
Input [4]: [product#1232570, plant#1232571, orderDateTime#1232572, quantityDenominator#1232611]
(2676) Sort
Input [3]: [product#1232570, plant#1232571, orderDateTime#1232572]
Arguments: [product#1232570 ASC NULLS FIRST, plant#1232571 ASC NULLS FIRST], false, 0
(2677) SortMergeJoin
Left keys [2]: [productUuid#1232564, plantUuid#1232562]
Right keys [2]: [product#1232570, plant#1232571]
Join type: Inner
Join condition: (calculationDateTime#1232558 <= orderDateTime#1232572)
(2678) Project
Output [4]: [plantUuid#1232562 AS plant#1232614, productUuid#1232564 AS product#1232615, storageLocId#1232565, calculationDateTime#1232558]
Input [7]: [plantUuid#1232562, productUuid#1232564, calculationDateTime#1232558, storageLocId#1232565, product#1232570, plant#1232571, orderDateTime#1232572]
(2679) HashAggregate
Input [4]: [plant#1232614, product#1232615, storageLocId#1232565, calculationDateTime#1232558]
Keys [3]: [plant#1232614, product#1232615, storageLocId#1232565]
Functions [1]: [partial_max(calculationDateTime#1232558)]
Aggregate Attributes [1]: [max#1235161]
Results [4]: [plant#1232614, product#1232615, storageLocId#1232565, max#1235162]
(2680) HashAggregate
Input [4]: [plant#1232614, product#1232615, storageLocId#1232565, max#1235162]
Keys [3]: [plant#1232614, product#1232615, storageLocId#1232565]
Functions [1]: [max(calculationDateTime#1232558)]
Aggregate Attributes [1]: [max(calculationDateTime#1232558)#1225820]
Results [4]: [plant#1232614, product#1232615, storageLocId#1232565, max(calculationDateTime#1232558)#1225820 AS max_calc_datetime#1232616]
(2681) Exchange
Input [4]: [plant#1232614, product#1232615, storageLocId#1232565, max_calc_datetime#1232616]
Arguments: hashpartitioning(coalesce(plant#1232614, ), isnull(plant#1232614), coalesce(product#1232615, ), isnull(product#1232615), coalesce(storageLocId#1232565, ), isnull(storageLocId#1232565), coalesce(max_calc_datetime#1232616, 1970-01-01 00:00:00), isnull(max_calc_datetime#1232616), 37), ENSURE_REQUIREMENTS, [plan_id=1932411]
(2682) Sort
Input [4]: [plant#1232614, product#1232615, storageLocId#1232565, max_calc_datetime#1232616]
Arguments: [coalesce(plant#1232614, ) ASC NULLS FIRST, isnull(plant#1232614) ASC NULLS FIRST, coalesce(product#1232615, ) ASC NULLS FIRST, isnull(product#1232615) ASC NULLS FIRST, coalesce(storageLocId#1232565, ) ASC NULLS FIRST, isnull(storageLocId#1232565) ASC NULLS FIRST, coalesce(max_calc_datetime#1232616, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1232616) ASC NULLS FIRST], false, 0
(2683) SortMergeJoin
Left keys [8]: [coalesce(plant#1232477, ), isnull(plant#1232477), coalesce(product#1232478, ), isnull(product#1232478), coalesce(storageLocId#1232428, ), isnull(storageLocId#1232428), coalesce(calculationDateTime#1232421, 1970-01-01 00:00:00), isnull(calculationDateTime#1232421)]
Right keys [8]: [coalesce(plant#1232614, ), isnull(plant#1232614), coalesce(product#1232615, ), isnull(product#1232615), coalesce(storageLocId#1232565, ), isnull(storageLocId#1232565), coalesce(max_calc_datetime#1232616, 1970-01-01 00:00:00), isnull(max_calc_datetime#1232616)]
Join type: Inner
Join condition: None
(2684) Project
Output [3]: [plant#1232477, product#1232478, calculationDateTime#1232421]
Input [8]: [plant#1232477, product#1232478, storageLocId#1232428, calculationDateTime#1232421, plant#1232614, product#1232615, storageLocId#1232565, max_calc_datetime#1232616]
(2685) HashAggregate
Input [3]: [plant#1232477, product#1232478, calculationDateTime#1232421]
Keys [2]: [product#1232478, plant#1232477]
Functions [1]: [partial_min(calculationDateTime#1232421)]
Aggregate Attributes [1]: [min#1235153]
Results [3]: [product#1232478, plant#1232477, min#1235154]
(2686) Exchange
Input [3]: [product#1232478, plant#1232477, min#1235154]
Arguments: hashpartitioning(product#1232478, plant#1232477, 37), ENSURE_REQUIREMENTS, [plan_id=1932418]
(2687) HashAggregate
Input [3]: [product#1232478, plant#1232477, min#1235154]
Keys [2]: [product#1232478, plant#1232477]
Functions [1]: [min(calculationDateTime#1232421)]
Aggregate Attributes [1]: [min(calculationDateTime#1232421)#1225976]
Results [3]: [product#1232478, plant#1232477, min(calculationDateTime#1232421)#1225976 AS minCalculationDateTime#1232618]
(2688) Sort
Input [3]: [product#1232478, plant#1232477, minCalculationDateTime#1232618]
Arguments: [product#1232478 ASC NULLS FIRST, plant#1232477 ASC NULLS FIRST], false, 0
(2689) SortMergeJoin
Left keys [2]: [product#1232298, plant#1232299]
Right keys [2]: [product#1232478, plant#1232477]
Join type: LeftOuter
Join condition: None
(2690) Project
Output [3]: [product#1232298, plant#1232299, CASE WHEN isnotnull(minCalculationDateTime#1232618) THEN minCalculationDateTime#1232618 ELSE orderDateTime#1232300 END AS stockDatetime#1232620]
Input [6]: [product#1232298, plant#1232299, orderDateTime#1232300, product#1232478, plant#1232477, minCalculationDateTime#1232618]
(2691) Exchange
Input [3]: [product#1232298, plant#1232299, stockDatetime#1232620]
Arguments: hashpartitioning(coalesce(plant#1232299, ), isnull(plant#1232299), coalesce(product#1232298, ), isnull(product#1232298), 37), ENSURE_REQUIREMENTS, [plan_id=1932582]
(2692) Sort
Input [3]: [product#1232298, plant#1232299, stockDatetime#1232620]
Arguments: [coalesce(plant#1232299, ) ASC NULLS FIRST, isnull(plant#1232299) ASC NULLS FIRST, coalesce(product#1232298, ) ASC NULLS FIRST, isnull(product#1232298) ASC NULLS FIRST], false, 0
(2693) Scan parquet
Output [3]: [product#1232623, plant#1232624, orderDateTime#1232625]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2694) Exchange
Input [3]: [product#1232623, plant#1232624, orderDateTime#1232625]
Arguments: hashpartitioning(product#1232623, plant#1232624, 37), REPARTITION_BY_NUM, [plan_id=1930390]
(2695) Scan parquet
Output [8]: [internalUUID#1232628, plant#1232629, product#1232630, blockedForReplenishmentStartingFrom#1232631, productionAspect#1232632, salesPlant#1232633, listing#1232634, systemId#1232627]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>
(2696) Project
Output [8]: [systemId#1232627, internalUUID#1232628, plant#1232629, product#1232630, blockedForReplenishmentStartingFrom#1232631, productionAspect#1232632, salesPlant#1232633, listing#1232634]
Input [8]: [internalUUID#1232628, plant#1232629, product#1232630, blockedForReplenishmentStartingFrom#1232631, productionAspect#1232632, salesPlant#1232633, listing#1232634, systemId#1232627]
(2697) Exchange
Input [8]: [systemId#1232627, internalUUID#1232628, plant#1232629, product#1232630, blockedForReplenishmentStartingFrom#1232631, productionAspect#1232632, salesPlant#1232633, listing#1232634]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930393]
(2698) Project
Output [1]: [struct(systemId, systemId#1232627, internalUUID, internalUUID#1232628, plant, plant#1232629, product, product#1232630, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1232631, productionAspect, productionAspect#1232632, salesPlant, salesPlant#1232633, listing, listing#1232634) AS productPlant#1232635]
Input [8]: [systemId#1232627, internalUUID#1232628, plant#1232629, product#1232630, blockedForReplenishmentStartingFrom#1232631, productionAspect#1232632, salesPlant#1232633, listing#1232634]
(2699) BroadcastExchange
Input [1]: [productPlant#1232635]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1932426]
(2700) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232623, ), isnull(product#1232623), coalesce(plant#1232624, ), isnull(plant#1232624)]
Right keys [4]: [coalesce(productPlant#1232635.product.internalRefUUID, ), isnull(productPlant#1232635.product.internalRefUUID), coalesce(productPlant#1232635.plant.internalRefUUID, ), isnull(productPlant#1232635.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(2701) Scan parquet
Output [3]: [internalUUID#1232637, address#1232643, systemId#1232636]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(2702) Project
Output [2]: [internalUUID#1232637, address#1232643.timeZone.code AS timezonecode#1232648]
Input [3]: [internalUUID#1232637, address#1232643, systemId#1232636]
(2703) Exchange
Input [2]: [internalUUID#1232637, timezonecode#1232648]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930398]
(2704) BroadcastExchange
Input [2]: [internalUUID#1232637, timezonecode#1232648]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932429]
(2705) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232624, ), isnull(plant#1232624)]
Right keys [2]: [coalesce(internalUUID#1232637, ), isnull(internalUUID#1232637)]
Join type: LeftOuter
Join condition: None
(2706) Project
Output [5]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, CASE WHEN isnotnull(timezonecode#1232648) THEN timezonecode#1232648 ELSE UTC END AS timezonecode#1232649]
Input [6]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, internalUUID#1232637, timezonecode#1232648]
(2707) Scan parquet
Output [4]: [internalUUID#1232651, baseUnitOfMeasure#1232655, unitOfMeasureConversions#1232657, systemId#1232650]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2708) Filter
Input [4]: [internalUUID#1232651, baseUnitOfMeasure#1232655, unitOfMeasureConversions#1232657, systemId#1232650]
Condition : isnotnull(internalUUID#1232651)
(2709) Project
Output [3]: [internalUUID#1232651, baseUnitOfMeasure#1232655, unitOfMeasureConversions#1232657]
Input [4]: [internalUUID#1232651, baseUnitOfMeasure#1232655, unitOfMeasureConversions#1232657, systemId#1232650]
(2710) Exchange
Input [3]: [internalUUID#1232651, baseUnitOfMeasure#1232655, unitOfMeasureConversions#1232657]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930404]
(2711) BroadcastExchange
Input [3]: [internalUUID#1232651, baseUnitOfMeasure#1232655, unitOfMeasureConversions#1232657]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932433]
(2712) BroadcastHashJoin
Left keys [1]: [product#1232623]
Right keys [1]: [internalUUID#1232651]
Join type: LeftOuter
Join condition: None
(2713) Project
Output [6]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, filter(unitOfMeasureConversions#1232657, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232655.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232655.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232662]
Input [8]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, internalUUID#1232651, baseUnitOfMeasure#1232655, unitOfMeasureConversions#1232657]
(2714) Project
Output [7]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, filteredUnitOfMeasureConversions#1232662.quantityDenominator AS _extract_quantityDenominator#1233711, filteredUnitOfMeasureConversions#1232662.quantityNumerator AS _extract_quantityNumerator#1233712]
Input [6]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, filteredUnitOfMeasureConversions#1232662]
(2715) Generate
Input [7]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, _extract_quantityDenominator#1233711, _extract_quantityNumerator#1233712]
Arguments: explode(_extract_quantityNumerator#1233712), [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, _extract_quantityDenominator#1233711], true, [quantityNumerator#1232663]
(2716) Generate
Input [7]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, _extract_quantityDenominator#1233711, quantityNumerator#1232663]
Arguments: explode(_extract_quantityDenominator#1233711), [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, quantityNumerator#1232663], true, [quantityDenominator#1232664]
(2717) Project
Output [6]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, (cast(quantityNumerator#1232663 as double) / cast(quantityDenominator#1232664 as double)) AS outboundUnit#1232665]
Input [7]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, quantityNumerator#1232663, quantityDenominator#1232664]
(2718) Project
Output [6]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, CASE WHEN (isnull(outboundUnit#1232665) OR (outboundUnit#1232665 <= 0.0)) THEN 1.0 ELSE outboundUnit#1232665 END AS outboundUnit#1232666]
Input [6]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232665]
(2719) Sort
Input [6]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666]
Arguments: [product#1232623 ASC NULLS FIRST, plant#1232624 ASC NULLS FIRST], false, 0
(2720) Scan parquet
Output [6]: [internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672, systemId#1232667]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(2721) Filter
Input [6]: [internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672, systemId#1232667]
Condition : (isnotnull(plant#1232670.internalRefUUID) AND isnotnull(product#1232669.internalRefUUID))
(2722) Project
Output [6]: [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672]
Input [6]: [internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672, systemId#1232667]
(2723) Exchange
Input [6]: [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930415]
(2724) BroadcastExchange
Input [6]: [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1932465]
(2725) Scan parquet
Output [2]: [marketUnit#1232673, distributionCenters#1232679]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(2726) Filter
Input [2]: [marketUnit#1232673, distributionCenters#1232679]
Condition : (((marketUnit#1232673 <=> AUTO_MUV2) AND (size(distributionCenters#1232679, true) > 0)) AND isnotnull(distributionCenters#1232679))
(2727) Project
Output [1]: [distributionCenters#1232679]
Input [2]: [marketUnit#1232673, distributionCenters#1232679]
(2728) Exchange
Input [1]: [distributionCenters#1232679]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930419]
(2729) Generate
Input [1]: [distributionCenters#1232679]
Arguments: explode(distributionCenters#1232679), false, [distributionCenters#1232695]
(2730) Filter
Input [1]: [distributionCenters#1232695]
Condition : (((size(distributionCenters#1232695.storageLocations, true) > 0) AND isnotnull(distributionCenters#1232695.storageLocations)) AND isnotnull(distributionCenters#1232695.internalRefUUID))
(2731) Project
Output [2]: [distributionCenters#1232695.internalRefUUID AS _extract_internalRefUUID#1233489, distributionCenters#1232695.storageLocations AS _extract_storageLocations#1233490]
Input [1]: [distributionCenters#1232695]
(2732) Generate
Input [2]: [_extract_internalRefUUID#1233489, _extract_storageLocations#1233490]
Arguments: explode(_extract_storageLocations#1233490), [_extract_internalRefUUID#1233489], false, [storageLocations#1232696]
(2733) Project
Output [3]: [_extract_internalRefUUID#1233489 AS plantUuid#1232698, storageLocations#1232696.id AS storageLocId#1232699, storageLocations#1232696.internalRefUUID AS storageLocUuid#1232700]
Input [2]: [_extract_internalRefUUID#1233489, storageLocations#1232696]
(2734) BroadcastExchange
Input [3]: [plantUuid#1232698, storageLocId#1232699, storageLocUuid#1232700]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932461]
(2735) Scan parquet
Output [2]: [product#1232701, plant#1232702]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(2736) Filter
Input [2]: [product#1232701, plant#1232702]
Condition : isnotnull(plant#1232702)
(2737) Exchange
Input [2]: [product#1232701, plant#1232702]
Arguments: hashpartitioning(product#1232701, plant#1232702, 37), REPARTITION_BY_NUM, [plan_id=1931231]
(2738) Scan parquet
Output [4]: [plant#1232707, product#1232708, productionAspect#1232710, systemId#1232705]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2739) Project
Output [4]: [plant#1232707.internalRefUUID AS _extract_internalRefUUID#1234144, product#1232708.internalRefUUID AS _extract_internalRefUUID#1234143, productionAspect#1232710.productMovementPlants.unitOfIssue.code AS _extract_code#1234141, productionAspect#1232710.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234142]
Input [4]: [plant#1232707, product#1232708, productionAspect#1232710, systemId#1232705]
(2740) Exchange
Input [4]: [_extract_internalRefUUID#1234144, _extract_internalRefUUID#1234143, _extract_code#1234141, _extract_internalRefUUID#1234142]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930431]
(2741) Project
Output [4]: [_extract_code#1234141, _extract_internalRefUUID#1234142, _extract_internalRefUUID#1234143, _extract_internalRefUUID#1234144]
Input [4]: [_extract_internalRefUUID#1234144, _extract_internalRefUUID#1234143, _extract_code#1234141, _extract_internalRefUUID#1234142]
(2742) BroadcastExchange
Input [4]: [_extract_code#1234141, _extract_internalRefUUID#1234142, _extract_internalRefUUID#1234143, _extract_internalRefUUID#1234144]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932441]
(2743) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232701, ), isnull(product#1232701), coalesce(plant#1232702, ), isnull(plant#1232702)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234143, ), isnull(_extract_internalRefUUID#1234143), coalesce(_extract_internalRefUUID#1234144, ), isnull(_extract_internalRefUUID#1234144)]
Join type: LeftOuter
Join condition: None
(2744) Project
Output [4]: [product#1232701, plant#1232702, _extract_code#1234141, _extract_internalRefUUID#1234142]
Input [6]: [product#1232701, plant#1232702, _extract_code#1234141, _extract_internalRefUUID#1234142, _extract_internalRefUUID#1234143, _extract_internalRefUUID#1234144]
(2745) Scan parquet
Output [2]: [internalUUID#1232715, systemId#1232714]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2746) Project
Output [1]: [internalUUID#1232715]
Input [2]: [internalUUID#1232715, systemId#1232714]
(2747) Exchange
Input [1]: [internalUUID#1232715]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930437]
(2748) BroadcastExchange
Input [1]: [internalUUID#1232715]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932445]
(2749) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232702, ), isnull(plant#1232702)]
Right keys [2]: [coalesce(internalUUID#1232715, ), isnull(internalUUID#1232715)]
Join type: LeftOuter
Join condition: None
(2750) Project
Output [4]: [product#1232701, plant#1232702, _extract_code#1234141, _extract_internalRefUUID#1234142]
Input [5]: [product#1232701, plant#1232702, _extract_code#1234141, _extract_internalRefUUID#1234142, internalUUID#1232715]
(2751) Scan parquet
Output [4]: [internalUUID#1232729, baseUnitOfMeasure#1232733, unitOfMeasureConversions#1232735, systemId#1232728]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2752) Filter
Input [4]: [internalUUID#1232729, baseUnitOfMeasure#1232733, unitOfMeasureConversions#1232735, systemId#1232728]
Condition : isnotnull(internalUUID#1232729)
(2753) Project
Output [3]: [internalUUID#1232729, baseUnitOfMeasure#1232733, unitOfMeasureConversions#1232735]
Input [4]: [internalUUID#1232729, baseUnitOfMeasure#1232733, unitOfMeasureConversions#1232735, systemId#1232728]
(2754) Exchange
Input [3]: [internalUUID#1232729, baseUnitOfMeasure#1232733, unitOfMeasureConversions#1232735]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930443]
(2755) BroadcastExchange
Input [3]: [internalUUID#1232729, baseUnitOfMeasure#1232733, unitOfMeasureConversions#1232735]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932449]
(2756) BroadcastHashJoin
Left keys [1]: [product#1232701]
Right keys [1]: [internalUUID#1232729]
Join type: LeftOuter
Join condition: None
(2757) Project
Output [2]: [plant#1232702, filter(unitOfMeasureConversions#1232735, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234141) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234142)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232733.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232733.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232740]
Input [7]: [product#1232701, plant#1232702, _extract_code#1234141, _extract_internalRefUUID#1234142, internalUUID#1232729, baseUnitOfMeasure#1232733, unitOfMeasureConversions#1232735]
(2758) Generate
Input [2]: [plant#1232702, filteredUnitOfMeasureConversions#1232740]
Arguments: explode(filteredUnitOfMeasureConversions#1232740.quantityNumerator), [plant#1232702, filteredUnitOfMeasureConversions#1232740], true, [quantityNumerator#1232741]
(2759) Project
Output [2]: [plant#1232702, filteredUnitOfMeasureConversions#1232740.quantityDenominator AS _extract_quantityDenominator#1233491]
Input [3]: [plant#1232702, filteredUnitOfMeasureConversions#1232740, quantityNumerator#1232741]
(2760) Generate
Input [2]: [plant#1232702, _extract_quantityDenominator#1233491]
Arguments: explode(_extract_quantityDenominator#1233491), [plant#1232702], true, [quantityDenominator#1232742]
(2761) Project
Output [1]: [plant#1232702]
Input [2]: [plant#1232702, quantityDenominator#1232742]
(2762) HashAggregate
Input [1]: [plant#1232702]
Keys [1]: [plant#1232702]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1232702]
(2763) Exchange
Input [1]: [plant#1232702]
Arguments: hashpartitioning(plant#1232702, 37), ENSURE_REQUIREMENTS, [plan_id=1932458]
(2764) HashAggregate
Input [1]: [plant#1232702]
Keys [1]: [plant#1232702]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1232702]
(2765) BroadcastHashJoin
Left keys [1]: [plantUuid#1232698]
Right keys [1]: [plant#1232702]
Join type: Inner
Join condition: None
(2766) Project
Output [3]: [plantUuid#1232698, storageLocId#1232699, storageLocUuid#1232700]
Input [4]: [plantUuid#1232698, storageLocId#1232699, storageLocUuid#1232700, plant#1232702]
(2767) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232670.internalRefUUID, ), isnull(plant#1232670.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1232698, ), isnull(plantUuid#1232698)]
Join type: Inner
Join condition: None
(2768) Generate
Input [9]: [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, stockQuantities#1232672, plantUuid#1232698, storageLocId#1232699, storageLocUuid#1232700]
Arguments: explode(filter(stockQuantities#1232672, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232700) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232699)), lambda x#1225727, false))), [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, plantUuid#1232698], false, [stockQuantity#1232745]
(2769) ObjectHashAggregate
Input [7]: [systemId#1232667, internalUUID#1232668, product#1232669, plant#1232670, calculationDateTime#1232671, plantUuid#1232698, stockQuantity#1232745]
Keys [5]: [plantUuid#1232698, internalUUID#1232668, plant#1232670, product#1232669, systemId#1232667]
Functions [2]: [partial_first(calculationDateTime#1232671, false), partial_collect_list(stockQuantity#1232745, 0, 0)]
Aggregate Attributes [3]: [first#1235177, valueSet#1235178, buf#1235179]
Results [8]: [plantUuid#1232698, internalUUID#1232668, plant#1232670, product#1232669, systemId#1232667, first#1235180, valueSet#1235181, buf#1235182]
(2770) ObjectHashAggregate
Input [8]: [plantUuid#1232698, internalUUID#1232668, plant#1232670, product#1232669, systemId#1232667, first#1235180, valueSet#1235181, buf#1235182]
Keys [5]: [plantUuid#1232698, internalUUID#1232668, plant#1232670, product#1232669, systemId#1232667]
Functions [2]: [first(calculationDateTime#1232671, false), collect_list(stockQuantity#1232745, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1232671)()#1225742, collect_list(stockQuantity#1232745, 0, 0)#1225743]
Results [4]: [product#1232669, plant#1232670, first(calculationDateTime#1232671)()#1225742 AS calculationDateTime#1232746, collect_list(stockQuantity#1232745, 0, 0)#1225743 AS stockQuantities#1232747]
(2771) Filter
Input [4]: [product#1232669, plant#1232670, calculationDateTime#1232746, stockQuantities#1232747]
Condition : ((size(stockQuantities#1232747, true) > 0) AND isnotnull(calculationDateTime#1232746))
(2772) Generate
Input [4]: [product#1232669, plant#1232670, calculationDateTime#1232746, stockQuantities#1232747]
Arguments: explode(stockQuantities#1232747), [product#1232669, plant#1232670, calculationDateTime#1232746], false, [stockQuantity#1232748]
(2773) Filter
Input [4]: [product#1232669, plant#1232670, calculationDateTime#1232746, stockQuantity#1232748]
Condition : (((isnotnull(stockQuantity#1232748.specialStockIndicator.code) AND isnotnull(stockQuantity#1232748.stockType.code)) AND (stockQuantity#1232748.specialStockIndicator.code = )) AND (stockQuantity#1232748.stockType.code = 01))
(2774) Project
Output [5]: [plant#1232670.internalRefUUID AS plantUuid#1232750, product#1232669.internalRefUUID AS productUuid#1232752, calculationDateTime#1232746, stockQuantity#1232748.storagelocation.id AS storageLocId#1232753, stockQuantity#1232748.quantity.measure AS quantity#1232755]
Input [4]: [product#1232669, plant#1232670, calculationDateTime#1232746, stockQuantity#1232748]
(2775) Exchange
Input [5]: [plantUuid#1232750, productUuid#1232752, calculationDateTime#1232746, storageLocId#1232753, quantity#1232755]
Arguments: hashpartitioning(productUuid#1232752, plantUuid#1232750, 37), ENSURE_REQUIREMENTS, [plan_id=1932491]
(2776) Sort
Input [5]: [plantUuid#1232750, productUuid#1232752, calculationDateTime#1232746, storageLocId#1232753, quantity#1232755]
Arguments: [productUuid#1232752 ASC NULLS FIRST, plantUuid#1232750 ASC NULLS FIRST], false, 0
(2777) Scan parquet
Output [3]: [product#1232758, plant#1232759, orderDateTime#1232760]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2778) Filter
Input [3]: [product#1232758, plant#1232759, orderDateTime#1232760]
Condition : ((isnotnull(orderDateTime#1232760) AND isnotnull(plant#1232759)) AND isnotnull(product#1232758))
(2779) Exchange
Input [3]: [product#1232758, plant#1232759, orderDateTime#1232760]
Arguments: hashpartitioning(product#1232758, plant#1232759, 37), REPARTITION_BY_NUM, [plan_id=1931254]
(2780) Scan parquet
Output [4]: [plant#1232764, product#1232765, productionAspect#1232767, systemId#1232762]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2781) Project
Output [4]: [plant#1232764.internalRefUUID AS _extract_internalRefUUID#1234147, product#1232765.internalRefUUID AS _extract_internalRefUUID#1234148, productionAspect#1232767.productMovementPlants.unitOfIssue.code AS _extract_code#1234145, productionAspect#1232767.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234146]
Input [4]: [plant#1232764, product#1232765, productionAspect#1232767, systemId#1232762]
(2782) Exchange
Input [4]: [_extract_internalRefUUID#1234147, _extract_internalRefUUID#1234148, _extract_code#1234145, _extract_internalRefUUID#1234146]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930468]
(2783) Project
Output [4]: [_extract_code#1234145, _extract_internalRefUUID#1234146, _extract_internalRefUUID#1234148, _extract_internalRefUUID#1234147]
Input [4]: [_extract_internalRefUUID#1234147, _extract_internalRefUUID#1234148, _extract_code#1234145, _extract_internalRefUUID#1234146]
(2784) BroadcastExchange
Input [4]: [_extract_code#1234145, _extract_internalRefUUID#1234146, _extract_internalRefUUID#1234148, _extract_internalRefUUID#1234147]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932474]
(2785) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232758, ), isnull(product#1232758), coalesce(plant#1232759, ), isnull(plant#1232759)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234148, ), isnull(_extract_internalRefUUID#1234148), coalesce(_extract_internalRefUUID#1234147, ), isnull(_extract_internalRefUUID#1234147)]
Join type: LeftOuter
Join condition: None
(2786) Project
Output [5]: [product#1232758, plant#1232759, orderDateTime#1232760, _extract_code#1234145, _extract_internalRefUUID#1234146]
Input [7]: [product#1232758, plant#1232759, orderDateTime#1232760, _extract_code#1234145, _extract_internalRefUUID#1234146, _extract_internalRefUUID#1234148, _extract_internalRefUUID#1234147]
(2787) Scan parquet
Output [2]: [internalUUID#1232772, systemId#1232771]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2788) Project
Output [1]: [internalUUID#1232772]
Input [2]: [internalUUID#1232772, systemId#1232771]
(2789) Exchange
Input [1]: [internalUUID#1232772]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930474]
(2790) BroadcastExchange
Input [1]: [internalUUID#1232772]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932478]
(2791) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232759, ), isnull(plant#1232759)]
Right keys [2]: [coalesce(internalUUID#1232772, ), isnull(internalUUID#1232772)]
Join type: LeftOuter
Join condition: None
(2792) Project
Output [5]: [product#1232758, plant#1232759, orderDateTime#1232760, _extract_code#1234145, _extract_internalRefUUID#1234146]
Input [6]: [product#1232758, plant#1232759, orderDateTime#1232760, _extract_code#1234145, _extract_internalRefUUID#1234146, internalUUID#1232772]
(2793) Scan parquet
Output [4]: [internalUUID#1232786, baseUnitOfMeasure#1232790, unitOfMeasureConversions#1232792, systemId#1232785]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2794) Filter
Input [4]: [internalUUID#1232786, baseUnitOfMeasure#1232790, unitOfMeasureConversions#1232792, systemId#1232785]
Condition : isnotnull(internalUUID#1232786)
(2795) Project
Output [3]: [internalUUID#1232786, baseUnitOfMeasure#1232790, unitOfMeasureConversions#1232792]
Input [4]: [internalUUID#1232786, baseUnitOfMeasure#1232790, unitOfMeasureConversions#1232792, systemId#1232785]
(2796) Exchange
Input [3]: [internalUUID#1232786, baseUnitOfMeasure#1232790, unitOfMeasureConversions#1232792]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930480]
(2797) BroadcastExchange
Input [3]: [internalUUID#1232786, baseUnitOfMeasure#1232790, unitOfMeasureConversions#1232792]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932482]
(2798) BroadcastHashJoin
Left keys [1]: [product#1232758]
Right keys [1]: [internalUUID#1232786]
Join type: LeftOuter
Join condition: None
(2799) Project
Output [4]: [product#1232758, plant#1232759, orderDateTime#1232760, filter(unitOfMeasureConversions#1232792, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234145) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234146)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232790.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232790.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232797]
Input [8]: [product#1232758, plant#1232759, orderDateTime#1232760, _extract_code#1234145, _extract_internalRefUUID#1234146, internalUUID#1232786, baseUnitOfMeasure#1232790, unitOfMeasureConversions#1232792]
(2800) Generate
Input [4]: [product#1232758, plant#1232759, orderDateTime#1232760, filteredUnitOfMeasureConversions#1232797]
Arguments: explode(filteredUnitOfMeasureConversions#1232797.quantityNumerator), [product#1232758, plant#1232759, orderDateTime#1232760, filteredUnitOfMeasureConversions#1232797], true, [quantityNumerator#1232798]
(2801) Project
Output [4]: [product#1232758, plant#1232759, orderDateTime#1232760, filteredUnitOfMeasureConversions#1232797.quantityDenominator AS _extract_quantityDenominator#1233495]
Input [5]: [product#1232758, plant#1232759, orderDateTime#1232760, filteredUnitOfMeasureConversions#1232797, quantityNumerator#1232798]
(2802) Generate
Input [4]: [product#1232758, plant#1232759, orderDateTime#1232760, _extract_quantityDenominator#1233495]
Arguments: explode(_extract_quantityDenominator#1233495), [product#1232758, plant#1232759, orderDateTime#1232760], true, [quantityDenominator#1232799]
(2803) Project
Output [3]: [product#1232758, plant#1232759, orderDateTime#1232760]
Input [4]: [product#1232758, plant#1232759, orderDateTime#1232760, quantityDenominator#1232799]
(2804) Sort
Input [3]: [product#1232758, plant#1232759, orderDateTime#1232760]
Arguments: [product#1232758 ASC NULLS FIRST, plant#1232759 ASC NULLS FIRST], false, 0
(2805) SortMergeJoin
Left keys [2]: [productUuid#1232752, plantUuid#1232750]
Right keys [2]: [product#1232758, plant#1232759]
Join type: Inner
Join condition: (calculationDateTime#1232746 <= orderDateTime#1232760)
(2806) Project
Output [5]: [plantUuid#1232750 AS plant#1232802, productUuid#1232752 AS product#1232803, storageLocId#1232753, calculationDateTime#1232746, quantity#1232755]
Input [8]: [plantUuid#1232750, productUuid#1232752, calculationDateTime#1232746, storageLocId#1232753, quantity#1232755, product#1232758, plant#1232759, orderDateTime#1232760]
(2807) Exchange
Input [5]: [plant#1232802, product#1232803, storageLocId#1232753, calculationDateTime#1232746, quantity#1232755]
Arguments: hashpartitioning(coalesce(plant#1232802, ), isnull(plant#1232802), coalesce(product#1232803, ), isnull(product#1232803), coalesce(storageLocId#1232753, ), isnull(storageLocId#1232753), coalesce(calculationDateTime#1232746, 1970-01-01 00:00:00), isnull(calculationDateTime#1232746), 37), ENSURE_REQUIREMENTS, [plan_id=1932555]
(2808) Sort
Input [5]: [plant#1232802, product#1232803, storageLocId#1232753, calculationDateTime#1232746, quantity#1232755]
Arguments: [coalesce(plant#1232802, ) ASC NULLS FIRST, isnull(plant#1232802) ASC NULLS FIRST, coalesce(product#1232803, ) ASC NULLS FIRST, isnull(product#1232803) ASC NULLS FIRST, coalesce(storageLocId#1232753, ) ASC NULLS FIRST, isnull(storageLocId#1232753) ASC NULLS FIRST, coalesce(calculationDateTime#1232746, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1232746) ASC NULLS FIRST], false, 0
(2809) Scan parquet
Output [6]: [internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809, systemId#1232804]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(2810) Filter
Input [6]: [internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809, systemId#1232804]
Condition : (isnotnull(plant#1232807.internalRefUUID) AND isnotnull(product#1232806.internalRefUUID))
(2811) Project
Output [6]: [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809]
Input [6]: [internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809, systemId#1232804]
(2812) Exchange
Input [6]: [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930492]
(2813) BroadcastExchange
Input [6]: [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1932520]
(2814) Scan parquet
Output [2]: [marketUnit#1232810, distributionCenters#1232816]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(2815) Filter
Input [2]: [marketUnit#1232810, distributionCenters#1232816]
Condition : (((marketUnit#1232810 <=> AUTO_MUV2) AND (size(distributionCenters#1232816, true) > 0)) AND isnotnull(distributionCenters#1232816))
(2816) Project
Output [1]: [distributionCenters#1232816]
Input [2]: [marketUnit#1232810, distributionCenters#1232816]
(2817) Exchange
Input [1]: [distributionCenters#1232816]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930496]
(2818) Generate
Input [1]: [distributionCenters#1232816]
Arguments: explode(distributionCenters#1232816), false, [distributionCenters#1232832]
(2819) Filter
Input [1]: [distributionCenters#1232832]
Condition : (((size(distributionCenters#1232832.storageLocations, true) > 0) AND isnotnull(distributionCenters#1232832.storageLocations)) AND isnotnull(distributionCenters#1232832.internalRefUUID))
(2820) Project
Output [2]: [distributionCenters#1232832.internalRefUUID AS _extract_internalRefUUID#1233499, distributionCenters#1232832.storageLocations AS _extract_storageLocations#1233500]
Input [1]: [distributionCenters#1232832]
(2821) Generate
Input [2]: [_extract_internalRefUUID#1233499, _extract_storageLocations#1233500]
Arguments: explode(_extract_storageLocations#1233500), [_extract_internalRefUUID#1233499], false, [storageLocations#1232833]
(2822) Project
Output [3]: [_extract_internalRefUUID#1233499 AS plantUuid#1232835, storageLocations#1232833.id AS storageLocId#1232836, storageLocations#1232833.internalRefUUID AS storageLocUuid#1232837]
Input [2]: [_extract_internalRefUUID#1233499, storageLocations#1232833]
(2823) BroadcastExchange
Input [3]: [plantUuid#1232835, storageLocId#1232836, storageLocUuid#1232837]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932516]
(2824) Scan parquet
Output [2]: [product#1232838, plant#1232839]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(2825) Filter
Input [2]: [product#1232838, plant#1232839]
Condition : isnotnull(plant#1232839)
(2826) Exchange
Input [2]: [product#1232838, plant#1232839]
Arguments: hashpartitioning(product#1232838, plant#1232839, 37), REPARTITION_BY_NUM, [plan_id=1931267]
(2827) Scan parquet
Output [4]: [plant#1232844, product#1232845, productionAspect#1232847, systemId#1232842]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2828) Project
Output [4]: [plant#1232844.internalRefUUID AS _extract_internalRefUUID#1234152, product#1232845.internalRefUUID AS _extract_internalRefUUID#1234151, productionAspect#1232847.productMovementPlants.unitOfIssue.code AS _extract_code#1234149, productionAspect#1232847.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234150]
Input [4]: [plant#1232844, product#1232845, productionAspect#1232847, systemId#1232842]
(2829) Exchange
Input [4]: [_extract_internalRefUUID#1234152, _extract_internalRefUUID#1234151, _extract_code#1234149, _extract_internalRefUUID#1234150]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930508]
(2830) Project
Output [4]: [_extract_code#1234149, _extract_internalRefUUID#1234150, _extract_internalRefUUID#1234151, _extract_internalRefUUID#1234152]
Input [4]: [_extract_internalRefUUID#1234152, _extract_internalRefUUID#1234151, _extract_code#1234149, _extract_internalRefUUID#1234150]
(2831) BroadcastExchange
Input [4]: [_extract_code#1234149, _extract_internalRefUUID#1234150, _extract_internalRefUUID#1234151, _extract_internalRefUUID#1234152]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932496]
(2832) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232838, ), isnull(product#1232838), coalesce(plant#1232839, ), isnull(plant#1232839)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234151, ), isnull(_extract_internalRefUUID#1234151), coalesce(_extract_internalRefUUID#1234152, ), isnull(_extract_internalRefUUID#1234152)]
Join type: LeftOuter
Join condition: None
(2833) Project
Output [4]: [product#1232838, plant#1232839, _extract_code#1234149, _extract_internalRefUUID#1234150]
Input [6]: [product#1232838, plant#1232839, _extract_code#1234149, _extract_internalRefUUID#1234150, _extract_internalRefUUID#1234151, _extract_internalRefUUID#1234152]
(2834) Scan parquet
Output [2]: [internalUUID#1232852, systemId#1232851]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2835) Project
Output [1]: [internalUUID#1232852]
Input [2]: [internalUUID#1232852, systemId#1232851]
(2836) Exchange
Input [1]: [internalUUID#1232852]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930514]
(2837) BroadcastExchange
Input [1]: [internalUUID#1232852]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932500]
(2838) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232839, ), isnull(plant#1232839)]
Right keys [2]: [coalesce(internalUUID#1232852, ), isnull(internalUUID#1232852)]
Join type: LeftOuter
Join condition: None
(2839) Project
Output [4]: [product#1232838, plant#1232839, _extract_code#1234149, _extract_internalRefUUID#1234150]
Input [5]: [product#1232838, plant#1232839, _extract_code#1234149, _extract_internalRefUUID#1234150, internalUUID#1232852]
(2840) Scan parquet
Output [4]: [internalUUID#1232866, baseUnitOfMeasure#1232870, unitOfMeasureConversions#1232872, systemId#1232865]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2841) Filter
Input [4]: [internalUUID#1232866, baseUnitOfMeasure#1232870, unitOfMeasureConversions#1232872, systemId#1232865]
Condition : isnotnull(internalUUID#1232866)
(2842) Project
Output [3]: [internalUUID#1232866, baseUnitOfMeasure#1232870, unitOfMeasureConversions#1232872]
Input [4]: [internalUUID#1232866, baseUnitOfMeasure#1232870, unitOfMeasureConversions#1232872, systemId#1232865]
(2843) Exchange
Input [3]: [internalUUID#1232866, baseUnitOfMeasure#1232870, unitOfMeasureConversions#1232872]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930520]
(2844) BroadcastExchange
Input [3]: [internalUUID#1232866, baseUnitOfMeasure#1232870, unitOfMeasureConversions#1232872]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932504]
(2845) BroadcastHashJoin
Left keys [1]: [product#1232838]
Right keys [1]: [internalUUID#1232866]
Join type: LeftOuter
Join condition: None
(2846) Project
Output [2]: [plant#1232839, filter(unitOfMeasureConversions#1232872, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234149) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234150)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232870.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232870.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232877]
Input [7]: [product#1232838, plant#1232839, _extract_code#1234149, _extract_internalRefUUID#1234150, internalUUID#1232866, baseUnitOfMeasure#1232870, unitOfMeasureConversions#1232872]
(2847) Generate
Input [2]: [plant#1232839, filteredUnitOfMeasureConversions#1232877]
Arguments: explode(filteredUnitOfMeasureConversions#1232877.quantityNumerator), [plant#1232839, filteredUnitOfMeasureConversions#1232877], true, [quantityNumerator#1232878]
(2848) Project
Output [2]: [plant#1232839, filteredUnitOfMeasureConversions#1232877.quantityDenominator AS _extract_quantityDenominator#1233501]
Input [3]: [plant#1232839, filteredUnitOfMeasureConversions#1232877, quantityNumerator#1232878]
(2849) Generate
Input [2]: [plant#1232839, _extract_quantityDenominator#1233501]
Arguments: explode(_extract_quantityDenominator#1233501), [plant#1232839], true, [quantityDenominator#1232879]
(2850) Project
Output [1]: [plant#1232839]
Input [2]: [plant#1232839, quantityDenominator#1232879]
(2851) HashAggregate
Input [1]: [plant#1232839]
Keys [1]: [plant#1232839]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1232839]
(2852) Exchange
Input [1]: [plant#1232839]
Arguments: hashpartitioning(plant#1232839, 37), ENSURE_REQUIREMENTS, [plan_id=1932513]
(2853) HashAggregate
Input [1]: [plant#1232839]
Keys [1]: [plant#1232839]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1232839]
(2854) BroadcastHashJoin
Left keys [1]: [plantUuid#1232835]
Right keys [1]: [plant#1232839]
Join type: Inner
Join condition: None
(2855) Project
Output [3]: [plantUuid#1232835, storageLocId#1232836, storageLocUuid#1232837]
Input [4]: [plantUuid#1232835, storageLocId#1232836, storageLocUuid#1232837, plant#1232839]
(2856) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232807.internalRefUUID, ), isnull(plant#1232807.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1232835, ), isnull(plantUuid#1232835)]
Join type: Inner
Join condition: None
(2857) Generate
Input [9]: [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, stockQuantities#1232809, plantUuid#1232835, storageLocId#1232836, storageLocUuid#1232837]
Arguments: explode(filter(stockQuantities#1232809, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1232837) AND (lambda x#1225727.storageLocation.Id = storageLocId#1232836)), lambda x#1225727, false))), [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, plantUuid#1232835], false, [stockQuantity#1232882]
(2858) ObjectHashAggregate
Input [7]: [systemId#1232804, internalUUID#1232805, product#1232806, plant#1232807, calculationDateTime#1232808, plantUuid#1232835, stockQuantity#1232882]
Keys [5]: [plantUuid#1232835, internalUUID#1232805, plant#1232807, product#1232806, systemId#1232804]
Functions [2]: [partial_first(calculationDateTime#1232808, false), partial_collect_list(stockQuantity#1232882, 0, 0)]
Aggregate Attributes [3]: [first#1235185, valueSet#1235186, buf#1235187]
Results [8]: [plantUuid#1232835, internalUUID#1232805, plant#1232807, product#1232806, systemId#1232804, first#1235188, valueSet#1235189, buf#1235190]
(2859) ObjectHashAggregate
Input [8]: [plantUuid#1232835, internalUUID#1232805, plant#1232807, product#1232806, systemId#1232804, first#1235188, valueSet#1235189, buf#1235190]
Keys [5]: [plantUuid#1232835, internalUUID#1232805, plant#1232807, product#1232806, systemId#1232804]
Functions [2]: [first(calculationDateTime#1232808, false), collect_list(stockQuantity#1232882, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1232808)()#1225742, collect_list(stockQuantity#1232882, 0, 0)#1225743]
Results [4]: [product#1232806, plant#1232807, first(calculationDateTime#1232808)()#1225742 AS calculationDateTime#1232883, collect_list(stockQuantity#1232882, 0, 0)#1225743 AS stockQuantities#1232884]
(2860) Filter
Input [4]: [product#1232806, plant#1232807, calculationDateTime#1232883, stockQuantities#1232884]
Condition : ((size(stockQuantities#1232884, true) > 0) AND isnotnull(calculationDateTime#1232883))
(2861) Generate
Input [4]: [product#1232806, plant#1232807, calculationDateTime#1232883, stockQuantities#1232884]
Arguments: explode(stockQuantities#1232884), [product#1232806, plant#1232807, calculationDateTime#1232883], false, [stockQuantity#1232885]
(2862) Filter
Input [4]: [product#1232806, plant#1232807, calculationDateTime#1232883, stockQuantity#1232885]
Condition : (((isnotnull(stockQuantity#1232885.specialStockIndicator.code) AND isnotnull(stockQuantity#1232885.stockType.code)) AND (stockQuantity#1232885.specialStockIndicator.code = )) AND (stockQuantity#1232885.stockType.code = 01))
(2863) Project
Output [4]: [plant#1232807.internalRefUUID AS plantUuid#1232887, product#1232806.internalRefUUID AS productUuid#1232889, calculationDateTime#1232883, stockQuantity#1232885.storagelocation.id AS storageLocId#1232890]
Input [4]: [product#1232806, plant#1232807, calculationDateTime#1232883, stockQuantity#1232885]
(2864) Exchange
Input [4]: [plantUuid#1232887, productUuid#1232889, calculationDateTime#1232883, storageLocId#1232890]
Arguments: hashpartitioning(productUuid#1232889, plantUuid#1232887, 37), ENSURE_REQUIREMENTS, [plan_id=1932546]
(2865) Sort
Input [4]: [plantUuid#1232887, productUuid#1232889, calculationDateTime#1232883, storageLocId#1232890]
Arguments: [productUuid#1232889 ASC NULLS FIRST, plantUuid#1232887 ASC NULLS FIRST], false, 0
(2866) Scan parquet
Output [3]: [product#1232895, plant#1232896, orderDateTime#1232897]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2867) Filter
Input [3]: [product#1232895, plant#1232896, orderDateTime#1232897]
Condition : ((isnotnull(orderDateTime#1232897) AND isnotnull(plant#1232896)) AND isnotnull(product#1232895))
(2868) Exchange
Input [3]: [product#1232895, plant#1232896, orderDateTime#1232897]
Arguments: hashpartitioning(product#1232895, plant#1232896, 37), REPARTITION_BY_NUM, [plan_id=1931290]
(2869) Scan parquet
Output [4]: [plant#1232901, product#1232902, productionAspect#1232904, systemId#1232899]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(2870) Project
Output [4]: [plant#1232901.internalRefUUID AS _extract_internalRefUUID#1234156, product#1232902.internalRefUUID AS _extract_internalRefUUID#1234153, productionAspect#1232904.productMovementPlants.unitOfIssue.code AS _extract_code#1234154, productionAspect#1232904.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1234155]
Input [4]: [plant#1232901, product#1232902, productionAspect#1232904, systemId#1232899]
(2871) Exchange
Input [4]: [_extract_internalRefUUID#1234156, _extract_internalRefUUID#1234153, _extract_code#1234154, _extract_internalRefUUID#1234155]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930545]
(2872) Project
Output [4]: [_extract_code#1234154, _extract_internalRefUUID#1234155, _extract_internalRefUUID#1234153, _extract_internalRefUUID#1234156]
Input [4]: [_extract_internalRefUUID#1234156, _extract_internalRefUUID#1234153, _extract_code#1234154, _extract_internalRefUUID#1234155]
(2873) BroadcastExchange
Input [4]: [_extract_code#1234154, _extract_internalRefUUID#1234155, _extract_internalRefUUID#1234153, _extract_internalRefUUID#1234156]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1932529]
(2874) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232895, ), isnull(product#1232895), coalesce(plant#1232896, ), isnull(plant#1232896)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1234153, ), isnull(_extract_internalRefUUID#1234153), coalesce(_extract_internalRefUUID#1234156, ), isnull(_extract_internalRefUUID#1234156)]
Join type: LeftOuter
Join condition: None
(2875) Project
Output [5]: [product#1232895, plant#1232896, orderDateTime#1232897, _extract_code#1234154, _extract_internalRefUUID#1234155]
Input [7]: [product#1232895, plant#1232896, orderDateTime#1232897, _extract_code#1234154, _extract_internalRefUUID#1234155, _extract_internalRefUUID#1234153, _extract_internalRefUUID#1234156]
(2876) Scan parquet
Output [2]: [internalUUID#1232909, systemId#1232908]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(2877) Project
Output [1]: [internalUUID#1232909]
Input [2]: [internalUUID#1232909, systemId#1232908]
(2878) Exchange
Input [1]: [internalUUID#1232909]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930551]
(2879) BroadcastExchange
Input [1]: [internalUUID#1232909]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1932533]
(2880) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1232896, ), isnull(plant#1232896)]
Right keys [2]: [coalesce(internalUUID#1232909, ), isnull(internalUUID#1232909)]
Join type: LeftOuter
Join condition: None
(2881) Project
Output [5]: [product#1232895, plant#1232896, orderDateTime#1232897, _extract_code#1234154, _extract_internalRefUUID#1234155]
Input [6]: [product#1232895, plant#1232896, orderDateTime#1232897, _extract_code#1234154, _extract_internalRefUUID#1234155, internalUUID#1232909]
(2882) Scan parquet
Output [4]: [internalUUID#1232923, baseUnitOfMeasure#1232927, unitOfMeasureConversions#1232929, systemId#1232922]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(2883) Filter
Input [4]: [internalUUID#1232923, baseUnitOfMeasure#1232927, unitOfMeasureConversions#1232929, systemId#1232922]
Condition : isnotnull(internalUUID#1232923)
(2884) Project
Output [3]: [internalUUID#1232923, baseUnitOfMeasure#1232927, unitOfMeasureConversions#1232929]
Input [4]: [internalUUID#1232923, baseUnitOfMeasure#1232927, unitOfMeasureConversions#1232929, systemId#1232922]
(2885) Exchange
Input [3]: [internalUUID#1232923, baseUnitOfMeasure#1232927, unitOfMeasureConversions#1232929]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930557]
(2886) BroadcastExchange
Input [3]: [internalUUID#1232923, baseUnitOfMeasure#1232927, unitOfMeasureConversions#1232929]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1932537]
(2887) BroadcastHashJoin
Left keys [1]: [product#1232895]
Right keys [1]: [internalUUID#1232923]
Join type: LeftOuter
Join condition: None
(2888) Project
Output [4]: [product#1232895, plant#1232896, orderDateTime#1232897, filter(unitOfMeasureConversions#1232929, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1234154) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1234155)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1232927.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1232927.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1232934]
Input [8]: [product#1232895, plant#1232896, orderDateTime#1232897, _extract_code#1234154, _extract_internalRefUUID#1234155, internalUUID#1232923, baseUnitOfMeasure#1232927, unitOfMeasureConversions#1232929]
(2889) Generate
Input [4]: [product#1232895, plant#1232896, orderDateTime#1232897, filteredUnitOfMeasureConversions#1232934]
Arguments: explode(filteredUnitOfMeasureConversions#1232934.quantityNumerator), [product#1232895, plant#1232896, orderDateTime#1232897, filteredUnitOfMeasureConversions#1232934], true, [quantityNumerator#1232935]
(2890) Project
Output [4]: [product#1232895, plant#1232896, orderDateTime#1232897, filteredUnitOfMeasureConversions#1232934.quantityDenominator AS _extract_quantityDenominator#1233505]
Input [5]: [product#1232895, plant#1232896, orderDateTime#1232897, filteredUnitOfMeasureConversions#1232934, quantityNumerator#1232935]
(2891) Generate
Input [4]: [product#1232895, plant#1232896, orderDateTime#1232897, _extract_quantityDenominator#1233505]
Arguments: explode(_extract_quantityDenominator#1233505), [product#1232895, plant#1232896, orderDateTime#1232897], true, [quantityDenominator#1232936]
(2892) Project
Output [3]: [product#1232895, plant#1232896, orderDateTime#1232897]
Input [4]: [product#1232895, plant#1232896, orderDateTime#1232897, quantityDenominator#1232936]
(2893) Sort
Input [3]: [product#1232895, plant#1232896, orderDateTime#1232897]
Arguments: [product#1232895 ASC NULLS FIRST, plant#1232896 ASC NULLS FIRST], false, 0
(2894) SortMergeJoin
Left keys [2]: [productUuid#1232889, plantUuid#1232887]
Right keys [2]: [product#1232895, plant#1232896]
Join type: Inner
Join condition: (calculationDateTime#1232883 <= orderDateTime#1232897)
(2895) Project
Output [4]: [plantUuid#1232887 AS plant#1232939, productUuid#1232889 AS product#1232940, storageLocId#1232890, calculationDateTime#1232883]
Input [7]: [plantUuid#1232887, productUuid#1232889, calculationDateTime#1232883, storageLocId#1232890, product#1232895, plant#1232896, orderDateTime#1232897]
(2896) HashAggregate
Input [4]: [plant#1232939, product#1232940, storageLocId#1232890, calculationDateTime#1232883]
Keys [3]: [plant#1232939, product#1232940, storageLocId#1232890]
Functions [1]: [partial_max(calculationDateTime#1232883)]
Aggregate Attributes [1]: [max#1235183]
Results [4]: [plant#1232939, product#1232940, storageLocId#1232890, max#1235184]
(2897) HashAggregate
Input [4]: [plant#1232939, product#1232940, storageLocId#1232890, max#1235184]
Keys [3]: [plant#1232939, product#1232940, storageLocId#1232890]
Functions [1]: [max(calculationDateTime#1232883)]
Aggregate Attributes [1]: [max(calculationDateTime#1232883)#1225820]
Results [4]: [plant#1232939, product#1232940, storageLocId#1232890, max(calculationDateTime#1232883)#1225820 AS max_calc_datetime#1232941]
(2898) Exchange
Input [4]: [plant#1232939, product#1232940, storageLocId#1232890, max_calc_datetime#1232941]
Arguments: hashpartitioning(coalesce(plant#1232939, ), isnull(plant#1232939), coalesce(product#1232940, ), isnull(product#1232940), coalesce(storageLocId#1232890, ), isnull(storageLocId#1232890), coalesce(max_calc_datetime#1232941, 1970-01-01 00:00:00), isnull(max_calc_datetime#1232941), 37), ENSURE_REQUIREMENTS, [plan_id=1932556]
(2899) Sort
Input [4]: [plant#1232939, product#1232940, storageLocId#1232890, max_calc_datetime#1232941]
Arguments: [coalesce(plant#1232939, ) ASC NULLS FIRST, isnull(plant#1232939) ASC NULLS FIRST, coalesce(product#1232940, ) ASC NULLS FIRST, isnull(product#1232940) ASC NULLS FIRST, coalesce(storageLocId#1232890, ) ASC NULLS FIRST, isnull(storageLocId#1232890) ASC NULLS FIRST, coalesce(max_calc_datetime#1232941, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1232941) ASC NULLS FIRST], false, 0
(2900) SortMergeJoin
Left keys [8]: [coalesce(plant#1232802, ), isnull(plant#1232802), coalesce(product#1232803, ), isnull(product#1232803), coalesce(storageLocId#1232753, ), isnull(storageLocId#1232753), coalesce(calculationDateTime#1232746, 1970-01-01 00:00:00), isnull(calculationDateTime#1232746)]
Right keys [8]: [coalesce(plant#1232939, ), isnull(plant#1232939), coalesce(product#1232940, ), isnull(product#1232940), coalesce(storageLocId#1232890, ), isnull(storageLocId#1232890), coalesce(max_calc_datetime#1232941, 1970-01-01 00:00:00), isnull(max_calc_datetime#1232941)]
Join type: Inner
Join condition: None
(2901) Project
Output [4]: [plant#1232802, product#1232803, calculationDateTime#1232746, quantity#1232755]
Input [9]: [plant#1232802, product#1232803, storageLocId#1232753, calculationDateTime#1232746, quantity#1232755, plant#1232939, product#1232940, storageLocId#1232890, max_calc_datetime#1232941]
(2902) HashAggregate
Input [4]: [plant#1232802, product#1232803, calculationDateTime#1232746, quantity#1232755]
Keys [2]: [product#1232803, plant#1232802]
Functions [2]: [partial_min(calculationDateTime#1232746), partial_sum(quantity#1232755)]
Aggregate Attributes [2]: [min#1235173, sum#1235174]
Results [4]: [product#1232803, plant#1232802, min#1235175, sum#1235176]
(2903) Exchange
Input [4]: [product#1232803, plant#1232802, min#1235175, sum#1235176]
Arguments: hashpartitioning(product#1232803, plant#1232802, 37), ENSURE_REQUIREMENTS, [plan_id=1932563]
(2904) HashAggregate
Input [4]: [product#1232803, plant#1232802, min#1235175, sum#1235176]
Keys [2]: [product#1232803, plant#1232802]
Functions [2]: [min(calculationDateTime#1232746), sum(quantity#1232755)]
Aggregate Attributes [2]: [min(calculationDateTime#1232746)#1225976, sum(quantity#1232755)#1225975]
Results [4]: [product#1232803, plant#1232802, min(calculationDateTime#1232746)#1225976 AS minCalculationDateTime#1232943, round(sum(quantity#1232755)#1225975, 0) AS roundedQuantitySum#1232944]
(2905) Sort
Input [4]: [product#1232803, plant#1232802, minCalculationDateTime#1232943, roundedQuantitySum#1232944]
Arguments: [product#1232803 ASC NULLS FIRST, plant#1232802 ASC NULLS FIRST], false, 0
(2906) SortMergeJoin
Left keys [2]: [product#1232623, plant#1232624]
Right keys [2]: [product#1232803, plant#1232802]
Join type: LeftOuter
Join condition: None
(2907) Project
Output [8]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, CASE WHEN isnotnull(minCalculationDateTime#1232943) THEN minCalculationDateTime#1232943 ELSE orderDateTime#1232625 END AS stockDatetime#1232945, CASE WHEN isnotnull(roundedQuantitySum#1232944) THEN array(roundedQuantitySum#1232944) ELSE [0.0] END AS stockBatchQuantities#1232946]
Input [10]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, product#1232803, plant#1232802, minCalculationDateTime#1232943, roundedQuantitySum#1232944]
(2908) Scan parquet
Output [9]: [product#1232948, plant#1232949, demandChannel#1232950, demandStream#1232951, considerVariance#1232952, demandTimeBuckets#1232953, demandPointInTimeStart#1232954, demandPointInTimeEnd#1232955, demandPointInTime#1232956]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001356/0_1_10000001356]
PushedFilters: [IsNotNull(product), IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(2909) Filter
Input [9]: [product#1232948, plant#1232949, demandChannel#1232950, demandStream#1232951, considerVariance#1232952, demandTimeBuckets#1232953, demandPointInTimeStart#1232954, demandPointInTimeEnd#1232955, demandPointInTime#1232956]
Condition : (isnotnull(product#1232948) AND isnotnull(plant#1232949))
(2910) BroadcastExchange
Input [9]: [product#1232948, plant#1232949, demandChannel#1232950, demandStream#1232951, considerVariance#1232952, demandTimeBuckets#1232953, demandPointInTimeStart#1232954, demandPointInTimeEnd#1232955, demandPointInTime#1232956]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1932572]
(2911) BroadcastHashJoin
Left keys [2]: [product#1232623, plant#1232624]
Right keys [2]: [product#1232948, plant#1232949]
Join type: LeftOuter
Join condition: None
(2912) Project
Output [9]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, CASE WHEN isnotnull(product#1232948) THEN struct(demandChannel, demandChannel#1232950, demandStream, demandStream#1232951, considerVariance, considerVariance#1232952, demandTimeBuckets, demandTimeBuckets#1232953, demandPointInTimeStart, demandPointInTimeStart#1232954, demandPointInTimeEnd, demandPointInTimeEnd#1232955, demandPointInTime, demandPointInTime#1232956) END AS rawDemands#1232957]
Input [17]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, product#1232948, plant#1232949, demandChannel#1232950, demandStream#1232951, considerVariance#1232952, demandTimeBuckets#1232953, demandPointInTimeStart#1232954, demandPointInTimeEnd#1232955, demandPointInTime#1232956]
(2913) ObjectHashAggregate
Input [9]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, rawDemands#1232957]
Keys [9]: [product#1232623, plant#1232624, orderDateTime#1232625, knownfloatingpointnormalized(if (isnull(productPlant#1232635)) null else named_struct(systemId, productPlant#1232635.systemId, internalUUID, productPlant#1232635.internalUUID, plant, productPlant#1232635.plant, product, productPlant#1232635.product, blockedForReplenishmentStartingFrom, productPlant#1232635.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1232635.productionAspect)) null else named_struct(productMovementPlants, productPlant#1232635.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1232635.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1232635.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1232635.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1232635.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1232635.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1232635.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1232635.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1232635.salesPlant, listing, productPlant#1232635.listing)) AS productPlant#1232635, timezonecode#1232649, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1232666)) AS outboundUnit#1232666, stockDatetime#1232945, knownfloatingpointnormalized(transform(stockBatchQuantities#1232946, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1235170)), lambda arg#1235170, false))) AS stockBatchQuantities#1232946, [7226582400000000] AS [7226582400000000]#1235169]
Functions [1]: [partial_collect_list(rawDemands#1232957, 0, 0)]
Aggregate Attributes [1]: [buf#1235171]
Results [10]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, [7226582400000000]#1235169, buf#1235172]
(2914) ObjectHashAggregate
Input [10]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, [7226582400000000]#1235169, buf#1235172]
Keys [9]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, [7226582400000000]#1235169]
Functions [1]: [collect_list(rawDemands#1232957, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1232957, 0, 0)#1226069]
Results [10]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1232947, collect_list(rawDemands#1232957, 0, 0)#1226069 AS rawDemands#1232958]
(2915) DeserializeToObject
Input [10]: [product#1232623, plant#1232624, orderDateTime#1232625, productPlant#1232635, timezonecode#1232649, outboundUnit#1232666, stockDatetime#1232945, stockBatchQuantities#1232946, stockBatchShelfLifeEndDatetimes#1232947, rawDemands#1232958]
Arguments: createexternalrow(invoke(product#1232623.toString()), invoke(plant#1232624.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1232625)), if (isnull(productPlant#1232635)) null else createexternalrow(invoke(productPlant#1232635.systemId.toString()), invoke(productPlant#1232635.internalUUID.toString()), if (isnull(productPlant#1232635.plant)) null else createexternalrow(invoke(productPlant#1232635.plant.internalRefUUID.toString()), invoke(productPlant#1232635.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1232635.product)) null else createexternalrow(invoke(productPlant#1232635.product.internalRefUUID.toString()), invoke(productPlant#1232635.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1232635.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1232635.productionAspect)) null else createexternalrow(if (isnull(productPlant#1232635.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1232635.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1232635.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1232635.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1232635.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1232635.salesPlant)) null else createexternalrow(if (isnull(productPlant#1232635.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1232635.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1232635.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1232635.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1232649.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1232666)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1232945)), mapobjects(lambdavariable(MapObject, DoubleType, true, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1232946, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), stockBatchShelfLifeEndDatetimes#1232947, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1232958, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(2916) MapElements
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(2917) SerializeFromObject
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1232959, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1232960]
(2918) Exchange
Input [2]: [product#1232959, plant#1232960]
Arguments: hashpartitioning(coalesce(plant#1232960, ), isnull(plant#1232960), coalesce(product#1232959, ), isnull(product#1232959), 37), ENSURE_REQUIREMENTS, [plan_id=1932583]
(2919) Sort
Input [2]: [product#1232959, plant#1232960]
Arguments: [coalesce(plant#1232960, ) ASC NULLS FIRST, isnull(plant#1232960) ASC NULLS FIRST, coalesce(product#1232959, ) ASC NULLS FIRST, isnull(product#1232959) ASC NULLS FIRST], false, 0
(2920) SortMergeJoin
Left keys [4]: [coalesce(plant#1232299, ), isnull(plant#1232299), coalesce(product#1232298, ), isnull(product#1232298)]
Right keys [4]: [coalesce(plant#1232960, ), isnull(plant#1232960), coalesce(product#1232959, ), isnull(product#1232959)]
Join type: LeftOuter
Join condition: None
(2921) Project
Output [3]: [product#1232298, plant#1232299, stockDatetime#1232620]
Input [5]: [product#1232298, plant#1232299, stockDatetime#1232620, product#1232959, plant#1232960]
(2922) Scan parquet
Output [6]: [internalUUID#1232964, id#1232965, supplier#1232967, isMarkedForDeletion#1232970, items#1232971, systemId#1232963]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-procurement-purchaseorder]
PushedFilters: [IsNotNull(isMarkedForDeletion), Not(EqualTo(isMarkedForDeletion,true)), IsNotNull(items)]
ReadSchema: struct<internalUUID:string,id:string,supplier:struct<internalRefUUID:string,id:string>,isMarkedForDeletion:boolean,items:array<struct<number:string,completeIndicator:boolean,returnIndicator:boolean,deletionIndicator:boolean,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,quantityNumerator:double,quantityDenominator:double,scheduleLines:array<struct<number:string,deliveryAt:timestamp,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,receivedQuantity:double,deliveredQuantity:double,productAvailabilityDateTime:timestamp>>,confirmations:array<struct<number:string,confirmationCategory:struct<internalRefUUID:string,code:string>,confirmationDeliveryDate:date,confirmedDeliveryAt:timestamp,confirmedQuantity:double,mrpRelevantQuantity:double,confirmationCreationCategory:string,deletionIndicator:boolean,isRelevantForConfirmation:boolean,delivery:struct<internalRefUUID:string,id:string>,deliveryItemNumber:string>>>>>
(2923) Filter
Input [6]: [internalUUID#1232964, id#1232965, supplier#1232967, isMarkedForDeletion#1232970, items#1232971, systemId#1232963]
Condition : (((isnotnull(isMarkedForDeletion#1232970) AND NOT isMarkedForDeletion#1232970) AND (size(items#1232971, true) > 0)) AND isnotnull(items#1232971))
(2924) Project
Output [4]: [internalUUID#1232964, id#1232965, supplier#1232967, items#1232971]
Input [6]: [internalUUID#1232964, id#1232965, supplier#1232967, isMarkedForDeletion#1232970, items#1232971, systemId#1232963]
(2925) Exchange
Input [4]: [internalUUID#1232964, id#1232965, supplier#1232967, items#1232971]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1930589]
(2926) Generate
Input [4]: [internalUUID#1232964, id#1232965, supplier#1232967, items#1232971]
Arguments: explode(items#1232971), [internalUUID#1232964, id#1232965, supplier#1232967], false, [item#1232972]
(2927) Filter
Input [4]: [internalUUID#1232964, id#1232965, supplier#1232967, item#1232972]
Condition : ((((isnotnull(item#1232972.deletionIndicator) AND isnotnull(item#1232972.completeIndicator)) AND isnotnull(item#1232972.returnIndicator)) AND ((NOT item#1232972.deletionIndicator AND NOT item#1232972.completeIndicator) AND NOT item#1232972.returnIndicator)) AND isnotnull(item#1232972.product.internalRefUUID))
(2928) Project
Output [9]: [id#1232965, internalUUID#1232964, supplier#1232967.internalRefUUID AS supplierUuid#1232973, item#1232972.product.internalRefUUID AS product#1232975, item#1232972.quantityUnit.code AS quantityUom#1232979, item#1232972.quantityUnit.internalRefUUID AS quantityUomUuid#1232980, item#1232972.quantityNumerator AS quantityNumerator#1232981, item#1232972.quantityDenominator AS quantityDenominator#1232982, item#1232972.scheduleLines AS scheduleLines#1232983]
Input [4]: [internalUUID#1232964, id#1232965, supplier#1232967, item#1232972]
(2929) BroadcastExchange
Input [9]: [id#1232965, internalUUID#1232964, supplierUuid#1232973, product#1232975, quantityUom#1232979, quantityUomUuid#1232980, quantityNumerator#1232981, quantityDenominator#1232982, scheduleLines#1232983]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, string, true], ), isnull(input[3, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true])),false), [plan_id=1932589]
(2930) BroadcastHashJoin
Left keys [4]: [coalesce(product#1232298, ), isnull(product#1232298), coalesce(plant#1232299, ), isnull(plant#1232299)]
Right keys [4]: [coalesce(product#1232975, ), isnull(product#1232975), coalesce(supplierUuid#1232973, ), isnull(supplierUuid#1232973)]
Join type: Inner
Join condition: None
(2931) Project
Output [3]: [product#1232975, plant#1232299, filter(transform(filter(transform(scheduleLines#1232983, lambdafunction(struct(openQty, (greatest((lambda x_154#1229088.quantity - coalesce(lambda x_154#1229088.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_154#1229088.productAvailabilityDateTime, lambda x_154#1229088.deliveryAt)), lambda x_154#1229088, false)), lambdafunction((lambda x_155#1229089.availabilityDatetime < stockDatetime#1232620), lambda x_155#1229089, false)), lambdafunction(struct(documentId, id#1232965, documentUuid, internalUUID#1232964, openQty, lambda x_156#1229090.openQty, openQtyInBaseUnit, ((lambda x_156#1229090.openQty * quantityNumerator#1232981) / quantityDenominator#1232982), qtyUom, quantityUom#1232979, qtyUomUuid, quantityUomUuid#1232980, availabilityDatetime, lambda x_156#1229090.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_156#1229090, false)), lambdafunction(NOT (lambda x_157#1229091.openQty = 0.0), lambda x_157#1229091, false)) AS openGoodsMovements#1232985]
Input [12]: [product#1232298, plant#1232299, stockDatetime#1232620, id#1232965, internalUUID#1232964, supplierUuid#1232973, product#1232975, quantityUom#1232979, quantityUomUuid#1232980, quantityNumerator#1232981, quantityDenominator#1232982, scheduleLines#1232983]
(2932) ObjectHashAggregate
Input [3]: [product#1232975, plant#1232299, openGoodsMovements#1232985]
Keys [2]: [product#1232975, plant#1232299]
Functions [1]: [partial_collect_list(openGoodsMovements#1232985, 0, 0)]
Aggregate Attributes [1]: [buf#1235151]
Results [3]: [product#1232975, plant#1232299, buf#1235152]
(2933) Exchange
Input [3]: [product#1232975, plant#1232299, buf#1235152]
Arguments: hashpartitioning(product#1232975, plant#1232299, 37), ENSURE_REQUIREMENTS, [plan_id=1932594]
(2934) ObjectHashAggregate
Input [3]: [product#1232975, plant#1232299, buf#1235152]
Keys [2]: [product#1232975, plant#1232299]
Functions [1]: [collect_list(openGoodsMovements#1232985, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1232985, 0, 0)#1229109]
Results [3]: [product#1232975, plant#1232299, flatten(collect_list(openGoodsMovements#1232985, 0, 0)#1229109) AS openGoodsMovements#1232986]
(2935) Filter
Input [3]: [product#1232975, plant#1232299, openGoodsMovements#1232986]
Condition : (size(openGoodsMovements#1232986, false) > 0)
(2936) Union
(2937) ObjectHashAggregate
Input [3]: [product#1232283, plant#1232282, openGoodsMovements#1232297]
Keys [2]: [product#1232283, plant#1232282]
Functions [1]: [partial_collect_list(openGoodsMovements#1232297, 0, 0)]
Aggregate Attributes [1]: [buf#1235149]
Results [3]: [product#1232283, plant#1232282, buf#1235150]
(2938) Exchange
Input [3]: [product#1232283, plant#1232282, buf#1235150]
Arguments: hashpartitioning(product#1232283, plant#1232282, 37), ENSURE_REQUIREMENTS, [plan_id=1932600]
(2939) ObjectHashAggregate
Input [3]: [product#1232283, plant#1232282, buf#1235150]
Keys [2]: [product#1232283, plant#1232282]
Functions [1]: [collect_list(openGoodsMovements#1232297, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1232297, 0, 0)#1229851]
Results [3]: [product#1232283, plant#1232282, flatten(collect_list(openGoodsMovements#1232297, 0, 0)#1229851) AS openGoodsMovements#1232987]
(2940) Project
Output [5]: [product#1232283, plant#1232282, openGoodsMovements#1232987.openQtyInBaseUnit AS _extract_openQtyInBaseUnit#1233626, openGoodsMovements#1232987.availabilityDatetime AS _extract_availabilityDatetime#1233627, openGoodsMovements#1232987.shelfLifeEndDatetime AS _extract_shelfLifeEndDatetime#1233628]
Input [3]: [product#1232283, plant#1232282, openGoodsMovements#1232987]
(2941) Sort
Input [5]: [product#1232283, plant#1232282, _extract_openQtyInBaseUnit#1233626, _extract_availabilityDatetime#1233627, _extract_shelfLifeEndDatetime#1233628]
Arguments: [product#1232283 ASC NULLS FIRST, plant#1232282 ASC NULLS FIRST], false, 0
(2942) SortMergeJoin
Left keys [2]: [product#1230868, plant#1230869]
Right keys [2]: [product#1232283, plant#1232282]
Join type: LeftOuter
Join condition: None
(2943) Project
Output [16]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, coalesce(_extract_openQtyInBaseUnit#1233626, []) AS openGoodsMovementQuantities#1232988, coalesce(_extract_availabilityDatetime#1233627, []) AS openGoodsMovementAvailabilityDatetimes#1232989, coalesce(_extract_shelfLifeEndDatetime#1233628, []) AS openGoodsMovementShelfLifeEndDatetimes#1232990, [[0,ShelfLife.LIFOPreference,0.42],[0,StockExtrapolation.ConsiderUnfulfilledDemands,1]] AS configuration#1232991, array_sort(filter(CASE WHEN isnotnull(productPlant#1230880.listing) THEN productPlant#1230880.listing ELSE [] END, lambdafunction(lambda listing#1230812.isListed, lambda listing#1230812, false)), lambdafunction(if ((isnull(lambda left#1230814) AND isnull(lambda right#1230815))) 0 else if (isnull(lambda left#1230814)) 1 else if (isnull(lambda right#1230815)) -1 else if ((lambda left#1230814 < lambda right#1230815)) -1 else if ((lambda left#1230814 > lambda right#1230815)) 1 else 0, lambda left#1230814, lambda right#1230815, false), false) AS listing#1230813]
Input [15]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, dayBucketDemands#1231531, pointInTimeDemands#1231532, product#1232283, plant#1232282, _extract_openQtyInBaseUnit#1233626, _extract_availabilityDatetime#1233627, _extract_shelfLifeEndDatetime#1233628]
(2944) DeserializeToObject
Input [16]: [product#1230868, plant#1230869, orderDateTime#1230870, productPlant#1230880, timezonecode#1230894, outboundUnit#1230911, stockDatetime#1231190, stockBatchQuantities#1231191, stockBatchShelfLifeEndDatetimes#1231192, dayBucketDemands#1231531, pointInTimeDemands#1231532, openGoodsMovementQuantities#1232988, openGoodsMovementAvailabilityDatetimes#1232989, openGoodsMovementShelfLifeEndDatetimes#1232990, configuration#1232991, listing#1230813]
Arguments: createexternalrow(invoke(product#1230868.toString()), invoke(plant#1230869.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1230870)), if (isnull(productPlant#1230880)) null else createexternalrow(invoke(productPlant#1230880.systemId.toString()), invoke(productPlant#1230880.internalUUID.toString()), if (isnull(productPlant#1230880.plant)) null else createexternalrow(invoke(productPlant#1230880.plant.internalRefUUID.toString()), invoke(productPlant#1230880.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1230880.product)) null else createexternalrow(invoke(productPlant#1230880.product.internalRefUUID.toString()), invoke(productPlant#1230880.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1230880.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1230880.productionAspect)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1230880.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1230880.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1230880.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1230880.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1230880.salesPlant)) null else createexternalrow(if (isnull(productPlant#1230880.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1230880.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1230880.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1230880.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1230894.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1230911)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1231190)), mapobjects(lambdavariable(MapObject, DoubleType, true, -22), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -22))), stockBatchQuantities#1231191, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -23), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -23))), stockBatchShelfLifeEndDatetimes#1231192, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, -25), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, false, -25))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -26), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -26))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -27), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -27))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, -28), invoke(lambdavariable(MapObject, StringType, false, -28).toString()), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, -29), static_invoke(java.lang.Integer.valueOf(lambdavariable(MapObject, IntegerType, false, -29))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorIndices, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true)), dayBucketDemands#1231531, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, -31), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -31))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, -32), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, false, -32))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -33), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -33))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandVariances, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).horizonStartDatetime)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).horizonEndDatetime)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true)), pointInTimeDemands#1231532, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -34), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -34))), openGoodsMovementQuantities#1232988, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, -35), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, true, -35))), openGoodsMovementAvailabilityDatetimes#1232989, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -36), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -36))), openGoodsMovementShelfLifeEndDatetimes#1232990, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37), createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false)), configuration#1232991, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#1230813, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), ... 7 more fields), obj#1230848: org.apache.spark.sql.Row
(2945) MapElements
Input [1]: [obj#1230848]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.ListingSnapshotEnhancementImpl$$Lambda/0x000000080249e4c8@75d0fa77, obj#1230855: org.apache.spark.sql.Row
(2946) SerializeFromObject
Input [1]: [obj#1230855]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1230862, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1230863, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -17), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -17), StringType, ObjectType(class java.lang.String)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, timeDependentSettingsName), ArrayType(StringType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsName#1230864, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -18), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -18), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, timeDependentSettingsStartDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsStartDatetime#1230865, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -19), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -19), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, timeDependentSettingsEndDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsEndDatetime#1230866, if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -20), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -20), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsValue#1230867]
(2947) Filter
Input [6]: [product#1230862, plant#1230863, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
Condition : (isnotnull(product#1230862) AND isnotnull(plant#1230863))
(2948) Exchange
Input [6]: [product#1230862, plant#1230863, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
Arguments: hashpartitioning(product#1230862, plant#1230863, 37), ENSURE_REQUIREMENTS, [plan_id=1932616]
(2949) Sort
Input [6]: [product#1230862, plant#1230863, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
Arguments: [product#1230862 ASC NULLS FIRST, plant#1230863 ASC NULLS FIRST], false, 0
(2950) SortMergeJoin
Left keys [2]: [product#1225622, plant#1225623]
Right keys [2]: [product#1230862, plant#1230863]
Join type: LeftOuter
Join condition: None
(2951) Project
Output [16]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, [[0,ShelfLife.LIFOPreference,0.42],[0,StockExtrapolation.ConsiderUnfulfilledDemands,1]] AS configuration#1230669, CASE WHEN isnotnull(timeDependentSettingsName#1230864) THEN timeDependentSettingsName#1230864 ELSE [] END AS timeDependentSettingsName#1233146, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#1230865) THEN timeDependentSettingsStartDatetime#1230865 ELSE [] END AS timeDependentSettingsStartDatetime#1233147, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#1230866) THEN timeDependentSettingsEndDatetime#1230866 ELSE [] END AS timeDependentSettingsEndDatetime#1233148, CASE WHEN isnotnull(timeDependentSettingsValue#1230867) THEN timeDependentSettingsValue#1230867 ELSE [] END AS timeDependentSettingsValue#1233149]
Input [16]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, product#1230862, plant#1230863, timeDependentSettingsName#1230864, timeDependentSettingsStartDatetime#1230865, timeDependentSettingsEndDatetime#1230866, timeDependentSettingsValue#1230867]
(2952) AdaptiveSparkPlan
Output [16]: [product#1225622, plant#1225623, outboundUnit#1225681, stockDatetime#1226026, stockBatchQuantities#1226027, stockBatchShelfLifeEndDatetimes#1226028, dayBucketDemands#1226102, pointInTimeDemands#1226103, openGoodsMovementQuantities#1230566, openGoodsMovementAvailabilityDatetimes#1230567, openGoodsMovementShelfLifeEndDatetimes#1230568, configuration#1230669, timeDependentSettingsName#1233146, timeDependentSettingsStartDatetime#1233147, timeDependentSettingsEndDatetime#1233148, timeDependentSettingsValue#1233149]
Arguments: isFinalPlan=false