== Physical Plan ==
AdaptiveSparkPlan (650)
+- == Final Plan ==
ResultQueryStage (645), Statistics(sizeInBytes=8.0 EiB)
+- Execute InsertIntoHadoopFsRelationCommand (644)
+- WriteFiles (643)
+- Project (642)
+- Filter (641)
+- TableCacheQueryStage (640), Statistics(sizeInBytes=0.0 B, rowCount=0)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (639)
+- == Final Plan ==
ResultQueryStage (4)
+- EmptyRelation (3)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (638)
+- ObjectHashAggregate (637)
+- Exchange (636)
+- ObjectHashAggregate (635)
+- Project (634)
+- Window (633)
+- Sort (632)
+- Exchange (631)
+- Project (630)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- AdaptiveSparkPlan (629)
+- == Final Plan ==
ResultQueryStage (131)
+- Project (130)
+- * BroadcastHashJoin Inner BuildRight (129)
:- * Project (117)
: +- * SortMergeJoin Inner (116)
: :- * Sort (99)
: : +- ShuffleQueryStage (98), Statistics(sizeInBytes=8.9 KiB, rowCount=76)
: : +- Exchange (97)
: : +- * Project (96)
: : +- * BroadcastHashJoin LeftOuter BuildRight (95)
: : :- AQEShuffleRead (49)
: : : +- ShuffleQueryStage (48), Statistics(sizeInBytes=8.9 KiB, rowCount=76)
: : : +- Exchange (47)
: : : +- * Project (46)
: : : +- * Project (45)
: : : +- * Project (44)
: : : +- * Generate (43)
: : : +- * Project (42)
: : : +- * Generate (41)
: : : +- Project (40)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (39)
: : : :- * Project (30)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (29)
: : : : :- * Project (21)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (20)
: : : : : :- ShuffleQueryStage (11), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : : +- Exchange (10)
: : : : : : +- * Filter (9)
: : : : : : +- * ColumnarToRow (8)
: : : : : : +- Scan parquet (7)
: : : : : +- BroadcastQueryStage (19), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (18)
: : : : : +- * Project (17)
: : : : : +- ShuffleQueryStage (16), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (15)
: : : : : +- * Project (14)
: : : : : +- * ColumnarToRow (13)
: : : : : +- Scan parquet (12)
: : : : +- BroadcastQueryStage (28), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- BroadcastExchange (27)
: : : : +- ShuffleQueryStage (26), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : +- Exchange (25)
: : : : +- * Project (24)
: : : : +- * ColumnarToRow (23)
: : : : +- Scan parquet (22)
: : : +- BroadcastQueryStage (38), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- BroadcastExchange (37)
: : : +- ShuffleQueryStage (36), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : +- Exchange (35)
: : : +- * Project (34)
: : : +- * Filter (33)
: : : +- * ColumnarToRow (32)
: : : +- Scan parquet (31)
: : +- BroadcastQueryStage (94), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: : +- BroadcastExchange (93)
: : +- AQEShuffleRead (92)
: : +- ShuffleQueryStage (91), Statistics(sizeInBytes=6.5 KiB, rowCount=76)
: : +- Exchange (90)
: : +- * SerializeFromObject (89)
: : +- * MapElements (88)
: : +- * DeserializeToObject (87)
: : +- ObjectHashAggregate (86)
: : +- ObjectHashAggregate (85)
: : +- * Project (84)
: : +- * BroadcastHashJoin LeftOuter BuildRight (83)
: : :- * Project (77)
: : : +- * Project (76)
: : : +- * Project (75)
: : : +- * Project (74)
: : : +- * Generate (73)
: : : +- * Generate (72)
: : : +- * Project (71)
: : : +- Project (70)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (69)
: : : :- * Project (66)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (65)
: : : : :- * BroadcastHashJoin LeftOuter BuildRight (62)
: : : : : :- ShuffleQueryStage (53), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : : +- Exchange (52)
: : : : : : +- * ColumnarToRow (51)
: : : : : : +- Scan parquet (50)
: : : : : +- BroadcastQueryStage (61), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (60)
: : : : : +- * Project (59)
: : : : : +- ShuffleQueryStage (58), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (57)
: : : : : +- * Project (56)
: : : : : +- * ColumnarToRow (55)
: : : : : +- Scan parquet (54)
: : : : +- BroadcastQueryStage (64), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (63)
: : : +- BroadcastQueryStage (68), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (67)
: : +- BroadcastQueryStage (82), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: : +- BroadcastExchange (81)
: : +- * Filter (80)
: : +- * ColumnarToRow (79)
: : +- Scan parquet (78)
: +- * Sort (115)
: +- * Project (114)
: +- * BroadcastHashJoin Inner BuildLeft (113)
: :- BroadcastQueryStage (109), Statistics(sizeInBytes=2.0 MiB, rowCount=11)
: : +- BroadcastExchange (108)
: : +- * Project (107)
: : +- * Filter (106)
: : +- * Generate (105)
: : +- * Project (104)
: : +- * Filter (103)
: : +- * Generate (102)
: : +- ShuffleQueryStage (101), Statistics(sizeInBytes=1880.0 B, rowCount=1)
: : +- ReusedExchange (100)
: +- * HashAggregate (112)
: +- ShuffleQueryStage (111), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: +- ReusedExchange (110)
+- BroadcastQueryStage (128), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (127)
+- * Project (126)
+- * Filter (125)
+- * Generate (124)
+- ShuffleQueryStage (123), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (122)
+- * Project (121)
+- * Filter (120)
+- * ColumnarToRow (119)
+- Scan parquet (118)
+- == Initial Plan ==
Project (628)
+- BroadcastHashJoin Inner BuildRight (627)
:- Project (619)
: +- SortMergeJoin Inner (618)
: :- Sort (573)
: : +- Exchange (572)
: : +- Project (571)
: : +- SortMergeJoin LeftOuter (570)
: : :- Sort (345)
: : : +- Exchange (344)
: : : +- Project (343)
: : : +- SortMergeJoin LeftOuter (342)
: : : :- Sort (155)
: : : : +- Project (154)
: : : : +- Generate (153)
: : : : +- Project (152)
: : : : +- Generate (151)
: : : : +- Project (150)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (149)
: : : : :- Project (144)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (143)
: : : : : :- Project (139)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (138)
: : : : : : :- Exchange (133)
: : : : : : : +- Filter (132)
: : : : : : : +- Scan parquet (7)
: : : : : : +- BroadcastExchange (137)
: : : : : : +- Project (136)
: : : : : : +- Exchange (135)
: : : : : : +- Project (134)
: : : : : : +- Scan parquet (12)
: : : : : +- BroadcastExchange (142)
: : : : : +- Exchange (141)
: : : : : +- Project (140)
: : : : : +- Scan parquet (22)
: : : : +- BroadcastExchange (148)
: : : : +- Exchange (147)
: : : : +- Project (146)
: : : : +- Filter (145)
: : : : +- Scan parquet (31)
: : : +- Sort (341)
: : : +- HashAggregate (340)
: : : +- Exchange (339)
: : : +- HashAggregate (338)
: : : +- Project (337)
: : : +- SortMergeJoin Inner (336)
: : : :- Sort (244)
: : : : +- Exchange (243)
: : : : +- Project (242)
: : : : +- SortMergeJoin Inner (241)
: : : : :- Sort (212)
: : : : : +- Exchange (211)
: : : : : +- Project (210)
: : : : : +- Filter (209)
: : : : : +- Generate (208)
: : : : : +- Filter (207)
: : : : : +- ObjectHashAggregate (206)
: : : : : +- ObjectHashAggregate (205)
: : : : : +- Generate (204)
: : : : : +- BroadcastHashJoin Inner BuildLeft (203)
: : : : : :- BroadcastExchange (160)
: : : : : : +- Exchange (159)
: : : : : : +- Project (158)
: : : : : : +- Filter (157)
: : : : : : +- Scan parquet (156)
: : : : : +- Project (202)
: : : : : +- BroadcastHashJoin Inner BuildLeft (201)
: : : : : :- BroadcastExchange (170)
: : : : : : +- Project (169)
: : : : : : +- Generate (168)
: : : : : : +- Project (167)
: : : : : : +- Filter (166)
: : : : : : +- Generate (165)
: : : : : : +- Exchange (164)
: : : : : : +- Project (163)
: : : : : : +- Filter (162)
: : : : : : +- Scan parquet (161)
: : : : : +- HashAggregate (200)
: : : : : +- Exchange (199)
: : : : : +- HashAggregate (198)
: : : : : +- Project (197)
: : : : : +- Generate (196)
: : : : : +- Project (195)
: : : : : +- Generate (194)
: : : : : +- Project (193)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (192)
: : : : : :- Project (186)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (185)
: : : : : : :- Project (180)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (179)
: : : : : : : :- Exchange (173)
: : : : : : : : +- Filter (172)
: : : : : : : : +- Scan parquet (171)
: : : : : : : +- BroadcastExchange (178)
: : : : : : : +- Project (177)
: : : : : : : +- Exchange (176)
: : : : : : : +- Project (175)
: : : : : : : +- Scan parquet (174)
: : : : : : +- BroadcastExchange (184)
: : : : : : +- Exchange (183)
: : : : : : +- Project (182)
: : : : : : +- Scan parquet (181)
: : : : : +- BroadcastExchange (191)
: : : : : +- Exchange (190)
: : : : : +- Project (189)
: : : : : +- Filter (188)
: : : : : +- Scan parquet (187)
: : : : +- Sort (240)
: : : : +- Project (239)
: : : : +- Generate (238)
: : : : +- Project (237)
: : : : +- Generate (236)
: : : : +- Project (235)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (234)
: : : : :- Project (228)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (227)
: : : : : :- Project (222)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (221)
: : : : : : :- Exchange (215)
: : : : : : : +- Filter (214)
: : : : : : : +- Scan parquet (213)
: : : : : : +- BroadcastExchange (220)
: : : : : : +- Project (219)
: : : : : : +- Exchange (218)
: : : : : : +- Project (217)
: : : : : : +- Scan parquet (216)
: : : : : +- BroadcastExchange (226)
: : : : : +- Exchange (225)
: : : : : +- Project (224)
: : : : : +- Scan parquet (223)
: : : : +- BroadcastExchange (233)
: : : : +- Exchange (232)
: : : : +- Project (231)
: : : : +- Filter (230)
: : : : +- Scan parquet (229)
: : : +- Sort (335)
: : : +- Exchange (334)
: : : +- HashAggregate (333)
: : : +- HashAggregate (332)
: : : +- Project (331)
: : : +- SortMergeJoin Inner (330)
: : : :- Sort (301)
: : : : +- Exchange (300)
: : : : +- Project (299)
: : : : +- Filter (298)
: : : : +- Generate (297)
: : : : +- Filter (296)
: : : : +- ObjectHashAggregate (295)
: : : : +- ObjectHashAggregate (294)
: : : : +- Generate (293)
: : : : +- BroadcastHashJoin Inner BuildLeft (292)
: : : : :- BroadcastExchange (249)
: : : : : +- Exchange (248)
: : : : : +- Project (247)
: : : : : +- Filter (246)
: : : : : +- Scan parquet (245)
: : : : +- Project (291)
: : : : +- BroadcastHashJoin Inner BuildLeft (290)
: : : : :- BroadcastExchange (259)
: : : : : +- Project (258)
: : : : : +- Generate (257)
: : : : : +- Project (256)
: : : : : +- Filter (255)
: : : : : +- Generate (254)
: : : : : +- Exchange (253)
: : : : : +- Project (252)
: : : : : +- Filter (251)
: : : : : +- Scan parquet (250)
: : : : +- HashAggregate (289)
: : : : +- Exchange (288)
: : : : +- HashAggregate (287)
: : : : +- Project (286)
: : : : +- Generate (285)
: : : : +- Project (284)
: : : : +- Generate (283)
: : : : +- Project (282)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (281)
: : : : :- Project (275)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (274)
: : : : : :- Project (269)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (268)
: : : : : : :- Exchange (262)
: : : : : : : +- Filter (261)
: : : : : : : +- Scan parquet (260)
: : : : : : +- BroadcastExchange (267)
: : : : : : +- Project (266)
: : : : : : +- Exchange (265)
: : : : : : +- Project (264)
: : : : : : +- Scan parquet (263)
: : : : : +- BroadcastExchange (273)
: : : : : +- Exchange (272)
: : : : : +- Project (271)
: : : : : +- Scan parquet (270)
: : : : +- BroadcastExchange (280)
: : : : +- Exchange (279)
: : : : +- Project (278)
: : : : +- Filter (277)
: : : : +- Scan parquet (276)
: : : +- Sort (329)
: : : +- Project (328)
: : : +- Generate (327)
: : : +- Project (326)
: : : +- Generate (325)
: : : +- Project (324)
: : : +- BroadcastHashJoin LeftOuter BuildRight (323)
: : : :- Project (317)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (316)
: : : : :- Project (311)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (310)
: : : : : :- Exchange (304)
: : : : : : +- Filter (303)
: : : : : : +- Scan parquet (302)
: : : : : +- BroadcastExchange (309)
: : : : : +- Project (308)
: : : : : +- Exchange (307)
: : : : : +- Project (306)
: : : : : +- Scan parquet (305)
: : : : +- BroadcastExchange (315)
: : : : +- Exchange (314)
: : : : +- Project (313)
: : : : +- Scan parquet (312)
: : : +- BroadcastExchange (322)
: : : +- Exchange (321)
: : : +- Project (320)
: : : +- Filter (319)
: : : +- Scan parquet (318)
: : +- Sort (569)
: : +- Exchange (568)
: : +- SerializeFromObject (567)
: : +- MapElements (566)
: : +- DeserializeToObject (565)
: : +- ObjectHashAggregate (564)
: : +- ObjectHashAggregate (563)
: : +- Project (562)
: : +- BroadcastHashJoin LeftOuter BuildRight (561)
: : :- Project (558)
: : : +- SortMergeJoin LeftOuter (557)
: : : :- Sort (370)
: : : : +- Project (369)
: : : : +- Project (368)
: : : : +- Generate (367)
: : : : +- Generate (366)
: : : : +- Project (365)
: : : : +- Project (364)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (363)
: : : : :- Project (357)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (356)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (351)
: : : : : : :- Exchange (346)
: : : : : : : +- Scan parquet (50)
: : : : : : +- BroadcastExchange (350)
: : : : : : +- Project (349)
: : : : : : +- Exchange (348)
: : : : : : +- Project (347)
: : : : : : +- Scan parquet (54)
: : : : : +- BroadcastExchange (355)
: : : : : +- Exchange (354)
: : : : : +- Project (353)
: : : : : +- Scan parquet (352)
: : : : +- BroadcastExchange (362)
: : : : +- Exchange (361)
: : : : +- Project (360)
: : : : +- Filter (359)
: : : : +- Scan parquet (358)
: : : +- Sort (556)
: : : +- HashAggregate (555)
: : : +- Exchange (554)
: : : +- HashAggregate (553)
: : : +- Project (552)
: : : +- SortMergeJoin Inner (551)
: : : :- Sort (459)
: : : : +- Exchange (458)
: : : : +- Project (457)
: : : : +- SortMergeJoin Inner (456)
: : : : :- Sort (427)
: : : : : +- Exchange (426)
: : : : : +- Project (425)
: : : : : +- Filter (424)
: : : : : +- Generate (423)
: : : : : +- Filter (422)
: : : : : +- ObjectHashAggregate (421)
: : : : : +- ObjectHashAggregate (420)
: : : : : +- Generate (419)
: : : : : +- BroadcastHashJoin Inner BuildLeft (418)
: : : : : :- BroadcastExchange (375)
: : : : : : +- Exchange (374)
: : : : : : +- Project (373)
: : : : : : +- Filter (372)
: : : : : : +- Scan parquet (371)
: : : : : +- Project (417)
: : : : : +- BroadcastHashJoin Inner BuildLeft (416)
: : : : : :- BroadcastExchange (385)
: : : : : : +- Project (384)
: : : : : : +- Generate (383)
: : : : : : +- Project (382)
: : : : : : +- Filter (381)
: : : : : : +- Generate (380)
: : : : : : +- Exchange (379)
: : : : : : +- Project (378)
: : : : : : +- Filter (377)
: : : : : : +- Scan parquet (376)
: : : : : +- HashAggregate (415)
: : : : : +- Exchange (414)
: : : : : +- HashAggregate (413)
: : : : : +- Project (412)
: : : : : +- Generate (411)
: : : : : +- Project (410)
: : : : : +- Generate (409)
: : : : : +- Project (408)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (407)
: : : : : :- Project (401)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (400)
: : : : : : :- Project (395)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (394)
: : : : : : : :- Exchange (388)
: : : : : : : : +- Filter (387)
: : : : : : : : +- Scan parquet (386)
: : : : : : : +- BroadcastExchange (393)
: : : : : : : +- Project (392)
: : : : : : : +- Exchange (391)
: : : : : : : +- Project (390)
: : : : : : : +- Scan parquet (389)
: : : : : : +- BroadcastExchange (399)
: : : : : : +- Exchange (398)
: : : : : : +- Project (397)
: : : : : : +- Scan parquet (396)
: : : : : +- BroadcastExchange (406)
: : : : : +- Exchange (405)
: : : : : +- Project (404)
: : : : : +- Filter (403)
: : : : : +- Scan parquet (402)
: : : : +- Sort (455)
: : : : +- Project (454)
: : : : +- Generate (453)
: : : : +- Project (452)
: : : : +- Generate (451)
: : : : +- Project (450)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (449)
: : : : :- Project (443)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (442)
: : : : : :- Project (437)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (436)
: : : : : : :- Exchange (430)
: : : : : : : +- Filter (429)
: : : : : : : +- Scan parquet (428)
: : : : : : +- BroadcastExchange (435)
: : : : : : +- Project (434)
: : : : : : +- Exchange (433)
: : : : : : +- Project (432)
: : : : : : +- Scan parquet (431)
: : : : : +- BroadcastExchange (441)
: : : : : +- Exchange (440)
: : : : : +- Project (439)
: : : : : +- Scan parquet (438)
: : : : +- BroadcastExchange (448)
: : : : +- Exchange (447)
: : : : +- Project (446)
: : : : +- Filter (445)
: : : : +- Scan parquet (444)
: : : +- Sort (550)
: : : +- Exchange (549)
: : : +- HashAggregate (548)
: : : +- HashAggregate (547)
: : : +- Project (546)
: : : +- SortMergeJoin Inner (545)
: : : :- Sort (516)
: : : : +- Exchange (515)
: : : : +- Project (514)
: : : : +- Filter (513)
: : : : +- Generate (512)
: : : : +- Filter (511)
: : : : +- ObjectHashAggregate (510)
: : : : +- ObjectHashAggregate (509)
: : : : +- Generate (508)
: : : : +- BroadcastHashJoin Inner BuildLeft (507)
: : : : :- BroadcastExchange (464)
: : : : : +- Exchange (463)
: : : : : +- Project (462)
: : : : : +- Filter (461)
: : : : : +- Scan parquet (460)
: : : : +- Project (506)
: : : : +- BroadcastHashJoin Inner BuildLeft (505)
: : : : :- BroadcastExchange (474)
: : : : : +- Project (473)
: : : : : +- Generate (472)
: : : : : +- Project (471)
: : : : : +- Filter (470)
: : : : : +- Generate (469)
: : : : : +- Exchange (468)
: : : : : +- Project (467)
: : : : : +- Filter (466)
: : : : : +- Scan parquet (465)
: : : : +- HashAggregate (504)
: : : : +- Exchange (503)
: : : : +- HashAggregate (502)
: : : : +- Project (501)
: : : : +- Generate (500)
: : : : +- Project (499)
: : : : +- Generate (498)
: : : : +- Project (497)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (496)
: : : : :- Project (490)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (489)
: : : : : :- Project (484)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (483)
: : : : : : :- Exchange (477)
: : : : : : : +- Filter (476)
: : : : : : : +- Scan parquet (475)
: : : : : : +- BroadcastExchange (482)
: : : : : : +- Project (481)
: : : : : : +- Exchange (480)
: : : : : : +- Project (479)
: : : : : : +- Scan parquet (478)
: : : : : +- BroadcastExchange (488)
: : : : : +- Exchange (487)
: : : : : +- Project (486)
: : : : : +- Scan parquet (485)
: : : : +- BroadcastExchange (495)
: : : : +- Exchange (494)
: : : : +- Project (493)
: : : : +- Filter (492)
: : : : +- Scan parquet (491)
: : : +- Sort (544)
: : : +- Project (543)
: : : +- Generate (542)
: : : +- Project (541)
: : : +- Generate (540)
: : : +- Project (539)
: : : +- BroadcastHashJoin LeftOuter BuildRight (538)
: : : :- Project (532)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (531)
: : : : :- Project (526)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (525)
: : : : : :- Exchange (519)
: : : : : : +- Filter (518)
: : : : : : +- Scan parquet (517)
: : : : : +- BroadcastExchange (524)
: : : : : +- Project (523)
: : : : : +- Exchange (522)
: : : : : +- Project (521)
: : : : : +- Scan parquet (520)
: : : : +- BroadcastExchange (530)
: : : : +- Exchange (529)
: : : : +- Project (528)
: : : : +- Scan parquet (527)
: : : +- BroadcastExchange (537)
: : : +- Exchange (536)
: : : +- Project (535)
: : : +- Filter (534)
: : : +- Scan parquet (533)
: : +- BroadcastExchange (560)
: : +- Filter (559)
: : +- Scan parquet (78)
: +- Sort (617)
: +- Project (616)
: +- BroadcastHashJoin Inner BuildLeft (615)
: :- BroadcastExchange (584)
: : +- Project (583)
: : +- Filter (582)
: : +- Generate (581)
: : +- Project (580)
: : +- Filter (579)
: : +- Generate (578)
: : +- Exchange (577)
: : +- Project (576)
: : +- Filter (575)
: : +- Scan parquet (574)
: +- HashAggregate (614)
: +- Exchange (613)
: +- HashAggregate (612)
: +- Project (611)
: +- Generate (610)
: +- Project (609)
: +- Generate (608)
: +- Project (607)
: +- BroadcastHashJoin LeftOuter BuildRight (606)
: :- Project (600)
: : +- BroadcastHashJoin LeftOuter BuildRight (599)
: : :- Project (594)
: : : +- BroadcastHashJoin LeftOuter BuildRight (593)
: : : :- Exchange (587)
: : : : +- Filter (586)
: : : : +- Scan parquet (585)
: : : +- BroadcastExchange (592)
: : : +- Project (591)
: : : +- Exchange (590)
: : : +- Project (589)
: : : +- Scan parquet (588)
: : +- BroadcastExchange (598)
: : +- Exchange (597)
: : +- Project (596)
: : +- Scan parquet (595)
: +- BroadcastExchange (605)
: +- Exchange (604)
: +- Project (603)
: +- Filter (602)
: +- Scan parquet (601)
+- BroadcastExchange (626)
+- Project (625)
+- Filter (624)
+- Generate (623)
+- Exchange (622)
+- Project (621)
+- Filter (620)
+- Scan parquet (118)
+- == Initial Plan ==
Execute InsertIntoHadoopFsRelationCommand (649)
+- WriteFiles (648)
+- Project (647)
+- Filter (646)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (639)
+- == Final Plan ==
ResultQueryStage (4)
+- EmptyRelation (3)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (638)
+- ObjectHashAggregate (637)
+- Exchange (636)
+- ObjectHashAggregate (635)
+- Project (634)
+- Window (633)
+- Sort (632)
+- Exchange (631)
+- Project (630)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- AdaptiveSparkPlan (629)
+- == Final Plan ==
ResultQueryStage (131)
+- Project (130)
+- * BroadcastHashJoin Inner BuildRight (129)
:- * Project (117)
: +- * SortMergeJoin Inner (116)
: :- * Sort (99)
: : +- ShuffleQueryStage (98), Statistics(sizeInBytes=8.9 KiB, rowCount=76)
: : +- Exchange (97)
: : +- * Project (96)
: : +- * BroadcastHashJoin LeftOuter BuildRight (95)
: : :- AQEShuffleRead (49)
: : : +- ShuffleQueryStage (48), Statistics(sizeInBytes=8.9 KiB, rowCount=76)
: : : +- Exchange (47)
: : : +- * Project (46)
: : : +- * Project (45)
: : : +- * Project (44)
: : : +- * Generate (43)
: : : +- * Project (42)
: : : +- * Generate (41)
: : : +- Project (40)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (39)
: : : :- * Project (30)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (29)
: : : : :- * Project (21)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (20)
: : : : : :- ShuffleQueryStage (11), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : : +- Exchange (10)
: : : : : : +- * Filter (9)
: : : : : : +- * ColumnarToRow (8)
: : : : : : +- Scan parquet (7)
: : : : : +- BroadcastQueryStage (19), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (18)
: : : : : +- * Project (17)
: : : : : +- ShuffleQueryStage (16), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (15)
: : : : : +- * Project (14)
: : : : : +- * ColumnarToRow (13)
: : : : : +- Scan parquet (12)
: : : : +- BroadcastQueryStage (28), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- BroadcastExchange (27)
: : : : +- ShuffleQueryStage (26), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : +- Exchange (25)
: : : : +- * Project (24)
: : : : +- * ColumnarToRow (23)
: : : : +- Scan parquet (22)
: : : +- BroadcastQueryStage (38), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- BroadcastExchange (37)
: : : +- ShuffleQueryStage (36), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : +- Exchange (35)
: : : +- * Project (34)
: : : +- * Filter (33)
: : : +- * ColumnarToRow (32)
: : : +- Scan parquet (31)
: : +- BroadcastQueryStage (94), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: : +- BroadcastExchange (93)
: : +- AQEShuffleRead (92)
: : +- ShuffleQueryStage (91), Statistics(sizeInBytes=6.5 KiB, rowCount=76)
: : +- Exchange (90)
: : +- * SerializeFromObject (89)
: : +- * MapElements (88)
: : +- * DeserializeToObject (87)
: : +- ObjectHashAggregate (86)
: : +- ObjectHashAggregate (85)
: : +- * Project (84)
: : +- * BroadcastHashJoin LeftOuter BuildRight (83)
: : :- * Project (77)
: : : +- * Project (76)
: : : +- * Project (75)
: : : +- * Project (74)
: : : +- * Generate (73)
: : : +- * Generate (72)
: : : +- * Project (71)
: : : +- Project (70)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (69)
: : : :- * Project (66)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (65)
: : : : :- * BroadcastHashJoin LeftOuter BuildRight (62)
: : : : : :- ShuffleQueryStage (53), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : : +- Exchange (52)
: : : : : : +- * ColumnarToRow (51)
: : : : : : +- Scan parquet (50)
: : : : : +- BroadcastQueryStage (61), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (60)
: : : : : +- * Project (59)
: : : : : +- ShuffleQueryStage (58), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (57)
: : : : : +- * Project (56)
: : : : : +- * ColumnarToRow (55)
: : : : : +- Scan parquet (54)
: : : : +- BroadcastQueryStage (64), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (63)
: : : +- BroadcastQueryStage (68), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (67)
: : +- BroadcastQueryStage (82), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: : +- BroadcastExchange (81)
: : +- * Filter (80)
: : +- * ColumnarToRow (79)
: : +- Scan parquet (78)
: +- * Sort (115)
: +- * Project (114)
: +- * BroadcastHashJoin Inner BuildLeft (113)
: :- BroadcastQueryStage (109), Statistics(sizeInBytes=2.0 MiB, rowCount=11)
: : +- BroadcastExchange (108)
: : +- * Project (107)
: : +- * Filter (106)
: : +- * Generate (105)
: : +- * Project (104)
: : +- * Filter (103)
: : +- * Generate (102)
: : +- ShuffleQueryStage (101), Statistics(sizeInBytes=1880.0 B, rowCount=1)
: : +- ReusedExchange (100)
: +- * HashAggregate (112)
: +- ShuffleQueryStage (111), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: +- ReusedExchange (110)
+- BroadcastQueryStage (128), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (127)
+- * Project (126)
+- * Filter (125)
+- * Generate (124)
+- ShuffleQueryStage (123), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (122)
+- * Project (121)
+- * Filter (120)
+- * ColumnarToRow (119)
+- Scan parquet (118)
+- == Initial Plan ==
Project (628)
+- BroadcastHashJoin Inner BuildRight (627)
:- Project (619)
: +- SortMergeJoin Inner (618)
: :- Sort (573)
: : +- Exchange (572)
: : +- Project (571)
: : +- SortMergeJoin LeftOuter (570)
: : :- Sort (345)
: : : +- Exchange (344)
: : : +- Project (343)
: : : +- SortMergeJoin LeftOuter (342)
: : : :- Sort (155)
: : : : +- Project (154)
: : : : +- Generate (153)
: : : : +- Project (152)
: : : : +- Generate (151)
: : : : +- Project (150)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (149)
: : : : :- Project (144)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (143)
: : : : : :- Project (139)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (138)
: : : : : : :- Exchange (133)
: : : : : : : +- Filter (132)
: : : : : : : +- Scan parquet (7)
: : : : : : +- BroadcastExchange (137)
: : : : : : +- Project (136)
: : : : : : +- Exchange (135)
: : : : : : +- Project (134)
: : : : : : +- Scan parquet (12)
: : : : : +- BroadcastExchange (142)
: : : : : +- Exchange (141)
: : : : : +- Project (140)
: : : : : +- Scan parquet (22)
: : : : +- BroadcastExchange (148)
: : : : +- Exchange (147)
: : : : +- Project (146)
: : : : +- Filter (145)
: : : : +- Scan parquet (31)
: : : +- Sort (341)
: : : +- HashAggregate (340)
: : : +- Exchange (339)
: : : +- HashAggregate (338)
: : : +- Project (337)
: : : +- SortMergeJoin Inner (336)
: : : :- Sort (244)
: : : : +- Exchange (243)
: : : : +- Project (242)
: : : : +- SortMergeJoin Inner (241)
: : : : :- Sort (212)
: : : : : +- Exchange (211)
: : : : : +- Project (210)
: : : : : +- Filter (209)
: : : : : +- Generate (208)
: : : : : +- Filter (207)
: : : : : +- ObjectHashAggregate (206)
: : : : : +- ObjectHashAggregate (205)
: : : : : +- Generate (204)
: : : : : +- BroadcastHashJoin Inner BuildLeft (203)
: : : : : :- BroadcastExchange (160)
: : : : : : +- Exchange (159)
: : : : : : +- Project (158)
: : : : : : +- Filter (157)
: : : : : : +- Scan parquet (156)
: : : : : +- Project (202)
: : : : : +- BroadcastHashJoin Inner BuildLeft (201)
: : : : : :- BroadcastExchange (170)
: : : : : : +- Project (169)
: : : : : : +- Generate (168)
: : : : : : +- Project (167)
: : : : : : +- Filter (166)
: : : : : : +- Generate (165)
: : : : : : +- Exchange (164)
: : : : : : +- Project (163)
: : : : : : +- Filter (162)
: : : : : : +- Scan parquet (161)
: : : : : +- HashAggregate (200)
: : : : : +- Exchange (199)
: : : : : +- HashAggregate (198)
: : : : : +- Project (197)
: : : : : +- Generate (196)
: : : : : +- Project (195)
: : : : : +- Generate (194)
: : : : : +- Project (193)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (192)
: : : : : :- Project (186)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (185)
: : : : : : :- Project (180)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (179)
: : : : : : : :- Exchange (173)
: : : : : : : : +- Filter (172)
: : : : : : : : +- Scan parquet (171)
: : : : : : : +- BroadcastExchange (178)
: : : : : : : +- Project (177)
: : : : : : : +- Exchange (176)
: : : : : : : +- Project (175)
: : : : : : : +- Scan parquet (174)
: : : : : : +- BroadcastExchange (184)
: : : : : : +- Exchange (183)
: : : : : : +- Project (182)
: : : : : : +- Scan parquet (181)
: : : : : +- BroadcastExchange (191)
: : : : : +- Exchange (190)
: : : : : +- Project (189)
: : : : : +- Filter (188)
: : : : : +- Scan parquet (187)
: : : : +- Sort (240)
: : : : +- Project (239)
: : : : +- Generate (238)
: : : : +- Project (237)
: : : : +- Generate (236)
: : : : +- Project (235)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (234)
: : : : :- Project (228)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (227)
: : : : : :- Project (222)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (221)
: : : : : : :- Exchange (215)
: : : : : : : +- Filter (214)
: : : : : : : +- Scan parquet (213)
: : : : : : +- BroadcastExchange (220)
: : : : : : +- Project (219)
: : : : : : +- Exchange (218)
: : : : : : +- Project (217)
: : : : : : +- Scan parquet (216)
: : : : : +- BroadcastExchange (226)
: : : : : +- Exchange (225)
: : : : : +- Project (224)
: : : : : +- Scan parquet (223)
: : : : +- BroadcastExchange (233)
: : : : +- Exchange (232)
: : : : +- Project (231)
: : : : +- Filter (230)
: : : : +- Scan parquet (229)
: : : +- Sort (335)
: : : +- Exchange (334)
: : : +- HashAggregate (333)
: : : +- HashAggregate (332)
: : : +- Project (331)
: : : +- SortMergeJoin Inner (330)
: : : :- Sort (301)
: : : : +- Exchange (300)
: : : : +- Project (299)
: : : : +- Filter (298)
: : : : +- Generate (297)
: : : : +- Filter (296)
: : : : +- ObjectHashAggregate (295)
: : : : +- ObjectHashAggregate (294)
: : : : +- Generate (293)
: : : : +- BroadcastHashJoin Inner BuildLeft (292)
: : : : :- BroadcastExchange (249)
: : : : : +- Exchange (248)
: : : : : +- Project (247)
: : : : : +- Filter (246)
: : : : : +- Scan parquet (245)
: : : : +- Project (291)
: : : : +- BroadcastHashJoin Inner BuildLeft (290)
: : : : :- BroadcastExchange (259)
: : : : : +- Project (258)
: : : : : +- Generate (257)
: : : : : +- Project (256)
: : : : : +- Filter (255)
: : : : : +- Generate (254)
: : : : : +- Exchange (253)
: : : : : +- Project (252)
: : : : : +- Filter (251)
: : : : : +- Scan parquet (250)
: : : : +- HashAggregate (289)
: : : : +- Exchange (288)
: : : : +- HashAggregate (287)
: : : : +- Project (286)
: : : : +- Generate (285)
: : : : +- Project (284)
: : : : +- Generate (283)
: : : : +- Project (282)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (281)
: : : : :- Project (275)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (274)
: : : : : :- Project (269)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (268)
: : : : : : :- Exchange (262)
: : : : : : : +- Filter (261)
: : : : : : : +- Scan parquet (260)
: : : : : : +- BroadcastExchange (267)
: : : : : : +- Project (266)
: : : : : : +- Exchange (265)
: : : : : : +- Project (264)
: : : : : : +- Scan parquet (263)
: : : : : +- BroadcastExchange (273)
: : : : : +- Exchange (272)
: : : : : +- Project (271)
: : : : : +- Scan parquet (270)
: : : : +- BroadcastExchange (280)
: : : : +- Exchange (279)
: : : : +- Project (278)
: : : : +- Filter (277)
: : : : +- Scan parquet (276)
: : : +- Sort (329)
: : : +- Project (328)
: : : +- Generate (327)
: : : +- Project (326)
: : : +- Generate (325)
: : : +- Project (324)
: : : +- BroadcastHashJoin LeftOuter BuildRight (323)
: : : :- Project (317)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (316)
: : : : :- Project (311)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (310)
: : : : : :- Exchange (304)
: : : : : : +- Filter (303)
: : : : : : +- Scan parquet (302)
: : : : : +- BroadcastExchange (309)
: : : : : +- Project (308)
: : : : : +- Exchange (307)
: : : : : +- Project (306)
: : : : : +- Scan parquet (305)
: : : : +- BroadcastExchange (315)
: : : : +- Exchange (314)
: : : : +- Project (313)
: : : : +- Scan parquet (312)
: : : +- BroadcastExchange (322)
: : : +- Exchange (321)
: : : +- Project (320)
: : : +- Filter (319)
: : : +- Scan parquet (318)
: : +- Sort (569)
: : +- Exchange (568)
: : +- SerializeFromObject (567)
: : +- MapElements (566)
: : +- DeserializeToObject (565)
: : +- ObjectHashAggregate (564)
: : +- ObjectHashAggregate (563)
: : +- Project (562)
: : +- BroadcastHashJoin LeftOuter BuildRight (561)
: : :- Project (558)
: : : +- SortMergeJoin LeftOuter (557)
: : : :- Sort (370)
: : : : +- Project (369)
: : : : +- Project (368)
: : : : +- Generate (367)
: : : : +- Generate (366)
: : : : +- Project (365)
: : : : +- Project (364)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (363)
: : : : :- Project (357)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (356)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (351)
: : : : : : :- Exchange (346)
: : : : : : : +- Scan parquet (50)
: : : : : : +- BroadcastExchange (350)
: : : : : : +- Project (349)
: : : : : : +- Exchange (348)
: : : : : : +- Project (347)
: : : : : : +- Scan parquet (54)
: : : : : +- BroadcastExchange (355)
: : : : : +- Exchange (354)
: : : : : +- Project (353)
: : : : : +- Scan parquet (352)
: : : : +- BroadcastExchange (362)
: : : : +- Exchange (361)
: : : : +- Project (360)
: : : : +- Filter (359)
: : : : +- Scan parquet (358)
: : : +- Sort (556)
: : : +- HashAggregate (555)
: : : +- Exchange (554)
: : : +- HashAggregate (553)
: : : +- Project (552)
: : : +- SortMergeJoin Inner (551)
: : : :- Sort (459)
: : : : +- Exchange (458)
: : : : +- Project (457)
: : : : +- SortMergeJoin Inner (456)
: : : : :- Sort (427)
: : : : : +- Exchange (426)
: : : : : +- Project (425)
: : : : : +- Filter (424)
: : : : : +- Generate (423)
: : : : : +- Filter (422)
: : : : : +- ObjectHashAggregate (421)
: : : : : +- ObjectHashAggregate (420)
: : : : : +- Generate (419)
: : : : : +- BroadcastHashJoin Inner BuildLeft (418)
: : : : : :- BroadcastExchange (375)
: : : : : : +- Exchange (374)
: : : : : : +- Project (373)
: : : : : : +- Filter (372)
: : : : : : +- Scan parquet (371)
: : : : : +- Project (417)
: : : : : +- BroadcastHashJoin Inner BuildLeft (416)
: : : : : :- BroadcastExchange (385)
: : : : : : +- Project (384)
: : : : : : +- Generate (383)
: : : : : : +- Project (382)
: : : : : : +- Filter (381)
: : : : : : +- Generate (380)
: : : : : : +- Exchange (379)
: : : : : : +- Project (378)
: : : : : : +- Filter (377)
: : : : : : +- Scan parquet (376)
: : : : : +- HashAggregate (415)
: : : : : +- Exchange (414)
: : : : : +- HashAggregate (413)
: : : : : +- Project (412)
: : : : : +- Generate (411)
: : : : : +- Project (410)
: : : : : +- Generate (409)
: : : : : +- Project (408)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (407)
: : : : : :- Project (401)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (400)
: : : : : : :- Project (395)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (394)
: : : : : : : :- Exchange (388)
: : : : : : : : +- Filter (387)
: : : : : : : : +- Scan parquet (386)
: : : : : : : +- BroadcastExchange (393)
: : : : : : : +- Project (392)
: : : : : : : +- Exchange (391)
: : : : : : : +- Project (390)
: : : : : : : +- Scan parquet (389)
: : : : : : +- BroadcastExchange (399)
: : : : : : +- Exchange (398)
: : : : : : +- Project (397)
: : : : : : +- Scan parquet (396)
: : : : : +- BroadcastExchange (406)
: : : : : +- Exchange (405)
: : : : : +- Project (404)
: : : : : +- Filter (403)
: : : : : +- Scan parquet (402)
: : : : +- Sort (455)
: : : : +- Project (454)
: : : : +- Generate (453)
: : : : +- Project (452)
: : : : +- Generate (451)
: : : : +- Project (450)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (449)
: : : : :- Project (443)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (442)
: : : : : :- Project (437)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (436)
: : : : : : :- Exchange (430)
: : : : : : : +- Filter (429)
: : : : : : : +- Scan parquet (428)
: : : : : : +- BroadcastExchange (435)
: : : : : : +- Project (434)
: : : : : : +- Exchange (433)
: : : : : : +- Project (432)
: : : : : : +- Scan parquet (431)
: : : : : +- BroadcastExchange (441)
: : : : : +- Exchange (440)
: : : : : +- Project (439)
: : : : : +- Scan parquet (438)
: : : : +- BroadcastExchange (448)
: : : : +- Exchange (447)
: : : : +- Project (446)
: : : : +- Filter (445)
: : : : +- Scan parquet (444)
: : : +- Sort (550)
: : : +- Exchange (549)
: : : +- HashAggregate (548)
: : : +- HashAggregate (547)
: : : +- Project (546)
: : : +- SortMergeJoin Inner (545)
: : : :- Sort (516)
: : : : +- Exchange (515)
: : : : +- Project (514)
: : : : +- Filter (513)
: : : : +- Generate (512)
: : : : +- Filter (511)
: : : : +- ObjectHashAggregate (510)
: : : : +- ObjectHashAggregate (509)
: : : : +- Generate (508)
: : : : +- BroadcastHashJoin Inner BuildLeft (507)
: : : : :- BroadcastExchange (464)
: : : : : +- Exchange (463)
: : : : : +- Project (462)
: : : : : +- Filter (461)
: : : : : +- Scan parquet (460)
: : : : +- Project (506)
: : : : +- BroadcastHashJoin Inner BuildLeft (505)
: : : : :- BroadcastExchange (474)
: : : : : +- Project (473)
: : : : : +- Generate (472)
: : : : : +- Project (471)
: : : : : +- Filter (470)
: : : : : +- Generate (469)
: : : : : +- Exchange (468)
: : : : : +- Project (467)
: : : : : +- Filter (466)
: : : : : +- Scan parquet (465)
: : : : +- HashAggregate (504)
: : : : +- Exchange (503)
: : : : +- HashAggregate (502)
: : : : +- Project (501)
: : : : +- Generate (500)
: : : : +- Project (499)
: : : : +- Generate (498)
: : : : +- Project (497)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (496)
: : : : :- Project (490)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (489)
: : : : : :- Project (484)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (483)
: : : : : : :- Exchange (477)
: : : : : : : +- Filter (476)
: : : : : : : +- Scan parquet (475)
: : : : : : +- BroadcastExchange (482)
: : : : : : +- Project (481)
: : : : : : +- Exchange (480)
: : : : : : +- Project (479)
: : : : : : +- Scan parquet (478)
: : : : : +- BroadcastExchange (488)
: : : : : +- Exchange (487)
: : : : : +- Project (486)
: : : : : +- Scan parquet (485)
: : : : +- BroadcastExchange (495)
: : : : +- Exchange (494)
: : : : +- Project (493)
: : : : +- Filter (492)
: : : : +- Scan parquet (491)
: : : +- Sort (544)
: : : +- Project (543)
: : : +- Generate (542)
: : : +- Project (541)
: : : +- Generate (540)
: : : +- Project (539)
: : : +- BroadcastHashJoin LeftOuter BuildRight (538)
: : : :- Project (532)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (531)
: : : : :- Project (526)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (525)
: : : : : :- Exchange (519)
: : : : : : +- Filter (518)
: : : : : : +- Scan parquet (517)
: : : : : +- BroadcastExchange (524)
: : : : : +- Project (523)
: : : : : +- Exchange (522)
: : : : : +- Project (521)
: : : : : +- Scan parquet (520)
: : : : +- BroadcastExchange (530)
: : : : +- Exchange (529)
: : : : +- Project (528)
: : : : +- Scan parquet (527)
: : : +- BroadcastExchange (537)
: : : +- Exchange (536)
: : : +- Project (535)
: : : +- Filter (534)
: : : +- Scan parquet (533)
: : +- BroadcastExchange (560)
: : +- Filter (559)
: : +- Scan parquet (78)
: +- Sort (617)
: +- Project (616)
: +- BroadcastHashJoin Inner BuildLeft (615)
: :- BroadcastExchange (584)
: : +- Project (583)
: : +- Filter (582)
: : +- Generate (581)
: : +- Project (580)
: : +- Filter (579)
: : +- Generate (578)
: : +- Exchange (577)
: : +- Project (576)
: : +- Filter (575)
: : +- Scan parquet (574)
: +- HashAggregate (614)
: +- Exchange (613)
: +- HashAggregate (612)
: +- Project (611)
: +- Generate (610)
: +- Project (609)
: +- Generate (608)
: +- Project (607)
: +- BroadcastHashJoin LeftOuter BuildRight (606)
: :- Project (600)
: : +- BroadcastHashJoin LeftOuter BuildRight (599)
: : :- Project (594)
: : : +- BroadcastHashJoin LeftOuter BuildRight (593)
: : : :- Exchange (587)
: : : : +- Filter (586)
: : : : +- Scan parquet (585)
: : : +- BroadcastExchange (592)
: : : +- Project (591)
: : : +- Exchange (590)
: : : +- Project (589)
: : : +- Scan parquet (588)
: : +- BroadcastExchange (598)
: : +- Exchange (597)
: : +- Project (596)
: : +- Scan parquet (595)
: +- BroadcastExchange (605)
: +- Exchange (604)
: +- Project (603)
: +- Filter (602)
: +- Scan parquet (601)
+- BroadcastExchange (626)
+- Project (625)
+- Filter (624)
+- Generate (623)
+- Exchange (622)
+- Project (621)
+- Filter (620)
+- Scan parquet (118)
(1) InMemoryTableScan
Output [3]: [openGoodsMovements#1137658, plant#1136539, product#1136540]
Arguments: [openGoodsMovements#1137658, plant#1136539, product#1136540], [(size(transform(openGoodsMovements#1137658, lambdafunction(struct(documentType, PO, documentId, lambda x_138#1152396.documentId, documentUuid, lambda x_138#1152396.documentUuid, openQty, lambda x_138#1152396.openQty, qtyUomUuid, lambda x_138#1152396.qtyUomUuid, qtyUom, lambda x_138#1152396.qtyUom, plannedDeliveryDatetime, lambda x_138#1152396.availabilityDatetime), lambda x_138#1152396, false)), false) > 0)]
(2) InMemoryRelation
Arguments: [product#1136540, plant#1136539, openGoodsMovements#1137658], StorageLevel(disk, memory, 2 replicas)
(3) EmptyRelation
Output [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Arguments: [plan_id=1763674]
(4) ResultQueryStage
Output [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Arguments: 2
(5) InMemoryTableScan
Output [10]: [id#1136524, internalUUID#1136523, plant#1136539, product#1136540, quantityDenominator#1136547, quantityNumerator#1136546, quantityUom#1136544, quantityUomUuid#1136545, scheduleLines#1136548, validConfirmations#1136639]
Arguments: [id#1136524, internalUUID#1136523, plant#1136539, product#1136540, quantityDenominator#1136547, quantityNumerator#1136546, quantityUom#1136544, quantityUomUuid#1136545, scheduleLines#1136548, validConfirmations#1136639]
(6) InMemoryRelation
Arguments: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1136095, timezonecode#1135723, validConfirmations#1136639], StorageLevel(disk, memory, deserialized, 1 replicas)
(7) Scan parquet
Output [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(8) ColumnarToRow
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
(9) Filter
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Condition : (isnotnull(plant#1135692) AND isnotnull(product#1135691))
(10) Exchange
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: hashpartitioning(product#1135691, plant#1135692, 37), REPARTITION_BY_NUM, [plan_id=1727639]
(11) ShuffleQueryStage
Output [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: 0
(12) Scan parquet
Output [4]: [plant#1135698, product#1135699, productionAspect#1135701, systemId#1135696]
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>>>>
(13) ColumnarToRow
Input [4]: [plant#1135698, product#1135699, productionAspect#1135701, systemId#1135696]
(14) Project
Output [4]: [plant#1135698.internalRefUUID AS _extract_internalRefUUID#1136837, product#1135699.internalRefUUID AS _extract_internalRefUUID#1136838, productionAspect#1135701.productMovementPlants.unitOfIssue.code AS _extract_code#1136835, productionAspect#1135701.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136836]
Input [4]: [plant#1135698, product#1135699, productionAspect#1135701, systemId#1135696]
(15) Exchange
Input [4]: [_extract_internalRefUUID#1136837, _extract_internalRefUUID#1136838, _extract_code#1136835, _extract_internalRefUUID#1136836]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727655]
(16) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#1136837, _extract_internalRefUUID#1136838, _extract_code#1136835, _extract_internalRefUUID#1136836]
Arguments: 1
(17) Project
Output [4]: [_extract_code#1136835, _extract_internalRefUUID#1136836, _extract_internalRefUUID#1136838, _extract_internalRefUUID#1136837]
Input [4]: [_extract_internalRefUUID#1136837, _extract_internalRefUUID#1136838, _extract_code#1136835, _extract_internalRefUUID#1136836]
(18) BroadcastExchange
Input [4]: [_extract_code#1136835, _extract_internalRefUUID#1136836, _extract_internalRefUUID#1136838, _extract_internalRefUUID#1136837]
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=1736101]
(19) BroadcastQueryStage
Output [4]: [_extract_code#1136835, _extract_internalRefUUID#1136836, _extract_internalRefUUID#1136838, _extract_internalRefUUID#1136837]
Arguments: 118
(20) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135691, ), isnull(product#1135691), coalesce(plant#1135692, ), isnull(plant#1135692)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136838, ), isnull(_extract_internalRefUUID#1136838), coalesce(_extract_internalRefUUID#1136837, ), isnull(_extract_internalRefUUID#1136837)]
Join type: LeftOuter
Join condition: None
(21) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836]
Input [7]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836, _extract_internalRefUUID#1136838, _extract_internalRefUUID#1136837]
(22) Scan parquet
Output [3]: [internalUUID#1135709, address#1135715, systemId#1135708]
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>>>
(23) ColumnarToRow
Input [3]: [internalUUID#1135709, address#1135715, systemId#1135708]
(24) Project
Output [2]: [internalUUID#1135709, address#1135715.timeZone.code AS timezonecode#1135720]
Input [3]: [internalUUID#1135709, address#1135715, systemId#1135708]
(25) Exchange
Input [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727674]
(26) ShuffleQueryStage
Output [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: 2
(27) BroadcastExchange
Input [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1729885]
(28) BroadcastQueryStage
Output [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: 97
(29) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1135692, ), isnull(plant#1135692)]
Right keys [2]: [coalesce(internalUUID#1135709, ), isnull(internalUUID#1135709)]
Join type: LeftOuter
Join condition: None
(30) Project
Output [6]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836, CASE WHEN isnotnull(timezonecode#1135720) THEN timezonecode#1135720 ELSE UTC END AS timezonecode#1135723]
Input [7]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836, internalUUID#1135709, timezonecode#1135720]
(31) Scan parquet
Output [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
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>>>
(32) ColumnarToRow
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(33) Filter
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
Condition : isnotnull(internalUUID#1135725)
(34) Project
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(35) Exchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727694]
(36) ShuffleQueryStage
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: 3
(37) BroadcastExchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1733533]
(38) BroadcastQueryStage
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: 107
(39) BroadcastHashJoin
Left keys [1]: [product#1135691]
Right keys [1]: [internalUUID#1135725]
Join type: LeftOuter
Join condition: None
(40) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filter(unitOfMeasureConversions#1135731, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136835) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136836)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1135729.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1135729.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1135737]
Input [9]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836, timezonecode#1135723, internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
(41) Generate
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filteredUnitOfMeasureConversions#1135737]
Arguments: explode(filteredUnitOfMeasureConversions#1135737.quantityNumerator), [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filteredUnitOfMeasureConversions#1135737], true, [quantityNumerator#1135745]
(42) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filteredUnitOfMeasureConversions#1135737.quantityDenominator AS _extract_quantityDenominator#1136641]
Input [6]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filteredUnitOfMeasureConversions#1135737, quantityNumerator#1135745]
(43) Generate
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, _extract_quantityDenominator#1136641]
Arguments: explode(_extract_quantityDenominator#1136641), [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723], true, [quantityDenominator#1135748]
(44) Project
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723]
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, quantityDenominator#1135748]
(45) Project
Output [7]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, cast(null as string) AS product#1135882, cast(null as string) AS plant#1135881, cast(null as timestamp) AS minCalculationDateTime#1136038]
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723]
(46) Project
Output [4]: [product#1135691, plant#1135692, timezonecode#1135723, CASE WHEN isnotnull(minCalculationDateTime#1136038) THEN minCalculationDateTime#1136038 ELSE orderDateTime#1135693 END AS stockDatetime#1136095]
Input [7]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, product#1135882, plant#1135881, minCalculationDateTime#1136038]
(47) Exchange
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: hashpartitioning(coalesce(plant#1135692, ), isnull(plant#1135692), coalesce(product#1135691, ), isnull(product#1135691), 37), ENSURE_REQUIREMENTS, [plan_id=1763220]
(48) ShuffleQueryStage
Output [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: 173
(49) AQEShuffleRead
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: local
(50) Scan parquet
Output [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
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/10000001353/shardId=0_1_10000001353]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(51) ColumnarToRow
Input [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
(52) Exchange
Input [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
Arguments: hashpartitioning(product#1136173, plant#1136174, 37), REPARTITION_BY_NUM, [plan_id=1728205]
(53) ShuffleQueryStage
Output [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
Arguments: 39
(54) Scan parquet
Output [8]: [internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184, systemId#1136177]
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>>>
(55) ColumnarToRow
Input [8]: [internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184, systemId#1136177]
(56) Project
Output [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
Input [8]: [internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184, systemId#1136177]
(57) Exchange
Input [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1728219]
(58) ShuffleQueryStage
Output [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
Arguments: 40
(59) Project
Output [1]: [struct(systemId, systemId#1136177, internalUUID, internalUUID#1136178, plant, plant#1136179, product, product#1136180, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136181, productionAspect, productionAspect#1136182, salesPlant, salesPlant#1136183, listing, listing#1136184) AS productPlant#1136185]
Input [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
(60) BroadcastExchange
Input [1]: [productPlant#1136185]
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=1740828]
(61) BroadcastQueryStage
Output [1]: [productPlant#1136185]
Arguments: 146
(62) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136173, ), isnull(product#1136173), coalesce(plant#1136174, ), isnull(plant#1136174)]
Right keys [4]: [coalesce(productPlant#1136185.product.internalRefUUID, ), isnull(productPlant#1136185.product.internalRefUUID), coalesce(productPlant#1136185.plant.internalRefUUID, ), isnull(productPlant#1136185.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(63) ReusedExchange [Reuses operator id: 27]
Output [2]: [internalUUID#1136187, timezonecode#1136198]
(64) BroadcastQueryStage
Output [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: 98
(65) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136174, ), isnull(plant#1136174)]
Right keys [2]: [coalesce(internalUUID#1136187, ), isnull(internalUUID#1136187)]
Join type: LeftOuter
Join condition: None
(66) Project
Output [5]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, CASE WHEN isnotnull(timezonecode#1136198) THEN timezonecode#1136198 ELSE UTC END AS timezonecode#1136199]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, internalUUID#1136187, timezonecode#1136198]
(67) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
(68) BroadcastQueryStage
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: 112
(69) BroadcastHashJoin
Left keys [1]: [product#1136173]
Right keys [1]: [internalUUID#1136201]
Join type: LeftOuter
Join condition: None
(70) Project
Output [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filter(unitOfMeasureConversions#1136207, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136205.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136205.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136212]
Input [8]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
(71) Project
Output [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filteredUnitOfMeasureConversions#1136212.quantityDenominator AS _extract_quantityDenominator#1136723, filteredUnitOfMeasureConversions#1136212.quantityNumerator AS _extract_quantityNumerator#1136724]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filteredUnitOfMeasureConversions#1136212]
(72) Generate
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1136723, _extract_quantityNumerator#1136724]
Arguments: explode(_extract_quantityNumerator#1136724), [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1136723], true, [quantityNumerator#1136213]
(73) Generate
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1136723, quantityNumerator#1136213]
Arguments: explode(_extract_quantityDenominator#1136723), [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, quantityNumerator#1136213], true, [quantityDenominator#1136214]
(74) Project
Output [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, (cast(quantityNumerator#1136213 as double) / cast(quantityDenominator#1136214 as double)) AS outboundUnit#1136215]
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, quantityNumerator#1136213, quantityDenominator#1136214]
(75) Project
Output [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, CASE WHEN (isnull(outboundUnit#1136215) OR (outboundUnit#1136215 <= 0.0)) THEN 1.0 ELSE outboundUnit#1136215 END AS outboundUnit#1136216]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136215]
(76) Project
Output [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, cast(null as string) AS product#1136353, cast(null as string) AS plant#1136352, cast(null as timestamp) AS minCalculationDateTime#1136493, cast(null as double) AS roundedQuantitySum#1136494]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216]
(77) Project
Output [8]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, CASE WHEN isnotnull(minCalculationDateTime#1136493) THEN minCalculationDateTime#1136493 ELSE orderDateTime#1136175 END AS stockDatetime#1136495, CASE WHEN isnotnull(roundedQuantitySum#1136494) THEN array(roundedQuantitySum#1136494) ELSE [0.0] END AS stockBatchQuantities#1136496]
Input [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, product#1136353, plant#1136352, minCalculationDateTime#1136493, roundedQuantitySum#1136494]
(78) Scan parquet
Output [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001353/0_1_10000001353]
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>>>
(79) ColumnarToRow
Input [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
(80) Filter
Input [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
Condition : (isnotnull(product#1136098) AND isnotnull(plant#1136099))
(81) BroadcastExchange
Input [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1728783]
(82) BroadcastQueryStage
Output [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
Arguments: 85
(83) BroadcastHashJoin
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136098, plant#1136099]
Join type: LeftOuter
Join condition: None
(84) Project
Output [9]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, CASE WHEN isnotnull(product#1136098) THEN struct(demandChannel, demandChannel#1136100, demandStream, demandStream#1136101, considerVariance, considerVariance#1136102, demandTimeBuckets, demandTimeBuckets#1136103, demandPointInTimeStart, demandPointInTimeStart#1136104, demandPointInTimeEnd, demandPointInTimeEnd#1136105, demandPointInTime, demandPointInTime#1136106) END AS rawDemands#1136119]
Input [17]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
(85) ObjectHashAggregate
Input [9]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, rawDemands#1136119]
Keys [9]: [product#1136173, plant#1136174, orderDateTime#1136175, knownfloatingpointnormalized(if (isnull(productPlant#1136185)) null else named_struct(systemId, productPlant#1136185.systemId, internalUUID, productPlant#1136185.internalUUID, plant, productPlant#1136185.plant, product, productPlant#1136185.product, blockedForReplenishmentStartingFrom, productPlant#1136185.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1136185.productionAspect)) null else named_struct(productMovementPlants, productPlant#1136185.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1136185.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1136185.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1136185.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1136185.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1136185.salesPlant, listing, productPlant#1136185.listing)) AS productPlant#1136185, timezonecode#1136199, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1136216)) AS outboundUnit#1136216, stockDatetime#1136495, knownfloatingpointnormalized(transform(stockBatchQuantities#1136496, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1148042)), lambda arg#1148042, false))) AS stockBatchQuantities#1136496, [7226582400000000] AS [7226582400000000]#1148041]
Functions [1]: [partial_collect_list(rawDemands#1136119, 0, 0)]
Aggregate Attributes [1]: [buf#1137535]
Results [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1148041, buf#1137536]
(86) ObjectHashAggregate
Input [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1148041, buf#1137536]
Keys [9]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1148041]
Functions [1]: [collect_list(rawDemands#1136119, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1136119, 0, 0)#1136138]
Results [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1136497, collect_list(rawDemands#1136119, 0, 0)#1136138 AS rawDemands#1136120]
(87) DeserializeToObject
Input [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, stockBatchShelfLifeEndDatetimes#1136497, rawDemands#1136120]
Arguments: createexternalrow(invoke(product#1136173.toString()), invoke(plant#1136174.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1136175)), if (isnull(productPlant#1136185)) null else createexternalrow(invoke(productPlant#1136185.systemId.toString()), invoke(productPlant#1136185.internalUUID.toString()), if (isnull(productPlant#1136185.plant)) null else createexternalrow(invoke(productPlant#1136185.plant.internalRefUUID.toString()), invoke(productPlant#1136185.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1136185.product)) null else createexternalrow(invoke(productPlant#1136185.product.internalRefUUID.toString()), invoke(productPlant#1136185.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1136185.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1136185.productionAspect)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1136185.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#1136185.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1136185.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1136185.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#1136185.salesPlant)) null else createexternalrow(if (isnull(productPlant#1136185.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1136185.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1136185.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#1136185.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#1136199.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1136216)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1136495)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#1136496, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#1136497, 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#1136120, 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#1136159: org.apache.spark.sql.Row
(88) MapElements
Input [1]: [obj#1136159]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@a39b9be, obj#1136164: org.apache.spark.sql.Row
(89) SerializeFromObject
Input [1]: [obj#1136164]
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#1136169, 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#1136170]
(90) Exchange
Input [2]: [product#1136169, plant#1136170]
Arguments: hashpartitioning(coalesce(plant#1136170, ), isnull(plant#1136170), coalesce(product#1136169, ), isnull(product#1136169), 37), ENSURE_REQUIREMENTS, [plan_id=1763014]
(91) ShuffleQueryStage
Output [2]: [product#1136169, plant#1136170]
Arguments: 172
(92) AQEShuffleRead
Input [2]: [product#1136169, plant#1136170]
Arguments: local
(93) BroadcastExchange
Input [2]: [product#1136169, plant#1136170]
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=1763467]
(94) BroadcastQueryStage
Output [2]: [product#1136169, plant#1136170]
Arguments: 174
(95) BroadcastHashJoin
Left keys [4]: [coalesce(plant#1135692, ), isnull(plant#1135692), coalesce(product#1135691, ), isnull(product#1135691)]
Right keys [4]: [coalesce(plant#1136170, ), isnull(plant#1136170), coalesce(product#1136169, ), isnull(product#1136169)]
Join type: LeftOuter
Join condition: None
(96) Project
Output [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Input [6]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095, product#1136169, plant#1136170]
(97) Exchange
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: hashpartitioning(plant#1135692, 37), ENSURE_REQUIREMENTS, [plan_id=1763538]
(98) ShuffleQueryStage
Output [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: 175
(99) Sort
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: [plant#1135692 ASC NULLS FIRST], false, 0
(100) ReusedExchange [Reuses operator id: 654]
Output [1]: [distributionCenters#1136568]
(101) ShuffleQueryStage
Output [1]: [distributionCenters#1136568]
Arguments: 87
(102) Generate
Input [1]: [distributionCenters#1136568]
Arguments: explode(distributionCenters#1136568), false, [distributionCenters#1136584]
(103) Filter
Input [1]: [distributionCenters#1136584]
Condition : (((size(distributionCenters#1136584.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1136584.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1136584.internalRefUUID))
(104) Project
Output [2]: [distributionCenters#1136584.internalRefUUID AS _extract_internalRefUUID#1136687, distributionCenters#1136584.storageLocations.internalRefUUID AS _extract_internalRefUUID#1136872]
Input [1]: [distributionCenters#1136584]
(105) Generate
Input [2]: [_extract_internalRefUUID#1136687, _extract_internalRefUUID#1136872]
Arguments: explode(_extract_internalRefUUID#1136872), [_extract_internalRefUUID#1136687], false, [storageLocations#1136585]
(106) Filter
Input [2]: [_extract_internalRefUUID#1136687, storageLocations#1136585]
Condition : isnotnull(storageLocations#1136585)
(107) Project
Output [2]: [_extract_internalRefUUID#1136687 AS plantUuid#1136587, storageLocations#1136585 AS storageLocUuid#1136589]
Input [2]: [_extract_internalRefUUID#1136687, storageLocations#1136585]
(108) BroadcastExchange
Input [2]: [plantUuid#1136587, storageLocUuid#1136589]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1732733]
(109) BroadcastQueryStage
Output [2]: [plantUuid#1136587, storageLocUuid#1136589]
Arguments: 106
(110) ReusedExchange [Reuses operator id: 680]
Output [1]: [plant#1136591]
(111) ShuffleQueryStage
Output [1]: [plant#1136591]
Arguments: 160
(112) HashAggregate
Input [1]: [plant#1136591]
Keys [1]: [plant#1136591]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136591]
(113) BroadcastHashJoin
Left keys [1]: [plantUuid#1136587]
Right keys [1]: [plant#1136591]
Join type: Inner
Join condition: None
(114) Project
Output [2]: [plantUuid#1136587 AS plant#1136561, storageLocUuid#1136589]
Input [3]: [plantUuid#1136587, storageLocUuid#1136589, plant#1136591]
(115) Sort
Input [2]: [plant#1136561, storageLocUuid#1136589]
Arguments: [plant#1136561 ASC NULLS FIRST], false, 0
(116) SortMergeJoin
Left keys [1]: [plant#1135692]
Right keys [1]: [plant#1136561]
Join type: Inner
Join condition: None
(117) Project
Output [5]: [plant#1135692, product#1135691, timezonecode#1135723, stockDatetime#1136095, storageLocUuid#1136589]
Input [6]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095, plant#1136561, storageLocUuid#1136589]
(118) Scan parquet
Output [6]: [internalUUID#1136523, id#1136524, supplier#1136526, isMarkedForDeletion#1136529, items#1136530, systemId#1136522]
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>>>>>
(119) ColumnarToRow
Input [6]: [internalUUID#1136523, id#1136524, supplier#1136526, isMarkedForDeletion#1136529, items#1136530, systemId#1136522]
(120) Filter
Input [6]: [internalUUID#1136523, id#1136524, supplier#1136526, isMarkedForDeletion#1136529, items#1136530, systemId#1136522]
Condition : (((isnotnull(isMarkedForDeletion#1136529) AND NOT isMarkedForDeletion#1136529) AND (size(items#1136530, true) > 0)) AND isnotnull(items#1136530))
(121) Project
Output [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Input [6]: [internalUUID#1136523, id#1136524, supplier#1136526, isMarkedForDeletion#1136529, items#1136530, systemId#1136522]
(122) Exchange
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1729016]
(123) ShuffleQueryStage
Output [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: 96
(124) Generate
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: explode(items#1136530), [internalUUID#1136523, id#1136524, supplier#1136526], false, [item#1136534]
(125) Filter
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, item#1136534]
Condition : ((((isnotnull(item#1136534.deletionIndicator) AND isnotnull(item#1136534.completeIndicator)) AND isnotnull(item#1136534.returnIndicator)) AND ((NOT item#1136534.deletionIndicator AND NOT item#1136534.completeIndicator) AND NOT item#1136534.returnIndicator)) AND ((isnotnull(item#1136534.product.internalRefUUID) AND isnotnull(item#1136534.plant.internalRefUUID)) AND isnotnull(item#1136534.storageLocation.internalRefUUID)))
(126) Project
Output [14]: [id#1136524, internalUUID#1136523, supplier#1136526.internalRefUUID AS supplierUuid#1136531, item#1136534.plant.internalRefUUID AS plant#1136539, item#1136534.product.internalRefUUID AS product#1136540, item#1136534.plant.id AS externalPlantId#1136541, item#1136534.product.id AS externalProductId#1136542, item#1136534.storageLocation.internalRefUUID AS storageLocUuid#1136543, item#1136534.quantityUnit.code AS quantityUom#1136544, item#1136534.quantityUnit.internalRefUUID AS quantityUomUuid#1136545, item#1136534.quantityNumerator AS quantityNumerator#1136546, item#1136534.quantityDenominator AS quantityDenominator#1136547, item#1136534.scheduleLines AS scheduleLines#1136548, item#1136534.confirmations AS confirmations#1136549]
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, item#1136534]
(127) BroadcastExchange
Input [14]: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549]
Arguments: HashedRelationBroadcastMode(List(input[4, string, true], input[3, string, true], input[7, string, true]),false), [plan_id=1743624]
(128) BroadcastQueryStage
Output [14]: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549]
Arguments: 151
(129) BroadcastHashJoin
Left keys [3]: [product#1135691, plant#1135692, storageLocUuid#1136589]
Right keys [3]: [product#1136540, plant#1136539, storageLocUuid#1136543]
Join type: Inner
Join condition: None
(130) Project
Output [17]: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1136095, timezonecode#1135723, filter(confirmations#1136549, lambdafunction(((NOT lambda x_129#1136640.deletionIndicator AND lambda x_129#1136640.isRelevantForConfirmation) AND isnotnull(lambda x_129#1136640.confirmedDeliveryAt)), lambda x_129#1136640, false)) AS validConfirmations#1136639]
Input [19]: [plant#1135692, product#1135691, timezonecode#1135723, stockDatetime#1136095, storageLocUuid#1136589, id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549]
(131) ResultQueryStage
Output [17]: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1136095, timezonecode#1135723, validConfirmations#1136639]
Arguments: 176
(132) Filter
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Condition : (isnotnull(plant#1135692) AND isnotnull(product#1135691))
(133) Exchange
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: hashpartitioning(product#1135691, plant#1135692, 37), REPARTITION_BY_NUM, [plan_id=1710333]
(134) Project
Output [4]: [plant#1135698.internalRefUUID AS _extract_internalRefUUID#1136837, product#1135699.internalRefUUID AS _extract_internalRefUUID#1136838, productionAspect#1135701.productMovementPlants.unitOfIssue.code AS _extract_code#1136835, productionAspect#1135701.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136836]
Input [4]: [plant#1135698, product#1135699, productionAspect#1135701, systemId#1135696]
(135) Exchange
Input [4]: [_extract_internalRefUUID#1136837, _extract_internalRefUUID#1136838, _extract_code#1136835, _extract_internalRefUUID#1136836]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709904]
(136) Project
Output [4]: [_extract_code#1136835, _extract_internalRefUUID#1136836, _extract_internalRefUUID#1136838, _extract_internalRefUUID#1136837]
Input [4]: [_extract_internalRefUUID#1136837, _extract_internalRefUUID#1136838, _extract_code#1136835, _extract_internalRefUUID#1136836]
(137) BroadcastExchange
Input [4]: [_extract_code#1136835, _extract_internalRefUUID#1136836, _extract_internalRefUUID#1136838, _extract_internalRefUUID#1136837]
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=1710532]
(138) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135691, ), isnull(product#1135691), coalesce(plant#1135692, ), isnull(plant#1135692)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136838, ), isnull(_extract_internalRefUUID#1136838), coalesce(_extract_internalRefUUID#1136837, ), isnull(_extract_internalRefUUID#1136837)]
Join type: LeftOuter
Join condition: None
(139) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836]
Input [7]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836, _extract_internalRefUUID#1136838, _extract_internalRefUUID#1136837]
(140) Project
Output [2]: [internalUUID#1135709, address#1135715.timeZone.code AS timezonecode#1135720]
Input [3]: [internalUUID#1135709, address#1135715, systemId#1135708]
(141) Exchange
Input [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709910]
(142) BroadcastExchange
Input [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710536]
(143) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1135692, ), isnull(plant#1135692)]
Right keys [2]: [coalesce(internalUUID#1135709, ), isnull(internalUUID#1135709)]
Join type: LeftOuter
Join condition: None
(144) Project
Output [6]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836, CASE WHEN isnotnull(timezonecode#1135720) THEN timezonecode#1135720 ELSE UTC END AS timezonecode#1135723]
Input [7]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836, internalUUID#1135709, timezonecode#1135720]
(145) Filter
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
Condition : isnotnull(internalUUID#1135725)
(146) Project
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(147) Exchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709916]
(148) BroadcastExchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710540]
(149) BroadcastHashJoin
Left keys [1]: [product#1135691]
Right keys [1]: [internalUUID#1135725]
Join type: LeftOuter
Join condition: None
(150) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filter(unitOfMeasureConversions#1135731, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136835) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136836)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1135729.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1135729.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1135737]
Input [9]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1136835, _extract_internalRefUUID#1136836, timezonecode#1135723, internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
(151) Generate
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filteredUnitOfMeasureConversions#1135737]
Arguments: explode(filteredUnitOfMeasureConversions#1135737.quantityNumerator), [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filteredUnitOfMeasureConversions#1135737], true, [quantityNumerator#1135745]
(152) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filteredUnitOfMeasureConversions#1135737.quantityDenominator AS _extract_quantityDenominator#1136641]
Input [6]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, filteredUnitOfMeasureConversions#1135737, quantityNumerator#1135745]
(153) Generate
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, _extract_quantityDenominator#1136641]
Arguments: explode(_extract_quantityDenominator#1136641), [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723], true, [quantityDenominator#1135748]
(154) Project
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723]
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, quantityDenominator#1135748]
(155) Sort
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723]
Arguments: [product#1135691 ASC NULLS FIRST, plant#1135692 ASC NULLS FIRST], false, 0
(156) Scan parquet
Output [6]: [internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792, systemId#1135787]
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>>>>>
(157) Filter
Input [6]: [internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792, systemId#1135787]
Condition : (isnotnull(plant#1135790.internalRefUUID) AND isnotnull(product#1135789.internalRefUUID))
(158) Project
Output [6]: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792]
Input [6]: [internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792, systemId#1135787]
(159) Exchange
Input [6]: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709926]
(160) BroadcastExchange
Input [6]: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792]
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=1710571]
(161) Scan parquet
Output [2]: [marketUnit#1135751, distributionCenters#1135757]
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,Alert_Test1), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(162) Filter
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
Condition : (((marketUnit#1135751 <=> Alert_Test1) AND (size(distributionCenters#1135757, true) > 0)) AND isnotnull(distributionCenters#1135757))
(163) Project
Output [1]: [distributionCenters#1135757]
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
(164) Exchange
Input [1]: [distributionCenters#1135757]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709930]
(165) Generate
Input [1]: [distributionCenters#1135757]
Arguments: explode(distributionCenters#1135757), false, [distributionCenters#1135775]
(166) Filter
Input [1]: [distributionCenters#1135775]
Condition : (((size(distributionCenters#1135775.storageLocations, true) > 0) AND isnotnull(distributionCenters#1135775.storageLocations)) AND isnotnull(distributionCenters#1135775.internalRefUUID))
(167) Project
Output [2]: [distributionCenters#1135775.internalRefUUID AS _extract_internalRefUUID#1136645, distributionCenters#1135775.storageLocations AS _extract_storageLocations#1136646]
Input [1]: [distributionCenters#1135775]
(168) Generate
Input [2]: [_extract_internalRefUUID#1136645, _extract_storageLocations#1136646]
Arguments: explode(_extract_storageLocations#1136646), [_extract_internalRefUUID#1136645], false, [storageLocations#1135782]
(169) Project
Output [3]: [_extract_internalRefUUID#1136645 AS plantUuid#1135777, storageLocations#1135782.id AS storageLocId#1135783, storageLocations#1135782.internalRefUUID AS storageLocUuid#1135784]
Input [2]: [_extract_internalRefUUID#1136645, storageLocations#1135782]
(170) BroadcastExchange
Input [3]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710567]
(171) Scan parquet
Output [2]: [product#1136047, plant#1136048]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(172) Filter
Input [2]: [product#1136047, plant#1136048]
Condition : isnotnull(plant#1136048)
(173) Exchange
Input [2]: [product#1136047, plant#1136048]
Arguments: hashpartitioning(product#1136047, plant#1136048, 37), REPARTITION_BY_NUM, [plan_id=1710344]
(174) Scan parquet
Output [4]: [plant#1136053, product#1136054, productionAspect#1136056, systemId#1136051]
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>>>>
(175) Project
Output [4]: [plant#1136053.internalRefUUID AS _extract_internalRefUUID#1136841, product#1136054.internalRefUUID AS _extract_internalRefUUID#1136842, productionAspect#1136056.productMovementPlants.unitOfIssue.code AS _extract_code#1136839, productionAspect#1136056.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136840]
Input [4]: [plant#1136053, product#1136054, productionAspect#1136056, systemId#1136051]
(176) Exchange
Input [4]: [_extract_internalRefUUID#1136841, _extract_internalRefUUID#1136842, _extract_code#1136839, _extract_internalRefUUID#1136840]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709942]
(177) Project
Output [4]: [_extract_code#1136839, _extract_internalRefUUID#1136840, _extract_internalRefUUID#1136842, _extract_internalRefUUID#1136841]
Input [4]: [_extract_internalRefUUID#1136841, _extract_internalRefUUID#1136842, _extract_code#1136839, _extract_internalRefUUID#1136840]
(178) BroadcastExchange
Input [4]: [_extract_code#1136839, _extract_internalRefUUID#1136840, _extract_internalRefUUID#1136842, _extract_internalRefUUID#1136841]
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=1710547]
(179) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136047, ), isnull(product#1136047), coalesce(plant#1136048, ), isnull(plant#1136048)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136842, ), isnull(_extract_internalRefUUID#1136842), coalesce(_extract_internalRefUUID#1136841, ), isnull(_extract_internalRefUUID#1136841)]
Join type: LeftOuter
Join condition: None
(180) Project
Output [4]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840]
Input [6]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840, _extract_internalRefUUID#1136842, _extract_internalRefUUID#1136841]
(181) Scan parquet
Output [2]: [internalUUID#1136061, systemId#1136060]
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>
(182) Project
Output [1]: [internalUUID#1136061]
Input [2]: [internalUUID#1136061, systemId#1136060]
(183) Exchange
Input [1]: [internalUUID#1136061]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709948]
(184) BroadcastExchange
Input [1]: [internalUUID#1136061]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710551]
(185) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136048, ), isnull(plant#1136048)]
Right keys [2]: [coalesce(internalUUID#1136061, ), isnull(internalUUID#1136061)]
Join type: LeftOuter
Join condition: None
(186) Project
Output [4]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840]
Input [5]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840, internalUUID#1136061]
(187) Scan parquet
Output [4]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081, systemId#1136074]
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>>>
(188) Filter
Input [4]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081, systemId#1136074]
Condition : isnotnull(internalUUID#1136075)
(189) Project
Output [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Input [4]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081, systemId#1136074]
(190) Exchange
Input [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709954]
(191) BroadcastExchange
Input [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710555]
(192) BroadcastHashJoin
Left keys [1]: [product#1136047]
Right keys [1]: [internalUUID#1136075]
Join type: LeftOuter
Join condition: None
(193) Project
Output [2]: [plant#1136048, filter(unitOfMeasureConversions#1136081, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136839) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136840)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136079.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136079.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136086]
Input [7]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840, internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
(194) Generate
Input [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086]
Arguments: explode(filteredUnitOfMeasureConversions#1136086.quantityNumerator), [plant#1136048, filteredUnitOfMeasureConversions#1136086], true, [quantityNumerator#1136087]
(195) Project
Output [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086.quantityDenominator AS _extract_quantityDenominator#1136647]
Input [3]: [plant#1136048, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087]
(196) Generate
Input [2]: [plant#1136048, _extract_quantityDenominator#1136647]
Arguments: explode(_extract_quantityDenominator#1136647), [plant#1136048], true, [quantityDenominator#1136088]
(197) Project
Output [1]: [plant#1136048]
Input [2]: [plant#1136048, quantityDenominator#1136088]
(198) HashAggregate
Input [1]: [plant#1136048]
Keys [1]: [plant#1136048]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136048]
(199) Exchange
Input [1]: [plant#1136048]
Arguments: hashpartitioning(plant#1136048, 37), ENSURE_REQUIREMENTS, [plan_id=1710564]
(200) HashAggregate
Input [1]: [plant#1136048]
Keys [1]: [plant#1136048]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136048]
(201) BroadcastHashJoin
Left keys [1]: [plantUuid#1135777]
Right keys [1]: [plant#1136048]
Join type: Inner
Join condition: None
(202) Project
Output [3]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784]
Input [4]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784, plant#1136048]
(203) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1135790.internalRefUUID, ), isnull(plant#1135790.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1135777, ), isnull(plantUuid#1135777)]
Join type: Inner
Join condition: None
(204) Generate
Input [9]: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792, plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784]
Arguments: explode(filter(stockQuantities#1135792, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1135784) AND (lambda x#1135796.storageLocation.Id = storageLocId#1135783)), lambda x#1135796, false))), [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, plantUuid#1135777], false, [stockQuantity#1135797]
(205) ObjectHashAggregate
Input [7]: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, plantUuid#1135777, stockQuantity#1135797]
Keys [5]: [plantUuid#1135777, internalUUID#1135788, plant#1135790, product#1135789, systemId#1135787]
Functions [2]: [partial_first(calculationDateTime#1135791, false), partial_collect_list(stockQuantity#1135797, 0, 0)]
Aggregate Attributes [3]: [first#1137519, valueSet#1137520, buf#1137521]
Results [8]: [plantUuid#1135777, internalUUID#1135788, plant#1135790, product#1135789, systemId#1135787, first#1137522, valueSet#1137523, buf#1137524]
(206) ObjectHashAggregate
Input [8]: [plantUuid#1135777, internalUUID#1135788, plant#1135790, product#1135789, systemId#1135787, first#1137522, valueSet#1137523, buf#1137524]
Keys [5]: [plantUuid#1135777, internalUUID#1135788, plant#1135790, product#1135789, systemId#1135787]
Functions [2]: [first(calculationDateTime#1135791, false), collect_list(stockQuantity#1135797, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1135791)()#1135811, collect_list(stockQuantity#1135797, 0, 0)#1135812]
Results [4]: [product#1135789, plant#1135790, first(calculationDateTime#1135791)()#1135811 AS calculationDateTime#1135798, collect_list(stockQuantity#1135797, 0, 0)#1135812 AS stockQuantities#1135799]
(207) Filter
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantities#1135799]
Condition : ((size(stockQuantities#1135799, true) > 0) AND isnotnull(calculationDateTime#1135798))
(208) Generate
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantities#1135799]
Arguments: explode(stockQuantities#1135799), [product#1135789, plant#1135790, calculationDateTime#1135798], false, [stockQuantity#1135814]
(209) Filter
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantity#1135814]
Condition : (((isnotnull(stockQuantity#1135814.specialStockIndicator.code) AND isnotnull(stockQuantity#1135814.stockType.code)) AND (stockQuantity#1135814.specialStockIndicator.code = )) AND (stockQuantity#1135814.stockType.code = 01))
(210) Project
Output [4]: [plant#1135790.internalRefUUID AS plantUuid#1135816, product#1135789.internalRefUUID AS productUuid#1135818, calculationDateTime#1135798, stockQuantity#1135814.storagelocation.id AS storageLocId#1135819]
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantity#1135814]
(211) Exchange
Input [4]: [plantUuid#1135816, productUuid#1135818, calculationDateTime#1135798, storageLocId#1135819]
Arguments: hashpartitioning(productUuid#1135818, plantUuid#1135816, 37), ENSURE_REQUIREMENTS, [plan_id=1710597]
(212) Sort
Input [4]: [plantUuid#1135816, productUuid#1135818, calculationDateTime#1135798, storageLocId#1135819]
Arguments: [productUuid#1135818 ASC NULLS FIRST, plantUuid#1135816 ASC NULLS FIRST], false, 0
(213) Scan parquet
Output [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(214) Filter
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Condition : ((isnotnull(orderDateTime#1135835) AND isnotnull(plant#1135834)) AND isnotnull(product#1135833))
(215) Exchange
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Arguments: hashpartitioning(product#1135833, plant#1135834, 37), REPARTITION_BY_NUM, [plan_id=1710367]
(216) Scan parquet
Output [4]: [plant#1135839, product#1135840, productionAspect#1135842, systemId#1135837]
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>>>>
(217) Project
Output [4]: [plant#1135839.internalRefUUID AS _extract_internalRefUUID#1136845, product#1135840.internalRefUUID AS _extract_internalRefUUID#1136846, productionAspect#1135842.productMovementPlants.unitOfIssue.code AS _extract_code#1136843, productionAspect#1135842.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136844]
Input [4]: [plant#1135839, product#1135840, productionAspect#1135842, systemId#1135837]
(218) Exchange
Input [4]: [_extract_internalRefUUID#1136845, _extract_internalRefUUID#1136846, _extract_code#1136843, _extract_internalRefUUID#1136844]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709979]
(219) Project
Output [4]: [_extract_code#1136843, _extract_internalRefUUID#1136844, _extract_internalRefUUID#1136846, _extract_internalRefUUID#1136845]
Input [4]: [_extract_internalRefUUID#1136845, _extract_internalRefUUID#1136846, _extract_code#1136843, _extract_internalRefUUID#1136844]
(220) BroadcastExchange
Input [4]: [_extract_code#1136843, _extract_internalRefUUID#1136844, _extract_internalRefUUID#1136846, _extract_internalRefUUID#1136845]
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=1710580]
(221) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135833, ), isnull(product#1135833), coalesce(plant#1135834, ), isnull(plant#1135834)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136846, ), isnull(_extract_internalRefUUID#1136846), coalesce(_extract_internalRefUUID#1136845, ), isnull(_extract_internalRefUUID#1136845)]
Join type: LeftOuter
Join condition: None
(222) Project
Output [5]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1136843, _extract_internalRefUUID#1136844]
Input [7]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1136843, _extract_internalRefUUID#1136844, _extract_internalRefUUID#1136846, _extract_internalRefUUID#1136845]
(223) Scan parquet
Output [2]: [internalUUID#1135847, systemId#1135846]
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>
(224) Project
Output [1]: [internalUUID#1135847]
Input [2]: [internalUUID#1135847, systemId#1135846]
(225) Exchange
Input [1]: [internalUUID#1135847]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709985]
(226) BroadcastExchange
Input [1]: [internalUUID#1135847]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710584]
(227) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1135834, ), isnull(plant#1135834)]
Right keys [2]: [coalesce(internalUUID#1135847, ), isnull(internalUUID#1135847)]
Join type: LeftOuter
Join condition: None
(228) Project
Output [5]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1136843, _extract_internalRefUUID#1136844]
Input [6]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1136843, _extract_internalRefUUID#1136844, internalUUID#1135847]
(229) Scan parquet
Output [4]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867, systemId#1135860]
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>>>
(230) Filter
Input [4]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867, systemId#1135860]
Condition : isnotnull(internalUUID#1135861)
(231) Project
Output [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Input [4]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867, systemId#1135860]
(232) Exchange
Input [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709991]
(233) BroadcastExchange
Input [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710588]
(234) BroadcastHashJoin
Left keys [1]: [product#1135833]
Right keys [1]: [internalUUID#1135861]
Join type: LeftOuter
Join condition: None
(235) Project
Output [4]: [product#1135833, plant#1135834, orderDateTime#1135835, filter(unitOfMeasureConversions#1135867, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136843) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136844)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1135865.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1135865.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1135872]
Input [8]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1136843, _extract_internalRefUUID#1136844, internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
(236) Generate
Input [4]: [product#1135833, plant#1135834, orderDateTime#1135835, filteredUnitOfMeasureConversions#1135872]
Arguments: explode(filteredUnitOfMeasureConversions#1135872.quantityNumerator), [product#1135833, plant#1135834, orderDateTime#1135835, filteredUnitOfMeasureConversions#1135872], true, [quantityNumerator#1135873]
(237) Project
Output [4]: [product#1135833, plant#1135834, orderDateTime#1135835, filteredUnitOfMeasureConversions#1135872.quantityDenominator AS _extract_quantityDenominator#1136651]
Input [5]: [product#1135833, plant#1135834, orderDateTime#1135835, filteredUnitOfMeasureConversions#1135872, quantityNumerator#1135873]
(238) Generate
Input [4]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_quantityDenominator#1136651]
Arguments: explode(_extract_quantityDenominator#1136651), [product#1135833, plant#1135834, orderDateTime#1135835], true, [quantityDenominator#1135874]
(239) Project
Output [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Input [4]: [product#1135833, plant#1135834, orderDateTime#1135835, quantityDenominator#1135874]
(240) Sort
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Arguments: [product#1135833 ASC NULLS FIRST, plant#1135834 ASC NULLS FIRST], false, 0
(241) SortMergeJoin
Left keys [2]: [productUuid#1135818, plantUuid#1135816]
Right keys [2]: [product#1135833, plant#1135834]
Join type: Inner
Join condition: (calculationDateTime#1135798 <= orderDateTime#1135835)
(242) Project
Output [4]: [plantUuid#1135816 AS plant#1135881, productUuid#1135818 AS product#1135882, storageLocId#1135819, calculationDateTime#1135798]
Input [7]: [plantUuid#1135816, productUuid#1135818, calculationDateTime#1135798, storageLocId#1135819, product#1135833, plant#1135834, orderDateTime#1135835]
(243) Exchange
Input [4]: [plant#1135881, product#1135882, storageLocId#1135819, calculationDateTime#1135798]
Arguments: hashpartitioning(coalesce(plant#1135881, ), isnull(plant#1135881), coalesce(product#1135882, ), isnull(product#1135882), coalesce(storageLocId#1135819, ), isnull(storageLocId#1135819), coalesce(calculationDateTime#1135798, 1970-01-01 00:00:00), isnull(calculationDateTime#1135798), 37), ENSURE_REQUIREMENTS, [plan_id=1710661]
(244) Sort
Input [4]: [plant#1135881, product#1135882, storageLocId#1135819, calculationDateTime#1135798]
Arguments: [coalesce(plant#1135881, ) ASC NULLS FIRST, isnull(plant#1135881) ASC NULLS FIRST, coalesce(product#1135882, ) ASC NULLS FIRST, isnull(product#1135882) ASC NULLS FIRST, coalesce(storageLocId#1135819, ) ASC NULLS FIRST, isnull(storageLocId#1135819) ASC NULLS FIRST, coalesce(calculationDateTime#1135798, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1135798) ASC NULLS FIRST], false, 0
(245) Scan parquet
Output [6]: [internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895, systemId#1135890]
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>>>>>
(246) Filter
Input [6]: [internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895, systemId#1135890]
Condition : (isnotnull(plant#1135893.internalRefUUID) AND isnotnull(product#1135892.internalRefUUID))
(247) Project
Output [6]: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895]
Input [6]: [internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895, systemId#1135890]
(248) Exchange
Input [6]: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710003]
(249) BroadcastExchange
Input [6]: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895]
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=1710626]
(250) Scan parquet
Output [2]: [marketUnit#1135896, distributionCenters#1135902]
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,Alert_Test1), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(251) Filter
Input [2]: [marketUnit#1135896, distributionCenters#1135902]
Condition : (((marketUnit#1135896 <=> Alert_Test1) AND (size(distributionCenters#1135902, true) > 0)) AND isnotnull(distributionCenters#1135902))
(252) Project
Output [1]: [distributionCenters#1135902]
Input [2]: [marketUnit#1135896, distributionCenters#1135902]
(253) Exchange
Input [1]: [distributionCenters#1135902]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710007]
(254) Generate
Input [1]: [distributionCenters#1135902]
Arguments: explode(distributionCenters#1135902), false, [distributionCenters#1135918]
(255) Filter
Input [1]: [distributionCenters#1135918]
Condition : (((size(distributionCenters#1135918.storageLocations, true) > 0) AND isnotnull(distributionCenters#1135918.storageLocations)) AND isnotnull(distributionCenters#1135918.internalRefUUID))
(256) Project
Output [2]: [distributionCenters#1135918.internalRefUUID AS _extract_internalRefUUID#1136655, distributionCenters#1135918.storageLocations AS _extract_storageLocations#1136656]
Input [1]: [distributionCenters#1135918]
(257) Generate
Input [2]: [_extract_internalRefUUID#1136655, _extract_storageLocations#1136656]
Arguments: explode(_extract_storageLocations#1136656), [_extract_internalRefUUID#1136655], false, [storageLocations#1135919]
(258) Project
Output [3]: [_extract_internalRefUUID#1136655 AS plantUuid#1135921, storageLocations#1135919.id AS storageLocId#1135922, storageLocations#1135919.internalRefUUID AS storageLocUuid#1135923]
Input [2]: [_extract_internalRefUUID#1136655, storageLocations#1135919]
(259) BroadcastExchange
Input [3]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710622]
(260) Scan parquet
Output [2]: [product#1135924, plant#1135925]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(261) Filter
Input [2]: [product#1135924, plant#1135925]
Condition : isnotnull(plant#1135925)
(262) Exchange
Input [2]: [product#1135924, plant#1135925]
Arguments: hashpartitioning(product#1135924, plant#1135925, 37), REPARTITION_BY_NUM, [plan_id=1710380]
(263) Scan parquet
Output [4]: [plant#1135930, product#1135931, productionAspect#1135933, systemId#1135928]
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>>>>
(264) Project
Output [4]: [plant#1135930.internalRefUUID AS _extract_internalRefUUID#1136847, product#1135931.internalRefUUID AS _extract_internalRefUUID#1136848, productionAspect#1135933.productMovementPlants.unitOfIssue.code AS _extract_code#1136849, productionAspect#1135933.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136850]
Input [4]: [plant#1135930, product#1135931, productionAspect#1135933, systemId#1135928]
(265) Exchange
Input [4]: [_extract_internalRefUUID#1136847, _extract_internalRefUUID#1136848, _extract_code#1136849, _extract_internalRefUUID#1136850]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710019]
(266) Project
Output [4]: [_extract_code#1136849, _extract_internalRefUUID#1136850, _extract_internalRefUUID#1136848, _extract_internalRefUUID#1136847]
Input [4]: [_extract_internalRefUUID#1136847, _extract_internalRefUUID#1136848, _extract_code#1136849, _extract_internalRefUUID#1136850]
(267) BroadcastExchange
Input [4]: [_extract_code#1136849, _extract_internalRefUUID#1136850, _extract_internalRefUUID#1136848, _extract_internalRefUUID#1136847]
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=1710602]
(268) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135924, ), isnull(product#1135924), coalesce(plant#1135925, ), isnull(plant#1135925)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136848, ), isnull(_extract_internalRefUUID#1136848), coalesce(_extract_internalRefUUID#1136847, ), isnull(_extract_internalRefUUID#1136847)]
Join type: LeftOuter
Join condition: None
(269) Project
Output [4]: [product#1135924, plant#1135925, _extract_code#1136849, _extract_internalRefUUID#1136850]
Input [6]: [product#1135924, plant#1135925, _extract_code#1136849, _extract_internalRefUUID#1136850, _extract_internalRefUUID#1136848, _extract_internalRefUUID#1136847]
(270) Scan parquet
Output [2]: [internalUUID#1135938, systemId#1135937]
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>
(271) Project
Output [1]: [internalUUID#1135938]
Input [2]: [internalUUID#1135938, systemId#1135937]
(272) Exchange
Input [1]: [internalUUID#1135938]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710025]
(273) BroadcastExchange
Input [1]: [internalUUID#1135938]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710606]
(274) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1135925, ), isnull(plant#1135925)]
Right keys [2]: [coalesce(internalUUID#1135938, ), isnull(internalUUID#1135938)]
Join type: LeftOuter
Join condition: None
(275) Project
Output [4]: [product#1135924, plant#1135925, _extract_code#1136849, _extract_internalRefUUID#1136850]
Input [5]: [product#1135924, plant#1135925, _extract_code#1136849, _extract_internalRefUUID#1136850, internalUUID#1135938]
(276) Scan parquet
Output [4]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958, systemId#1135951]
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>>>
(277) Filter
Input [4]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958, systemId#1135951]
Condition : isnotnull(internalUUID#1135952)
(278) Project
Output [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Input [4]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958, systemId#1135951]
(279) Exchange
Input [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710031]
(280) BroadcastExchange
Input [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710610]
(281) BroadcastHashJoin
Left keys [1]: [product#1135924]
Right keys [1]: [internalUUID#1135952]
Join type: LeftOuter
Join condition: None
(282) Project
Output [2]: [plant#1135925, filter(unitOfMeasureConversions#1135958, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136849) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136850)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1135956.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1135956.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1135963]
Input [7]: [product#1135924, plant#1135925, _extract_code#1136849, _extract_internalRefUUID#1136850, internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
(283) Generate
Input [2]: [plant#1135925, filteredUnitOfMeasureConversions#1135963]
Arguments: explode(filteredUnitOfMeasureConversions#1135963.quantityNumerator), [plant#1135925, filteredUnitOfMeasureConversions#1135963], true, [quantityNumerator#1135964]
(284) Project
Output [2]: [plant#1135925, filteredUnitOfMeasureConversions#1135963.quantityDenominator AS _extract_quantityDenominator#1136657]
Input [3]: [plant#1135925, filteredUnitOfMeasureConversions#1135963, quantityNumerator#1135964]
(285) Generate
Input [2]: [plant#1135925, _extract_quantityDenominator#1136657]
Arguments: explode(_extract_quantityDenominator#1136657), [plant#1135925], true, [quantityDenominator#1135965]
(286) Project
Output [1]: [plant#1135925]
Input [2]: [plant#1135925, quantityDenominator#1135965]
(287) HashAggregate
Input [1]: [plant#1135925]
Keys [1]: [plant#1135925]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1135925]
(288) Exchange
Input [1]: [plant#1135925]
Arguments: hashpartitioning(plant#1135925, 37), ENSURE_REQUIREMENTS, [plan_id=1710619]
(289) HashAggregate
Input [1]: [plant#1135925]
Keys [1]: [plant#1135925]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1135925]
(290) BroadcastHashJoin
Left keys [1]: [plantUuid#1135921]
Right keys [1]: [plant#1135925]
Join type: Inner
Join condition: None
(291) Project
Output [3]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923]
Input [4]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923, plant#1135925]
(292) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1135893.internalRefUUID, ), isnull(plant#1135893.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1135921, ), isnull(plantUuid#1135921)]
Join type: Inner
Join condition: None
(293) Generate
Input [9]: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895, plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923]
Arguments: explode(filter(stockQuantities#1135895, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1135923) AND (lambda x#1135796.storageLocation.Id = storageLocId#1135922)), lambda x#1135796, false))), [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, plantUuid#1135921], false, [stockQuantity#1135968]
(294) ObjectHashAggregate
Input [7]: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, plantUuid#1135921, stockQuantity#1135968]
Keys [5]: [plantUuid#1135921, internalUUID#1135891, plant#1135893, product#1135892, systemId#1135890]
Functions [2]: [partial_first(calculationDateTime#1135894, false), partial_collect_list(stockQuantity#1135968, 0, 0)]
Aggregate Attributes [3]: [first#1137527, valueSet#1137528, buf#1137529]
Results [8]: [plantUuid#1135921, internalUUID#1135891, plant#1135893, product#1135892, systemId#1135890, first#1137530, valueSet#1137531, buf#1137532]
(295) ObjectHashAggregate
Input [8]: [plantUuid#1135921, internalUUID#1135891, plant#1135893, product#1135892, systemId#1135890, first#1137530, valueSet#1137531, buf#1137532]
Keys [5]: [plantUuid#1135921, internalUUID#1135891, plant#1135893, product#1135892, systemId#1135890]
Functions [2]: [first(calculationDateTime#1135894, false), collect_list(stockQuantity#1135968, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1135894)()#1135811, collect_list(stockQuantity#1135968, 0, 0)#1135812]
Results [4]: [product#1135892, plant#1135893, first(calculationDateTime#1135894)()#1135811 AS calculationDateTime#1135969, collect_list(stockQuantity#1135968, 0, 0)#1135812 AS stockQuantities#1135970]
(296) Filter
Input [4]: [product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantities#1135970]
Condition : ((size(stockQuantities#1135970, true) > 0) AND isnotnull(calculationDateTime#1135969))
(297) Generate
Input [4]: [product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantities#1135970]
Arguments: explode(stockQuantities#1135970), [product#1135892, plant#1135893, calculationDateTime#1135969], false, [stockQuantity#1135971]
(298) Filter
Input [4]: [product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantity#1135971]
Condition : (((isnotnull(stockQuantity#1135971.specialStockIndicator.code) AND isnotnull(stockQuantity#1135971.stockType.code)) AND (stockQuantity#1135971.specialStockIndicator.code = )) AND (stockQuantity#1135971.stockType.code = 01))
(299) Project
Output [4]: [plant#1135893.internalRefUUID AS plantUuid#1135973, product#1135892.internalRefUUID AS productUuid#1135975, calculationDateTime#1135969, stockQuantity#1135971.storagelocation.id AS storageLocId#1135976]
Input [4]: [product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantity#1135971]
(300) Exchange
Input [4]: [plantUuid#1135973, productUuid#1135975, calculationDateTime#1135969, storageLocId#1135976]
Arguments: hashpartitioning(productUuid#1135975, plantUuid#1135973, 37), ENSURE_REQUIREMENTS, [plan_id=1710652]
(301) Sort
Input [4]: [plantUuid#1135973, productUuid#1135975, calculationDateTime#1135969, storageLocId#1135976]
Arguments: [productUuid#1135975 ASC NULLS FIRST, plantUuid#1135973 ASC NULLS FIRST], false, 0
(302) Scan parquet
Output [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(303) Filter
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Condition : ((isnotnull(orderDateTime#1135983) AND isnotnull(plant#1135982)) AND isnotnull(product#1135981))
(304) Exchange
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Arguments: hashpartitioning(product#1135981, plant#1135982, 37), REPARTITION_BY_NUM, [plan_id=1710403]
(305) Scan parquet
Output [4]: [plant#1135987, product#1135988, productionAspect#1135990, systemId#1135985]
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>>>>
(306) Project
Output [4]: [plant#1135987.internalRefUUID AS _extract_internalRefUUID#1136851, product#1135988.internalRefUUID AS _extract_internalRefUUID#1136854, productionAspect#1135990.productMovementPlants.unitOfIssue.code AS _extract_code#1136852, productionAspect#1135990.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136853]
Input [4]: [plant#1135987, product#1135988, productionAspect#1135990, systemId#1135985]
(307) Exchange
Input [4]: [_extract_internalRefUUID#1136851, _extract_internalRefUUID#1136854, _extract_code#1136852, _extract_internalRefUUID#1136853]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710056]
(308) Project
Output [4]: [_extract_code#1136852, _extract_internalRefUUID#1136853, _extract_internalRefUUID#1136854, _extract_internalRefUUID#1136851]
Input [4]: [_extract_internalRefUUID#1136851, _extract_internalRefUUID#1136854, _extract_code#1136852, _extract_internalRefUUID#1136853]
(309) BroadcastExchange
Input [4]: [_extract_code#1136852, _extract_internalRefUUID#1136853, _extract_internalRefUUID#1136854, _extract_internalRefUUID#1136851]
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=1710635]
(310) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135981, ), isnull(product#1135981), coalesce(plant#1135982, ), isnull(plant#1135982)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136854, ), isnull(_extract_internalRefUUID#1136854), coalesce(_extract_internalRefUUID#1136851, ), isnull(_extract_internalRefUUID#1136851)]
Join type: LeftOuter
Join condition: None
(311) Project
Output [5]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1136852, _extract_internalRefUUID#1136853]
Input [7]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1136852, _extract_internalRefUUID#1136853, _extract_internalRefUUID#1136854, _extract_internalRefUUID#1136851]
(312) Scan parquet
Output [2]: [internalUUID#1135995, systemId#1135994]
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>
(313) Project
Output [1]: [internalUUID#1135995]
Input [2]: [internalUUID#1135995, systemId#1135994]
(314) Exchange
Input [1]: [internalUUID#1135995]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710062]
(315) BroadcastExchange
Input [1]: [internalUUID#1135995]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710639]
(316) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1135982, ), isnull(plant#1135982)]
Right keys [2]: [coalesce(internalUUID#1135995, ), isnull(internalUUID#1135995)]
Join type: LeftOuter
Join condition: None
(317) Project
Output [5]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1136852, _extract_internalRefUUID#1136853]
Input [6]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1136852, _extract_internalRefUUID#1136853, internalUUID#1135995]
(318) Scan parquet
Output [4]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015, systemId#1136008]
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>>>
(319) Filter
Input [4]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015, systemId#1136008]
Condition : isnotnull(internalUUID#1136009)
(320) Project
Output [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Input [4]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015, systemId#1136008]
(321) Exchange
Input [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710068]
(322) BroadcastExchange
Input [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710643]
(323) BroadcastHashJoin
Left keys [1]: [product#1135981]
Right keys [1]: [internalUUID#1136009]
Join type: LeftOuter
Join condition: None
(324) Project
Output [4]: [product#1135981, plant#1135982, orderDateTime#1135983, filter(unitOfMeasureConversions#1136015, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136852) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136853)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136013.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136013.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136020]
Input [8]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1136852, _extract_internalRefUUID#1136853, internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
(325) Generate
Input [4]: [product#1135981, plant#1135982, orderDateTime#1135983, filteredUnitOfMeasureConversions#1136020]
Arguments: explode(filteredUnitOfMeasureConversions#1136020.quantityNumerator), [product#1135981, plant#1135982, orderDateTime#1135983, filteredUnitOfMeasureConversions#1136020], true, [quantityNumerator#1136021]
(326) Project
Output [4]: [product#1135981, plant#1135982, orderDateTime#1135983, filteredUnitOfMeasureConversions#1136020.quantityDenominator AS _extract_quantityDenominator#1136661]
Input [5]: [product#1135981, plant#1135982, orderDateTime#1135983, filteredUnitOfMeasureConversions#1136020, quantityNumerator#1136021]
(327) Generate
Input [4]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_quantityDenominator#1136661]
Arguments: explode(_extract_quantityDenominator#1136661), [product#1135981, plant#1135982, orderDateTime#1135983], true, [quantityDenominator#1136022]
(328) Project
Output [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Input [4]: [product#1135981, plant#1135982, orderDateTime#1135983, quantityDenominator#1136022]
(329) Sort
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Arguments: [product#1135981 ASC NULLS FIRST, plant#1135982 ASC NULLS FIRST], false, 0
(330) SortMergeJoin
Left keys [2]: [productUuid#1135975, plantUuid#1135973]
Right keys [2]: [product#1135981, plant#1135982]
Join type: Inner
Join condition: (calculationDateTime#1135969 <= orderDateTime#1135983)
(331) Project
Output [4]: [plantUuid#1135973 AS plant#1136025, productUuid#1135975 AS product#1136026, storageLocId#1135976, calculationDateTime#1135969]
Input [7]: [plantUuid#1135973, productUuid#1135975, calculationDateTime#1135969, storageLocId#1135976, product#1135981, plant#1135982, orderDateTime#1135983]
(332) HashAggregate
Input [4]: [plant#1136025, product#1136026, storageLocId#1135976, calculationDateTime#1135969]
Keys [3]: [plant#1136025, product#1136026, storageLocId#1135976]
Functions [1]: [partial_max(calculationDateTime#1135969)]
Aggregate Attributes [1]: [max#1137525]
Results [4]: [plant#1136025, product#1136026, storageLocId#1135976, max#1137526]
(333) HashAggregate
Input [4]: [plant#1136025, product#1136026, storageLocId#1135976, max#1137526]
Keys [3]: [plant#1136025, product#1136026, storageLocId#1135976]
Functions [1]: [max(calculationDateTime#1135969)]
Aggregate Attributes [1]: [max(calculationDateTime#1135969)#1135889]
Results [4]: [plant#1136025, product#1136026, storageLocId#1135976, max(calculationDateTime#1135969)#1135889 AS max_calc_datetime#1135883]
(334) Exchange
Input [4]: [plant#1136025, product#1136026, storageLocId#1135976, max_calc_datetime#1135883]
Arguments: hashpartitioning(coalesce(plant#1136025, ), isnull(plant#1136025), coalesce(product#1136026, ), isnull(product#1136026), coalesce(storageLocId#1135976, ), isnull(storageLocId#1135976), coalesce(max_calc_datetime#1135883, 1970-01-01 00:00:00), isnull(max_calc_datetime#1135883), 37), ENSURE_REQUIREMENTS, [plan_id=1710662]
(335) Sort
Input [4]: [plant#1136025, product#1136026, storageLocId#1135976, max_calc_datetime#1135883]
Arguments: [coalesce(plant#1136025, ) ASC NULLS FIRST, isnull(plant#1136025) ASC NULLS FIRST, coalesce(product#1136026, ) ASC NULLS FIRST, isnull(product#1136026) ASC NULLS FIRST, coalesce(storageLocId#1135976, ) ASC NULLS FIRST, isnull(storageLocId#1135976) ASC NULLS FIRST, coalesce(max_calc_datetime#1135883, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1135883) ASC NULLS FIRST], false, 0
(336) SortMergeJoin
Left keys [8]: [coalesce(plant#1135881, ), isnull(plant#1135881), coalesce(product#1135882, ), isnull(product#1135882), coalesce(storageLocId#1135819, ), isnull(storageLocId#1135819), coalesce(calculationDateTime#1135798, 1970-01-01 00:00:00), isnull(calculationDateTime#1135798)]
Right keys [8]: [coalesce(plant#1136025, ), isnull(plant#1136025), coalesce(product#1136026, ), isnull(product#1136026), coalesce(storageLocId#1135976, ), isnull(storageLocId#1135976), coalesce(max_calc_datetime#1135883, 1970-01-01 00:00:00), isnull(max_calc_datetime#1135883)]
Join type: Inner
Join condition: None
(337) Project
Output [3]: [plant#1135881, product#1135882, calculationDateTime#1135798]
Input [8]: [plant#1135881, product#1135882, storageLocId#1135819, calculationDateTime#1135798, plant#1136025, product#1136026, storageLocId#1135976, max_calc_datetime#1135883]
(338) HashAggregate
Input [3]: [plant#1135881, product#1135882, calculationDateTime#1135798]
Keys [2]: [product#1135882, plant#1135881]
Functions [1]: [partial_min(calculationDateTime#1135798)]
Aggregate Attributes [1]: [min#1137517]
Results [3]: [product#1135882, plant#1135881, min#1137518]
(339) Exchange
Input [3]: [product#1135882, plant#1135881, min#1137518]
Arguments: hashpartitioning(product#1135882, plant#1135881, 37), ENSURE_REQUIREMENTS, [plan_id=1710669]
(340) HashAggregate
Input [3]: [product#1135882, plant#1135881, min#1137518]
Keys [2]: [product#1135882, plant#1135881]
Functions [1]: [min(calculationDateTime#1135798)]
Aggregate Attributes [1]: [min(calculationDateTime#1135798)#1136045]
Results [3]: [product#1135882, plant#1135881, min(calculationDateTime#1135798)#1136045 AS minCalculationDateTime#1136038]
(341) Sort
Input [3]: [product#1135882, plant#1135881, minCalculationDateTime#1136038]
Arguments: [product#1135882 ASC NULLS FIRST, plant#1135881 ASC NULLS FIRST], false, 0
(342) SortMergeJoin
Left keys [2]: [product#1135691, plant#1135692]
Right keys [2]: [product#1135882, plant#1135881]
Join type: LeftOuter
Join condition: None
(343) Project
Output [4]: [product#1135691, plant#1135692, timezonecode#1135723, CASE WHEN isnotnull(minCalculationDateTime#1136038) THEN minCalculationDateTime#1136038 ELSE orderDateTime#1135693 END AS stockDatetime#1136095]
Input [7]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, product#1135882, plant#1135881, minCalculationDateTime#1136038]
(344) Exchange
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: hashpartitioning(coalesce(plant#1135692, ), isnull(plant#1135692), coalesce(product#1135691, ), isnull(product#1135691), 37), ENSURE_REQUIREMENTS, [plan_id=1710833]
(345) Sort
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: [coalesce(plant#1135692, ) ASC NULLS FIRST, isnull(plant#1135692) ASC NULLS FIRST, coalesce(product#1135691, ) ASC NULLS FIRST, isnull(product#1135691) ASC NULLS FIRST], false, 0
(346) Exchange
Input [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
Arguments: hashpartitioning(product#1136173, plant#1136174, 37), REPARTITION_BY_NUM, [plan_id=1710086]
(347) Project
Output [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
Input [8]: [internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184, systemId#1136177]
(348) Exchange
Input [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710089]
(349) Project
Output [1]: [struct(systemId, systemId#1136177, internalUUID, internalUUID#1136178, plant, plant#1136179, product, product#1136180, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1136181, productionAspect, productionAspect#1136182, salesPlant, salesPlant#1136183, listing, listing#1136184) AS productPlant#1136185]
Input [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
(350) BroadcastExchange
Input [1]: [productPlant#1136185]
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=1710677]
(351) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136173, ), isnull(product#1136173), coalesce(plant#1136174, ), isnull(plant#1136174)]
Right keys [4]: [coalesce(productPlant#1136185.product.internalRefUUID, ), isnull(productPlant#1136185.product.internalRefUUID), coalesce(productPlant#1136185.plant.internalRefUUID, ), isnull(productPlant#1136185.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(352) Scan parquet
Output [3]: [internalUUID#1136187, address#1136193, systemId#1136186]
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>>>
(353) Project
Output [2]: [internalUUID#1136187, address#1136193.timeZone.code AS timezonecode#1136198]
Input [3]: [internalUUID#1136187, address#1136193, systemId#1136186]
(354) Exchange
Input [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710094]
(355) BroadcastExchange
Input [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710680]
(356) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136174, ), isnull(plant#1136174)]
Right keys [2]: [coalesce(internalUUID#1136187, ), isnull(internalUUID#1136187)]
Join type: LeftOuter
Join condition: None
(357) Project
Output [5]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, CASE WHEN isnotnull(timezonecode#1136198) THEN timezonecode#1136198 ELSE UTC END AS timezonecode#1136199]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, internalUUID#1136187, timezonecode#1136198]
(358) Scan parquet
Output [4]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207, systemId#1136200]
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>>>
(359) Filter
Input [4]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207, systemId#1136200]
Condition : isnotnull(internalUUID#1136201)
(360) Project
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Input [4]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207, systemId#1136200]
(361) Exchange
Input [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710100]
(362) BroadcastExchange
Input [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710684]
(363) BroadcastHashJoin
Left keys [1]: [product#1136173]
Right keys [1]: [internalUUID#1136201]
Join type: LeftOuter
Join condition: None
(364) Project
Output [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filter(unitOfMeasureConversions#1136207, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136205.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136205.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136212]
Input [8]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
(365) Project
Output [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filteredUnitOfMeasureConversions#1136212.quantityDenominator AS _extract_quantityDenominator#1136723, filteredUnitOfMeasureConversions#1136212.quantityNumerator AS _extract_quantityNumerator#1136724]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filteredUnitOfMeasureConversions#1136212]
(366) Generate
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1136723, _extract_quantityNumerator#1136724]
Arguments: explode(_extract_quantityNumerator#1136724), [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1136723], true, [quantityNumerator#1136213]
(367) Generate
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1136723, quantityNumerator#1136213]
Arguments: explode(_extract_quantityDenominator#1136723), [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, quantityNumerator#1136213], true, [quantityDenominator#1136214]
(368) Project
Output [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, (cast(quantityNumerator#1136213 as double) / cast(quantityDenominator#1136214 as double)) AS outboundUnit#1136215]
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, quantityNumerator#1136213, quantityDenominator#1136214]
(369) Project
Output [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, CASE WHEN (isnull(outboundUnit#1136215) OR (outboundUnit#1136215 <= 0.0)) THEN 1.0 ELSE outboundUnit#1136215 END AS outboundUnit#1136216]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136215]
(370) Sort
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216]
Arguments: [product#1136173 ASC NULLS FIRST, plant#1136174 ASC NULLS FIRST], false, 0
(371) Scan parquet
Output [6]: [internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222, systemId#1136217]
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>>>>>
(372) Filter
Input [6]: [internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222, systemId#1136217]
Condition : (isnotnull(plant#1136220.internalRefUUID) AND isnotnull(product#1136219.internalRefUUID))
(373) Project
Output [6]: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222]
Input [6]: [internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222, systemId#1136217]
(374) Exchange
Input [6]: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710111]
(375) BroadcastExchange
Input [6]: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222]
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=1710716]
(376) Scan parquet
Output [2]: [marketUnit#1136223, distributionCenters#1136229]
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,Alert_Test1), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(377) Filter
Input [2]: [marketUnit#1136223, distributionCenters#1136229]
Condition : (((marketUnit#1136223 <=> Alert_Test1) AND (size(distributionCenters#1136229, true) > 0)) AND isnotnull(distributionCenters#1136229))
(378) Project
Output [1]: [distributionCenters#1136229]
Input [2]: [marketUnit#1136223, distributionCenters#1136229]
(379) Exchange
Input [1]: [distributionCenters#1136229]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710115]
(380) Generate
Input [1]: [distributionCenters#1136229]
Arguments: explode(distributionCenters#1136229), false, [distributionCenters#1136245]
(381) Filter
Input [1]: [distributionCenters#1136245]
Condition : (((size(distributionCenters#1136245.storageLocations, true) > 0) AND isnotnull(distributionCenters#1136245.storageLocations)) AND isnotnull(distributionCenters#1136245.internalRefUUID))
(382) Project
Output [2]: [distributionCenters#1136245.internalRefUUID AS _extract_internalRefUUID#1136667, distributionCenters#1136245.storageLocations AS _extract_storageLocations#1136668]
Input [1]: [distributionCenters#1136245]
(383) Generate
Input [2]: [_extract_internalRefUUID#1136667, _extract_storageLocations#1136668]
Arguments: explode(_extract_storageLocations#1136668), [_extract_internalRefUUID#1136667], false, [storageLocations#1136246]
(384) Project
Output [3]: [_extract_internalRefUUID#1136667 AS plantUuid#1136248, storageLocations#1136246.id AS storageLocId#1136249, storageLocations#1136246.internalRefUUID AS storageLocUuid#1136250]
Input [2]: [_extract_internalRefUUID#1136667, storageLocations#1136246]
(385) BroadcastExchange
Input [3]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710712]
(386) Scan parquet
Output [2]: [product#1136251, plant#1136252]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(387) Filter
Input [2]: [product#1136251, plant#1136252]
Condition : isnotnull(plant#1136252)
(388) Exchange
Input [2]: [product#1136251, plant#1136252]
Arguments: hashpartitioning(product#1136251, plant#1136252, 37), REPARTITION_BY_NUM, [plan_id=1710424]
(389) Scan parquet
Output [4]: [plant#1136257, product#1136258, productionAspect#1136260, systemId#1136255]
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>>>>
(390) Project
Output [4]: [plant#1136257.internalRefUUID AS _extract_internalRefUUID#1136857, product#1136258.internalRefUUID AS _extract_internalRefUUID#1136858, productionAspect#1136260.productMovementPlants.unitOfIssue.code AS _extract_code#1136855, productionAspect#1136260.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136856]
Input [4]: [plant#1136257, product#1136258, productionAspect#1136260, systemId#1136255]
(391) Exchange
Input [4]: [_extract_internalRefUUID#1136857, _extract_internalRefUUID#1136858, _extract_code#1136855, _extract_internalRefUUID#1136856]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710127]
(392) Project
Output [4]: [_extract_code#1136855, _extract_internalRefUUID#1136856, _extract_internalRefUUID#1136858, _extract_internalRefUUID#1136857]
Input [4]: [_extract_internalRefUUID#1136857, _extract_internalRefUUID#1136858, _extract_code#1136855, _extract_internalRefUUID#1136856]
(393) BroadcastExchange
Input [4]: [_extract_code#1136855, _extract_internalRefUUID#1136856, _extract_internalRefUUID#1136858, _extract_internalRefUUID#1136857]
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=1710692]
(394) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136251, ), isnull(product#1136251), coalesce(plant#1136252, ), isnull(plant#1136252)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136858, ), isnull(_extract_internalRefUUID#1136858), coalesce(_extract_internalRefUUID#1136857, ), isnull(_extract_internalRefUUID#1136857)]
Join type: LeftOuter
Join condition: None
(395) Project
Output [4]: [product#1136251, plant#1136252, _extract_code#1136855, _extract_internalRefUUID#1136856]
Input [6]: [product#1136251, plant#1136252, _extract_code#1136855, _extract_internalRefUUID#1136856, _extract_internalRefUUID#1136858, _extract_internalRefUUID#1136857]
(396) Scan parquet
Output [2]: [internalUUID#1136265, systemId#1136264]
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>
(397) Project
Output [1]: [internalUUID#1136265]
Input [2]: [internalUUID#1136265, systemId#1136264]
(398) Exchange
Input [1]: [internalUUID#1136265]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710133]
(399) BroadcastExchange
Input [1]: [internalUUID#1136265]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710696]
(400) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136252, ), isnull(plant#1136252)]
Right keys [2]: [coalesce(internalUUID#1136265, ), isnull(internalUUID#1136265)]
Join type: LeftOuter
Join condition: None
(401) Project
Output [4]: [product#1136251, plant#1136252, _extract_code#1136855, _extract_internalRefUUID#1136856]
Input [5]: [product#1136251, plant#1136252, _extract_code#1136855, _extract_internalRefUUID#1136856, internalUUID#1136265]
(402) Scan parquet
Output [4]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285, systemId#1136278]
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>>>
(403) Filter
Input [4]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285, systemId#1136278]
Condition : isnotnull(internalUUID#1136279)
(404) Project
Output [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Input [4]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285, systemId#1136278]
(405) Exchange
Input [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710139]
(406) BroadcastExchange
Input [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710700]
(407) BroadcastHashJoin
Left keys [1]: [product#1136251]
Right keys [1]: [internalUUID#1136279]
Join type: LeftOuter
Join condition: None
(408) Project
Output [2]: [plant#1136252, filter(unitOfMeasureConversions#1136285, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136855) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136856)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136283.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136283.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136290]
Input [7]: [product#1136251, plant#1136252, _extract_code#1136855, _extract_internalRefUUID#1136856, internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
(409) Generate
Input [2]: [plant#1136252, filteredUnitOfMeasureConversions#1136290]
Arguments: explode(filteredUnitOfMeasureConversions#1136290.quantityNumerator), [plant#1136252, filteredUnitOfMeasureConversions#1136290], true, [quantityNumerator#1136291]
(410) Project
Output [2]: [plant#1136252, filteredUnitOfMeasureConversions#1136290.quantityDenominator AS _extract_quantityDenominator#1136669]
Input [3]: [plant#1136252, filteredUnitOfMeasureConversions#1136290, quantityNumerator#1136291]
(411) Generate
Input [2]: [plant#1136252, _extract_quantityDenominator#1136669]
Arguments: explode(_extract_quantityDenominator#1136669), [plant#1136252], true, [quantityDenominator#1136292]
(412) Project
Output [1]: [plant#1136252]
Input [2]: [plant#1136252, quantityDenominator#1136292]
(413) HashAggregate
Input [1]: [plant#1136252]
Keys [1]: [plant#1136252]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136252]
(414) Exchange
Input [1]: [plant#1136252]
Arguments: hashpartitioning(plant#1136252, 37), ENSURE_REQUIREMENTS, [plan_id=1710709]
(415) HashAggregate
Input [1]: [plant#1136252]
Keys [1]: [plant#1136252]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136252]
(416) BroadcastHashJoin
Left keys [1]: [plantUuid#1136248]
Right keys [1]: [plant#1136252]
Join type: Inner
Join condition: None
(417) Project
Output [3]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250]
Input [4]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250, plant#1136252]
(418) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136220.internalRefUUID, ), isnull(plant#1136220.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1136248, ), isnull(plantUuid#1136248)]
Join type: Inner
Join condition: None
(419) Generate
Input [9]: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222, plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250]
Arguments: explode(filter(stockQuantities#1136222, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1136250) AND (lambda x#1135796.storageLocation.Id = storageLocId#1136249)), lambda x#1135796, false))), [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, plantUuid#1136248], false, [stockQuantity#1136295]
(420) ObjectHashAggregate
Input [7]: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, plantUuid#1136248, stockQuantity#1136295]
Keys [5]: [plantUuid#1136248, internalUUID#1136218, plant#1136220, product#1136219, systemId#1136217]
Functions [2]: [partial_first(calculationDateTime#1136221, false), partial_collect_list(stockQuantity#1136295, 0, 0)]
Aggregate Attributes [3]: [first#1137541, valueSet#1137542, buf#1137543]
Results [8]: [plantUuid#1136248, internalUUID#1136218, plant#1136220, product#1136219, systemId#1136217, first#1137544, valueSet#1137545, buf#1137546]
(421) ObjectHashAggregate
Input [8]: [plantUuid#1136248, internalUUID#1136218, plant#1136220, product#1136219, systemId#1136217, first#1137544, valueSet#1137545, buf#1137546]
Keys [5]: [plantUuid#1136248, internalUUID#1136218, plant#1136220, product#1136219, systemId#1136217]
Functions [2]: [first(calculationDateTime#1136221, false), collect_list(stockQuantity#1136295, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1136221)()#1135811, collect_list(stockQuantity#1136295, 0, 0)#1135812]
Results [4]: [product#1136219, plant#1136220, first(calculationDateTime#1136221)()#1135811 AS calculationDateTime#1136296, collect_list(stockQuantity#1136295, 0, 0)#1135812 AS stockQuantities#1136297]
(422) Filter
Input [4]: [product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantities#1136297]
Condition : ((size(stockQuantities#1136297, true) > 0) AND isnotnull(calculationDateTime#1136296))
(423) Generate
Input [4]: [product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantities#1136297]
Arguments: explode(stockQuantities#1136297), [product#1136219, plant#1136220, calculationDateTime#1136296], false, [stockQuantity#1136298]
(424) Filter
Input [4]: [product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantity#1136298]
Condition : (((isnotnull(stockQuantity#1136298.specialStockIndicator.code) AND isnotnull(stockQuantity#1136298.stockType.code)) AND (stockQuantity#1136298.specialStockIndicator.code = )) AND (stockQuantity#1136298.stockType.code = 01))
(425) Project
Output [5]: [plant#1136220.internalRefUUID AS plantUuid#1136300, product#1136219.internalRefUUID AS productUuid#1136302, calculationDateTime#1136296, stockQuantity#1136298.storagelocation.id AS storageLocId#1136303, stockQuantity#1136298.quantity.measure AS quantity#1136305]
Input [4]: [product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantity#1136298]
(426) Exchange
Input [5]: [plantUuid#1136300, productUuid#1136302, calculationDateTime#1136296, storageLocId#1136303, quantity#1136305]
Arguments: hashpartitioning(productUuid#1136302, plantUuid#1136300, 37), ENSURE_REQUIREMENTS, [plan_id=1710742]
(427) Sort
Input [5]: [plantUuid#1136300, productUuid#1136302, calculationDateTime#1136296, storageLocId#1136303, quantity#1136305]
Arguments: [productUuid#1136302 ASC NULLS FIRST, plantUuid#1136300 ASC NULLS FIRST], false, 0
(428) Scan parquet
Output [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(429) Filter
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Condition : ((isnotnull(orderDateTime#1136310) AND isnotnull(plant#1136309)) AND isnotnull(product#1136308))
(430) Exchange
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Arguments: hashpartitioning(product#1136308, plant#1136309, 37), REPARTITION_BY_NUM, [plan_id=1710447]
(431) Scan parquet
Output [4]: [plant#1136314, product#1136315, productionAspect#1136317, systemId#1136312]
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>>>>
(432) Project
Output [4]: [plant#1136314.internalRefUUID AS _extract_internalRefUUID#1136862, product#1136315.internalRefUUID AS _extract_internalRefUUID#1136861, productionAspect#1136317.productMovementPlants.unitOfIssue.code AS _extract_code#1136859, productionAspect#1136317.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136860]
Input [4]: [plant#1136314, product#1136315, productionAspect#1136317, systemId#1136312]
(433) Exchange
Input [4]: [_extract_internalRefUUID#1136862, _extract_internalRefUUID#1136861, _extract_code#1136859, _extract_internalRefUUID#1136860]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710164]
(434) Project
Output [4]: [_extract_code#1136859, _extract_internalRefUUID#1136860, _extract_internalRefUUID#1136861, _extract_internalRefUUID#1136862]
Input [4]: [_extract_internalRefUUID#1136862, _extract_internalRefUUID#1136861, _extract_code#1136859, _extract_internalRefUUID#1136860]
(435) BroadcastExchange
Input [4]: [_extract_code#1136859, _extract_internalRefUUID#1136860, _extract_internalRefUUID#1136861, _extract_internalRefUUID#1136862]
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=1710725]
(436) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136308, ), isnull(product#1136308), coalesce(plant#1136309, ), isnull(plant#1136309)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136861, ), isnull(_extract_internalRefUUID#1136861), coalesce(_extract_internalRefUUID#1136862, ), isnull(_extract_internalRefUUID#1136862)]
Join type: LeftOuter
Join condition: None
(437) Project
Output [5]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1136859, _extract_internalRefUUID#1136860]
Input [7]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1136859, _extract_internalRefUUID#1136860, _extract_internalRefUUID#1136861, _extract_internalRefUUID#1136862]
(438) Scan parquet
Output [2]: [internalUUID#1136322, systemId#1136321]
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>
(439) Project
Output [1]: [internalUUID#1136322]
Input [2]: [internalUUID#1136322, systemId#1136321]
(440) Exchange
Input [1]: [internalUUID#1136322]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710170]
(441) BroadcastExchange
Input [1]: [internalUUID#1136322]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710729]
(442) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136309, ), isnull(plant#1136309)]
Right keys [2]: [coalesce(internalUUID#1136322, ), isnull(internalUUID#1136322)]
Join type: LeftOuter
Join condition: None
(443) Project
Output [5]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1136859, _extract_internalRefUUID#1136860]
Input [6]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1136859, _extract_internalRefUUID#1136860, internalUUID#1136322]
(444) Scan parquet
Output [4]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342, systemId#1136335]
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>>>
(445) Filter
Input [4]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342, systemId#1136335]
Condition : isnotnull(internalUUID#1136336)
(446) Project
Output [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Input [4]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342, systemId#1136335]
(447) Exchange
Input [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710176]
(448) BroadcastExchange
Input [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710733]
(449) BroadcastHashJoin
Left keys [1]: [product#1136308]
Right keys [1]: [internalUUID#1136336]
Join type: LeftOuter
Join condition: None
(450) Project
Output [4]: [product#1136308, plant#1136309, orderDateTime#1136310, filter(unitOfMeasureConversions#1136342, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136859) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136860)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136340.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136340.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136347]
Input [8]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1136859, _extract_internalRefUUID#1136860, internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
(451) Generate
Input [4]: [product#1136308, plant#1136309, orderDateTime#1136310, filteredUnitOfMeasureConversions#1136347]
Arguments: explode(filteredUnitOfMeasureConversions#1136347.quantityNumerator), [product#1136308, plant#1136309, orderDateTime#1136310, filteredUnitOfMeasureConversions#1136347], true, [quantityNumerator#1136348]
(452) Project
Output [4]: [product#1136308, plant#1136309, orderDateTime#1136310, filteredUnitOfMeasureConversions#1136347.quantityDenominator AS _extract_quantityDenominator#1136673]
Input [5]: [product#1136308, plant#1136309, orderDateTime#1136310, filteredUnitOfMeasureConversions#1136347, quantityNumerator#1136348]
(453) Generate
Input [4]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_quantityDenominator#1136673]
Arguments: explode(_extract_quantityDenominator#1136673), [product#1136308, plant#1136309, orderDateTime#1136310], true, [quantityDenominator#1136349]
(454) Project
Output [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Input [4]: [product#1136308, plant#1136309, orderDateTime#1136310, quantityDenominator#1136349]
(455) Sort
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Arguments: [product#1136308 ASC NULLS FIRST, plant#1136309 ASC NULLS FIRST], false, 0
(456) SortMergeJoin
Left keys [2]: [productUuid#1136302, plantUuid#1136300]
Right keys [2]: [product#1136308, plant#1136309]
Join type: Inner
Join condition: (calculationDateTime#1136296 <= orderDateTime#1136310)
(457) Project
Output [5]: [plantUuid#1136300 AS plant#1136352, productUuid#1136302 AS product#1136353, storageLocId#1136303, calculationDateTime#1136296, quantity#1136305]
Input [8]: [plantUuid#1136300, productUuid#1136302, calculationDateTime#1136296, storageLocId#1136303, quantity#1136305, product#1136308, plant#1136309, orderDateTime#1136310]
(458) Exchange
Input [5]: [plant#1136352, product#1136353, storageLocId#1136303, calculationDateTime#1136296, quantity#1136305]
Arguments: hashpartitioning(coalesce(plant#1136352, ), isnull(plant#1136352), coalesce(product#1136353, ), isnull(product#1136353), coalesce(storageLocId#1136303, ), isnull(storageLocId#1136303), coalesce(calculationDateTime#1136296, 1970-01-01 00:00:00), isnull(calculationDateTime#1136296), 37), ENSURE_REQUIREMENTS, [plan_id=1710806]
(459) Sort
Input [5]: [plant#1136352, product#1136353, storageLocId#1136303, calculationDateTime#1136296, quantity#1136305]
Arguments: [coalesce(plant#1136352, ) ASC NULLS FIRST, isnull(plant#1136352) ASC NULLS FIRST, coalesce(product#1136353, ) ASC NULLS FIRST, isnull(product#1136353) ASC NULLS FIRST, coalesce(storageLocId#1136303, ) ASC NULLS FIRST, isnull(storageLocId#1136303) ASC NULLS FIRST, coalesce(calculationDateTime#1136296, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1136296) ASC NULLS FIRST], false, 0
(460) Scan parquet
Output [6]: [internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359, systemId#1136354]
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>>>>>
(461) Filter
Input [6]: [internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359, systemId#1136354]
Condition : (isnotnull(plant#1136357.internalRefUUID) AND isnotnull(product#1136356.internalRefUUID))
(462) Project
Output [6]: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359]
Input [6]: [internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359, systemId#1136354]
(463) Exchange
Input [6]: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710188]
(464) BroadcastExchange
Input [6]: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359]
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=1710771]
(465) Scan parquet
Output [2]: [marketUnit#1136360, distributionCenters#1136366]
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,Alert_Test1), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(466) Filter
Input [2]: [marketUnit#1136360, distributionCenters#1136366]
Condition : (((marketUnit#1136360 <=> Alert_Test1) AND (size(distributionCenters#1136366, true) > 0)) AND isnotnull(distributionCenters#1136366))
(467) Project
Output [1]: [distributionCenters#1136366]
Input [2]: [marketUnit#1136360, distributionCenters#1136366]
(468) Exchange
Input [1]: [distributionCenters#1136366]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710192]
(469) Generate
Input [1]: [distributionCenters#1136366]
Arguments: explode(distributionCenters#1136366), false, [distributionCenters#1136382]
(470) Filter
Input [1]: [distributionCenters#1136382]
Condition : (((size(distributionCenters#1136382.storageLocations, true) > 0) AND isnotnull(distributionCenters#1136382.storageLocations)) AND isnotnull(distributionCenters#1136382.internalRefUUID))
(471) Project
Output [2]: [distributionCenters#1136382.internalRefUUID AS _extract_internalRefUUID#1136677, distributionCenters#1136382.storageLocations AS _extract_storageLocations#1136678]
Input [1]: [distributionCenters#1136382]
(472) Generate
Input [2]: [_extract_internalRefUUID#1136677, _extract_storageLocations#1136678]
Arguments: explode(_extract_storageLocations#1136678), [_extract_internalRefUUID#1136677], false, [storageLocations#1136383]
(473) Project
Output [3]: [_extract_internalRefUUID#1136677 AS plantUuid#1136385, storageLocations#1136383.id AS storageLocId#1136386, storageLocations#1136383.internalRefUUID AS storageLocUuid#1136387]
Input [2]: [_extract_internalRefUUID#1136677, storageLocations#1136383]
(474) BroadcastExchange
Input [3]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710767]
(475) Scan parquet
Output [2]: [product#1136388, plant#1136389]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(476) Filter
Input [2]: [product#1136388, plant#1136389]
Condition : isnotnull(plant#1136389)
(477) Exchange
Input [2]: [product#1136388, plant#1136389]
Arguments: hashpartitioning(product#1136388, plant#1136389, 37), REPARTITION_BY_NUM, [plan_id=1710460]
(478) Scan parquet
Output [4]: [plant#1136394, product#1136395, productionAspect#1136397, systemId#1136392]
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>>>>
(479) Project
Output [4]: [plant#1136394.internalRefUUID AS _extract_internalRefUUID#1136866, product#1136395.internalRefUUID AS _extract_internalRefUUID#1136863, productionAspect#1136397.productMovementPlants.unitOfIssue.code AS _extract_code#1136864, productionAspect#1136397.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136865]
Input [4]: [plant#1136394, product#1136395, productionAspect#1136397, systemId#1136392]
(480) Exchange
Input [4]: [_extract_internalRefUUID#1136866, _extract_internalRefUUID#1136863, _extract_code#1136864, _extract_internalRefUUID#1136865]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710204]
(481) Project
Output [4]: [_extract_code#1136864, _extract_internalRefUUID#1136865, _extract_internalRefUUID#1136863, _extract_internalRefUUID#1136866]
Input [4]: [_extract_internalRefUUID#1136866, _extract_internalRefUUID#1136863, _extract_code#1136864, _extract_internalRefUUID#1136865]
(482) BroadcastExchange
Input [4]: [_extract_code#1136864, _extract_internalRefUUID#1136865, _extract_internalRefUUID#1136863, _extract_internalRefUUID#1136866]
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=1710747]
(483) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136388, ), isnull(product#1136388), coalesce(plant#1136389, ), isnull(plant#1136389)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136863, ), isnull(_extract_internalRefUUID#1136863), coalesce(_extract_internalRefUUID#1136866, ), isnull(_extract_internalRefUUID#1136866)]
Join type: LeftOuter
Join condition: None
(484) Project
Output [4]: [product#1136388, plant#1136389, _extract_code#1136864, _extract_internalRefUUID#1136865]
Input [6]: [product#1136388, plant#1136389, _extract_code#1136864, _extract_internalRefUUID#1136865, _extract_internalRefUUID#1136863, _extract_internalRefUUID#1136866]
(485) Scan parquet
Output [2]: [internalUUID#1136402, systemId#1136401]
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>
(486) Project
Output [1]: [internalUUID#1136402]
Input [2]: [internalUUID#1136402, systemId#1136401]
(487) Exchange
Input [1]: [internalUUID#1136402]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710210]
(488) BroadcastExchange
Input [1]: [internalUUID#1136402]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710751]
(489) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136389, ), isnull(plant#1136389)]
Right keys [2]: [coalesce(internalUUID#1136402, ), isnull(internalUUID#1136402)]
Join type: LeftOuter
Join condition: None
(490) Project
Output [4]: [product#1136388, plant#1136389, _extract_code#1136864, _extract_internalRefUUID#1136865]
Input [5]: [product#1136388, plant#1136389, _extract_code#1136864, _extract_internalRefUUID#1136865, internalUUID#1136402]
(491) Scan parquet
Output [4]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422, systemId#1136415]
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>>>
(492) Filter
Input [4]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422, systemId#1136415]
Condition : isnotnull(internalUUID#1136416)
(493) Project
Output [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Input [4]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422, systemId#1136415]
(494) Exchange
Input [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710216]
(495) BroadcastExchange
Input [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710755]
(496) BroadcastHashJoin
Left keys [1]: [product#1136388]
Right keys [1]: [internalUUID#1136416]
Join type: LeftOuter
Join condition: None
(497) Project
Output [2]: [plant#1136389, filter(unitOfMeasureConversions#1136422, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136864) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136865)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136420.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136420.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136427]
Input [7]: [product#1136388, plant#1136389, _extract_code#1136864, _extract_internalRefUUID#1136865, internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
(498) Generate
Input [2]: [plant#1136389, filteredUnitOfMeasureConversions#1136427]
Arguments: explode(filteredUnitOfMeasureConversions#1136427.quantityNumerator), [plant#1136389, filteredUnitOfMeasureConversions#1136427], true, [quantityNumerator#1136428]
(499) Project
Output [2]: [plant#1136389, filteredUnitOfMeasureConversions#1136427.quantityDenominator AS _extract_quantityDenominator#1136679]
Input [3]: [plant#1136389, filteredUnitOfMeasureConversions#1136427, quantityNumerator#1136428]
(500) Generate
Input [2]: [plant#1136389, _extract_quantityDenominator#1136679]
Arguments: explode(_extract_quantityDenominator#1136679), [plant#1136389], true, [quantityDenominator#1136429]
(501) Project
Output [1]: [plant#1136389]
Input [2]: [plant#1136389, quantityDenominator#1136429]
(502) HashAggregate
Input [1]: [plant#1136389]
Keys [1]: [plant#1136389]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136389]
(503) Exchange
Input [1]: [plant#1136389]
Arguments: hashpartitioning(plant#1136389, 37), ENSURE_REQUIREMENTS, [plan_id=1710764]
(504) HashAggregate
Input [1]: [plant#1136389]
Keys [1]: [plant#1136389]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136389]
(505) BroadcastHashJoin
Left keys [1]: [plantUuid#1136385]
Right keys [1]: [plant#1136389]
Join type: Inner
Join condition: None
(506) Project
Output [3]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387]
Input [4]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387, plant#1136389]
(507) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136357.internalRefUUID, ), isnull(plant#1136357.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1136385, ), isnull(plantUuid#1136385)]
Join type: Inner
Join condition: None
(508) Generate
Input [9]: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359, plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387]
Arguments: explode(filter(stockQuantities#1136359, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1136387) AND (lambda x#1135796.storageLocation.Id = storageLocId#1136386)), lambda x#1135796, false))), [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, plantUuid#1136385], false, [stockQuantity#1136432]
(509) ObjectHashAggregate
Input [7]: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, plantUuid#1136385, stockQuantity#1136432]
Keys [5]: [plantUuid#1136385, internalUUID#1136355, plant#1136357, product#1136356, systemId#1136354]
Functions [2]: [partial_first(calculationDateTime#1136358, false), partial_collect_list(stockQuantity#1136432, 0, 0)]
Aggregate Attributes [3]: [first#1137549, valueSet#1137550, buf#1137551]
Results [8]: [plantUuid#1136385, internalUUID#1136355, plant#1136357, product#1136356, systemId#1136354, first#1137552, valueSet#1137553, buf#1137554]
(510) ObjectHashAggregate
Input [8]: [plantUuid#1136385, internalUUID#1136355, plant#1136357, product#1136356, systemId#1136354, first#1137552, valueSet#1137553, buf#1137554]
Keys [5]: [plantUuid#1136385, internalUUID#1136355, plant#1136357, product#1136356, systemId#1136354]
Functions [2]: [first(calculationDateTime#1136358, false), collect_list(stockQuantity#1136432, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1136358)()#1135811, collect_list(stockQuantity#1136432, 0, 0)#1135812]
Results [4]: [product#1136356, plant#1136357, first(calculationDateTime#1136358)()#1135811 AS calculationDateTime#1136433, collect_list(stockQuantity#1136432, 0, 0)#1135812 AS stockQuantities#1136434]
(511) Filter
Input [4]: [product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantities#1136434]
Condition : ((size(stockQuantities#1136434, true) > 0) AND isnotnull(calculationDateTime#1136433))
(512) Generate
Input [4]: [product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantities#1136434]
Arguments: explode(stockQuantities#1136434), [product#1136356, plant#1136357, calculationDateTime#1136433], false, [stockQuantity#1136435]
(513) Filter
Input [4]: [product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantity#1136435]
Condition : (((isnotnull(stockQuantity#1136435.specialStockIndicator.code) AND isnotnull(stockQuantity#1136435.stockType.code)) AND (stockQuantity#1136435.specialStockIndicator.code = )) AND (stockQuantity#1136435.stockType.code = 01))
(514) Project
Output [4]: [plant#1136357.internalRefUUID AS plantUuid#1136437, product#1136356.internalRefUUID AS productUuid#1136439, calculationDateTime#1136433, stockQuantity#1136435.storagelocation.id AS storageLocId#1136440]
Input [4]: [product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantity#1136435]
(515) Exchange
Input [4]: [plantUuid#1136437, productUuid#1136439, calculationDateTime#1136433, storageLocId#1136440]
Arguments: hashpartitioning(productUuid#1136439, plantUuid#1136437, 37), ENSURE_REQUIREMENTS, [plan_id=1710797]
(516) Sort
Input [4]: [plantUuid#1136437, productUuid#1136439, calculationDateTime#1136433, storageLocId#1136440]
Arguments: [productUuid#1136439 ASC NULLS FIRST, plantUuid#1136437 ASC NULLS FIRST], false, 0
(517) Scan parquet
Output [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(518) Filter
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Condition : ((isnotnull(orderDateTime#1136447) AND isnotnull(plant#1136446)) AND isnotnull(product#1136445))
(519) Exchange
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Arguments: hashpartitioning(product#1136445, plant#1136446, 37), REPARTITION_BY_NUM, [plan_id=1710483]
(520) Scan parquet
Output [4]: [plant#1136451, product#1136452, productionAspect#1136454, systemId#1136449]
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>>>>
(521) Project
Output [4]: [plant#1136451.internalRefUUID AS _extract_internalRefUUID#1136867, product#1136452.internalRefUUID AS _extract_internalRefUUID#1136870, productionAspect#1136454.productMovementPlants.unitOfIssue.code AS _extract_code#1136868, productionAspect#1136454.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136869]
Input [4]: [plant#1136451, product#1136452, productionAspect#1136454, systemId#1136449]
(522) Exchange
Input [4]: [_extract_internalRefUUID#1136867, _extract_internalRefUUID#1136870, _extract_code#1136868, _extract_internalRefUUID#1136869]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710241]
(523) Project
Output [4]: [_extract_code#1136868, _extract_internalRefUUID#1136869, _extract_internalRefUUID#1136870, _extract_internalRefUUID#1136867]
Input [4]: [_extract_internalRefUUID#1136867, _extract_internalRefUUID#1136870, _extract_code#1136868, _extract_internalRefUUID#1136869]
(524) BroadcastExchange
Input [4]: [_extract_code#1136868, _extract_internalRefUUID#1136869, _extract_internalRefUUID#1136870, _extract_internalRefUUID#1136867]
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=1710780]
(525) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136445, ), isnull(product#1136445), coalesce(plant#1136446, ), isnull(plant#1136446)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136870, ), isnull(_extract_internalRefUUID#1136870), coalesce(_extract_internalRefUUID#1136867, ), isnull(_extract_internalRefUUID#1136867)]
Join type: LeftOuter
Join condition: None
(526) Project
Output [5]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1136868, _extract_internalRefUUID#1136869]
Input [7]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1136868, _extract_internalRefUUID#1136869, _extract_internalRefUUID#1136870, _extract_internalRefUUID#1136867]
(527) Scan parquet
Output [2]: [internalUUID#1136459, systemId#1136458]
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>
(528) Project
Output [1]: [internalUUID#1136459]
Input [2]: [internalUUID#1136459, systemId#1136458]
(529) Exchange
Input [1]: [internalUUID#1136459]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710247]
(530) BroadcastExchange
Input [1]: [internalUUID#1136459]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710784]
(531) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136446, ), isnull(plant#1136446)]
Right keys [2]: [coalesce(internalUUID#1136459, ), isnull(internalUUID#1136459)]
Join type: LeftOuter
Join condition: None
(532) Project
Output [5]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1136868, _extract_internalRefUUID#1136869]
Input [6]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1136868, _extract_internalRefUUID#1136869, internalUUID#1136459]
(533) Scan parquet
Output [4]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479, systemId#1136472]
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>>>
(534) Filter
Input [4]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479, systemId#1136472]
Condition : isnotnull(internalUUID#1136473)
(535) Project
Output [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Input [4]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479, systemId#1136472]
(536) Exchange
Input [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710253]
(537) BroadcastExchange
Input [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710788]
(538) BroadcastHashJoin
Left keys [1]: [product#1136445]
Right keys [1]: [internalUUID#1136473]
Join type: LeftOuter
Join condition: None
(539) Project
Output [4]: [product#1136445, plant#1136446, orderDateTime#1136447, filter(unitOfMeasureConversions#1136479, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136868) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136869)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136477.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136477.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136484]
Input [8]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1136868, _extract_internalRefUUID#1136869, internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
(540) Generate
Input [4]: [product#1136445, plant#1136446, orderDateTime#1136447, filteredUnitOfMeasureConversions#1136484]
Arguments: explode(filteredUnitOfMeasureConversions#1136484.quantityNumerator), [product#1136445, plant#1136446, orderDateTime#1136447, filteredUnitOfMeasureConversions#1136484], true, [quantityNumerator#1136485]
(541) Project
Output [4]: [product#1136445, plant#1136446, orderDateTime#1136447, filteredUnitOfMeasureConversions#1136484.quantityDenominator AS _extract_quantityDenominator#1136683]
Input [5]: [product#1136445, plant#1136446, orderDateTime#1136447, filteredUnitOfMeasureConversions#1136484, quantityNumerator#1136485]
(542) Generate
Input [4]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_quantityDenominator#1136683]
Arguments: explode(_extract_quantityDenominator#1136683), [product#1136445, plant#1136446, orderDateTime#1136447], true, [quantityDenominator#1136486]
(543) Project
Output [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Input [4]: [product#1136445, plant#1136446, orderDateTime#1136447, quantityDenominator#1136486]
(544) Sort
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Arguments: [product#1136445 ASC NULLS FIRST, plant#1136446 ASC NULLS FIRST], false, 0
(545) SortMergeJoin
Left keys [2]: [productUuid#1136439, plantUuid#1136437]
Right keys [2]: [product#1136445, plant#1136446]
Join type: Inner
Join condition: (calculationDateTime#1136433 <= orderDateTime#1136447)
(546) Project
Output [4]: [plantUuid#1136437 AS plant#1136489, productUuid#1136439 AS product#1136490, storageLocId#1136440, calculationDateTime#1136433]
Input [7]: [plantUuid#1136437, productUuid#1136439, calculationDateTime#1136433, storageLocId#1136440, product#1136445, plant#1136446, orderDateTime#1136447]
(547) HashAggregate
Input [4]: [plant#1136489, product#1136490, storageLocId#1136440, calculationDateTime#1136433]
Keys [3]: [plant#1136489, product#1136490, storageLocId#1136440]
Functions [1]: [partial_max(calculationDateTime#1136433)]
Aggregate Attributes [1]: [max#1137547]
Results [4]: [plant#1136489, product#1136490, storageLocId#1136440, max#1137548]
(548) HashAggregate
Input [4]: [plant#1136489, product#1136490, storageLocId#1136440, max#1137548]
Keys [3]: [plant#1136489, product#1136490, storageLocId#1136440]
Functions [1]: [max(calculationDateTime#1136433)]
Aggregate Attributes [1]: [max(calculationDateTime#1136433)#1135889]
Results [4]: [plant#1136489, product#1136490, storageLocId#1136440, max(calculationDateTime#1136433)#1135889 AS max_calc_datetime#1136491]
(549) Exchange
Input [4]: [plant#1136489, product#1136490, storageLocId#1136440, max_calc_datetime#1136491]
Arguments: hashpartitioning(coalesce(plant#1136489, ), isnull(plant#1136489), coalesce(product#1136490, ), isnull(product#1136490), coalesce(storageLocId#1136440, ), isnull(storageLocId#1136440), coalesce(max_calc_datetime#1136491, 1970-01-01 00:00:00), isnull(max_calc_datetime#1136491), 37), ENSURE_REQUIREMENTS, [plan_id=1710807]
(550) Sort
Input [4]: [plant#1136489, product#1136490, storageLocId#1136440, max_calc_datetime#1136491]
Arguments: [coalesce(plant#1136489, ) ASC NULLS FIRST, isnull(plant#1136489) ASC NULLS FIRST, coalesce(product#1136490, ) ASC NULLS FIRST, isnull(product#1136490) ASC NULLS FIRST, coalesce(storageLocId#1136440, ) ASC NULLS FIRST, isnull(storageLocId#1136440) ASC NULLS FIRST, coalesce(max_calc_datetime#1136491, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1136491) ASC NULLS FIRST], false, 0
(551) SortMergeJoin
Left keys [8]: [coalesce(plant#1136352, ), isnull(plant#1136352), coalesce(product#1136353, ), isnull(product#1136353), coalesce(storageLocId#1136303, ), isnull(storageLocId#1136303), coalesce(calculationDateTime#1136296, 1970-01-01 00:00:00), isnull(calculationDateTime#1136296)]
Right keys [8]: [coalesce(plant#1136489, ), isnull(plant#1136489), coalesce(product#1136490, ), isnull(product#1136490), coalesce(storageLocId#1136440, ), isnull(storageLocId#1136440), coalesce(max_calc_datetime#1136491, 1970-01-01 00:00:00), isnull(max_calc_datetime#1136491)]
Join type: Inner
Join condition: None
(552) Project
Output [4]: [plant#1136352, product#1136353, calculationDateTime#1136296, quantity#1136305]
Input [9]: [plant#1136352, product#1136353, storageLocId#1136303, calculationDateTime#1136296, quantity#1136305, plant#1136489, product#1136490, storageLocId#1136440, max_calc_datetime#1136491]
(553) HashAggregate
Input [4]: [plant#1136352, product#1136353, calculationDateTime#1136296, quantity#1136305]
Keys [2]: [product#1136353, plant#1136352]
Functions [2]: [partial_min(calculationDateTime#1136296), partial_sum(quantity#1136305)]
Aggregate Attributes [2]: [min#1137537, sum#1137538]
Results [4]: [product#1136353, plant#1136352, min#1137539, sum#1137540]
(554) Exchange
Input [4]: [product#1136353, plant#1136352, min#1137539, sum#1137540]
Arguments: hashpartitioning(product#1136353, plant#1136352, 37), ENSURE_REQUIREMENTS, [plan_id=1710814]
(555) HashAggregate
Input [4]: [product#1136353, plant#1136352, min#1137539, sum#1137540]
Keys [2]: [product#1136353, plant#1136352]
Functions [2]: [min(calculationDateTime#1136296), sum(quantity#1136305)]
Aggregate Attributes [2]: [min(calculationDateTime#1136296)#1136045, sum(quantity#1136305)#1136044]
Results [4]: [product#1136353, plant#1136352, min(calculationDateTime#1136296)#1136045 AS minCalculationDateTime#1136493, round(sum(quantity#1136305)#1136044, 0) AS roundedQuantitySum#1136494]
(556) Sort
Input [4]: [product#1136353, plant#1136352, minCalculationDateTime#1136493, roundedQuantitySum#1136494]
Arguments: [product#1136353 ASC NULLS FIRST, plant#1136352 ASC NULLS FIRST], false, 0
(557) SortMergeJoin
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136353, plant#1136352]
Join type: LeftOuter
Join condition: None
(558) Project
Output [8]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, CASE WHEN isnotnull(minCalculationDateTime#1136493) THEN minCalculationDateTime#1136493 ELSE orderDateTime#1136175 END AS stockDatetime#1136495, CASE WHEN isnotnull(roundedQuantitySum#1136494) THEN array(roundedQuantitySum#1136494) ELSE [0.0] END AS stockBatchQuantities#1136496]
Input [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, product#1136353, plant#1136352, minCalculationDateTime#1136493, roundedQuantitySum#1136494]
(559) Filter
Input [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
Condition : (isnotnull(product#1136098) AND isnotnull(plant#1136099))
(560) BroadcastExchange
Input [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1710823]
(561) BroadcastHashJoin
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136098, plant#1136099]
Join type: LeftOuter
Join condition: None
(562) Project
Output [9]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, CASE WHEN isnotnull(product#1136098) THEN struct(demandChannel, demandChannel#1136100, demandStream, demandStream#1136101, considerVariance, considerVariance#1136102, demandTimeBuckets, demandTimeBuckets#1136103, demandPointInTimeStart, demandPointInTimeStart#1136104, demandPointInTimeEnd, demandPointInTimeEnd#1136105, demandPointInTime, demandPointInTime#1136106) END AS rawDemands#1136119]
Input [17]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
(563) ObjectHashAggregate
Input [9]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, rawDemands#1136119]
Keys [9]: [product#1136173, plant#1136174, orderDateTime#1136175, knownfloatingpointnormalized(if (isnull(productPlant#1136185)) null else named_struct(systemId, productPlant#1136185.systemId, internalUUID, productPlant#1136185.internalUUID, plant, productPlant#1136185.plant, product, productPlant#1136185.product, blockedForReplenishmentStartingFrom, productPlant#1136185.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1136185.productionAspect)) null else named_struct(productMovementPlants, productPlant#1136185.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1136185.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1136185.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1136185.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1136185.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1136185.salesPlant, listing, productPlant#1136185.listing)) AS productPlant#1136185, timezonecode#1136199, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1136216)) AS outboundUnit#1136216, stockDatetime#1136495, knownfloatingpointnormalized(transform(stockBatchQuantities#1136496, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1137534)), lambda arg#1137534, false))) AS stockBatchQuantities#1136496, [7226582400000000] AS [7226582400000000]#1137533]
Functions [1]: [partial_collect_list(rawDemands#1136119, 0, 0)]
Aggregate Attributes [1]: [buf#1137535]
Results [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1137533, buf#1137536]
(564) ObjectHashAggregate
Input [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1137533, buf#1137536]
Keys [9]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1137533]
Functions [1]: [collect_list(rawDemands#1136119, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1136119, 0, 0)#1136138]
Results [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1136497, collect_list(rawDemands#1136119, 0, 0)#1136138 AS rawDemands#1136120]
(565) DeserializeToObject
Input [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, stockBatchShelfLifeEndDatetimes#1136497, rawDemands#1136120]
Arguments: createexternalrow(invoke(product#1136173.toString()), invoke(plant#1136174.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1136175)), if (isnull(productPlant#1136185)) null else createexternalrow(invoke(productPlant#1136185.systemId.toString()), invoke(productPlant#1136185.internalUUID.toString()), if (isnull(productPlant#1136185.plant)) null else createexternalrow(invoke(productPlant#1136185.plant.internalRefUUID.toString()), invoke(productPlant#1136185.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1136185.product)) null else createexternalrow(invoke(productPlant#1136185.product.internalRefUUID.toString()), invoke(productPlant#1136185.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1136185.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1136185.productionAspect)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1136185.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#1136185.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1136185.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1136185.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1136185.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1136185.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#1136185.salesPlant)) null else createexternalrow(if (isnull(productPlant#1136185.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1136185.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1136185.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#1136185.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#1136199.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1136216)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1136495)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#1136496, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#1136497, 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#1136120, 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#1136159: org.apache.spark.sql.Row
(566) MapElements
Input [1]: [obj#1136159]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@a39b9be, obj#1136164: org.apache.spark.sql.Row
(567) SerializeFromObject
Input [1]: [obj#1136164]
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#1136169, 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#1136170]
(568) Exchange
Input [2]: [product#1136169, plant#1136170]
Arguments: hashpartitioning(coalesce(plant#1136170, ), isnull(plant#1136170), coalesce(product#1136169, ), isnull(product#1136169), 37), ENSURE_REQUIREMENTS, [plan_id=1710834]
(569) Sort
Input [2]: [product#1136169, plant#1136170]
Arguments: [coalesce(plant#1136170, ) ASC NULLS FIRST, isnull(plant#1136170) ASC NULLS FIRST, coalesce(product#1136169, ) ASC NULLS FIRST, isnull(product#1136169) ASC NULLS FIRST], false, 0
(570) SortMergeJoin
Left keys [4]: [coalesce(plant#1135692, ), isnull(plant#1135692), coalesce(product#1135691, ), isnull(product#1135691)]
Right keys [4]: [coalesce(plant#1136170, ), isnull(plant#1136170), coalesce(product#1136169, ), isnull(product#1136169)]
Join type: LeftOuter
Join condition: None
(571) Project
Output [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Input [6]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095, product#1136169, plant#1136170]
(572) Exchange
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: hashpartitioning(plant#1135692, 37), ENSURE_REQUIREMENTS, [plan_id=1710864]
(573) Sort
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: [plant#1135692 ASC NULLS FIRST], false, 0
(574) Scan parquet
Output [2]: [marketUnit#1136562, distributionCenters#1136568]
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,Alert_Test1), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(575) Filter
Input [2]: [marketUnit#1136562, distributionCenters#1136568]
Condition : (((marketUnit#1136562 <=> Alert_Test1) AND (size(distributionCenters#1136568, true) > 0)) AND isnotnull(distributionCenters#1136568))
(576) Project
Output [1]: [distributionCenters#1136568]
Input [2]: [marketUnit#1136562, distributionCenters#1136568]
(577) Exchange
Input [1]: [distributionCenters#1136568]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710285]
(578) Generate
Input [1]: [distributionCenters#1136568]
Arguments: explode(distributionCenters#1136568), false, [distributionCenters#1136584]
(579) Filter
Input [1]: [distributionCenters#1136584]
Condition : (((size(distributionCenters#1136584.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1136584.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1136584.internalRefUUID))
(580) Project
Output [2]: [distributionCenters#1136584.internalRefUUID AS _extract_internalRefUUID#1136687, distributionCenters#1136584.storageLocations.internalRefUUID AS _extract_internalRefUUID#1136872]
Input [1]: [distributionCenters#1136584]
(581) Generate
Input [2]: [_extract_internalRefUUID#1136687, _extract_internalRefUUID#1136872]
Arguments: explode(_extract_internalRefUUID#1136872), [_extract_internalRefUUID#1136687], false, [storageLocations#1136585]
(582) Filter
Input [2]: [_extract_internalRefUUID#1136687, storageLocations#1136585]
Condition : isnotnull(storageLocations#1136585)
(583) Project
Output [2]: [_extract_internalRefUUID#1136687 AS plantUuid#1136587, storageLocations#1136585 AS storageLocUuid#1136589]
Input [2]: [_extract_internalRefUUID#1136687, storageLocations#1136585]
(584) BroadcastExchange
Input [2]: [plantUuid#1136587, storageLocUuid#1136589]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710859]
(585) Scan parquet
Output [2]: [product#1136590, plant#1136591]
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/10000001353/shardId=0_1_10000001353]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(586) Filter
Input [2]: [product#1136590, plant#1136591]
Condition : isnotnull(plant#1136591)
(587) Exchange
Input [2]: [product#1136590, plant#1136591]
Arguments: hashpartitioning(product#1136590, plant#1136591, 37), REPARTITION_BY_NUM, [plan_id=1710513]
(588) Scan parquet
Output [4]: [plant#1136596, product#1136597, productionAspect#1136599, systemId#1136594]
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>>>>
(589) Project
Output [4]: [plant#1136596.internalRefUUID AS _extract_internalRefUUID#1136876, product#1136597.internalRefUUID AS _extract_internalRefUUID#1136875, productionAspect#1136599.productMovementPlants.unitOfIssue.code AS _extract_code#1136873, productionAspect#1136599.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1136874]
Input [4]: [plant#1136596, product#1136597, productionAspect#1136599, systemId#1136594]
(590) Exchange
Input [4]: [_extract_internalRefUUID#1136876, _extract_internalRefUUID#1136875, _extract_code#1136873, _extract_internalRefUUID#1136874]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710298]
(591) Project
Output [4]: [_extract_code#1136873, _extract_internalRefUUID#1136874, _extract_internalRefUUID#1136875, _extract_internalRefUUID#1136876]
Input [4]: [_extract_internalRefUUID#1136876, _extract_internalRefUUID#1136875, _extract_code#1136873, _extract_internalRefUUID#1136874]
(592) BroadcastExchange
Input [4]: [_extract_code#1136873, _extract_internalRefUUID#1136874, _extract_internalRefUUID#1136875, _extract_internalRefUUID#1136876]
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=1710839]
(593) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136590, ), isnull(product#1136590), coalesce(plant#1136591, ), isnull(plant#1136591)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136875, ), isnull(_extract_internalRefUUID#1136875), coalesce(_extract_internalRefUUID#1136876, ), isnull(_extract_internalRefUUID#1136876)]
Join type: LeftOuter
Join condition: None
(594) Project
Output [4]: [product#1136590, plant#1136591, _extract_code#1136873, _extract_internalRefUUID#1136874]
Input [6]: [product#1136590, plant#1136591, _extract_code#1136873, _extract_internalRefUUID#1136874, _extract_internalRefUUID#1136875, _extract_internalRefUUID#1136876]
(595) Scan parquet
Output [2]: [internalUUID#1136604, systemId#1136603]
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>
(596) Project
Output [1]: [internalUUID#1136604]
Input [2]: [internalUUID#1136604, systemId#1136603]
(597) Exchange
Input [1]: [internalUUID#1136604]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710304]
(598) BroadcastExchange
Input [1]: [internalUUID#1136604]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710843]
(599) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1136591, ), isnull(plant#1136591)]
Right keys [2]: [coalesce(internalUUID#1136604, ), isnull(internalUUID#1136604)]
Join type: LeftOuter
Join condition: None
(600) Project
Output [4]: [product#1136590, plant#1136591, _extract_code#1136873, _extract_internalRefUUID#1136874]
Input [5]: [product#1136590, plant#1136591, _extract_code#1136873, _extract_internalRefUUID#1136874, internalUUID#1136604]
(601) Scan parquet
Output [4]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624, systemId#1136617]
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>>>
(602) Filter
Input [4]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624, systemId#1136617]
Condition : isnotnull(internalUUID#1136618)
(603) Project
Output [3]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624]
Input [4]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624, systemId#1136617]
(604) Exchange
Input [3]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710310]
(605) BroadcastExchange
Input [3]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710847]
(606) BroadcastHashJoin
Left keys [1]: [product#1136590]
Right keys [1]: [internalUUID#1136618]
Join type: LeftOuter
Join condition: None
(607) Project
Output [2]: [plant#1136591, filter(unitOfMeasureConversions#1136624, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136873) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136874)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136622.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136622.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136629]
Input [7]: [product#1136590, plant#1136591, _extract_code#1136873, _extract_internalRefUUID#1136874, internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624]
(608) Generate
Input [2]: [plant#1136591, filteredUnitOfMeasureConversions#1136629]
Arguments: explode(filteredUnitOfMeasureConversions#1136629.quantityNumerator), [plant#1136591, filteredUnitOfMeasureConversions#1136629], true, [quantityNumerator#1136630]
(609) Project
Output [2]: [plant#1136591, filteredUnitOfMeasureConversions#1136629.quantityDenominator AS _extract_quantityDenominator#1136689]
Input [3]: [plant#1136591, filteredUnitOfMeasureConversions#1136629, quantityNumerator#1136630]
(610) Generate
Input [2]: [plant#1136591, _extract_quantityDenominator#1136689]
Arguments: explode(_extract_quantityDenominator#1136689), [plant#1136591], true, [quantityDenominator#1136631]
(611) Project
Output [1]: [plant#1136591]
Input [2]: [plant#1136591, quantityDenominator#1136631]
(612) HashAggregate
Input [1]: [plant#1136591]
Keys [1]: [plant#1136591]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136591]
(613) Exchange
Input [1]: [plant#1136591]
Arguments: hashpartitioning(plant#1136591, 37), ENSURE_REQUIREMENTS, [plan_id=1710856]
(614) HashAggregate
Input [1]: [plant#1136591]
Keys [1]: [plant#1136591]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136591]
(615) BroadcastHashJoin
Left keys [1]: [plantUuid#1136587]
Right keys [1]: [plant#1136591]
Join type: Inner
Join condition: None
(616) Project
Output [2]: [plantUuid#1136587 AS plant#1136561, storageLocUuid#1136589]
Input [3]: [plantUuid#1136587, storageLocUuid#1136589, plant#1136591]
(617) Sort
Input [2]: [plant#1136561, storageLocUuid#1136589]
Arguments: [plant#1136561 ASC NULLS FIRST], false, 0
(618) SortMergeJoin
Left keys [1]: [plant#1135692]
Right keys [1]: [plant#1136561]
Join type: Inner
Join condition: None
(619) Project
Output [5]: [plant#1135692, product#1135691, timezonecode#1135723, stockDatetime#1136095, storageLocUuid#1136589]
Input [6]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095, plant#1136561, storageLocUuid#1136589]
(620) Filter
Input [6]: [internalUUID#1136523, id#1136524, supplier#1136526, isMarkedForDeletion#1136529, items#1136530, systemId#1136522]
Condition : (((isnotnull(isMarkedForDeletion#1136529) AND NOT isMarkedForDeletion#1136529) AND (size(items#1136530, true) > 0)) AND isnotnull(items#1136530))
(621) Project
Output [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Input [6]: [internalUUID#1136523, id#1136524, supplier#1136526, isMarkedForDeletion#1136529, items#1136530, systemId#1136522]
(622) Exchange
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710326]
(623) Generate
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: explode(items#1136530), [internalUUID#1136523, id#1136524, supplier#1136526], false, [item#1136534]
(624) Filter
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, item#1136534]
Condition : ((((isnotnull(item#1136534.deletionIndicator) AND isnotnull(item#1136534.completeIndicator)) AND isnotnull(item#1136534.returnIndicator)) AND ((NOT item#1136534.deletionIndicator AND NOT item#1136534.completeIndicator) AND NOT item#1136534.returnIndicator)) AND ((isnotnull(item#1136534.product.internalRefUUID) AND isnotnull(item#1136534.plant.internalRefUUID)) AND isnotnull(item#1136534.storageLocation.internalRefUUID)))
(625) Project
Output [14]: [id#1136524, internalUUID#1136523, supplier#1136526.internalRefUUID AS supplierUuid#1136531, item#1136534.plant.internalRefUUID AS plant#1136539, item#1136534.product.internalRefUUID AS product#1136540, item#1136534.plant.id AS externalPlantId#1136541, item#1136534.product.id AS externalProductId#1136542, item#1136534.storageLocation.internalRefUUID AS storageLocUuid#1136543, item#1136534.quantityUnit.code AS quantityUom#1136544, item#1136534.quantityUnit.internalRefUUID AS quantityUomUuid#1136545, item#1136534.quantityNumerator AS quantityNumerator#1136546, item#1136534.quantityDenominator AS quantityDenominator#1136547, item#1136534.scheduleLines AS scheduleLines#1136548, item#1136534.confirmations AS confirmations#1136549]
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, item#1136534]
(626) BroadcastExchange
Input [14]: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549]
Arguments: HashedRelationBroadcastMode(List(input[4, string, true], input[3, string, true], input[7, string, true]),false), [plan_id=1710870]
(627) BroadcastHashJoin
Left keys [3]: [product#1135691, plant#1135692, storageLocUuid#1136589]
Right keys [3]: [product#1136540, plant#1136539, storageLocUuid#1136543]
Join type: Inner
Join condition: None
(628) Project
Output [17]: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1136095, timezonecode#1135723, filter(confirmations#1136549, lambdafunction(((NOT lambda x_129#1136640.deletionIndicator AND lambda x_129#1136640.isRelevantForConfirmation) AND isnotnull(lambda x_129#1136640.confirmedDeliveryAt)), lambda x_129#1136640, false)) AS validConfirmations#1136639]
Input [19]: [plant#1135692, product#1135691, timezonecode#1135723, stockDatetime#1136095, storageLocUuid#1136589, id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549]
(629) AdaptiveSparkPlan
Output [17]: [id#1136524, internalUUID#1136523, supplierUuid#1136531, plant#1136539, product#1136540, externalPlantId#1136541, externalProductId#1136542, storageLocUuid#1136543, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, confirmations#1136549, stockDatetime#1136095, timezonecode#1135723, validConfirmations#1136639]
Arguments: isFinalPlan=true
(630) Project
Output [11]: [id#1136524, internalUUID#1136523, plant#1136539, product#1136540, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, validConfirmations#1136639, size(validConfirmations#1136639, false) AS _w0#1137656]
Input [10]: [id#1136524, internalUUID#1136523, plant#1136539, product#1136540, quantityDenominator#1136547, quantityNumerator#1136546, quantityUom#1136544, quantityUomUuid#1136545, scheduleLines#1136548, validConfirmations#1136639]
(631) Exchange
Input [11]: [id#1136524, internalUUID#1136523, plant#1136539, product#1136540, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, validConfirmations#1136639, _w0#1137656]
Arguments: hashpartitioning(internalUUID#1136523, 37), ENSURE_REQUIREMENTS, [plan_id=1710898]
(632) Sort
Input [11]: [id#1136524, internalUUID#1136523, plant#1136539, product#1136540, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, validConfirmations#1136639, _w0#1137656]
Arguments: [internalUUID#1136523 ASC NULLS FIRST], false, 0
(633) Window
Input [11]: [id#1136524, internalUUID#1136523, plant#1136539, product#1136540, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, validConfirmations#1136639, _w0#1137656]
Arguments: [sum(_w0#1137656) windowspecdefinition(internalUUID#1136523, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1137657L], [internalUUID#1136523]
(634) Project
Output [3]: [plant#1136539, product#1136540, filter(transform(CASE WHEN (_we0#1137657L > 0) THEN transform(validConfirmations#1136639, lambdafunction(struct(openQty, greatest((lambda x_131#1137652.confirmedQuantity - coalesce(lambda x_131#1137652.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_131#1137652.confirmedDeliveryAt), lambda x_131#1137652, false)) ELSE transform(scheduleLines#1136548, lambdafunction(struct(openQty, greatest((lambda x_130#1137653.quantity - coalesce(lambda x_130#1137653.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_130#1137653.deliveryAt), lambda x_130#1137653, false)) END, lambdafunction(struct(documentId, id#1136524, documentUuid, internalUUID#1136523, openQty, lambda x_132#1137654.openQty, openQtyInBaseUnit, ((lambda x_132#1137654.openQty * quantityNumerator#1136546) / quantityDenominator#1136547), qtyUom, quantityUom#1136544, qtyUomUuid, quantityUomUuid#1136545, availabilityDatetime, lambda x_132#1137654.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_132#1137654, false)), lambdafunction(NOT (lambda x_133#1137655.openQty = 0.0), lambda x_133#1137655, false)) AS openGoodsMovements#1137650]
Input [12]: [id#1136524, internalUUID#1136523, plant#1136539, product#1136540, quantityUom#1136544, quantityUomUuid#1136545, quantityNumerator#1136546, quantityDenominator#1136547, scheduleLines#1136548, validConfirmations#1136639, _w0#1137656, _we0#1137657L]
(635) ObjectHashAggregate
Input [3]: [plant#1136539, product#1136540, openGoodsMovements#1137650]
Keys [2]: [product#1136540, plant#1136539]
Functions [1]: [partial_collect_list(openGoodsMovements#1137650, 0, 0)]
Aggregate Attributes [1]: [buf#1137933]
Results [3]: [product#1136540, plant#1136539, buf#1137934]
(636) Exchange
Input [3]: [product#1136540, plant#1136539, buf#1137934]
Arguments: hashpartitioning(product#1136540, plant#1136539, 37), ENSURE_REQUIREMENTS, [plan_id=1710904]
(637) ObjectHashAggregate
Input [3]: [product#1136540, plant#1136539, buf#1137934]
Keys [2]: [product#1136540, plant#1136539]
Functions [1]: [collect_list(openGoodsMovements#1137650, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1137650, 0, 0)#1137677]
Results [3]: [product#1136540, plant#1136539, flatten(collect_list(openGoodsMovements#1137650, 0, 0)#1137677) AS openGoodsMovements#1137658]
(638) Filter
Input [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Condition : (size(openGoodsMovements#1137658, false) > 0)
(639) AdaptiveSparkPlan
Output [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Arguments: isFinalPlan=true
(640) TableCacheQueryStage
Output [3]: [openGoodsMovements#1137658, plant#1136539, product#1136540]
Arguments: 0
(641) Filter
Input [3]: [openGoodsMovements#1137658, plant#1136539, product#1136540]
Condition : (size(transform(openGoodsMovements#1137658, lambdafunction(struct(documentType, PO, documentId, lambda x_138#1152396.documentId, documentUuid, lambda x_138#1152396.documentUuid, openQty, lambda x_138#1152396.openQty, qtyUomUuid, lambda x_138#1152396.qtyUomUuid, qtyUom, lambda x_138#1152396.qtyUom, plannedDeliveryDatetime, lambda x_138#1152396.availabilityDatetime), lambda x_138#1152396, false)), false) > 0)
(642) Project
Output [4]: [product#1136540, plant#1136539 AS location#1152392, transform(openGoodsMovements#1137658, lambdafunction(struct(documentType, PO, documentId, lambda x_138#1152396.documentId, documentUuid, lambda x_138#1152396.documentUuid, openQty, lambda x_138#1152396.openQty, qtyUomUuid, lambda x_138#1152396.qtyUomUuid, qtyUom, lambda x_138#1152396.qtyUom, plannedDeliveryDatetime, lambda x_138#1152396.availabilityDatetime), lambda x_138#1152396, false)) AS documents#1152395, 10000001353 AS replenishmentRunId#1152397L]
Input [3]: [openGoodsMovements#1137658, plant#1136539, product#1136540]
(643) WriteFiles
Input [4]: [product#1136540, location#1152392, documents#1152395, replenishmentRunId#1152397L]
(644) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000001353/0_1_10000001353, false, Parquet, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000001353/0_1_10000001353], Append, [product, location, documents, replenishmentRunId]
(645) ResultQueryStage
Output: []
Arguments: 1
(646) Filter
Input [3]: [openGoodsMovements#1137658, plant#1136539, product#1136540]
Condition : (size(transform(openGoodsMovements#1137658, lambdafunction(struct(documentType, PO, documentId, lambda x_138#1152396.documentId, documentUuid, lambda x_138#1152396.documentUuid, openQty, lambda x_138#1152396.openQty, qtyUomUuid, lambda x_138#1152396.qtyUomUuid, qtyUom, lambda x_138#1152396.qtyUom, plannedDeliveryDatetime, lambda x_138#1152396.availabilityDatetime), lambda x_138#1152396, false)), false) > 0)
(647) Project
Output [4]: [product#1136540, plant#1136539 AS location#1152392, transform(openGoodsMovements#1137658, lambdafunction(struct(documentType, PO, documentId, lambda x_138#1152396.documentId, documentUuid, lambda x_138#1152396.documentUuid, openQty, lambda x_138#1152396.openQty, qtyUomUuid, lambda x_138#1152396.qtyUomUuid, qtyUom, lambda x_138#1152396.qtyUom, plannedDeliveryDatetime, lambda x_138#1152396.availabilityDatetime), lambda x_138#1152396, false)) AS documents#1152395, 10000001353 AS replenishmentRunId#1152397L]
Input [3]: [openGoodsMovements#1137658, plant#1136539, product#1136540]
(648) WriteFiles
Input [4]: [product#1136540, location#1152392, documents#1152395, replenishmentRunId#1152397L]
(649) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000001353/0_1_10000001353, false, Parquet, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000001353/0_1_10000001353], Append, [product, location, documents, replenishmentRunId]
(650) AdaptiveSparkPlan
Output: []
Arguments: isFinalPlan=true
===== Adaptively Optimized Out Exchanges =====
Subplan:1
Exchange (654)
+- * Project (653)
+- * Filter (652)
+- * ColumnarToRow (651)
+- Scan parquet (161)
(651) ColumnarToRow [codegen id : 6]
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
(652) Filter [codegen id : 6]
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
Condition : (((marketUnit#1135751 <=> Alert_Test1) AND (size(distributionCenters#1135757, true) > 0)) AND isnotnull(distributionCenters#1135757))
(653) Project [codegen id : 6]
Output [1]: [distributionCenters#1135757]
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
(654) Exchange
Input [1]: [distributionCenters#1135757]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727741]
Subplan:2
Exchange (680)
+- * HashAggregate (679)
+- * Project (678)
+- * Generate (677)
+- * Project (676)
+- * Generate (675)
+- Project (674)
+- * BroadcastHashJoin LeftOuter BuildRight (673)
:- * Project (670)
: +- * BroadcastHashJoin LeftOuter BuildRight (669)
: :- * Project (662)
: : +- * BroadcastHashJoin LeftOuter BuildRight (661)
: : :- ShuffleQueryStage (658), Statistics(sizeInBytes=6.5 KiB, rowCount=76)
: : : +- Exchange (657)
: : : +- * Filter (656)
: : : +- * ColumnarToRow (655)
: : : +- Scan parquet (171)
: : +- BroadcastQueryStage (660), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : +- ReusedExchange (659)
: +- BroadcastQueryStage (668), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: +- BroadcastExchange (667)
: +- ShuffleQueryStage (666), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: +- Exchange (665)
: +- * Project (664)
: +- * ColumnarToRow (663)
: +- Scan parquet (181)
+- BroadcastQueryStage (672), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
+- ReusedExchange (671)
(655) ColumnarToRow [codegen id : 7]
Input [2]: [product#1136047, plant#1136048]
(656) Filter [codegen id : 7]
Input [2]: [product#1136047, plant#1136048]
Condition : isnotnull(plant#1136048)
(657) Exchange
Input [2]: [product#1136047, plant#1136048]
Arguments: hashpartitioning(product#1136047, plant#1136048, 37), REPARTITION_BY_NUM, [plan_id=1727764]
(658) ShuffleQueryStage
Output [2]: [product#1136047, plant#1136048]
Arguments: 6
(659) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1136839, _extract_internalRefUUID#1136840, _extract_internalRefUUID#1136842, _extract_internalRefUUID#1136841]
(660) BroadcastQueryStage
Output [4]: [_extract_code#1136839, _extract_internalRefUUID#1136840, _extract_internalRefUUID#1136842, _extract_internalRefUUID#1136841]
Arguments: 120
(661) BroadcastHashJoin [codegen id : 73]
Left keys [4]: [coalesce(product#1136047, ), isnull(product#1136047), coalesce(plant#1136048, ), isnull(plant#1136048)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1136842, ), isnull(_extract_internalRefUUID#1136842), coalesce(_extract_internalRefUUID#1136841, ), isnull(_extract_internalRefUUID#1136841)]
Join type: LeftOuter
Join condition: None
(662) Project [codegen id : 73]
Output [4]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840]
Input [6]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840, _extract_internalRefUUID#1136842, _extract_internalRefUUID#1136841]
(663) ColumnarToRow [codegen id : 9]
Input [2]: [internalUUID#1136061, systemId#1136060]
(664) Project [codegen id : 9]
Output [1]: [internalUUID#1136061]
Input [2]: [internalUUID#1136061, systemId#1136060]
(665) Exchange
Input [1]: [internalUUID#1136061]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727801]
(666) ShuffleQueryStage
Output [1]: [internalUUID#1136061]
Arguments: 9
(667) BroadcastExchange
Input [1]: [internalUUID#1136061]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1738646]
(668) BroadcastQueryStage
Output [1]: [internalUUID#1136061]
Arguments: 137
(669) BroadcastHashJoin [codegen id : 73]
Left keys [2]: [coalesce(plant#1136048, ), isnull(plant#1136048)]
Right keys [2]: [coalesce(internalUUID#1136061, ), isnull(internalUUID#1136061)]
Join type: LeftOuter
Join condition: None
(670) Project [codegen id : 73]
Output [4]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840]
Input [5]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840, internalUUID#1136061]
(671) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
(672) BroadcastQueryStage
Output [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Arguments: 108
(673) BroadcastHashJoin [codegen id : 73]
Left keys [1]: [product#1136047]
Right keys [1]: [internalUUID#1136075]
Join type: LeftOuter
Join condition: None
(674) Project
Output [2]: [plant#1136048, filter(unitOfMeasureConversions#1136081, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1136839) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1136840)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1136079.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1136079.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1136086]
Input [7]: [product#1136047, plant#1136048, _extract_code#1136839, _extract_internalRefUUID#1136840, internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
(675) Generate [codegen id : 74]
Input [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086]
Arguments: explode(filteredUnitOfMeasureConversions#1136086.quantityNumerator), [plant#1136048, filteredUnitOfMeasureConversions#1136086], true, [quantityNumerator#1136087]
(676) Project [codegen id : 74]
Output [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086.quantityDenominator AS _extract_quantityDenominator#1136647]
Input [3]: [plant#1136048, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087]
(677) Generate [codegen id : 74]
Input [2]: [plant#1136048, _extract_quantityDenominator#1136647]
Arguments: explode(_extract_quantityDenominator#1136647), [plant#1136048], true, [quantityDenominator#1136088]
(678) Project [codegen id : 74]
Output [1]: [plant#1136048]
Input [2]: [plant#1136048, quantityDenominator#1136088]
(679) HashAggregate [codegen id : 74]
Input [1]: [plant#1136048]
Keys [1]: [plant#1136048]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136048]
(680) Exchange
Input [1]: [plant#1136048]
Arguments: hashpartitioning(plant#1136048, 37), ENSURE_REQUIREMENTS, [plan_id=1755334]