== Physical Plan ==
AdaptiveSparkPlan (2619)
+- == Current Plan ==
ResultQueryStage (139)
+- * Project (138)
+- * BroadcastHashJoin LeftOuter BuildRight (137)
:- * Project (98)
: +- * Project (97)
: +- AQEShuffleRead (96)
: +- ShuffleQueryStage (95), Statistics(sizeInBytes=24.9 KiB, rowCount=76)
: +- Exchange (94)
: +- * Project (93)
: +- * BroadcastHashJoin LeftOuter BuildRight (92)
: :- AQEShuffleRead (43)
: : +- ShuffleQueryStage (42), Statistics(sizeInBytes=10.1 KiB, rowCount=76)
: : +- Exchange (41)
: : +- * Project (40)
: : +- * Project (39)
: : +- * Project (38)
: : +- * Project (37)
: : +- * Generate (36)
: : +- * Generate (35)
: : +- * Project (34)
: : +- Project (33)
: : +- * BroadcastHashJoin LeftOuter BuildRight (32)
: : :- * Project (23)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (22)
: : : :- * Project (14)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (13)
: : : : :- ShuffleQueryStage (4), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : +- Exchange (3)
: : : : : +- * ColumnarToRow (2)
: : : : : +- Scan parquet (1)
: : : : +- BroadcastQueryStage (12), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : +- BroadcastExchange (11)
: : : : +- * Project (10)
: : : : +- ShuffleQueryStage (9), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : +- Exchange (8)
: : : : +- * Project (7)
: : : : +- * ColumnarToRow (6)
: : : : +- Scan parquet (5)
: : : +- BroadcastQueryStage (21), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : +- BroadcastExchange (20)
: : : +- ShuffleQueryStage (19), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: : : +- Exchange (18)
: : : +- * Project (17)
: : : +- * ColumnarToRow (16)
: : : +- Scan parquet (15)
: : +- BroadcastQueryStage (31), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : +- BroadcastExchange (30)
: : +- ShuffleQueryStage (29), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : +- Exchange (28)
: : +- * Project (27)
: : +- * Filter (26)
: : +- * ColumnarToRow (25)
: : +- Scan parquet (24)
: +- BroadcastQueryStage (91), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: +- BroadcastExchange (90)
: +- AQEShuffleRead (89)
: +- ShuffleQueryStage (88), Statistics(sizeInBytes=21.4 KiB, rowCount=76)
: +- Exchange (87)
: +- * SerializeFromObject (86)
: +- * MapElements (85)
: +- * DeserializeToObject (84)
: +- ObjectHashAggregate (83)
: +- ObjectHashAggregate (82)
: +- * Project (81)
: +- * BroadcastHashJoin LeftOuter BuildRight (80)
: :- * Project (74)
: : +- * Project (73)
: : +- * Project (72)
: : +- * Project (71)
: : +- * Generate (70)
: : +- * Generate (69)
: : +- * Project (68)
: : +- Project (67)
: : +- * BroadcastHashJoin LeftOuter BuildRight (66)
: : :- * Project (63)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (62)
: : : :- * BroadcastHashJoin LeftOuter BuildRight (54)
: : : : :- ShuffleQueryStage (45), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : +- ReusedExchange (44)
: : : : +- BroadcastQueryStage (53), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : +- BroadcastExchange (52)
: : : : +- * Project (51)
: : : : +- ShuffleQueryStage (50), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : +- Exchange (49)
: : : : +- * Project (48)
: : : : +- * ColumnarToRow (47)
: : : : +- Scan parquet (46)
: : : +- BroadcastQueryStage (61), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : +- BroadcastExchange (60)
: : : +- ShuffleQueryStage (59), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : +- Exchange (58)
: : : +- * Project (57)
: : : +- * ColumnarToRow (56)
: : : +- Scan parquet (55)
: : +- BroadcastQueryStage (65), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : +- ReusedExchange (64)
: +- BroadcastQueryStage (79), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: +- BroadcastExchange (78)
: +- * Filter (77)
: +- * ColumnarToRow (76)
: +- Scan parquet (75)
+- BroadcastQueryStage (136), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
+- BroadcastExchange (135)
+- * Filter (134)
+- * SerializeFromObject (133)
+- * MapElements (132)
+- * DeserializeToObject (131)
+- Project (130)
+- * Project (129)
+- AQEShuffleRead (128)
+- ShuffleQueryStage (127), Statistics(sizeInBytes=87.5 KiB, rowCount=76)
+- Exchange (126)
+- * Project (125)
+- * BroadcastHashJoin LeftOuter BuildRight (124)
:- AQEShuffleRead (121)
: +- ShuffleQueryStage (120), Statistics(sizeInBytes=72.7 KiB, rowCount=76)
: +- Exchange (119)
: +- * Project (118)
: +- * Project (117)
: +- * Project (116)
: +- * Project (115)
: +- * Generate (114)
: +- * Generate (113)
: +- * Project (112)
: +- Project (111)
: +- * BroadcastHashJoin LeftOuter BuildRight (110)
: :- * Project (107)
: : +- * BroadcastHashJoin LeftOuter BuildRight (106)
: : :- * BroadcastHashJoin LeftOuter BuildRight (103)
: : : :- ShuffleQueryStage (100), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : +- ReusedExchange (99)
: : : +- BroadcastQueryStage (102), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : +- ReusedExchange (101)
: : +- BroadcastQueryStage (105), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : +- ReusedExchange (104)
: +- BroadcastQueryStage (109), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: +- ReusedExchange (108)
+- BroadcastQueryStage (123), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
+- ReusedExchange (122)
+- == Initial Plan ==
Project (2618)
+- SortMergeJoin LeftOuter (2617)
:- Project (1690)
: +- SortMergeJoin LeftOuter (1689)
: :- Sort (581)
: : +- Exchange (580)
: : +- Project (579)
: : +- SortMergeJoin LeftOuter (578)
: : :- Sort (353)
: : : +- Exchange (352)
: : : +- Project (351)
: : : +- SortMergeJoin LeftOuter (350)
: : : :- Sort (163)
: : : : +- Project (162)
: : : : +- Project (161)
: : : : +- Generate (160)
: : : : +- Generate (159)
: : : : +- Project (158)
: : : : +- Project (157)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (156)
: : : : :- Project (151)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (150)
: : : : : :- Project (146)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (145)
: : : : : : :- Exchange (140)
: : : : : : : +- Scan parquet (1)
: : : : : : +- BroadcastExchange (144)
: : : : : : +- Project (143)
: : : : : : +- Exchange (142)
: : : : : : +- Project (141)
: : : : : : +- Scan parquet (5)
: : : : : +- BroadcastExchange (149)
: : : : : +- Exchange (148)
: : : : : +- Project (147)
: : : : : +- Scan parquet (15)
: : : : +- BroadcastExchange (155)
: : : : +- Exchange (154)
: : : : +- Project (153)
: : : : +- Filter (152)
: : : : +- Scan parquet (24)
: : : +- Sort (349)
: : : +- HashAggregate (348)
: : : +- Exchange (347)
: : : +- HashAggregate (346)
: : : +- Project (345)
: : : +- SortMergeJoin Inner (344)
: : : :- Sort (252)
: : : : +- Exchange (251)
: : : : +- Project (250)
: : : : +- SortMergeJoin Inner (249)
: : : : :- Sort (220)
: : : : : +- Exchange (219)
: : : : : +- Project (218)
: : : : : +- Filter (217)
: : : : : +- Generate (216)
: : : : : +- Filter (215)
: : : : : +- ObjectHashAggregate (214)
: : : : : +- ObjectHashAggregate (213)
: : : : : +- Generate (212)
: : : : : +- BroadcastHashJoin Inner BuildLeft (211)
: : : : : :- BroadcastExchange (168)
: : : : : : +- Exchange (167)
: : : : : : +- Project (166)
: : : : : : +- Filter (165)
: : : : : : +- Scan parquet (164)
: : : : : +- Project (210)
: : : : : +- BroadcastHashJoin Inner BuildLeft (209)
: : : : : :- BroadcastExchange (178)
: : : : : : +- Project (177)
: : : : : : +- Generate (176)
: : : : : : +- Project (175)
: : : : : : +- Filter (174)
: : : : : : +- Generate (173)
: : : : : : +- Exchange (172)
: : : : : : +- Project (171)
: : : : : : +- Filter (170)
: : : : : : +- Scan parquet (169)
: : : : : +- HashAggregate (208)
: : : : : +- Exchange (207)
: : : : : +- HashAggregate (206)
: : : : : +- Project (205)
: : : : : +- Generate (204)
: : : : : +- Project (203)
: : : : : +- Generate (202)
: : : : : +- Project (201)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (200)
: : : : : :- Project (194)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (193)
: : : : : : :- Project (188)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (187)
: : : : : : : :- Exchange (181)
: : : : : : : : +- Filter (180)
: : : : : : : : +- Scan parquet (179)
: : : : : : : +- BroadcastExchange (186)
: : : : : : : +- Project (185)
: : : : : : : +- Exchange (184)
: : : : : : : +- Project (183)
: : : : : : : +- Scan parquet (182)
: : : : : : +- BroadcastExchange (192)
: : : : : : +- Exchange (191)
: : : : : : +- Project (190)
: : : : : : +- Scan parquet (189)
: : : : : +- BroadcastExchange (199)
: : : : : +- Exchange (198)
: : : : : +- Project (197)
: : : : : +- Filter (196)
: : : : : +- Scan parquet (195)
: : : : +- Sort (248)
: : : : +- Project (247)
: : : : +- Generate (246)
: : : : +- Project (245)
: : : : +- Generate (244)
: : : : +- Project (243)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (242)
: : : : :- Project (236)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (235)
: : : : : :- Project (230)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (229)
: : : : : : :- Exchange (223)
: : : : : : : +- Filter (222)
: : : : : : : +- Scan parquet (221)
: : : : : : +- BroadcastExchange (228)
: : : : : : +- Project (227)
: : : : : : +- Exchange (226)
: : : : : : +- Project (225)
: : : : : : +- Scan parquet (224)
: : : : : +- BroadcastExchange (234)
: : : : : +- Exchange (233)
: : : : : +- Project (232)
: : : : : +- Scan parquet (231)
: : : : +- BroadcastExchange (241)
: : : : +- Exchange (240)
: : : : +- Project (239)
: : : : +- Filter (238)
: : : : +- Scan parquet (237)
: : : +- Sort (343)
: : : +- Exchange (342)
: : : +- HashAggregate (341)
: : : +- HashAggregate (340)
: : : +- Project (339)
: : : +- SortMergeJoin Inner (338)
: : : :- Sort (309)
: : : : +- Exchange (308)
: : : : +- Project (307)
: : : : +- Filter (306)
: : : : +- Generate (305)
: : : : +- Filter (304)
: : : : +- ObjectHashAggregate (303)
: : : : +- ObjectHashAggregate (302)
: : : : +- Generate (301)
: : : : +- BroadcastHashJoin Inner BuildLeft (300)
: : : : :- BroadcastExchange (257)
: : : : : +- Exchange (256)
: : : : : +- Project (255)
: : : : : +- Filter (254)
: : : : : +- Scan parquet (253)
: : : : +- Project (299)
: : : : +- BroadcastHashJoin Inner BuildLeft (298)
: : : : :- BroadcastExchange (267)
: : : : : +- Project (266)
: : : : : +- Generate (265)
: : : : : +- Project (264)
: : : : : +- Filter (263)
: : : : : +- Generate (262)
: : : : : +- Exchange (261)
: : : : : +- Project (260)
: : : : : +- Filter (259)
: : : : : +- Scan parquet (258)
: : : : +- HashAggregate (297)
: : : : +- Exchange (296)
: : : : +- HashAggregate (295)
: : : : +- Project (294)
: : : : +- Generate (293)
: : : : +- Project (292)
: : : : +- Generate (291)
: : : : +- Project (290)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (289)
: : : : :- Project (283)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (282)
: : : : : :- Project (277)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (276)
: : : : : : :- Exchange (270)
: : : : : : : +- Filter (269)
: : : : : : : +- Scan parquet (268)
: : : : : : +- BroadcastExchange (275)
: : : : : : +- Project (274)
: : : : : : +- Exchange (273)
: : : : : : +- Project (272)
: : : : : : +- Scan parquet (271)
: : : : : +- BroadcastExchange (281)
: : : : : +- Exchange (280)
: : : : : +- Project (279)
: : : : : +- Scan parquet (278)
: : : : +- BroadcastExchange (288)
: : : : +- Exchange (287)
: : : : +- Project (286)
: : : : +- Filter (285)
: : : : +- Scan parquet (284)
: : : +- Sort (337)
: : : +- Project (336)
: : : +- Generate (335)
: : : +- Project (334)
: : : +- Generate (333)
: : : +- Project (332)
: : : +- BroadcastHashJoin LeftOuter BuildRight (331)
: : : :- Project (325)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (324)
: : : : :- Project (319)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (318)
: : : : : :- Exchange (312)
: : : : : : +- Filter (311)
: : : : : : +- Scan parquet (310)
: : : : : +- BroadcastExchange (317)
: : : : : +- Project (316)
: : : : : +- Exchange (315)
: : : : : +- Project (314)
: : : : : +- Scan parquet (313)
: : : : +- BroadcastExchange (323)
: : : : +- Exchange (322)
: : : : +- Project (321)
: : : : +- Scan parquet (320)
: : : +- BroadcastExchange (330)
: : : +- Exchange (329)
: : : +- Project (328)
: : : +- Filter (327)
: : : +- Scan parquet (326)
: : +- Sort (577)
: : +- Exchange (576)
: : +- SerializeFromObject (575)
: : +- MapElements (574)
: : +- DeserializeToObject (573)
: : +- ObjectHashAggregate (572)
: : +- ObjectHashAggregate (571)
: : +- Project (570)
: : +- BroadcastHashJoin LeftOuter BuildRight (569)
: : :- Project (566)
: : : +- SortMergeJoin LeftOuter (565)
: : : :- Sort (378)
: : : : +- Project (377)
: : : : +- Project (376)
: : : : +- Generate (375)
: : : : +- Generate (374)
: : : : +- Project (373)
: : : : +- Project (372)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (371)
: : : : :- Project (365)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (364)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (360)
: : : : : : :- Exchange (355)
: : : : : : : +- Scan parquet (354)
: : : : : : +- BroadcastExchange (359)
: : : : : : +- Project (358)
: : : : : : +- Exchange (357)
: : : : : : +- Project (356)
: : : : : : +- Scan parquet (46)
: : : : : +- BroadcastExchange (363)
: : : : : +- Exchange (362)
: : : : : +- Project (361)
: : : : : +- Scan parquet (55)
: : : : +- BroadcastExchange (370)
: : : : +- Exchange (369)
: : : : +- Project (368)
: : : : +- Filter (367)
: : : : +- Scan parquet (366)
: : : +- Sort (564)
: : : +- HashAggregate (563)
: : : +- Exchange (562)
: : : +- HashAggregate (561)
: : : +- Project (560)
: : : +- SortMergeJoin Inner (559)
: : : :- Sort (467)
: : : : +- Exchange (466)
: : : : +- Project (465)
: : : : +- SortMergeJoin Inner (464)
: : : : :- Sort (435)
: : : : : +- Exchange (434)
: : : : : +- Project (433)
: : : : : +- Filter (432)
: : : : : +- Generate (431)
: : : : : +- Filter (430)
: : : : : +- ObjectHashAggregate (429)
: : : : : +- ObjectHashAggregate (428)
: : : : : +- Generate (427)
: : : : : +- BroadcastHashJoin Inner BuildLeft (426)
: : : : : :- BroadcastExchange (383)
: : : : : : +- Exchange (382)
: : : : : : +- Project (381)
: : : : : : +- Filter (380)
: : : : : : +- Scan parquet (379)
: : : : : +- Project (425)
: : : : : +- BroadcastHashJoin Inner BuildLeft (424)
: : : : : :- BroadcastExchange (393)
: : : : : : +- Project (392)
: : : : : : +- Generate (391)
: : : : : : +- Project (390)
: : : : : : +- Filter (389)
: : : : : : +- Generate (388)
: : : : : : +- Exchange (387)
: : : : : : +- Project (386)
: : : : : : +- Filter (385)
: : : : : : +- Scan parquet (384)
: : : : : +- HashAggregate (423)
: : : : : +- Exchange (422)
: : : : : +- HashAggregate (421)
: : : : : +- Project (420)
: : : : : +- Generate (419)
: : : : : +- Project (418)
: : : : : +- Generate (417)
: : : : : +- Project (416)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (415)
: : : : : :- Project (409)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (408)
: : : : : : :- Project (403)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (402)
: : : : : : : :- Exchange (396)
: : : : : : : : +- Filter (395)
: : : : : : : : +- Scan parquet (394)
: : : : : : : +- BroadcastExchange (401)
: : : : : : : +- Project (400)
: : : : : : : +- Exchange (399)
: : : : : : : +- Project (398)
: : : : : : : +- Scan parquet (397)
: : : : : : +- BroadcastExchange (407)
: : : : : : +- Exchange (406)
: : : : : : +- Project (405)
: : : : : : +- Scan parquet (404)
: : : : : +- BroadcastExchange (414)
: : : : : +- Exchange (413)
: : : : : +- Project (412)
: : : : : +- Filter (411)
: : : : : +- Scan parquet (410)
: : : : +- Sort (463)
: : : : +- Project (462)
: : : : +- Generate (461)
: : : : +- Project (460)
: : : : +- Generate (459)
: : : : +- Project (458)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (457)
: : : : :- Project (451)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (450)
: : : : : :- Project (445)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (444)
: : : : : : :- Exchange (438)
: : : : : : : +- Filter (437)
: : : : : : : +- Scan parquet (436)
: : : : : : +- BroadcastExchange (443)
: : : : : : +- Project (442)
: : : : : : +- Exchange (441)
: : : : : : +- Project (440)
: : : : : : +- Scan parquet (439)
: : : : : +- BroadcastExchange (449)
: : : : : +- Exchange (448)
: : : : : +- Project (447)
: : : : : +- Scan parquet (446)
: : : : +- BroadcastExchange (456)
: : : : +- Exchange (455)
: : : : +- Project (454)
: : : : +- Filter (453)
: : : : +- Scan parquet (452)
: : : +- Sort (558)
: : : +- Exchange (557)
: : : +- HashAggregate (556)
: : : +- HashAggregate (555)
: : : +- Project (554)
: : : +- SortMergeJoin Inner (553)
: : : :- Sort (524)
: : : : +- Exchange (523)
: : : : +- Project (522)
: : : : +- Filter (521)
: : : : +- Generate (520)
: : : : +- Filter (519)
: : : : +- ObjectHashAggregate (518)
: : : : +- ObjectHashAggregate (517)
: : : : +- Generate (516)
: : : : +- BroadcastHashJoin Inner BuildLeft (515)
: : : : :- BroadcastExchange (472)
: : : : : +- Exchange (471)
: : : : : +- Project (470)
: : : : : +- Filter (469)
: : : : : +- Scan parquet (468)
: : : : +- Project (514)
: : : : +- BroadcastHashJoin Inner BuildLeft (513)
: : : : :- BroadcastExchange (482)
: : : : : +- Project (481)
: : : : : +- Generate (480)
: : : : : +- Project (479)
: : : : : +- Filter (478)
: : : : : +- Generate (477)
: : : : : +- Exchange (476)
: : : : : +- Project (475)
: : : : : +- Filter (474)
: : : : : +- Scan parquet (473)
: : : : +- HashAggregate (512)
: : : : +- Exchange (511)
: : : : +- HashAggregate (510)
: : : : +- Project (509)
: : : : +- Generate (508)
: : : : +- Project (507)
: : : : +- Generate (506)
: : : : +- Project (505)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (504)
: : : : :- Project (498)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (497)
: : : : : :- Project (492)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (491)
: : : : : : :- Exchange (485)
: : : : : : : +- Filter (484)
: : : : : : : +- Scan parquet (483)
: : : : : : +- BroadcastExchange (490)
: : : : : : +- Project (489)
: : : : : : +- Exchange (488)
: : : : : : +- Project (487)
: : : : : : +- Scan parquet (486)
: : : : : +- BroadcastExchange (496)
: : : : : +- Exchange (495)
: : : : : +- Project (494)
: : : : : +- Scan parquet (493)
: : : : +- BroadcastExchange (503)
: : : : +- Exchange (502)
: : : : +- Project (501)
: : : : +- Filter (500)
: : : : +- Scan parquet (499)
: : : +- Sort (552)
: : : +- Project (551)
: : : +- Generate (550)
: : : +- Project (549)
: : : +- Generate (548)
: : : +- Project (547)
: : : +- BroadcastHashJoin LeftOuter BuildRight (546)
: : : :- Project (540)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (539)
: : : : :- Project (534)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (533)
: : : : : :- Exchange (527)
: : : : : : +- Filter (526)
: : : : : : +- Scan parquet (525)
: : : : : +- BroadcastExchange (532)
: : : : : +- Project (531)
: : : : : +- Exchange (530)
: : : : : +- Project (529)
: : : : : +- Scan parquet (528)
: : : : +- BroadcastExchange (538)
: : : : +- Exchange (537)
: : : : +- Project (536)
: : : : +- Scan parquet (535)
: : : +- BroadcastExchange (545)
: : : +- Exchange (544)
: : : +- Project (543)
: : : +- Filter (542)
: : : +- Scan parquet (541)
: : +- BroadcastExchange (568)
: : +- Filter (567)
: : +- Scan parquet (75)
: +- Sort (1688)
: +- Project (1687)
: +- ObjectHashAggregate (1686)
: +- Exchange (1685)
: +- ObjectHashAggregate (1684)
: +- Union (1683)
: :- Filter (1221)
: : +- InMemoryTableScan (582)
: : +- InMemoryRelation (583)
: : +- AdaptiveSparkPlan (1220)
+- == Final Plan ==
ResultQueryStage (585)
+- EmptyRelation (584)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (1219)
+- ObjectHashAggregate (1218)
+- Exchange (1217)
+- ObjectHashAggregate (1216)
+- Project (1215)
+- Window (1214)
+- Sort (1213)
+- Exchange (1212)
+- Project (1211)
+- InMemoryTableScan (586)
+- InMemoryRelation (587)
+- AdaptiveSparkPlan (1210)
+- == Final Plan ==
ResultQueryStage (712)
+- Project (711)
+- * BroadcastHashJoin Inner BuildRight (710)
:- * Project (698)
: +- * SortMergeJoin Inner (697)
: :- * Sort (680)
: : +- ShuffleQueryStage (679), Statistics(sizeInBytes=8.9 KiB, rowCount=76)
: : +- Exchange (678)
: : +- * Project (677)
: : +- * BroadcastHashJoin LeftOuter BuildRight (676)
: : :- AQEShuffleRead (630)
: : : +- ShuffleQueryStage (629), Statistics(sizeInBytes=8.9 KiB, rowCount=76)
: : : +- Exchange (628)
: : : +- * Project (627)
: : : +- * Project (626)
: : : +- * Project (625)
: : : +- * Generate (624)
: : : +- * Project (623)
: : : +- * Generate (622)
: : : +- Project (621)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (620)
: : : :- * Project (611)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (610)
: : : : :- * Project (602)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (601)
: : : : : :- ShuffleQueryStage (592), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : : +- Exchange (591)
: : : : : : +- * Filter (590)
: : : : : : +- * ColumnarToRow (589)
: : : : : : +- Scan parquet (588)
: : : : : +- BroadcastQueryStage (600), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (599)
: : : : : +- * Project (598)
: : : : : +- ShuffleQueryStage (597), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (596)
: : : : : +- * Project (595)
: : : : : +- * ColumnarToRow (594)
: : : : : +- Scan parquet (593)
: : : : +- BroadcastQueryStage (609), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- BroadcastExchange (608)
: : : : +- ShuffleQueryStage (607), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : +- Exchange (606)
: : : : +- * Project (605)
: : : : +- * ColumnarToRow (604)
: : : : +- Scan parquet (603)
: : : +- BroadcastQueryStage (619), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- BroadcastExchange (618)
: : : +- ShuffleQueryStage (617), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : +- Exchange (616)
: : : +- * Project (615)
: : : +- * Filter (614)
: : : +- * ColumnarToRow (613)
: : : +- Scan parquet (612)
: : +- BroadcastQueryStage (675), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: : +- BroadcastExchange (674)
: : +- AQEShuffleRead (673)
: : +- ShuffleQueryStage (672), Statistics(sizeInBytes=6.5 KiB, rowCount=76)
: : +- Exchange (671)
: : +- * SerializeFromObject (670)
: : +- * MapElements (669)
: : +- * DeserializeToObject (668)
: : +- ObjectHashAggregate (667)
: : +- ObjectHashAggregate (666)
: : +- * Project (665)
: : +- * BroadcastHashJoin LeftOuter BuildRight (664)
: : :- * Project (658)
: : : +- * Project (657)
: : : +- * Project (656)
: : : +- * Project (655)
: : : +- * Generate (654)
: : : +- * Generate (653)
: : : +- * Project (652)
: : : +- Project (651)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (650)
: : : :- * Project (647)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (646)
: : : : :- * BroadcastHashJoin LeftOuter BuildRight (643)
: : : : : :- ShuffleQueryStage (634), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : : +- Exchange (633)
: : : : : : +- * ColumnarToRow (632)
: : : : : : +- Scan parquet (631)
: : : : : +- BroadcastQueryStage (642), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (641)
: : : : : +- * Project (640)
: : : : : +- ShuffleQueryStage (639), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (638)
: : : : : +- * Project (637)
: : : : : +- * ColumnarToRow (636)
: : : : : +- Scan parquet (635)
: : : : +- BroadcastQueryStage (645), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (644)
: : : +- BroadcastQueryStage (649), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (648)
: : +- BroadcastQueryStage (663), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: : +- BroadcastExchange (662)
: : +- * Filter (661)
: : +- * ColumnarToRow (660)
: : +- Scan parquet (659)
: +- * Sort (696)
: +- * Project (695)
: +- * BroadcastHashJoin Inner BuildLeft (694)
: :- BroadcastQueryStage (690), Statistics(sizeInBytes=2.0 MiB, rowCount=11)
: : +- BroadcastExchange (689)
: : +- * Project (688)
: : +- * Filter (687)
: : +- * Generate (686)
: : +- * Project (685)
: : +- * Filter (684)
: : +- * Generate (683)
: : +- ShuffleQueryStage (682), Statistics(sizeInBytes=1880.0 B, rowCount=1)
: : +- ReusedExchange (681)
: +- * HashAggregate (693)
: +- ShuffleQueryStage (692), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: +- ReusedExchange (691)
+- BroadcastQueryStage (709), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (708)
+- * Project (707)
+- * Filter (706)
+- * Generate (705)
+- ShuffleQueryStage (704), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (703)
+- * Project (702)
+- * Filter (701)
+- * ColumnarToRow (700)
+- Scan parquet (699)
+- == Initial Plan ==
Project (1209)
+- BroadcastHashJoin Inner BuildRight (1208)
:- Project (1200)
: +- SortMergeJoin Inner (1199)
: :- Sort (1154)
: : +- Exchange (1153)
: : +- Project (1152)
: : +- SortMergeJoin LeftOuter (1151)
: : :- Sort (926)
: : : +- Exchange (925)
: : : +- Project (924)
: : : +- SortMergeJoin LeftOuter (923)
: : : :- Sort (736)
: : : : +- Project (735)
: : : : +- Generate (734)
: : : : +- Project (733)
: : : : +- Generate (732)
: : : : +- Project (731)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (730)
: : : : :- Project (725)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (724)
: : : : : :- Project (720)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (719)
: : : : : : :- Exchange (714)
: : : : : : : +- Filter (713)
: : : : : : : +- Scan parquet (588)
: : : : : : +- BroadcastExchange (718)
: : : : : : +- Project (717)
: : : : : : +- Exchange (716)
: : : : : : +- Project (715)
: : : : : : +- Scan parquet (593)
: : : : : +- BroadcastExchange (723)
: : : : : +- Exchange (722)
: : : : : +- Project (721)
: : : : : +- Scan parquet (603)
: : : : +- BroadcastExchange (729)
: : : : +- Exchange (728)
: : : : +- Project (727)
: : : : +- Filter (726)
: : : : +- Scan parquet (612)
: : : +- Sort (922)
: : : +- HashAggregate (921)
: : : +- Exchange (920)
: : : +- HashAggregate (919)
: : : +- Project (918)
: : : +- SortMergeJoin Inner (917)
: : : :- Sort (825)
: : : : +- Exchange (824)
: : : : +- Project (823)
: : : : +- SortMergeJoin Inner (822)
: : : : :- Sort (793)
: : : : : +- Exchange (792)
: : : : : +- Project (791)
: : : : : +- Filter (790)
: : : : : +- Generate (789)
: : : : : +- Filter (788)
: : : : : +- ObjectHashAggregate (787)
: : : : : +- ObjectHashAggregate (786)
: : : : : +- Generate (785)
: : : : : +- BroadcastHashJoin Inner BuildLeft (784)
: : : : : :- BroadcastExchange (741)
: : : : : : +- Exchange (740)
: : : : : : +- Project (739)
: : : : : : +- Filter (738)
: : : : : : +- Scan parquet (737)
: : : : : +- Project (783)
: : : : : +- BroadcastHashJoin Inner BuildLeft (782)
: : : : : :- BroadcastExchange (751)
: : : : : : +- Project (750)
: : : : : : +- Generate (749)
: : : : : : +- Project (748)
: : : : : : +- Filter (747)
: : : : : : +- Generate (746)
: : : : : : +- Exchange (745)
: : : : : : +- Project (744)
: : : : : : +- Filter (743)
: : : : : : +- Scan parquet (742)
: : : : : +- HashAggregate (781)
: : : : : +- Exchange (780)
: : : : : +- HashAggregate (779)
: : : : : +- Project (778)
: : : : : +- Generate (777)
: : : : : +- Project (776)
: : : : : +- Generate (775)
: : : : : +- Project (774)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (773)
: : : : : :- Project (767)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (766)
: : : : : : :- Project (761)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (760)
: : : : : : : :- Exchange (754)
: : : : : : : : +- Filter (753)
: : : : : : : : +- Scan parquet (752)
: : : : : : : +- BroadcastExchange (759)
: : : : : : : +- Project (758)
: : : : : : : +- Exchange (757)
: : : : : : : +- Project (756)
: : : : : : : +- Scan parquet (755)
: : : : : : +- BroadcastExchange (765)
: : : : : : +- Exchange (764)
: : : : : : +- Project (763)
: : : : : : +- Scan parquet (762)
: : : : : +- BroadcastExchange (772)
: : : : : +- Exchange (771)
: : : : : +- Project (770)
: : : : : +- Filter (769)
: : : : : +- Scan parquet (768)
: : : : +- Sort (821)
: : : : +- Project (820)
: : : : +- Generate (819)
: : : : +- Project (818)
: : : : +- Generate (817)
: : : : +- Project (816)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (815)
: : : : :- Project (809)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (808)
: : : : : :- Project (803)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (802)
: : : : : : :- Exchange (796)
: : : : : : : +- Filter (795)
: : : : : : : +- Scan parquet (794)
: : : : : : +- BroadcastExchange (801)
: : : : : : +- Project (800)
: : : : : : +- Exchange (799)
: : : : : : +- Project (798)
: : : : : : +- Scan parquet (797)
: : : : : +- BroadcastExchange (807)
: : : : : +- Exchange (806)
: : : : : +- Project (805)
: : : : : +- Scan parquet (804)
: : : : +- BroadcastExchange (814)
: : : : +- Exchange (813)
: : : : +- Project (812)
: : : : +- Filter (811)
: : : : +- Scan parquet (810)
: : : +- Sort (916)
: : : +- Exchange (915)
: : : +- HashAggregate (914)
: : : +- HashAggregate (913)
: : : +- Project (912)
: : : +- SortMergeJoin Inner (911)
: : : :- Sort (882)
: : : : +- Exchange (881)
: : : : +- Project (880)
: : : : +- Filter (879)
: : : : +- Generate (878)
: : : : +- Filter (877)
: : : : +- ObjectHashAggregate (876)
: : : : +- ObjectHashAggregate (875)
: : : : +- Generate (874)
: : : : +- BroadcastHashJoin Inner BuildLeft (873)
: : : : :- BroadcastExchange (830)
: : : : : +- Exchange (829)
: : : : : +- Project (828)
: : : : : +- Filter (827)
: : : : : +- Scan parquet (826)
: : : : +- Project (872)
: : : : +- BroadcastHashJoin Inner BuildLeft (871)
: : : : :- BroadcastExchange (840)
: : : : : +- Project (839)
: : : : : +- Generate (838)
: : : : : +- Project (837)
: : : : : +- Filter (836)
: : : : : +- Generate (835)
: : : : : +- Exchange (834)
: : : : : +- Project (833)
: : : : : +- Filter (832)
: : : : : +- Scan parquet (831)
: : : : +- HashAggregate (870)
: : : : +- Exchange (869)
: : : : +- HashAggregate (868)
: : : : +- Project (867)
: : : : +- Generate (866)
: : : : +- Project (865)
: : : : +- Generate (864)
: : : : +- Project (863)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (862)
: : : : :- Project (856)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (855)
: : : : : :- Project (850)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (849)
: : : : : : :- Exchange (843)
: : : : : : : +- Filter (842)
: : : : : : : +- Scan parquet (841)
: : : : : : +- BroadcastExchange (848)
: : : : : : +- Project (847)
: : : : : : +- Exchange (846)
: : : : : : +- Project (845)
: : : : : : +- Scan parquet (844)
: : : : : +- BroadcastExchange (854)
: : : : : +- Exchange (853)
: : : : : +- Project (852)
: : : : : +- Scan parquet (851)
: : : : +- BroadcastExchange (861)
: : : : +- Exchange (860)
: : : : +- Project (859)
: : : : +- Filter (858)
: : : : +- Scan parquet (857)
: : : +- Sort (910)
: : : +- Project (909)
: : : +- Generate (908)
: : : +- Project (907)
: : : +- Generate (906)
: : : +- Project (905)
: : : +- BroadcastHashJoin LeftOuter BuildRight (904)
: : : :- Project (898)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (897)
: : : : :- Project (892)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (891)
: : : : : :- Exchange (885)
: : : : : : +- Filter (884)
: : : : : : +- Scan parquet (883)
: : : : : +- BroadcastExchange (890)
: : : : : +- Project (889)
: : : : : +- Exchange (888)
: : : : : +- Project (887)
: : : : : +- Scan parquet (886)
: : : : +- BroadcastExchange (896)
: : : : +- Exchange (895)
: : : : +- Project (894)
: : : : +- Scan parquet (893)
: : : +- BroadcastExchange (903)
: : : +- Exchange (902)
: : : +- Project (901)
: : : +- Filter (900)
: : : +- Scan parquet (899)
: : +- Sort (1150)
: : +- Exchange (1149)
: : +- SerializeFromObject (1148)
: : +- MapElements (1147)
: : +- DeserializeToObject (1146)
: : +- ObjectHashAggregate (1145)
: : +- ObjectHashAggregate (1144)
: : +- Project (1143)
: : +- BroadcastHashJoin LeftOuter BuildRight (1142)
: : :- Project (1139)
: : : +- SortMergeJoin LeftOuter (1138)
: : : :- Sort (951)
: : : : +- Project (950)
: : : : +- Project (949)
: : : : +- Generate (948)
: : : : +- Generate (947)
: : : : +- Project (946)
: : : : +- Project (945)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (944)
: : : : :- Project (938)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (937)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (932)
: : : : : : :- Exchange (927)
: : : : : : : +- Scan parquet (631)
: : : : : : +- BroadcastExchange (931)
: : : : : : +- Project (930)
: : : : : : +- Exchange (929)
: : : : : : +- Project (928)
: : : : : : +- Scan parquet (635)
: : : : : +- BroadcastExchange (936)
: : : : : +- Exchange (935)
: : : : : +- Project (934)
: : : : : +- Scan parquet (933)
: : : : +- BroadcastExchange (943)
: : : : +- Exchange (942)
: : : : +- Project (941)
: : : : +- Filter (940)
: : : : +- Scan parquet (939)
: : : +- Sort (1137)
: : : +- HashAggregate (1136)
: : : +- Exchange (1135)
: : : +- HashAggregate (1134)
: : : +- Project (1133)
: : : +- SortMergeJoin Inner (1132)
: : : :- Sort (1040)
: : : : +- Exchange (1039)
: : : : +- Project (1038)
: : : : +- SortMergeJoin Inner (1037)
: : : : :- Sort (1008)
: : : : : +- Exchange (1007)
: : : : : +- Project (1006)
: : : : : +- Filter (1005)
: : : : : +- Generate (1004)
: : : : : +- Filter (1003)
: : : : : +- ObjectHashAggregate (1002)
: : : : : +- ObjectHashAggregate (1001)
: : : : : +- Generate (1000)
: : : : : +- BroadcastHashJoin Inner BuildLeft (999)
: : : : : :- BroadcastExchange (956)
: : : : : : +- Exchange (955)
: : : : : : +- Project (954)
: : : : : : +- Filter (953)
: : : : : : +- Scan parquet (952)
: : : : : +- Project (998)
: : : : : +- BroadcastHashJoin Inner BuildLeft (997)
: : : : : :- BroadcastExchange (966)
: : : : : : +- Project (965)
: : : : : : +- Generate (964)
: : : : : : +- Project (963)
: : : : : : +- Filter (962)
: : : : : : +- Generate (961)
: : : : : : +- Exchange (960)
: : : : : : +- Project (959)
: : : : : : +- Filter (958)
: : : : : : +- Scan parquet (957)
: : : : : +- HashAggregate (996)
: : : : : +- Exchange (995)
: : : : : +- HashAggregate (994)
: : : : : +- Project (993)
: : : : : +- Generate (992)
: : : : : +- Project (991)
: : : : : +- Generate (990)
: : : : : +- Project (989)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (988)
: : : : : :- Project (982)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (981)
: : : : : : :- Project (976)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (975)
: : : : : : : :- Exchange (969)
: : : : : : : : +- Filter (968)
: : : : : : : : +- Scan parquet (967)
: : : : : : : +- BroadcastExchange (974)
: : : : : : : +- Project (973)
: : : : : : : +- Exchange (972)
: : : : : : : +- Project (971)
: : : : : : : +- Scan parquet (970)
: : : : : : +- BroadcastExchange (980)
: : : : : : +- Exchange (979)
: : : : : : +- Project (978)
: : : : : : +- Scan parquet (977)
: : : : : +- BroadcastExchange (987)
: : : : : +- Exchange (986)
: : : : : +- Project (985)
: : : : : +- Filter (984)
: : : : : +- Scan parquet (983)
: : : : +- Sort (1036)
: : : : +- Project (1035)
: : : : +- Generate (1034)
: : : : +- Project (1033)
: : : : +- Generate (1032)
: : : : +- Project (1031)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1030)
: : : : :- Project (1024)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1023)
: : : : : :- Project (1018)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1017)
: : : : : : :- Exchange (1011)
: : : : : : : +- Filter (1010)
: : : : : : : +- Scan parquet (1009)
: : : : : : +- BroadcastExchange (1016)
: : : : : : +- Project (1015)
: : : : : : +- Exchange (1014)
: : : : : : +- Project (1013)
: : : : : : +- Scan parquet (1012)
: : : : : +- BroadcastExchange (1022)
: : : : : +- Exchange (1021)
: : : : : +- Project (1020)
: : : : : +- Scan parquet (1019)
: : : : +- BroadcastExchange (1029)
: : : : +- Exchange (1028)
: : : : +- Project (1027)
: : : : +- Filter (1026)
: : : : +- Scan parquet (1025)
: : : +- Sort (1131)
: : : +- Exchange (1130)
: : : +- HashAggregate (1129)
: : : +- HashAggregate (1128)
: : : +- Project (1127)
: : : +- SortMergeJoin Inner (1126)
: : : :- Sort (1097)
: : : : +- Exchange (1096)
: : : : +- Project (1095)
: : : : +- Filter (1094)
: : : : +- Generate (1093)
: : : : +- Filter (1092)
: : : : +- ObjectHashAggregate (1091)
: : : : +- ObjectHashAggregate (1090)
: : : : +- Generate (1089)
: : : : +- BroadcastHashJoin Inner BuildLeft (1088)
: : : : :- BroadcastExchange (1045)
: : : : : +- Exchange (1044)
: : : : : +- Project (1043)
: : : : : +- Filter (1042)
: : : : : +- Scan parquet (1041)
: : : : +- Project (1087)
: : : : +- BroadcastHashJoin Inner BuildLeft (1086)
: : : : :- BroadcastExchange (1055)
: : : : : +- Project (1054)
: : : : : +- Generate (1053)
: : : : : +- Project (1052)
: : : : : +- Filter (1051)
: : : : : +- Generate (1050)
: : : : : +- Exchange (1049)
: : : : : +- Project (1048)
: : : : : +- Filter (1047)
: : : : : +- Scan parquet (1046)
: : : : +- HashAggregate (1085)
: : : : +- Exchange (1084)
: : : : +- HashAggregate (1083)
: : : : +- Project (1082)
: : : : +- Generate (1081)
: : : : +- Project (1080)
: : : : +- Generate (1079)
: : : : +- Project (1078)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1077)
: : : : :- Project (1071)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1070)
: : : : : :- Project (1065)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1064)
: : : : : : :- Exchange (1058)
: : : : : : : +- Filter (1057)
: : : : : : : +- Scan parquet (1056)
: : : : : : +- BroadcastExchange (1063)
: : : : : : +- Project (1062)
: : : : : : +- Exchange (1061)
: : : : : : +- Project (1060)
: : : : : : +- Scan parquet (1059)
: : : : : +- BroadcastExchange (1069)
: : : : : +- Exchange (1068)
: : : : : +- Project (1067)
: : : : : +- Scan parquet (1066)
: : : : +- BroadcastExchange (1076)
: : : : +- Exchange (1075)
: : : : +- Project (1074)
: : : : +- Filter (1073)
: : : : +- Scan parquet (1072)
: : : +- Sort (1125)
: : : +- Project (1124)
: : : +- Generate (1123)
: : : +- Project (1122)
: : : +- Generate (1121)
: : : +- Project (1120)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1119)
: : : :- Project (1113)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1112)
: : : : :- Project (1107)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1106)
: : : : : :- Exchange (1100)
: : : : : : +- Filter (1099)
: : : : : : +- Scan parquet (1098)
: : : : : +- BroadcastExchange (1105)
: : : : : +- Project (1104)
: : : : : +- Exchange (1103)
: : : : : +- Project (1102)
: : : : : +- Scan parquet (1101)
: : : : +- BroadcastExchange (1111)
: : : : +- Exchange (1110)
: : : : +- Project (1109)
: : : : +- Scan parquet (1108)
: : : +- BroadcastExchange (1118)
: : : +- Exchange (1117)
: : : +- Project (1116)
: : : +- Filter (1115)
: : : +- Scan parquet (1114)
: : +- BroadcastExchange (1141)
: : +- Filter (1140)
: : +- Scan parquet (659)
: +- Sort (1198)
: +- Project (1197)
: +- BroadcastHashJoin Inner BuildLeft (1196)
: :- BroadcastExchange (1165)
: : +- Project (1164)
: : +- Filter (1163)
: : +- Generate (1162)
: : +- Project (1161)
: : +- Filter (1160)
: : +- Generate (1159)
: : +- Exchange (1158)
: : +- Project (1157)
: : +- Filter (1156)
: : +- Scan parquet (1155)
: +- HashAggregate (1195)
: +- Exchange (1194)
: +- HashAggregate (1193)
: +- Project (1192)
: +- Generate (1191)
: +- Project (1190)
: +- Generate (1189)
: +- Project (1188)
: +- BroadcastHashJoin LeftOuter BuildRight (1187)
: :- Project (1181)
: : +- BroadcastHashJoin LeftOuter BuildRight (1180)
: : :- Project (1175)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1174)
: : : :- Exchange (1168)
: : : : +- Filter (1167)
: : : : +- Scan parquet (1166)
: : : +- BroadcastExchange (1173)
: : : +- Project (1172)
: : : +- Exchange (1171)
: : : +- Project (1170)
: : : +- Scan parquet (1169)
: : +- BroadcastExchange (1179)
: : +- Exchange (1178)
: : +- Project (1177)
: : +- Scan parquet (1176)
: +- BroadcastExchange (1186)
: +- Exchange (1185)
: +- Project (1184)
: +- Filter (1183)
: +- Scan parquet (1182)
+- BroadcastExchange (1207)
+- Project (1206)
+- Filter (1205)
+- Generate (1204)
+- Exchange (1203)
+- Project (1202)
+- Filter (1201)
+- Scan parquet (699)
: +- Filter (1682)
: +- ObjectHashAggregate (1681)
: +- Exchange (1680)
: +- ObjectHashAggregate (1679)
: +- Project (1678)
: +- BroadcastHashJoin Inner BuildRight (1677)
: :- Project (1668)
: : +- SortMergeJoin LeftOuter (1667)
: : :- Sort (1439)
: : : +- Exchange (1438)
: : : +- Project (1437)
: : : +- SortMergeJoin LeftOuter (1436)
: : : :- Sort (1249)
: : : : +- Project (1248)
: : : : +- Generate (1247)
: : : : +- Project (1246)
: : : : +- Generate (1245)
: : : : +- Project (1244)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1243)
: : : : :- Project (1237)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1236)
: : : : : :- Project (1231)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1230)
: : : : : : :- Exchange (1224)
: : : : : : : +- Filter (1223)
: : : : : : : +- Scan parquet (1222)
: : : : : : +- BroadcastExchange (1229)
: : : : : : +- Project (1228)
: : : : : : +- Exchange (1227)
: : : : : : +- Project (1226)
: : : : : : +- Scan parquet (1225)
: : : : : +- BroadcastExchange (1235)
: : : : : +- Exchange (1234)
: : : : : +- Project (1233)
: : : : : +- Scan parquet (1232)
: : : : +- BroadcastExchange (1242)
: : : : +- Exchange (1241)
: : : : +- Project (1240)
: : : : +- Filter (1239)
: : : : +- Scan parquet (1238)
: : : +- Sort (1435)
: : : +- HashAggregate (1434)
: : : +- Exchange (1433)
: : : +- HashAggregate (1432)
: : : +- Project (1431)
: : : +- SortMergeJoin Inner (1430)
: : : :- Sort (1338)
: : : : +- Exchange (1337)
: : : : +- Project (1336)
: : : : +- SortMergeJoin Inner (1335)
: : : : :- Sort (1306)
: : : : : +- Exchange (1305)
: : : : : +- Project (1304)
: : : : : +- Filter (1303)
: : : : : +- Generate (1302)
: : : : : +- Filter (1301)
: : : : : +- ObjectHashAggregate (1300)
: : : : : +- ObjectHashAggregate (1299)
: : : : : +- Generate (1298)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1297)
: : : : : :- BroadcastExchange (1254)
: : : : : : +- Exchange (1253)
: : : : : : +- Project (1252)
: : : : : : +- Filter (1251)
: : : : : : +- Scan parquet (1250)
: : : : : +- Project (1296)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1295)
: : : : : :- BroadcastExchange (1264)
: : : : : : +- Project (1263)
: : : : : : +- Generate (1262)
: : : : : : +- Project (1261)
: : : : : : +- Filter (1260)
: : : : : : +- Generate (1259)
: : : : : : +- Exchange (1258)
: : : : : : +- Project (1257)
: : : : : : +- Filter (1256)
: : : : : : +- Scan parquet (1255)
: : : : : +- HashAggregate (1294)
: : : : : +- Exchange (1293)
: : : : : +- HashAggregate (1292)
: : : : : +- Project (1291)
: : : : : +- Generate (1290)
: : : : : +- Project (1289)
: : : : : +- Generate (1288)
: : : : : +- Project (1287)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1286)
: : : : : :- Project (1280)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1279)
: : : : : : :- Project (1274)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1273)
: : : : : : : :- Exchange (1267)
: : : : : : : : +- Filter (1266)
: : : : : : : : +- Scan parquet (1265)
: : : : : : : +- BroadcastExchange (1272)
: : : : : : : +- Project (1271)
: : : : : : : +- Exchange (1270)
: : : : : : : +- Project (1269)
: : : : : : : +- Scan parquet (1268)
: : : : : : +- BroadcastExchange (1278)
: : : : : : +- Exchange (1277)
: : : : : : +- Project (1276)
: : : : : : +- Scan parquet (1275)
: : : : : +- BroadcastExchange (1285)
: : : : : +- Exchange (1284)
: : : : : +- Project (1283)
: : : : : +- Filter (1282)
: : : : : +- Scan parquet (1281)
: : : : +- Sort (1334)
: : : : +- Project (1333)
: : : : +- Generate (1332)
: : : : +- Project (1331)
: : : : +- Generate (1330)
: : : : +- Project (1329)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1328)
: : : : :- Project (1322)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1321)
: : : : : :- Project (1316)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1315)
: : : : : : :- Exchange (1309)
: : : : : : : +- Filter (1308)
: : : : : : : +- Scan parquet (1307)
: : : : : : +- BroadcastExchange (1314)
: : : : : : +- Project (1313)
: : : : : : +- Exchange (1312)
: : : : : : +- Project (1311)
: : : : : : +- Scan parquet (1310)
: : : : : +- BroadcastExchange (1320)
: : : : : +- Exchange (1319)
: : : : : +- Project (1318)
: : : : : +- Scan parquet (1317)
: : : : +- BroadcastExchange (1327)
: : : : +- Exchange (1326)
: : : : +- Project (1325)
: : : : +- Filter (1324)
: : : : +- Scan parquet (1323)
: : : +- Sort (1429)
: : : +- Exchange (1428)
: : : +- HashAggregate (1427)
: : : +- HashAggregate (1426)
: : : +- Project (1425)
: : : +- SortMergeJoin Inner (1424)
: : : :- Sort (1395)
: : : : +- Exchange (1394)
: : : : +- Project (1393)
: : : : +- Filter (1392)
: : : : +- Generate (1391)
: : : : +- Filter (1390)
: : : : +- ObjectHashAggregate (1389)
: : : : +- ObjectHashAggregate (1388)
: : : : +- Generate (1387)
: : : : +- BroadcastHashJoin Inner BuildLeft (1386)
: : : : :- BroadcastExchange (1343)
: : : : : +- Exchange (1342)
: : : : : +- Project (1341)
: : : : : +- Filter (1340)
: : : : : +- Scan parquet (1339)
: : : : +- Project (1385)
: : : : +- BroadcastHashJoin Inner BuildLeft (1384)
: : : : :- BroadcastExchange (1353)
: : : : : +- Project (1352)
: : : : : +- Generate (1351)
: : : : : +- Project (1350)
: : : : : +- Filter (1349)
: : : : : +- Generate (1348)
: : : : : +- Exchange (1347)
: : : : : +- Project (1346)
: : : : : +- Filter (1345)
: : : : : +- Scan parquet (1344)
: : : : +- HashAggregate (1383)
: : : : +- Exchange (1382)
: : : : +- HashAggregate (1381)
: : : : +- Project (1380)
: : : : +- Generate (1379)
: : : : +- Project (1378)
: : : : +- Generate (1377)
: : : : +- Project (1376)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1375)
: : : : :- Project (1369)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1368)
: : : : : :- Project (1363)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1362)
: : : : : : :- Exchange (1356)
: : : : : : : +- Filter (1355)
: : : : : : : +- Scan parquet (1354)
: : : : : : +- BroadcastExchange (1361)
: : : : : : +- Project (1360)
: : : : : : +- Exchange (1359)
: : : : : : +- Project (1358)
: : : : : : +- Scan parquet (1357)
: : : : : +- BroadcastExchange (1367)
: : : : : +- Exchange (1366)
: : : : : +- Project (1365)
: : : : : +- Scan parquet (1364)
: : : : +- BroadcastExchange (1374)
: : : : +- Exchange (1373)
: : : : +- Project (1372)
: : : : +- Filter (1371)
: : : : +- Scan parquet (1370)
: : : +- Sort (1423)
: : : +- Project (1422)
: : : +- Generate (1421)
: : : +- Project (1420)
: : : +- Generate (1419)
: : : +- Project (1418)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1417)
: : : :- Project (1411)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1410)
: : : : :- Project (1405)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1404)
: : : : : :- Exchange (1398)
: : : : : : +- Filter (1397)
: : : : : : +- Scan parquet (1396)
: : : : : +- BroadcastExchange (1403)
: : : : : +- Project (1402)
: : : : : +- Exchange (1401)
: : : : : +- Project (1400)
: : : : : +- Scan parquet (1399)
: : : : +- BroadcastExchange (1409)
: : : : +- Exchange (1408)
: : : : +- Project (1407)
: : : : +- Scan parquet (1406)
: : : +- BroadcastExchange (1416)
: : : +- Exchange (1415)
: : : +- Project (1414)
: : : +- Filter (1413)
: : : +- Scan parquet (1412)
: : +- Sort (1666)
: : +- Exchange (1665)
: : +- SerializeFromObject (1664)
: : +- MapElements (1663)
: : +- DeserializeToObject (1662)
: : +- ObjectHashAggregate (1661)
: : +- ObjectHashAggregate (1660)
: : +- Project (1659)
: : +- BroadcastHashJoin LeftOuter BuildRight (1658)
: : :- Project (1654)
: : : +- SortMergeJoin LeftOuter (1653)
: : : :- Sort (1466)
: : : : +- Project (1465)
: : : : +- Project (1464)
: : : : +- Generate (1463)
: : : : +- Generate (1462)
: : : : +- Project (1461)
: : : : +- Project (1460)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1459)
: : : : :- Project (1453)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1452)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (1447)
: : : : : : :- Exchange (1441)
: : : : : : : +- Scan parquet (1440)
: : : : : : +- BroadcastExchange (1446)
: : : : : : +- Project (1445)
: : : : : : +- Exchange (1444)
: : : : : : +- Project (1443)
: : : : : : +- Scan parquet (1442)
: : : : : +- BroadcastExchange (1451)
: : : : : +- Exchange (1450)
: : : : : +- Project (1449)
: : : : : +- Scan parquet (1448)
: : : : +- BroadcastExchange (1458)
: : : : +- Exchange (1457)
: : : : +- Project (1456)
: : : : +- Filter (1455)
: : : : +- Scan parquet (1454)
: : : +- Sort (1652)
: : : +- HashAggregate (1651)
: : : +- Exchange (1650)
: : : +- HashAggregate (1649)
: : : +- Project (1648)
: : : +- SortMergeJoin Inner (1647)
: : : :- Sort (1555)
: : : : +- Exchange (1554)
: : : : +- Project (1553)
: : : : +- SortMergeJoin Inner (1552)
: : : : :- Sort (1523)
: : : : : +- Exchange (1522)
: : : : : +- Project (1521)
: : : : : +- Filter (1520)
: : : : : +- Generate (1519)
: : : : : +- Filter (1518)
: : : : : +- ObjectHashAggregate (1517)
: : : : : +- ObjectHashAggregate (1516)
: : : : : +- Generate (1515)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1514)
: : : : : :- BroadcastExchange (1471)
: : : : : : +- Exchange (1470)
: : : : : : +- Project (1469)
: : : : : : +- Filter (1468)
: : : : : : +- Scan parquet (1467)
: : : : : +- Project (1513)
: : : : : +- BroadcastHashJoin Inner BuildLeft (1512)
: : : : : :- BroadcastExchange (1481)
: : : : : : +- Project (1480)
: : : : : : +- Generate (1479)
: : : : : : +- Project (1478)
: : : : : : +- Filter (1477)
: : : : : : +- Generate (1476)
: : : : : : +- Exchange (1475)
: : : : : : +- Project (1474)
: : : : : : +- Filter (1473)
: : : : : : +- Scan parquet (1472)
: : : : : +- HashAggregate (1511)
: : : : : +- Exchange (1510)
: : : : : +- HashAggregate (1509)
: : : : : +- Project (1508)
: : : : : +- Generate (1507)
: : : : : +- Project (1506)
: : : : : +- Generate (1505)
: : : : : +- Project (1504)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1503)
: : : : : :- Project (1497)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1496)
: : : : : : :- Project (1491)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1490)
: : : : : : : :- Exchange (1484)
: : : : : : : : +- Filter (1483)
: : : : : : : : +- Scan parquet (1482)
: : : : : : : +- BroadcastExchange (1489)
: : : : : : : +- Project (1488)
: : : : : : : +- Exchange (1487)
: : : : : : : +- Project (1486)
: : : : : : : +- Scan parquet (1485)
: : : : : : +- BroadcastExchange (1495)
: : : : : : +- Exchange (1494)
: : : : : : +- Project (1493)
: : : : : : +- Scan parquet (1492)
: : : : : +- BroadcastExchange (1502)
: : : : : +- Exchange (1501)
: : : : : +- Project (1500)
: : : : : +- Filter (1499)
: : : : : +- Scan parquet (1498)
: : : : +- Sort (1551)
: : : : +- Project (1550)
: : : : +- Generate (1549)
: : : : +- Project (1548)
: : : : +- Generate (1547)
: : : : +- Project (1546)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1545)
: : : : :- Project (1539)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1538)
: : : : : :- Project (1533)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1532)
: : : : : : :- Exchange (1526)
: : : : : : : +- Filter (1525)
: : : : : : : +- Scan parquet (1524)
: : : : : : +- BroadcastExchange (1531)
: : : : : : +- Project (1530)
: : : : : : +- Exchange (1529)
: : : : : : +- Project (1528)
: : : : : : +- Scan parquet (1527)
: : : : : +- BroadcastExchange (1537)
: : : : : +- Exchange (1536)
: : : : : +- Project (1535)
: : : : : +- Scan parquet (1534)
: : : : +- BroadcastExchange (1544)
: : : : +- Exchange (1543)
: : : : +- Project (1542)
: : : : +- Filter (1541)
: : : : +- Scan parquet (1540)
: : : +- Sort (1646)
: : : +- Exchange (1645)
: : : +- HashAggregate (1644)
: : : +- HashAggregate (1643)
: : : +- Project (1642)
: : : +- SortMergeJoin Inner (1641)
: : : :- Sort (1612)
: : : : +- Exchange (1611)
: : : : +- Project (1610)
: : : : +- Filter (1609)
: : : : +- Generate (1608)
: : : : +- Filter (1607)
: : : : +- ObjectHashAggregate (1606)
: : : : +- ObjectHashAggregate (1605)
: : : : +- Generate (1604)
: : : : +- BroadcastHashJoin Inner BuildLeft (1603)
: : : : :- BroadcastExchange (1560)
: : : : : +- Exchange (1559)
: : : : : +- Project (1558)
: : : : : +- Filter (1557)
: : : : : +- Scan parquet (1556)
: : : : +- Project (1602)
: : : : +- BroadcastHashJoin Inner BuildLeft (1601)
: : : : :- BroadcastExchange (1570)
: : : : : +- Project (1569)
: : : : : +- Generate (1568)
: : : : : +- Project (1567)
: : : : : +- Filter (1566)
: : : : : +- Generate (1565)
: : : : : +- Exchange (1564)
: : : : : +- Project (1563)
: : : : : +- Filter (1562)
: : : : : +- Scan parquet (1561)
: : : : +- HashAggregate (1600)
: : : : +- Exchange (1599)
: : : : +- HashAggregate (1598)
: : : : +- Project (1597)
: : : : +- Generate (1596)
: : : : +- Project (1595)
: : : : +- Generate (1594)
: : : : +- Project (1593)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1592)
: : : : :- Project (1586)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1585)
: : : : : :- Project (1580)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1579)
: : : : : : :- Exchange (1573)
: : : : : : : +- Filter (1572)
: : : : : : : +- Scan parquet (1571)
: : : : : : +- BroadcastExchange (1578)
: : : : : : +- Project (1577)
: : : : : : +- Exchange (1576)
: : : : : : +- Project (1575)
: : : : : : +- Scan parquet (1574)
: : : : : +- BroadcastExchange (1584)
: : : : : +- Exchange (1583)
: : : : : +- Project (1582)
: : : : : +- Scan parquet (1581)
: : : : +- BroadcastExchange (1591)
: : : : +- Exchange (1590)
: : : : +- Project (1589)
: : : : +- Filter (1588)
: : : : +- Scan parquet (1587)
: : : +- Sort (1640)
: : : +- Project (1639)
: : : +- Generate (1638)
: : : +- Project (1637)
: : : +- Generate (1636)
: : : +- Project (1635)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1634)
: : : :- Project (1628)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1627)
: : : : :- Project (1622)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1621)
: : : : : :- Exchange (1615)
: : : : : : +- Filter (1614)
: : : : : : +- Scan parquet (1613)
: : : : : +- BroadcastExchange (1620)
: : : : : +- Project (1619)
: : : : : +- Exchange (1618)
: : : : : +- Project (1617)
: : : : : +- Scan parquet (1616)
: : : : +- BroadcastExchange (1626)
: : : : +- Exchange (1625)
: : : : +- Project (1624)
: : : : +- Scan parquet (1623)
: : : +- BroadcastExchange (1633)
: : : +- Exchange (1632)
: : : +- Project (1631)
: : : +- Filter (1630)
: : : +- Scan parquet (1629)
: : +- BroadcastExchange (1657)
: : +- Filter (1656)
: : +- Scan parquet (1655)
: +- BroadcastExchange (1676)
: +- Project (1675)
: +- Filter (1674)
: +- Generate (1673)
: +- Exchange (1672)
: +- Project (1671)
: +- Filter (1670)
: +- Scan parquet (1669)
+- Sort (2616)
+- Exchange (2615)
+- Filter (2614)
+- SerializeFromObject (2613)
+- MapElements (2612)
+- DeserializeToObject (2611)
+- Project (2610)
+- SortMergeJoin LeftOuter (2609)
:- Sort (2138)
: +- Exchange (2137)
: +- Project (2136)
: +- SortMergeJoin LeftOuter (2135)
: :- Sort (1907)
: : +- Exchange (1906)
: : +- Project (1905)
: : +- SortMergeJoin LeftOuter (1904)
: : :- Sort (1717)
: : : +- Project (1716)
: : : +- Project (1715)
: : : +- Generate (1714)
: : : +- Generate (1713)
: : : +- Project (1712)
: : : +- Project (1711)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1710)
: : : :- Project (1704)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1703)
: : : : :- BroadcastHashJoin LeftOuter BuildRight (1698)
: : : : : :- Exchange (1692)
: : : : : : +- Scan parquet (1691)
: : : : : +- BroadcastExchange (1697)
: : : : : +- Project (1696)
: : : : : +- Exchange (1695)
: : : : : +- Project (1694)
: : : : : +- Scan parquet (1693)
: : : : +- BroadcastExchange (1702)
: : : : +- Exchange (1701)
: : : : +- Project (1700)
: : : : +- Scan parquet (1699)
: : : +- BroadcastExchange (1709)
: : : +- Exchange (1708)
: : : +- Project (1707)
: : : +- Filter (1706)
: : : +- Scan parquet (1705)
: : +- Sort (1903)
: : +- HashAggregate (1902)
: : +- Exchange (1901)
: : +- HashAggregate (1900)
: : +- Project (1899)
: : +- SortMergeJoin Inner (1898)
: : :- Sort (1806)
: : : +- Exchange (1805)
: : : +- Project (1804)
: : : +- SortMergeJoin Inner (1803)
: : : :- Sort (1774)
: : : : +- Exchange (1773)
: : : : +- Project (1772)
: : : : +- Filter (1771)
: : : : +- Generate (1770)
: : : : +- Filter (1769)
: : : : +- ObjectHashAggregate (1768)
: : : : +- ObjectHashAggregate (1767)
: : : : +- Generate (1766)
: : : : +- BroadcastHashJoin Inner BuildLeft (1765)
: : : : :- BroadcastExchange (1722)
: : : : : +- Exchange (1721)
: : : : : +- Project (1720)
: : : : : +- Filter (1719)
: : : : : +- Scan parquet (1718)
: : : : +- Project (1764)
: : : : +- BroadcastHashJoin Inner BuildLeft (1763)
: : : : :- BroadcastExchange (1732)
: : : : : +- Project (1731)
: : : : : +- Generate (1730)
: : : : : +- Project (1729)
: : : : : +- Filter (1728)
: : : : : +- Generate (1727)
: : : : : +- Exchange (1726)
: : : : : +- Project (1725)
: : : : : +- Filter (1724)
: : : : : +- Scan parquet (1723)
: : : : +- HashAggregate (1762)
: : : : +- Exchange (1761)
: : : : +- HashAggregate (1760)
: : : : +- Project (1759)
: : : : +- Generate (1758)
: : : : +- Project (1757)
: : : : +- Generate (1756)
: : : : +- Project (1755)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1754)
: : : : :- Project (1748)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1747)
: : : : : :- Project (1742)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1741)
: : : : : : :- Exchange (1735)
: : : : : : : +- Filter (1734)
: : : : : : : +- Scan parquet (1733)
: : : : : : +- BroadcastExchange (1740)
: : : : : : +- Project (1739)
: : : : : : +- Exchange (1738)
: : : : : : +- Project (1737)
: : : : : : +- Scan parquet (1736)
: : : : : +- BroadcastExchange (1746)
: : : : : +- Exchange (1745)
: : : : : +- Project (1744)
: : : : : +- Scan parquet (1743)
: : : : +- BroadcastExchange (1753)
: : : : +- Exchange (1752)
: : : : +- Project (1751)
: : : : +- Filter (1750)
: : : : +- Scan parquet (1749)
: : : +- Sort (1802)
: : : +- Project (1801)
: : : +- Generate (1800)
: : : +- Project (1799)
: : : +- Generate (1798)
: : : +- Project (1797)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1796)
: : : :- Project (1790)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1789)
: : : : :- Project (1784)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1783)
: : : : : :- Exchange (1777)
: : : : : : +- Filter (1776)
: : : : : : +- Scan parquet (1775)
: : : : : +- BroadcastExchange (1782)
: : : : : +- Project (1781)
: : : : : +- Exchange (1780)
: : : : : +- Project (1779)
: : : : : +- Scan parquet (1778)
: : : : +- BroadcastExchange (1788)
: : : : +- Exchange (1787)
: : : : +- Project (1786)
: : : : +- Scan parquet (1785)
: : : +- BroadcastExchange (1795)
: : : +- Exchange (1794)
: : : +- Project (1793)
: : : +- Filter (1792)
: : : +- Scan parquet (1791)
: : +- Sort (1897)
: : +- Exchange (1896)
: : +- HashAggregate (1895)
: : +- HashAggregate (1894)
: : +- Project (1893)
: : +- SortMergeJoin Inner (1892)
: : :- Sort (1863)
: : : +- Exchange (1862)
: : : +- Project (1861)
: : : +- Filter (1860)
: : : +- Generate (1859)
: : : +- Filter (1858)
: : : +- ObjectHashAggregate (1857)
: : : +- ObjectHashAggregate (1856)
: : : +- Generate (1855)
: : : +- BroadcastHashJoin Inner BuildLeft (1854)
: : : :- BroadcastExchange (1811)
: : : : +- Exchange (1810)
: : : : +- Project (1809)
: : : : +- Filter (1808)
: : : : +- Scan parquet (1807)
: : : +- Project (1853)
: : : +- BroadcastHashJoin Inner BuildLeft (1852)
: : : :- BroadcastExchange (1821)
: : : : +- Project (1820)
: : : : +- Generate (1819)
: : : : +- Project (1818)
: : : : +- Filter (1817)
: : : : +- Generate (1816)
: : : : +- Exchange (1815)
: : : : +- Project (1814)
: : : : +- Filter (1813)
: : : : +- Scan parquet (1812)
: : : +- HashAggregate (1851)
: : : +- Exchange (1850)
: : : +- HashAggregate (1849)
: : : +- Project (1848)
: : : +- Generate (1847)
: : : +- Project (1846)
: : : +- Generate (1845)
: : : +- Project (1844)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1843)
: : : :- Project (1837)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1836)
: : : : :- Project (1831)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1830)
: : : : : :- Exchange (1824)
: : : : : : +- Filter (1823)
: : : : : : +- Scan parquet (1822)
: : : : : +- BroadcastExchange (1829)
: : : : : +- Project (1828)
: : : : : +- Exchange (1827)
: : : : : +- Project (1826)
: : : : : +- Scan parquet (1825)
: : : : +- BroadcastExchange (1835)
: : : : +- Exchange (1834)
: : : : +- Project (1833)
: : : : +- Scan parquet (1832)
: : : +- BroadcastExchange (1842)
: : : +- Exchange (1841)
: : : +- Project (1840)
: : : +- Filter (1839)
: : : +- Scan parquet (1838)
: : +- Sort (1891)
: : +- Project (1890)
: : +- Generate (1889)
: : +- Project (1888)
: : +- Generate (1887)
: : +- Project (1886)
: : +- BroadcastHashJoin LeftOuter BuildRight (1885)
: : :- Project (1879)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1878)
: : : :- Project (1873)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1872)
: : : : :- Exchange (1866)
: : : : : +- Filter (1865)
: : : : : +- Scan parquet (1864)
: : : : +- BroadcastExchange (1871)
: : : : +- Project (1870)
: : : : +- Exchange (1869)
: : : : +- Project (1868)
: : : : +- Scan parquet (1867)
: : : +- BroadcastExchange (1877)
: : : +- Exchange (1876)
: : : +- Project (1875)
: : : +- Scan parquet (1874)
: : +- BroadcastExchange (1884)
: : +- Exchange (1883)
: : +- Project (1882)
: : +- Filter (1881)
: : +- Scan parquet (1880)
: +- Sort (2134)
: +- Exchange (2133)
: +- SerializeFromObject (2132)
: +- MapElements (2131)
: +- DeserializeToObject (2130)
: +- ObjectHashAggregate (2129)
: +- ObjectHashAggregate (2128)
: +- Project (2127)
: +- BroadcastHashJoin LeftOuter BuildRight (2126)
: :- Project (2122)
: : +- SortMergeJoin LeftOuter (2121)
: : :- Sort (1934)
: : : +- Project (1933)
: : : +- Project (1932)
: : : +- Generate (1931)
: : : +- Generate (1930)
: : : +- Project (1929)
: : : +- Project (1928)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1927)
: : : :- Project (1921)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1920)
: : : : :- BroadcastHashJoin LeftOuter BuildRight (1915)
: : : : : :- Exchange (1909)
: : : : : : +- Scan parquet (1908)
: : : : : +- BroadcastExchange (1914)
: : : : : +- Project (1913)
: : : : : +- Exchange (1912)
: : : : : +- Project (1911)
: : : : : +- Scan parquet (1910)
: : : : +- BroadcastExchange (1919)
: : : : +- Exchange (1918)
: : : : +- Project (1917)
: : : : +- Scan parquet (1916)
: : : +- BroadcastExchange (1926)
: : : +- Exchange (1925)
: : : +- Project (1924)
: : : +- Filter (1923)
: : : +- Scan parquet (1922)
: : +- Sort (2120)
: : +- HashAggregate (2119)
: : +- Exchange (2118)
: : +- HashAggregate (2117)
: : +- Project (2116)
: : +- SortMergeJoin Inner (2115)
: : :- Sort (2023)
: : : +- Exchange (2022)
: : : +- Project (2021)
: : : +- SortMergeJoin Inner (2020)
: : : :- Sort (1991)
: : : : +- Exchange (1990)
: : : : +- Project (1989)
: : : : +- Filter (1988)
: : : : +- Generate (1987)
: : : : +- Filter (1986)
: : : : +- ObjectHashAggregate (1985)
: : : : +- ObjectHashAggregate (1984)
: : : : +- Generate (1983)
: : : : +- BroadcastHashJoin Inner BuildLeft (1982)
: : : : :- BroadcastExchange (1939)
: : : : : +- Exchange (1938)
: : : : : +- Project (1937)
: : : : : +- Filter (1936)
: : : : : +- Scan parquet (1935)
: : : : +- Project (1981)
: : : : +- BroadcastHashJoin Inner BuildLeft (1980)
: : : : :- BroadcastExchange (1949)
: : : : : +- Project (1948)
: : : : : +- Generate (1947)
: : : : : +- Project (1946)
: : : : : +- Filter (1945)
: : : : : +- Generate (1944)
: : : : : +- Exchange (1943)
: : : : : +- Project (1942)
: : : : : +- Filter (1941)
: : : : : +- Scan parquet (1940)
: : : : +- HashAggregate (1979)
: : : : +- Exchange (1978)
: : : : +- HashAggregate (1977)
: : : : +- Project (1976)
: : : : +- Generate (1975)
: : : : +- Project (1974)
: : : : +- Generate (1973)
: : : : +- Project (1972)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1971)
: : : : :- Project (1965)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1964)
: : : : : :- Project (1959)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1958)
: : : : : : :- Exchange (1952)
: : : : : : : +- Filter (1951)
: : : : : : : +- Scan parquet (1950)
: : : : : : +- BroadcastExchange (1957)
: : : : : : +- Project (1956)
: : : : : : +- Exchange (1955)
: : : : : : +- Project (1954)
: : : : : : +- Scan parquet (1953)
: : : : : +- BroadcastExchange (1963)
: : : : : +- Exchange (1962)
: : : : : +- Project (1961)
: : : : : +- Scan parquet (1960)
: : : : +- BroadcastExchange (1970)
: : : : +- Exchange (1969)
: : : : +- Project (1968)
: : : : +- Filter (1967)
: : : : +- Scan parquet (1966)
: : : +- Sort (2019)
: : : +- Project (2018)
: : : +- Generate (2017)
: : : +- Project (2016)
: : : +- Generate (2015)
: : : +- Project (2014)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2013)
: : : :- Project (2007)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2006)
: : : : :- Project (2001)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2000)
: : : : : :- Exchange (1994)
: : : : : : +- Filter (1993)
: : : : : : +- Scan parquet (1992)
: : : : : +- BroadcastExchange (1999)
: : : : : +- Project (1998)
: : : : : +- Exchange (1997)
: : : : : +- Project (1996)
: : : : : +- Scan parquet (1995)
: : : : +- BroadcastExchange (2005)
: : : : +- Exchange (2004)
: : : : +- Project (2003)
: : : : +- Scan parquet (2002)
: : : +- BroadcastExchange (2012)
: : : +- Exchange (2011)
: : : +- Project (2010)
: : : +- Filter (2009)
: : : +- Scan parquet (2008)
: : +- Sort (2114)
: : +- Exchange (2113)
: : +- HashAggregate (2112)
: : +- HashAggregate (2111)
: : +- Project (2110)
: : +- SortMergeJoin Inner (2109)
: : :- Sort (2080)
: : : +- Exchange (2079)
: : : +- Project (2078)
: : : +- Filter (2077)
: : : +- Generate (2076)
: : : +- Filter (2075)
: : : +- ObjectHashAggregate (2074)
: : : +- ObjectHashAggregate (2073)
: : : +- Generate (2072)
: : : +- BroadcastHashJoin Inner BuildLeft (2071)
: : : :- BroadcastExchange (2028)
: : : : +- Exchange (2027)
: : : : +- Project (2026)
: : : : +- Filter (2025)
: : : : +- Scan parquet (2024)
: : : +- Project (2070)
: : : +- BroadcastHashJoin Inner BuildLeft (2069)
: : : :- BroadcastExchange (2038)
: : : : +- Project (2037)
: : : : +- Generate (2036)
: : : : +- Project (2035)
: : : : +- Filter (2034)
: : : : +- Generate (2033)
: : : : +- Exchange (2032)
: : : : +- Project (2031)
: : : : +- Filter (2030)
: : : : +- Scan parquet (2029)
: : : +- HashAggregate (2068)
: : : +- Exchange (2067)
: : : +- HashAggregate (2066)
: : : +- Project (2065)
: : : +- Generate (2064)
: : : +- Project (2063)
: : : +- Generate (2062)
: : : +- Project (2061)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2060)
: : : :- Project (2054)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2053)
: : : : :- Project (2048)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2047)
: : : : : :- Exchange (2041)
: : : : : : +- Filter (2040)
: : : : : : +- Scan parquet (2039)
: : : : : +- BroadcastExchange (2046)
: : : : : +- Project (2045)
: : : : : +- Exchange (2044)
: : : : : +- Project (2043)
: : : : : +- Scan parquet (2042)
: : : : +- BroadcastExchange (2052)
: : : : +- Exchange (2051)
: : : : +- Project (2050)
: : : : +- Scan parquet (2049)
: : : +- BroadcastExchange (2059)
: : : +- Exchange (2058)
: : : +- Project (2057)
: : : +- Filter (2056)
: : : +- Scan parquet (2055)
: : +- Sort (2108)
: : +- Project (2107)
: : +- Generate (2106)
: : +- Project (2105)
: : +- Generate (2104)
: : +- Project (2103)
: : +- BroadcastHashJoin LeftOuter BuildRight (2102)
: : :- Project (2096)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2095)
: : : :- Project (2090)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2089)
: : : : :- Exchange (2083)
: : : : : +- Filter (2082)
: : : : : +- Scan parquet (2081)
: : : : +- BroadcastExchange (2088)
: : : : +- Project (2087)
: : : : +- Exchange (2086)
: : : : +- Project (2085)
: : : : +- Scan parquet (2084)
: : : +- BroadcastExchange (2094)
: : : +- Exchange (2093)
: : : +- Project (2092)
: : : +- Scan parquet (2091)
: : +- BroadcastExchange (2101)
: : +- Exchange (2100)
: : +- Project (2099)
: : +- Filter (2098)
: : +- Scan parquet (2097)
: +- BroadcastExchange (2125)
: +- Filter (2124)
: +- Scan parquet (2123)
+- Sort (2608)
+- Project (2607)
+- ObjectHashAggregate (2606)
+- Exchange (2605)
+- ObjectHashAggregate (2604)
+- Union (2603)
:- Filter (2141)
: +- InMemoryTableScan (2139)
: +- InMemoryRelation (2140)
: +- AdaptiveSparkPlan (1220)
+- == Final Plan ==
ResultQueryStage (585)
+- EmptyRelation (584)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (1219)
+- ObjectHashAggregate (1218)
+- Exchange (1217)
+- ObjectHashAggregate (1216)
+- Project (1215)
+- Window (1214)
+- Sort (1213)
+- Exchange (1212)
+- Project (1211)
+- InMemoryTableScan (586)
+- InMemoryRelation (587)
+- AdaptiveSparkPlan (1210)
+- == Final Plan ==
ResultQueryStage (712)
+- Project (711)
+- * BroadcastHashJoin Inner BuildRight (710)
:- * Project (698)
: +- * SortMergeJoin Inner (697)
: :- * Sort (680)
: : +- ShuffleQueryStage (679), Statistics(sizeInBytes=8.9 KiB, rowCount=76)
: : +- Exchange (678)
: : +- * Project (677)
: : +- * BroadcastHashJoin LeftOuter BuildRight (676)
: : :- AQEShuffleRead (630)
: : : +- ShuffleQueryStage (629), Statistics(sizeInBytes=8.9 KiB, rowCount=76)
: : : +- Exchange (628)
: : : +- * Project (627)
: : : +- * Project (626)
: : : +- * Project (625)
: : : +- * Generate (624)
: : : +- * Project (623)
: : : +- * Generate (622)
: : : +- Project (621)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (620)
: : : :- * Project (611)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (610)
: : : : :- * Project (602)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (601)
: : : : : :- ShuffleQueryStage (592), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : : +- Exchange (591)
: : : : : : +- * Filter (590)
: : : : : : +- * ColumnarToRow (589)
: : : : : : +- Scan parquet (588)
: : : : : +- BroadcastQueryStage (600), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (599)
: : : : : +- * Project (598)
: : : : : +- ShuffleQueryStage (597), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (596)
: : : : : +- * Project (595)
: : : : : +- * ColumnarToRow (594)
: : : : : +- Scan parquet (593)
: : : : +- BroadcastQueryStage (609), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- BroadcastExchange (608)
: : : : +- ShuffleQueryStage (607), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : +- Exchange (606)
: : : : +- * Project (605)
: : : : +- * ColumnarToRow (604)
: : : : +- Scan parquet (603)
: : : +- BroadcastQueryStage (619), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- BroadcastExchange (618)
: : : +- ShuffleQueryStage (617), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : +- Exchange (616)
: : : +- * Project (615)
: : : +- * Filter (614)
: : : +- * ColumnarToRow (613)
: : : +- Scan parquet (612)
: : +- BroadcastQueryStage (675), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: : +- BroadcastExchange (674)
: : +- AQEShuffleRead (673)
: : +- ShuffleQueryStage (672), Statistics(sizeInBytes=6.5 KiB, rowCount=76)
: : +- Exchange (671)
: : +- * SerializeFromObject (670)
: : +- * MapElements (669)
: : +- * DeserializeToObject (668)
: : +- ObjectHashAggregate (667)
: : +- ObjectHashAggregate (666)
: : +- * Project (665)
: : +- * BroadcastHashJoin LeftOuter BuildRight (664)
: : :- * Project (658)
: : : +- * Project (657)
: : : +- * Project (656)
: : : +- * Project (655)
: : : +- * Generate (654)
: : : +- * Generate (653)
: : : +- * Project (652)
: : : +- Project (651)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (650)
: : : :- * Project (647)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (646)
: : : : :- * BroadcastHashJoin LeftOuter BuildRight (643)
: : : : : :- ShuffleQueryStage (634), Statistics(sizeInBytes=7.1 KiB, rowCount=76)
: : : : : : +- Exchange (633)
: : : : : : +- * ColumnarToRow (632)
: : : : : : +- Scan parquet (631)
: : : : : +- BroadcastQueryStage (642), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- BroadcastExchange (641)
: : : : : +- * Project (640)
: : : : : +- ShuffleQueryStage (639), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : +- Exchange (638)
: : : : : +- * Project (637)
: : : : : +- * ColumnarToRow (636)
: : : : : +- Scan parquet (635)
: : : : +- BroadcastQueryStage (645), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (644)
: : : +- BroadcastQueryStage (649), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (648)
: : +- BroadcastQueryStage (663), Statistics(sizeInBytes=2.0 MiB, rowCount=76)
: : +- BroadcastExchange (662)
: : +- * Filter (661)
: : +- * ColumnarToRow (660)
: : +- Scan parquet (659)
: +- * Sort (696)
: +- * Project (695)
: +- * BroadcastHashJoin Inner BuildLeft (694)
: :- BroadcastQueryStage (690), Statistics(sizeInBytes=2.0 MiB, rowCount=11)
: : +- BroadcastExchange (689)
: : +- * Project (688)
: : +- * Filter (687)
: : +- * Generate (686)
: : +- * Project (685)
: : +- * Filter (684)
: : +- * Generate (683)
: : +- ShuffleQueryStage (682), Statistics(sizeInBytes=1880.0 B, rowCount=1)
: : +- ReusedExchange (681)
: +- * HashAggregate (693)
: +- ShuffleQueryStage (692), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: +- ReusedExchange (691)
+- BroadcastQueryStage (709), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (708)
+- * Project (707)
+- * Filter (706)
+- * Generate (705)
+- ShuffleQueryStage (704), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (703)
+- * Project (702)
+- * Filter (701)
+- * ColumnarToRow (700)
+- Scan parquet (699)
+- == Initial Plan ==
Project (1209)
+- BroadcastHashJoin Inner BuildRight (1208)
:- Project (1200)
: +- SortMergeJoin Inner (1199)
: :- Sort (1154)
: : +- Exchange (1153)
: : +- Project (1152)
: : +- SortMergeJoin LeftOuter (1151)
: : :- Sort (926)
: : : +- Exchange (925)
: : : +- Project (924)
: : : +- SortMergeJoin LeftOuter (923)
: : : :- Sort (736)
: : : : +- Project (735)
: : : : +- Generate (734)
: : : : +- Project (733)
: : : : +- Generate (732)
: : : : +- Project (731)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (730)
: : : : :- Project (725)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (724)
: : : : : :- Project (720)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (719)
: : : : : : :- Exchange (714)
: : : : : : : +- Filter (713)
: : : : : : : +- Scan parquet (588)
: : : : : : +- BroadcastExchange (718)
: : : : : : +- Project (717)
: : : : : : +- Exchange (716)
: : : : : : +- Project (715)
: : : : : : +- Scan parquet (593)
: : : : : +- BroadcastExchange (723)
: : : : : +- Exchange (722)
: : : : : +- Project (721)
: : : : : +- Scan parquet (603)
: : : : +- BroadcastExchange (729)
: : : : +- Exchange (728)
: : : : +- Project (727)
: : : : +- Filter (726)
: : : : +- Scan parquet (612)
: : : +- Sort (922)
: : : +- HashAggregate (921)
: : : +- Exchange (920)
: : : +- HashAggregate (919)
: : : +- Project (918)
: : : +- SortMergeJoin Inner (917)
: : : :- Sort (825)
: : : : +- Exchange (824)
: : : : +- Project (823)
: : : : +- SortMergeJoin Inner (822)
: : : : :- Sort (793)
: : : : : +- Exchange (792)
: : : : : +- Project (791)
: : : : : +- Filter (790)
: : : : : +- Generate (789)
: : : : : +- Filter (788)
: : : : : +- ObjectHashAggregate (787)
: : : : : +- ObjectHashAggregate (786)
: : : : : +- Generate (785)
: : : : : +- BroadcastHashJoin Inner BuildLeft (784)
: : : : : :- BroadcastExchange (741)
: : : : : : +- Exchange (740)
: : : : : : +- Project (739)
: : : : : : +- Filter (738)
: : : : : : +- Scan parquet (737)
: : : : : +- Project (783)
: : : : : +- BroadcastHashJoin Inner BuildLeft (782)
: : : : : :- BroadcastExchange (751)
: : : : : : +- Project (750)
: : : : : : +- Generate (749)
: : : : : : +- Project (748)
: : : : : : +- Filter (747)
: : : : : : +- Generate (746)
: : : : : : +- Exchange (745)
: : : : : : +- Project (744)
: : : : : : +- Filter (743)
: : : : : : +- Scan parquet (742)
: : : : : +- HashAggregate (781)
: : : : : +- Exchange (780)
: : : : : +- HashAggregate (779)
: : : : : +- Project (778)
: : : : : +- Generate (777)
: : : : : +- Project (776)
: : : : : +- Generate (775)
: : : : : +- Project (774)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (773)
: : : : : :- Project (767)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (766)
: : : : : : :- Project (761)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (760)
: : : : : : : :- Exchange (754)
: : : : : : : : +- Filter (753)
: : : : : : : : +- Scan parquet (752)
: : : : : : : +- BroadcastExchange (759)
: : : : : : : +- Project (758)
: : : : : : : +- Exchange (757)
: : : : : : : +- Project (756)
: : : : : : : +- Scan parquet (755)
: : : : : : +- BroadcastExchange (765)
: : : : : : +- Exchange (764)
: : : : : : +- Project (763)
: : : : : : +- Scan parquet (762)
: : : : : +- BroadcastExchange (772)
: : : : : +- Exchange (771)
: : : : : +- Project (770)
: : : : : +- Filter (769)
: : : : : +- Scan parquet (768)
: : : : +- Sort (821)
: : : : +- Project (820)
: : : : +- Generate (819)
: : : : +- Project (818)
: : : : +- Generate (817)
: : : : +- Project (816)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (815)
: : : : :- Project (809)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (808)
: : : : : :- Project (803)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (802)
: : : : : : :- Exchange (796)
: : : : : : : +- Filter (795)
: : : : : : : +- Scan parquet (794)
: : : : : : +- BroadcastExchange (801)
: : : : : : +- Project (800)
: : : : : : +- Exchange (799)
: : : : : : +- Project (798)
: : : : : : +- Scan parquet (797)
: : : : : +- BroadcastExchange (807)
: : : : : +- Exchange (806)
: : : : : +- Project (805)
: : : : : +- Scan parquet (804)
: : : : +- BroadcastExchange (814)
: : : : +- Exchange (813)
: : : : +- Project (812)
: : : : +- Filter (811)
: : : : +- Scan parquet (810)
: : : +- Sort (916)
: : : +- Exchange (915)
: : : +- HashAggregate (914)
: : : +- HashAggregate (913)
: : : +- Project (912)
: : : +- SortMergeJoin Inner (911)
: : : :- Sort (882)
: : : : +- Exchange (881)
: : : : +- Project (880)
: : : : +- Filter (879)
: : : : +- Generate (878)
: : : : +- Filter (877)
: : : : +- ObjectHashAggregate (876)
: : : : +- ObjectHashAggregate (875)
: : : : +- Generate (874)
: : : : +- BroadcastHashJoin Inner BuildLeft (873)
: : : : :- BroadcastExchange (830)
: : : : : +- Exchange (829)
: : : : : +- Project (828)
: : : : : +- Filter (827)
: : : : : +- Scan parquet (826)
: : : : +- Project (872)
: : : : +- BroadcastHashJoin Inner BuildLeft (871)
: : : : :- BroadcastExchange (840)
: : : : : +- Project (839)
: : : : : +- Generate (838)
: : : : : +- Project (837)
: : : : : +- Filter (836)
: : : : : +- Generate (835)
: : : : : +- Exchange (834)
: : : : : +- Project (833)
: : : : : +- Filter (832)
: : : : : +- Scan parquet (831)
: : : : +- HashAggregate (870)
: : : : +- Exchange (869)
: : : : +- HashAggregate (868)
: : : : +- Project (867)
: : : : +- Generate (866)
: : : : +- Project (865)
: : : : +- Generate (864)
: : : : +- Project (863)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (862)
: : : : :- Project (856)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (855)
: : : : : :- Project (850)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (849)
: : : : : : :- Exchange (843)
: : : : : : : +- Filter (842)
: : : : : : : +- Scan parquet (841)
: : : : : : +- BroadcastExchange (848)
: : : : : : +- Project (847)
: : : : : : +- Exchange (846)
: : : : : : +- Project (845)
: : : : : : +- Scan parquet (844)
: : : : : +- BroadcastExchange (854)
: : : : : +- Exchange (853)
: : : : : +- Project (852)
: : : : : +- Scan parquet (851)
: : : : +- BroadcastExchange (861)
: : : : +- Exchange (860)
: : : : +- Project (859)
: : : : +- Filter (858)
: : : : +- Scan parquet (857)
: : : +- Sort (910)
: : : +- Project (909)
: : : +- Generate (908)
: : : +- Project (907)
: : : +- Generate (906)
: : : +- Project (905)
: : : +- BroadcastHashJoin LeftOuter BuildRight (904)
: : : :- Project (898)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (897)
: : : : :- Project (892)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (891)
: : : : : :- Exchange (885)
: : : : : : +- Filter (884)
: : : : : : +- Scan parquet (883)
: : : : : +- BroadcastExchange (890)
: : : : : +- Project (889)
: : : : : +- Exchange (888)
: : : : : +- Project (887)
: : : : : +- Scan parquet (886)
: : : : +- BroadcastExchange (896)
: : : : +- Exchange (895)
: : : : +- Project (894)
: : : : +- Scan parquet (893)
: : : +- BroadcastExchange (903)
: : : +- Exchange (902)
: : : +- Project (901)
: : : +- Filter (900)
: : : +- Scan parquet (899)
: : +- Sort (1150)
: : +- Exchange (1149)
: : +- SerializeFromObject (1148)
: : +- MapElements (1147)
: : +- DeserializeToObject (1146)
: : +- ObjectHashAggregate (1145)
: : +- ObjectHashAggregate (1144)
: : +- Project (1143)
: : +- BroadcastHashJoin LeftOuter BuildRight (1142)
: : :- Project (1139)
: : : +- SortMergeJoin LeftOuter (1138)
: : : :- Sort (951)
: : : : +- Project (950)
: : : : +- Project (949)
: : : : +- Generate (948)
: : : : +- Generate (947)
: : : : +- Project (946)
: : : : +- Project (945)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (944)
: : : : :- Project (938)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (937)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (932)
: : : : : : :- Exchange (927)
: : : : : : : +- Scan parquet (631)
: : : : : : +- BroadcastExchange (931)
: : : : : : +- Project (930)
: : : : : : +- Exchange (929)
: : : : : : +- Project (928)
: : : : : : +- Scan parquet (635)
: : : : : +- BroadcastExchange (936)
: : : : : +- Exchange (935)
: : : : : +- Project (934)
: : : : : +- Scan parquet (933)
: : : : +- BroadcastExchange (943)
: : : : +- Exchange (942)
: : : : +- Project (941)
: : : : +- Filter (940)
: : : : +- Scan parquet (939)
: : : +- Sort (1137)
: : : +- HashAggregate (1136)
: : : +- Exchange (1135)
: : : +- HashAggregate (1134)
: : : +- Project (1133)
: : : +- SortMergeJoin Inner (1132)
: : : :- Sort (1040)
: : : : +- Exchange (1039)
: : : : +- Project (1038)
: : : : +- SortMergeJoin Inner (1037)
: : : : :- Sort (1008)
: : : : : +- Exchange (1007)
: : : : : +- Project (1006)
: : : : : +- Filter (1005)
: : : : : +- Generate (1004)
: : : : : +- Filter (1003)
: : : : : +- ObjectHashAggregate (1002)
: : : : : +- ObjectHashAggregate (1001)
: : : : : +- Generate (1000)
: : : : : +- BroadcastHashJoin Inner BuildLeft (999)
: : : : : :- BroadcastExchange (956)
: : : : : : +- Exchange (955)
: : : : : : +- Project (954)
: : : : : : +- Filter (953)
: : : : : : +- Scan parquet (952)
: : : : : +- Project (998)
: : : : : +- BroadcastHashJoin Inner BuildLeft (997)
: : : : : :- BroadcastExchange (966)
: : : : : : +- Project (965)
: : : : : : +- Generate (964)
: : : : : : +- Project (963)
: : : : : : +- Filter (962)
: : : : : : +- Generate (961)
: : : : : : +- Exchange (960)
: : : : : : +- Project (959)
: : : : : : +- Filter (958)
: : : : : : +- Scan parquet (957)
: : : : : +- HashAggregate (996)
: : : : : +- Exchange (995)
: : : : : +- HashAggregate (994)
: : : : : +- Project (993)
: : : : : +- Generate (992)
: : : : : +- Project (991)
: : : : : +- Generate (990)
: : : : : +- Project (989)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (988)
: : : : : :- Project (982)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (981)
: : : : : : :- Project (976)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (975)
: : : : : : : :- Exchange (969)
: : : : : : : : +- Filter (968)
: : : : : : : : +- Scan parquet (967)
: : : : : : : +- BroadcastExchange (974)
: : : : : : : +- Project (973)
: : : : : : : +- Exchange (972)
: : : : : : : +- Project (971)
: : : : : : : +- Scan parquet (970)
: : : : : : +- BroadcastExchange (980)
: : : : : : +- Exchange (979)
: : : : : : +- Project (978)
: : : : : : +- Scan parquet (977)
: : : : : +- BroadcastExchange (987)
: : : : : +- Exchange (986)
: : : : : +- Project (985)
: : : : : +- Filter (984)
: : : : : +- Scan parquet (983)
: : : : +- Sort (1036)
: : : : +- Project (1035)
: : : : +- Generate (1034)
: : : : +- Project (1033)
: : : : +- Generate (1032)
: : : : +- Project (1031)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1030)
: : : : :- Project (1024)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1023)
: : : : : :- Project (1018)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1017)
: : : : : : :- Exchange (1011)
: : : : : : : +- Filter (1010)
: : : : : : : +- Scan parquet (1009)
: : : : : : +- BroadcastExchange (1016)
: : : : : : +- Project (1015)
: : : : : : +- Exchange (1014)
: : : : : : +- Project (1013)
: : : : : : +- Scan parquet (1012)
: : : : : +- BroadcastExchange (1022)
: : : : : +- Exchange (1021)
: : : : : +- Project (1020)
: : : : : +- Scan parquet (1019)
: : : : +- BroadcastExchange (1029)
: : : : +- Exchange (1028)
: : : : +- Project (1027)
: : : : +- Filter (1026)
: : : : +- Scan parquet (1025)
: : : +- Sort (1131)
: : : +- Exchange (1130)
: : : +- HashAggregate (1129)
: : : +- HashAggregate (1128)
: : : +- Project (1127)
: : : +- SortMergeJoin Inner (1126)
: : : :- Sort (1097)
: : : : +- Exchange (1096)
: : : : +- Project (1095)
: : : : +- Filter (1094)
: : : : +- Generate (1093)
: : : : +- Filter (1092)
: : : : +- ObjectHashAggregate (1091)
: : : : +- ObjectHashAggregate (1090)
: : : : +- Generate (1089)
: : : : +- BroadcastHashJoin Inner BuildLeft (1088)
: : : : :- BroadcastExchange (1045)
: : : : : +- Exchange (1044)
: : : : : +- Project (1043)
: : : : : +- Filter (1042)
: : : : : +- Scan parquet (1041)
: : : : +- Project (1087)
: : : : +- BroadcastHashJoin Inner BuildLeft (1086)
: : : : :- BroadcastExchange (1055)
: : : : : +- Project (1054)
: : : : : +- Generate (1053)
: : : : : +- Project (1052)
: : : : : +- Filter (1051)
: : : : : +- Generate (1050)
: : : : : +- Exchange (1049)
: : : : : +- Project (1048)
: : : : : +- Filter (1047)
: : : : : +- Scan parquet (1046)
: : : : +- HashAggregate (1085)
: : : : +- Exchange (1084)
: : : : +- HashAggregate (1083)
: : : : +- Project (1082)
: : : : +- Generate (1081)
: : : : +- Project (1080)
: : : : +- Generate (1079)
: : : : +- Project (1078)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1077)
: : : : :- Project (1071)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1070)
: : : : : :- Project (1065)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (1064)
: : : : : : :- Exchange (1058)
: : : : : : : +- Filter (1057)
: : : : : : : +- Scan parquet (1056)
: : : : : : +- BroadcastExchange (1063)
: : : : : : +- Project (1062)
: : : : : : +- Exchange (1061)
: : : : : : +- Project (1060)
: : : : : : +- Scan parquet (1059)
: : : : : +- BroadcastExchange (1069)
: : : : : +- Exchange (1068)
: : : : : +- Project (1067)
: : : : : +- Scan parquet (1066)
: : : : +- BroadcastExchange (1076)
: : : : +- Exchange (1075)
: : : : +- Project (1074)
: : : : +- Filter (1073)
: : : : +- Scan parquet (1072)
: : : +- Sort (1125)
: : : +- Project (1124)
: : : +- Generate (1123)
: : : +- Project (1122)
: : : +- Generate (1121)
: : : +- Project (1120)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1119)
: : : :- Project (1113)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (1112)
: : : : :- Project (1107)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (1106)
: : : : : :- Exchange (1100)
: : : : : : +- Filter (1099)
: : : : : : +- Scan parquet (1098)
: : : : : +- BroadcastExchange (1105)
: : : : : +- Project (1104)
: : : : : +- Exchange (1103)
: : : : : +- Project (1102)
: : : : : +- Scan parquet (1101)
: : : : +- BroadcastExchange (1111)
: : : : +- Exchange (1110)
: : : : +- Project (1109)
: : : : +- Scan parquet (1108)
: : : +- BroadcastExchange (1118)
: : : +- Exchange (1117)
: : : +- Project (1116)
: : : +- Filter (1115)
: : : +- Scan parquet (1114)
: : +- BroadcastExchange (1141)
: : +- Filter (1140)
: : +- Scan parquet (659)
: +- Sort (1198)
: +- Project (1197)
: +- BroadcastHashJoin Inner BuildLeft (1196)
: :- BroadcastExchange (1165)
: : +- Project (1164)
: : +- Filter (1163)
: : +- Generate (1162)
: : +- Project (1161)
: : +- Filter (1160)
: : +- Generate (1159)
: : +- Exchange (1158)
: : +- Project (1157)
: : +- Filter (1156)
: : +- Scan parquet (1155)
: +- HashAggregate (1195)
: +- Exchange (1194)
: +- HashAggregate (1193)
: +- Project (1192)
: +- Generate (1191)
: +- Project (1190)
: +- Generate (1189)
: +- Project (1188)
: +- BroadcastHashJoin LeftOuter BuildRight (1187)
: :- Project (1181)
: : +- BroadcastHashJoin LeftOuter BuildRight (1180)
: : :- Project (1175)
: : : +- BroadcastHashJoin LeftOuter BuildRight (1174)
: : : :- Exchange (1168)
: : : : +- Filter (1167)
: : : : +- Scan parquet (1166)
: : : +- BroadcastExchange (1173)
: : : +- Project (1172)
: : : +- Exchange (1171)
: : : +- Project (1170)
: : : +- Scan parquet (1169)
: : +- BroadcastExchange (1179)
: : +- Exchange (1178)
: : +- Project (1177)
: : +- Scan parquet (1176)
: +- BroadcastExchange (1186)
: +- Exchange (1185)
: +- Project (1184)
: +- Filter (1183)
: +- Scan parquet (1182)
+- BroadcastExchange (1207)
+- Project (1206)
+- Filter (1205)
+- Generate (1204)
+- Exchange (1203)
+- Project (1202)
+- Filter (1201)
+- Scan parquet (699)
+- Filter (2602)
+- ObjectHashAggregate (2601)
+- Exchange (2600)
+- ObjectHashAggregate (2599)
+- Project (2598)
+- BroadcastHashJoin Inner BuildRight (2597)
:- Project (2588)
: +- SortMergeJoin LeftOuter (2587)
: :- Sort (2359)
: : +- Exchange (2358)
: : +- Project (2357)
: : +- SortMergeJoin LeftOuter (2356)
: : :- Sort (2169)
: : : +- Project (2168)
: : : +- Generate (2167)
: : : +- Project (2166)
: : : +- Generate (2165)
: : : +- Project (2164)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2163)
: : : :- Project (2157)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2156)
: : : : :- Project (2151)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2150)
: : : : : :- Exchange (2144)
: : : : : : +- Filter (2143)
: : : : : : +- Scan parquet (2142)
: : : : : +- BroadcastExchange (2149)
: : : : : +- Project (2148)
: : : : : +- Exchange (2147)
: : : : : +- Project (2146)
: : : : : +- Scan parquet (2145)
: : : : +- BroadcastExchange (2155)
: : : : +- Exchange (2154)
: : : : +- Project (2153)
: : : : +- Scan parquet (2152)
: : : +- BroadcastExchange (2162)
: : : +- Exchange (2161)
: : : +- Project (2160)
: : : +- Filter (2159)
: : : +- Scan parquet (2158)
: : +- Sort (2355)
: : +- HashAggregate (2354)
: : +- Exchange (2353)
: : +- HashAggregate (2352)
: : +- Project (2351)
: : +- SortMergeJoin Inner (2350)
: : :- Sort (2258)
: : : +- Exchange (2257)
: : : +- Project (2256)
: : : +- SortMergeJoin Inner (2255)
: : : :- Sort (2226)
: : : : +- Exchange (2225)
: : : : +- Project (2224)
: : : : +- Filter (2223)
: : : : +- Generate (2222)
: : : : +- Filter (2221)
: : : : +- ObjectHashAggregate (2220)
: : : : +- ObjectHashAggregate (2219)
: : : : +- Generate (2218)
: : : : +- BroadcastHashJoin Inner BuildLeft (2217)
: : : : :- BroadcastExchange (2174)
: : : : : +- Exchange (2173)
: : : : : +- Project (2172)
: : : : : +- Filter (2171)
: : : : : +- Scan parquet (2170)
: : : : +- Project (2216)
: : : : +- BroadcastHashJoin Inner BuildLeft (2215)
: : : : :- BroadcastExchange (2184)
: : : : : +- Project (2183)
: : : : : +- Generate (2182)
: : : : : +- Project (2181)
: : : : : +- Filter (2180)
: : : : : +- Generate (2179)
: : : : : +- Exchange (2178)
: : : : : +- Project (2177)
: : : : : +- Filter (2176)
: : : : : +- Scan parquet (2175)
: : : : +- HashAggregate (2214)
: : : : +- Exchange (2213)
: : : : +- HashAggregate (2212)
: : : : +- Project (2211)
: : : : +- Generate (2210)
: : : : +- Project (2209)
: : : : +- Generate (2208)
: : : : +- Project (2207)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2206)
: : : : :- Project (2200)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2199)
: : : : : :- Project (2194)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (2193)
: : : : : : :- Exchange (2187)
: : : : : : : +- Filter (2186)
: : : : : : : +- Scan parquet (2185)
: : : : : : +- BroadcastExchange (2192)
: : : : : : +- Project (2191)
: : : : : : +- Exchange (2190)
: : : : : : +- Project (2189)
: : : : : : +- Scan parquet (2188)
: : : : : +- BroadcastExchange (2198)
: : : : : +- Exchange (2197)
: : : : : +- Project (2196)
: : : : : +- Scan parquet (2195)
: : : : +- BroadcastExchange (2205)
: : : : +- Exchange (2204)
: : : : +- Project (2203)
: : : : +- Filter (2202)
: : : : +- Scan parquet (2201)
: : : +- Sort (2254)
: : : +- Project (2253)
: : : +- Generate (2252)
: : : +- Project (2251)
: : : +- Generate (2250)
: : : +- Project (2249)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2248)
: : : :- Project (2242)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2241)
: : : : :- Project (2236)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2235)
: : : : : :- Exchange (2229)
: : : : : : +- Filter (2228)
: : : : : : +- Scan parquet (2227)
: : : : : +- BroadcastExchange (2234)
: : : : : +- Project (2233)
: : : : : +- Exchange (2232)
: : : : : +- Project (2231)
: : : : : +- Scan parquet (2230)
: : : : +- BroadcastExchange (2240)
: : : : +- Exchange (2239)
: : : : +- Project (2238)
: : : : +- Scan parquet (2237)
: : : +- BroadcastExchange (2247)
: : : +- Exchange (2246)
: : : +- Project (2245)
: : : +- Filter (2244)
: : : +- Scan parquet (2243)
: : +- Sort (2349)
: : +- Exchange (2348)
: : +- HashAggregate (2347)
: : +- HashAggregate (2346)
: : +- Project (2345)
: : +- SortMergeJoin Inner (2344)
: : :- Sort (2315)
: : : +- Exchange (2314)
: : : +- Project (2313)
: : : +- Filter (2312)
: : : +- Generate (2311)
: : : +- Filter (2310)
: : : +- ObjectHashAggregate (2309)
: : : +- ObjectHashAggregate (2308)
: : : +- Generate (2307)
: : : +- BroadcastHashJoin Inner BuildLeft (2306)
: : : :- BroadcastExchange (2263)
: : : : +- Exchange (2262)
: : : : +- Project (2261)
: : : : +- Filter (2260)
: : : : +- Scan parquet (2259)
: : : +- Project (2305)
: : : +- BroadcastHashJoin Inner BuildLeft (2304)
: : : :- BroadcastExchange (2273)
: : : : +- Project (2272)
: : : : +- Generate (2271)
: : : : +- Project (2270)
: : : : +- Filter (2269)
: : : : +- Generate (2268)
: : : : +- Exchange (2267)
: : : : +- Project (2266)
: : : : +- Filter (2265)
: : : : +- Scan parquet (2264)
: : : +- HashAggregate (2303)
: : : +- Exchange (2302)
: : : +- HashAggregate (2301)
: : : +- Project (2300)
: : : +- Generate (2299)
: : : +- Project (2298)
: : : +- Generate (2297)
: : : +- Project (2296)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2295)
: : : :- Project (2289)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2288)
: : : : :- Project (2283)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2282)
: : : : : :- Exchange (2276)
: : : : : : +- Filter (2275)
: : : : : : +- Scan parquet (2274)
: : : : : +- BroadcastExchange (2281)
: : : : : +- Project (2280)
: : : : : +- Exchange (2279)
: : : : : +- Project (2278)
: : : : : +- Scan parquet (2277)
: : : : +- BroadcastExchange (2287)
: : : : +- Exchange (2286)
: : : : +- Project (2285)
: : : : +- Scan parquet (2284)
: : : +- BroadcastExchange (2294)
: : : +- Exchange (2293)
: : : +- Project (2292)
: : : +- Filter (2291)
: : : +- Scan parquet (2290)
: : +- Sort (2343)
: : +- Project (2342)
: : +- Generate (2341)
: : +- Project (2340)
: : +- Generate (2339)
: : +- Project (2338)
: : +- BroadcastHashJoin LeftOuter BuildRight (2337)
: : :- Project (2331)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2330)
: : : :- Project (2325)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2324)
: : : : :- Exchange (2318)
: : : : : +- Filter (2317)
: : : : : +- Scan parquet (2316)
: : : : +- BroadcastExchange (2323)
: : : : +- Project (2322)
: : : : +- Exchange (2321)
: : : : +- Project (2320)
: : : : +- Scan parquet (2319)
: : : +- BroadcastExchange (2329)
: : : +- Exchange (2328)
: : : +- Project (2327)
: : : +- Scan parquet (2326)
: : +- BroadcastExchange (2336)
: : +- Exchange (2335)
: : +- Project (2334)
: : +- Filter (2333)
: : +- Scan parquet (2332)
: +- Sort (2586)
: +- Exchange (2585)
: +- SerializeFromObject (2584)
: +- MapElements (2583)
: +- DeserializeToObject (2582)
: +- ObjectHashAggregate (2581)
: +- ObjectHashAggregate (2580)
: +- Project (2579)
: +- BroadcastHashJoin LeftOuter BuildRight (2578)
: :- Project (2574)
: : +- SortMergeJoin LeftOuter (2573)
: : :- Sort (2386)
: : : +- Project (2385)
: : : +- Project (2384)
: : : +- Generate (2383)
: : : +- Generate (2382)
: : : +- Project (2381)
: : : +- Project (2380)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2379)
: : : :- Project (2373)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2372)
: : : : :- BroadcastHashJoin LeftOuter BuildRight (2367)
: : : : : :- Exchange (2361)
: : : : : : +- Scan parquet (2360)
: : : : : +- BroadcastExchange (2366)
: : : : : +- Project (2365)
: : : : : +- Exchange (2364)
: : : : : +- Project (2363)
: : : : : +- Scan parquet (2362)
: : : : +- BroadcastExchange (2371)
: : : : +- Exchange (2370)
: : : : +- Project (2369)
: : : : +- Scan parquet (2368)
: : : +- BroadcastExchange (2378)
: : : +- Exchange (2377)
: : : +- Project (2376)
: : : +- Filter (2375)
: : : +- Scan parquet (2374)
: : +- Sort (2572)
: : +- HashAggregate (2571)
: : +- Exchange (2570)
: : +- HashAggregate (2569)
: : +- Project (2568)
: : +- SortMergeJoin Inner (2567)
: : :- Sort (2475)
: : : +- Exchange (2474)
: : : +- Project (2473)
: : : +- SortMergeJoin Inner (2472)
: : : :- Sort (2443)
: : : : +- Exchange (2442)
: : : : +- Project (2441)
: : : : +- Filter (2440)
: : : : +- Generate (2439)
: : : : +- Filter (2438)
: : : : +- ObjectHashAggregate (2437)
: : : : +- ObjectHashAggregate (2436)
: : : : +- Generate (2435)
: : : : +- BroadcastHashJoin Inner BuildLeft (2434)
: : : : :- BroadcastExchange (2391)
: : : : : +- Exchange (2390)
: : : : : +- Project (2389)
: : : : : +- Filter (2388)
: : : : : +- Scan parquet (2387)
: : : : +- Project (2433)
: : : : +- BroadcastHashJoin Inner BuildLeft (2432)
: : : : :- BroadcastExchange (2401)
: : : : : +- Project (2400)
: : : : : +- Generate (2399)
: : : : : +- Project (2398)
: : : : : +- Filter (2397)
: : : : : +- Generate (2396)
: : : : : +- Exchange (2395)
: : : : : +- Project (2394)
: : : : : +- Filter (2393)
: : : : : +- Scan parquet (2392)
: : : : +- HashAggregate (2431)
: : : : +- Exchange (2430)
: : : : +- HashAggregate (2429)
: : : : +- Project (2428)
: : : : +- Generate (2427)
: : : : +- Project (2426)
: : : : +- Generate (2425)
: : : : +- Project (2424)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2423)
: : : : :- Project (2417)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2416)
: : : : : :- Project (2411)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (2410)
: : : : : : :- Exchange (2404)
: : : : : : : +- Filter (2403)
: : : : : : : +- Scan parquet (2402)
: : : : : : +- BroadcastExchange (2409)
: : : : : : +- Project (2408)
: : : : : : +- Exchange (2407)
: : : : : : +- Project (2406)
: : : : : : +- Scan parquet (2405)
: : : : : +- BroadcastExchange (2415)
: : : : : +- Exchange (2414)
: : : : : +- Project (2413)
: : : : : +- Scan parquet (2412)
: : : : +- BroadcastExchange (2422)
: : : : +- Exchange (2421)
: : : : +- Project (2420)
: : : : +- Filter (2419)
: : : : +- Scan parquet (2418)
: : : +- Sort (2471)
: : : +- Project (2470)
: : : +- Generate (2469)
: : : +- Project (2468)
: : : +- Generate (2467)
: : : +- Project (2466)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2465)
: : : :- Project (2459)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2458)
: : : : :- Project (2453)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2452)
: : : : : :- Exchange (2446)
: : : : : : +- Filter (2445)
: : : : : : +- Scan parquet (2444)
: : : : : +- BroadcastExchange (2451)
: : : : : +- Project (2450)
: : : : : +- Exchange (2449)
: : : : : +- Project (2448)
: : : : : +- Scan parquet (2447)
: : : : +- BroadcastExchange (2457)
: : : : +- Exchange (2456)
: : : : +- Project (2455)
: : : : +- Scan parquet (2454)
: : : +- BroadcastExchange (2464)
: : : +- Exchange (2463)
: : : +- Project (2462)
: : : +- Filter (2461)
: : : +- Scan parquet (2460)
: : +- Sort (2566)
: : +- Exchange (2565)
: : +- HashAggregate (2564)
: : +- HashAggregate (2563)
: : +- Project (2562)
: : +- SortMergeJoin Inner (2561)
: : :- Sort (2532)
: : : +- Exchange (2531)
: : : +- Project (2530)
: : : +- Filter (2529)
: : : +- Generate (2528)
: : : +- Filter (2527)
: : : +- ObjectHashAggregate (2526)
: : : +- ObjectHashAggregate (2525)
: : : +- Generate (2524)
: : : +- BroadcastHashJoin Inner BuildLeft (2523)
: : : :- BroadcastExchange (2480)
: : : : +- Exchange (2479)
: : : : +- Project (2478)
: : : : +- Filter (2477)
: : : : +- Scan parquet (2476)
: : : +- Project (2522)
: : : +- BroadcastHashJoin Inner BuildLeft (2521)
: : : :- BroadcastExchange (2490)
: : : : +- Project (2489)
: : : : +- Generate (2488)
: : : : +- Project (2487)
: : : : +- Filter (2486)
: : : : +- Generate (2485)
: : : : +- Exchange (2484)
: : : : +- Project (2483)
: : : : +- Filter (2482)
: : : : +- Scan parquet (2481)
: : : +- HashAggregate (2520)
: : : +- Exchange (2519)
: : : +- HashAggregate (2518)
: : : +- Project (2517)
: : : +- Generate (2516)
: : : +- Project (2515)
: : : +- Generate (2514)
: : : +- Project (2513)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2512)
: : : :- Project (2506)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2505)
: : : : :- Project (2500)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (2499)
: : : : : :- Exchange (2493)
: : : : : : +- Filter (2492)
: : : : : : +- Scan parquet (2491)
: : : : : +- BroadcastExchange (2498)
: : : : : +- Project (2497)
: : : : : +- Exchange (2496)
: : : : : +- Project (2495)
: : : : : +- Scan parquet (2494)
: : : : +- BroadcastExchange (2504)
: : : : +- Exchange (2503)
: : : : +- Project (2502)
: : : : +- Scan parquet (2501)
: : : +- BroadcastExchange (2511)
: : : +- Exchange (2510)
: : : +- Project (2509)
: : : +- Filter (2508)
: : : +- Scan parquet (2507)
: : +- Sort (2560)
: : +- Project (2559)
: : +- Generate (2558)
: : +- Project (2557)
: : +- Generate (2556)
: : +- Project (2555)
: : +- BroadcastHashJoin LeftOuter BuildRight (2554)
: : :- Project (2548)
: : : +- BroadcastHashJoin LeftOuter BuildRight (2547)
: : : :- Project (2542)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (2541)
: : : : :- Exchange (2535)
: : : : : +- Filter (2534)
: : : : : +- Scan parquet (2533)
: : : : +- BroadcastExchange (2540)
: : : : +- Project (2539)
: : : : +- Exchange (2538)
: : : : +- Project (2537)
: : : : +- Scan parquet (2536)
: : : +- BroadcastExchange (2546)
: : : +- Exchange (2545)
: : : +- Project (2544)
: : : +- Scan parquet (2543)
: : +- BroadcastExchange (2553)
: : +- Exchange (2552)
: : +- Project (2551)
: : +- Filter (2550)
: : +- Scan parquet (2549)
: +- BroadcastExchange (2577)
: +- Filter (2576)
: +- Scan parquet (2575)
+- BroadcastExchange (2596)
+- Project (2595)
+- Filter (2594)
+- Generate (2593)
+- Exchange (2592)
+- Project (2591)
+- Filter (2590)
+- Scan parquet (2589)
(1) 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]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(2) ColumnarToRow [codegen id : 1]
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
(3) Exchange
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: hashpartitioning(product#1135691, plant#1135692, 37), REPARTITION_BY_NUM, [plan_id=1719613]
(4) ShuffleQueryStage
Output [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: 0
(5) 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>>>>
(6) ColumnarToRow [codegen id : 2]
Input [4]: [plant#1135698, product#1135699, productionAspect#1135701, systemId#1135696]
(7) Project [codegen id : 2]
Output [4]: [plant#1135698.internalRefUUID AS _extract_internalRefUUID#1142890, product#1135699.internalRefUUID AS _extract_internalRefUUID#1142891, productionAspect#1135701.productMovementPlants.unitOfIssue.code AS _extract_code#1142888, productionAspect#1135701.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142889]
Input [4]: [plant#1135698, product#1135699, productionAspect#1135701, systemId#1135696]
(8) Exchange
Input [4]: [_extract_internalRefUUID#1142890, _extract_internalRefUUID#1142891, _extract_code#1142888, _extract_internalRefUUID#1142889]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1719627]
(9) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#1142890, _extract_internalRefUUID#1142891, _extract_code#1142888, _extract_internalRefUUID#1142889]
Arguments: 1
(10) Project [codegen id : 199]
Output [4]: [_extract_code#1142888, _extract_internalRefUUID#1142889, _extract_internalRefUUID#1142891, _extract_internalRefUUID#1142890]
Input [4]: [_extract_internalRefUUID#1142890, _extract_internalRefUUID#1142891, _extract_code#1142888, _extract_internalRefUUID#1142889]
(11) BroadcastExchange
Input [4]: [_extract_code#1142888, _extract_internalRefUUID#1142889, _extract_internalRefUUID#1142891, _extract_internalRefUUID#1142890]
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=1768491]
(12) BroadcastQueryStage
Output [4]: [_extract_code#1142888, _extract_internalRefUUID#1142889, _extract_internalRefUUID#1142891, _extract_internalRefUUID#1142890]
Arguments: 385
(13) BroadcastHashJoin [codegen id : 389]
Left keys [4]: [coalesce(product#1135691, ), isnull(product#1135691), coalesce(plant#1135692, ), isnull(plant#1135692)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142891, ), isnull(_extract_internalRefUUID#1142891), coalesce(_extract_internalRefUUID#1142890, ), isnull(_extract_internalRefUUID#1142890)]
Join type: LeftOuter
Join condition: None
(14) Project [codegen id : 389]
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889]
Input [7]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889, _extract_internalRefUUID#1142891, _extract_internalRefUUID#1142890]
(15) Scan parquet
Output [2]: [internalUUID#1135709, 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>
(16) ColumnarToRow [codegen id : 3]
Input [2]: [internalUUID#1135709, systemId#1135708]
(17) Project [codegen id : 3]
Output [1]: [internalUUID#1135709]
Input [2]: [internalUUID#1135709, systemId#1135708]
(18) Exchange
Input [1]: [internalUUID#1135709]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1719646]
(19) ShuffleQueryStage
Output [1]: [internalUUID#1135709]
Arguments: 2
(20) BroadcastExchange
Input [1]: [internalUUID#1135709]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1719654]
(21) BroadcastQueryStage
Output [1]: [internalUUID#1135709]
Arguments: 386
(22) BroadcastHashJoin [codegen id : 389]
Left keys [2]: [coalesce(plant#1135692, ), isnull(plant#1135692)]
Right keys [2]: [coalesce(internalUUID#1135709, ), isnull(internalUUID#1135709)]
Join type: LeftOuter
Join condition: None
(23) Project [codegen id : 389]
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889]
Input [6]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889, internalUUID#1135709]
(24) 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>>>
(25) ColumnarToRow [codegen id : 4]
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(26) Filter [codegen id : 4]
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
Condition : isnotnull(internalUUID#1135725)
(27) Project [codegen id : 4]
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(28) Exchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1719666]
(29) ShuffleQueryStage
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: 3
(30) BroadcastExchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1719676]
(31) BroadcastQueryStage
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: 387
(32) BroadcastHashJoin [codegen id : 389]
Left keys [1]: [product#1135691]
Right keys [1]: [internalUUID#1135725]
Join type: LeftOuter
Join condition: None
(33) Project
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, filter(unitOfMeasureConversions#1135731, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142888) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142889)) 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 [8]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889, internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
(34) Project [codegen id : 390]
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, filteredUnitOfMeasureConversions#1135737.quantityDenominator AS _extract_quantityDenominator#1142383, filteredUnitOfMeasureConversions#1135737.quantityNumerator AS _extract_quantityNumerator#1142384]
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, filteredUnitOfMeasureConversions#1135737]
(35) Generate [codegen id : 390]
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_quantityDenominator#1142383, _extract_quantityNumerator#1142384]
Arguments: explode(_extract_quantityNumerator#1142384), [product#1135691, plant#1135692, orderDateTime#1135693, _extract_quantityDenominator#1142383], true, [quantityNumerator#1135745]
(36) Generate [codegen id : 390]
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_quantityDenominator#1142383, quantityNumerator#1135745]
Arguments: explode(_extract_quantityDenominator#1142383), [product#1135691, plant#1135692, orderDateTime#1135693, quantityNumerator#1135745], true, [quantityDenominator#1135748]
(37) Project [codegen id : 390]
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, (cast(quantityNumerator#1135745 as double) / cast(quantityDenominator#1135748 as double)) AS outboundUnit#1135749]
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, quantityNumerator#1135745, quantityDenominator#1135748]
(38) Project [codegen id : 390]
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, CASE WHEN (isnull(outboundUnit#1135749) OR (outboundUnit#1135749 <= 0.0)) THEN 1.0 ELSE outboundUnit#1135749 END AS outboundUnit#1135750]
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, outboundUnit#1135749]
(39) Project [codegen id : 390]
Output [8]: [product#1135691, plant#1135692, orderDateTime#1135693, outboundUnit#1135750, cast(null as string) AS product#1135882, cast(null as string) AS plant#1135881, cast(null as timestamp) AS minCalculationDateTime#1136038, cast(null as double) AS roundedQuantitySum#1136046]
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, outboundUnit#1135750]
(40) Project [codegen id : 390]
Output [5]: [product#1135691, plant#1135692, outboundUnit#1135750, CASE WHEN isnotnull(minCalculationDateTime#1136038) THEN minCalculationDateTime#1136038 ELSE orderDateTime#1135693 END AS stockDatetime#1136095, CASE WHEN isnotnull(roundedQuantitySum#1136046) THEN array(roundedQuantitySum#1136046) ELSE [0.0] END AS stockBatchQuantities#1136096]
Input [8]: [product#1135691, plant#1135692, orderDateTime#1135693, outboundUnit#1135750, product#1135882, plant#1135881, minCalculationDateTime#1136038, roundedQuantitySum#1136046]
(41) Exchange
Input [5]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096]
Arguments: hashpartitioning(coalesce(plant#1135692, ), isnull(plant#1135692), coalesce(product#1135691, ), isnull(product#1135691), 37), ENSURE_REQUIREMENTS, [plan_id=1813249]
(42) ShuffleQueryStage
Output [5]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096]
Arguments: 686
(43) AQEShuffleRead
Input [5]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096]
Arguments: local
(44) ReusedExchange [Reuses operator id: 3]
Output [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
(45) ShuffleQueryStage
Output [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
Arguments: 41
(46) 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>>>
(47) ColumnarToRow [codegen id : 26]
Input [8]: [internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184, systemId#1136177]
(48) Project [codegen id : 26]
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]
(49) 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=1720196]
(50) ShuffleQueryStage
Output [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
Arguments: 42
(51) Project [codegen id : 206]
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]
(52) 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=1768720]
(53) BroadcastQueryStage
Output [1]: [productPlant#1136185]
Arguments: 409
(54) BroadcastHashJoin [codegen id : 391]
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
(55) 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>>>
(56) ColumnarToRow [codegen id : 27]
Input [3]: [internalUUID#1136187, address#1136193, systemId#1136186]
(57) Project [codegen id : 27]
Output [2]: [internalUUID#1136187, address#1136193.timeZone.code AS timezonecode#1136198]
Input [3]: [internalUUID#1136187, address#1136193, systemId#1136186]
(58) Exchange
Input [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1720214]
(59) ShuffleQueryStage
Output [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: 43
(60) BroadcastExchange
Input [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1720222]
(61) BroadcastQueryStage
Output [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: 410
(62) BroadcastHashJoin [codegen id : 391]
Left keys [2]: [coalesce(plant#1136174, ), isnull(plant#1136174)]
Right keys [2]: [coalesce(internalUUID#1136187, ), isnull(internalUUID#1136187)]
Join type: LeftOuter
Join condition: None
(63) Project [codegen id : 391]
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]
(64) ReusedExchange [Reuses operator id: 30]
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
(65) BroadcastQueryStage
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: 411
(66) BroadcastHashJoin [codegen id : 391]
Left keys [1]: [product#1136173]
Right keys [1]: [internalUUID#1136201]
Join type: LeftOuter
Join condition: None
(67) 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]
(68) Project [codegen id : 392]
Output [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filteredUnitOfMeasureConversions#1136212.quantityDenominator AS _extract_quantityDenominator#1142415, filteredUnitOfMeasureConversions#1136212.quantityNumerator AS _extract_quantityNumerator#1142416]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filteredUnitOfMeasureConversions#1136212]
(69) Generate [codegen id : 392]
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1142415, _extract_quantityNumerator#1142416]
Arguments: explode(_extract_quantityNumerator#1142416), [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1142415], true, [quantityNumerator#1136213]
(70) Generate [codegen id : 392]
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1142415, quantityNumerator#1136213]
Arguments: explode(_extract_quantityDenominator#1142415), [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, quantityNumerator#1136213], true, [quantityDenominator#1136214]
(71) Project [codegen id : 392]
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]
(72) Project [codegen id : 392]
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]
(73) Project [codegen id : 392]
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]
(74) Project [codegen id : 392]
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]
(75) 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>>>
(76) ColumnarToRow [codegen id : 49]
Input [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
(77) Filter [codegen id : 49]
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))
(78) 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=1720758]
(79) BroadcastQueryStage
Output [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
Arguments: 86
(80) BroadcastHashJoin [codegen id : 392]
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136098, plant#1136099]
Join type: LeftOuter
Join condition: None
(81) Project [codegen id : 392]
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]
(82) 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#1150645)), lambda arg#1150645, false))) AS stockBatchQuantities#1136496, [7226582400000000] AS [7226582400000000]#1150644]
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]#1150644, buf#1137536]
(83) ObjectHashAggregate
Input [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1150644, buf#1137536]
Keys [9]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1150644]
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]
(84) DeserializeToObject [codegen id : 393]
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, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#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, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1136496, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), 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, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#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
(85) MapElements [codegen id : 393]
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
(86) SerializeFromObject [codegen id : 393]
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, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1136171, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1136172]
(87) Exchange
Input [4]: [product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: hashpartitioning(coalesce(plant#1136170, ), isnull(plant#1136170), coalesce(product#1136169, ), isnull(product#1136169), 37), ENSURE_REQUIREMENTS, [plan_id=1813316]
(88) ShuffleQueryStage
Output [4]: [product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: 687
(89) AQEShuffleRead
Input [4]: [product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: local
(90) BroadcastExchange
Input [4]: [product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
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=1815343]
(91) BroadcastQueryStage
Output [4]: [product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: 697
(92) BroadcastHashJoin [codegen id : 407]
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
(93) Project [codegen id : 407]
Output [7]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Input [9]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
(94) Exchange
Input [7]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: hashpartitioning(product#1135691, plant#1135692, 37), ENSURE_REQUIREMENTS, [plan_id=1815949]
(95) ShuffleQueryStage
Output [7]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: 703
(96) AQEShuffleRead
Input [7]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: coalesced
(97) Project [codegen id : 413]
Output [12]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172, cast(null as string) AS product#1136540, cast(null as string) AS plant#1136539, cast(null as array<double>) AS _extract_openQtyInBaseUnit#1142380, cast(null as array<timestamp>) AS _extract_availabilityDatetime#1142381, cast(null as array<timestamp>) AS _extract_shelfLifeEndDatetime#1142382]
Input [7]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172]
(98) Project [codegen id : 413]
Output [10]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172, coalesce(_extract_openQtyInBaseUnit#1142380, []) AS openGoodsMovementQuantities#1139437, coalesce(_extract_availabilityDatetime#1142381, []) AS openGoodsMovementAvailabilityDatetimes#1139438, coalesce(_extract_shelfLifeEndDatetime#1142382, []) AS openGoodsMovementShelfLifeEndDatetimes#1139439]
Input [12]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172, product#1136540, plant#1136539, _extract_openQtyInBaseUnit#1142380, _extract_availabilityDatetime#1142381, _extract_shelfLifeEndDatetime#1142382]
(99) ReusedExchange [Reuses operator id: 3]
Output [3]: [product#1139739, plant#1139740, orderDateTime#1139741]
(100) ShuffleQueryStage
Output [3]: [product#1139739, plant#1139740, orderDateTime#1139741]
Arguments: 187
(101) ReusedExchange [Reuses operator id: 52]
Output [1]: [productPlant#1139751]
(102) BroadcastQueryStage
Output [1]: [productPlant#1139751]
Arguments: 487
(103) BroadcastHashJoin [codegen id : 397]
Left keys [4]: [coalesce(product#1139739, ), isnull(product#1139739), coalesce(plant#1139740, ), isnull(plant#1139740)]
Right keys [4]: [coalesce(productPlant#1139751.product.internalRefUUID, ), isnull(productPlant#1139751.product.internalRefUUID), coalesce(productPlant#1139751.plant.internalRefUUID, ), isnull(productPlant#1139751.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(104) ReusedExchange [Reuses operator id: 60]
Output [2]: [internalUUID#1139753, timezonecode#1139764]
(105) BroadcastQueryStage
Output [2]: [internalUUID#1139753, timezonecode#1139764]
Arguments: 488
(106) BroadcastHashJoin [codegen id : 397]
Left keys [2]: [coalesce(plant#1139740, ), isnull(plant#1139740)]
Right keys [2]: [coalesce(internalUUID#1139753, ), isnull(internalUUID#1139753)]
Join type: LeftOuter
Join condition: None
(107) Project [codegen id : 397]
Output [5]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, CASE WHEN isnotnull(timezonecode#1139764) THEN timezonecode#1139764 ELSE UTC END AS timezonecode#1139765]
Input [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, internalUUID#1139753, timezonecode#1139764]
(108) ReusedExchange [Reuses operator id: 30]
Output [3]: [internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773]
(109) BroadcastQueryStage
Output [3]: [internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773]
Arguments: 489
(110) BroadcastHashJoin [codegen id : 397]
Left keys [1]: [product#1139739]
Right keys [1]: [internalUUID#1139767]
Join type: LeftOuter
Join condition: None
(111) Project
Output [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, filter(unitOfMeasureConversions#1139773, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139771.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139771.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139778]
Input [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773]
(112) Project [codegen id : 398]
Output [7]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, filteredUnitOfMeasureConversions#1139778.quantityDenominator AS _extract_quantityDenominator#1142500, filteredUnitOfMeasureConversions#1139778.quantityNumerator AS _extract_quantityNumerator#1142501]
Input [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, filteredUnitOfMeasureConversions#1139778]
(113) Generate [codegen id : 398]
Input [7]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, _extract_quantityDenominator#1142500, _extract_quantityNumerator#1142501]
Arguments: explode(_extract_quantityNumerator#1142501), [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, _extract_quantityDenominator#1142500], true, [quantityNumerator#1139779]
(114) Generate [codegen id : 398]
Input [7]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, _extract_quantityDenominator#1142500, quantityNumerator#1139779]
Arguments: explode(_extract_quantityDenominator#1142500), [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, quantityNumerator#1139779], true, [quantityDenominator#1139780]
(115) Project [codegen id : 398]
Output [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, (cast(quantityNumerator#1139779 as double) / cast(quantityDenominator#1139780 as double)) AS outboundUnit#1139781]
Input [7]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, quantityNumerator#1139779, quantityDenominator#1139780]
(116) Project [codegen id : 398]
Output [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, CASE WHEN (isnull(outboundUnit#1139781) OR (outboundUnit#1139781 <= 0.0)) THEN 1.0 ELSE outboundUnit#1139781 END AS outboundUnit#1139782]
Input [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139781]
(117) Project [codegen id : 398]
Output [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, cast(null as string) AS product#1139919, cast(null as string) AS plant#1139918, cast(null as timestamp) AS minCalculationDateTime#1140059, cast(null as double) AS roundedQuantitySum#1140060]
Input [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782]
(118) Project [codegen id : 398]
Output [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, CASE WHEN isnotnull(minCalculationDateTime#1140059) THEN minCalculationDateTime#1140059 ELSE orderDateTime#1139741 END AS stockDatetime#1140061, CASE WHEN isnotnull(roundedQuantitySum#1140060) THEN array(roundedQuantitySum#1140060) ELSE [0.0] END AS stockBatchQuantities#1140062]
Input [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, product#1139919, plant#1139918, minCalculationDateTime#1140059, roundedQuantitySum#1140060]
(119) Exchange
Input [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062]
Arguments: hashpartitioning(coalesce(plant#1139740, ), isnull(plant#1139740), coalesce(product#1139739, ), isnull(product#1139739), 37), ENSURE_REQUIREMENTS, [plan_id=1813718]
(120) ShuffleQueryStage
Output [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062]
Arguments: 689
(121) AQEShuffleRead
Input [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062]
Arguments: local
(122) ReusedExchange [Reuses operator id: 90]
Output [4]: [product#1140400, plant#1140401, dayBucketDemands#1140402, pointInTimeDemands#1140403]
(123) BroadcastQueryStage
Output [4]: [product#1140400, plant#1140401, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Arguments: 699
(124) BroadcastHashJoin [codegen id : 408]
Left keys [4]: [coalesce(plant#1139740, ), isnull(plant#1139740), coalesce(product#1139739, ), isnull(product#1139739)]
Right keys [4]: [coalesce(plant#1140401, ), isnull(plant#1140401), coalesce(product#1140400, ), isnull(product#1140400)]
Join type: LeftOuter
Join condition: None
(125) Project [codegen id : 408]
Output [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Input [12]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, product#1140400, plant#1140401, dayBucketDemands#1140402, pointInTimeDemands#1140403]
(126) Exchange
Input [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Arguments: hashpartitioning(product#1139739, plant#1139740, 37), ENSURE_REQUIREMENTS, [plan_id=1816014]
(127) ShuffleQueryStage
Output [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Arguments: 704
(128) AQEShuffleRead
Input [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Arguments: coalesced
(129) Project [codegen id : 411]
Output [15]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403, cast(null as string) AS product#1141154, cast(null as string) AS plant#1141153, cast(null as array<double>) AS _extract_openQtyInBaseUnit#1142497, cast(null as array<timestamp>) AS _extract_availabilityDatetime#1142498, cast(null as array<timestamp>) AS _extract_shelfLifeEndDatetime#1142499]
Input [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403]
(130) Project
Output [16]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, coalesce(_extract_openQtyInBaseUnit#1142497, []) AS openGoodsMovementQuantities#1141859, coalesce(_extract_availabilityDatetime#1142498, []) AS openGoodsMovementAvailabilityDatetimes#1141860, coalesce(_extract_shelfLifeEndDatetime#1142499, []) AS openGoodsMovementShelfLifeEndDatetimes#1141861, [[0,ShelfLife.LIFOPreference,0.42],[0,StockExtrapolation.ConsiderUnfulfilledDemands,1]] AS configuration#1141862, array_sort(filter(CASE WHEN isnotnull(productPlant#1139751.listing) THEN productPlant#1139751.listing ELSE [] END, lambdafunction(lambda listing#1139683.isListed, lambda listing#1139683, false)), lambdafunction(if ((isnull(lambda left#1139685) AND isnull(lambda right#1139686))) 0 else if (isnull(lambda left#1139685)) 1 else if (isnull(lambda right#1139686)) -1 else if ((lambda left#1139685 < lambda right#1139686)) -1 else if ((lambda left#1139685 > lambda right#1139686)) 1 else 0, lambda left#1139685, lambda right#1139686, false), false) AS listing#1139684]
Input [15]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403, product#1141154, plant#1141153, _extract_openQtyInBaseUnit#1142497, _extract_availabilityDatetime#1142498, _extract_shelfLifeEndDatetime#1142499]
(131) DeserializeToObject [codegen id : 412]
Input [16]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, openGoodsMovementQuantities#1141859, openGoodsMovementAvailabilityDatetimes#1141860, openGoodsMovementShelfLifeEndDatetimes#1141861, configuration#1141862, listing#1139684]
Arguments: createexternalrow(invoke(product#1139739.toString()), invoke(plant#1139740.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1139741)), if (isnull(productPlant#1139751)) null else createexternalrow(invoke(productPlant#1139751.systemId.toString()), invoke(productPlant#1139751.internalUUID.toString()), if (isnull(productPlant#1139751.plant)) null else createexternalrow(invoke(productPlant#1139751.plant.internalRefUUID.toString()), invoke(productPlant#1139751.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1139751.product)) null else createexternalrow(invoke(productPlant#1139751.product.internalRefUUID.toString()), invoke(productPlant#1139751.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1139751.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1139751.productionAspect)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1139751.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#1139751.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1139751.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1139751.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#1139751.salesPlant)) null else createexternalrow(if (isnull(productPlant#1139751.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1139751.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1139751.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1139751.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#1139765.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1139782)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1140061)), mapobjects(lambdavariable(MapObject, DoubleType, true, -22), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -22))), stockBatchQuantities#1140062, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -23), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -23))), stockBatchShelfLifeEndDatetimes#1140063, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, -25), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, false, -25))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -26), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -26))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -27), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -27))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, -28), invoke(lambdavariable(MapObject, StringType, false, -28).toString()), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, -29), static_invoke(java.lang.Integer.valueOf(lambdavariable(MapObject, IntegerType, false, -29))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorIndices, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true)), dayBucketDemands#1140402, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, -31), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -31))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, -32), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, false, -32))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -33), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -33))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandVariances, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).horizonStartDatetime)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).horizonEndDatetime)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true)), pointInTimeDemands#1140403, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -34), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -34))), openGoodsMovementQuantities#1141859, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, -35), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, true, -35))), openGoodsMovementAvailabilityDatetimes#1141860, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -36), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -36))), openGoodsMovementShelfLifeEndDatetimes#1141861, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37), createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false)), configuration#1141862, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#1139684, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), ... 7 more fields), obj#1139719: org.apache.spark.sql.Row
(132) MapElements [codegen id : 412]
Input [1]: [obj#1139719]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.ListingSnapshotEnhancementImpl$$Lambda/0x000000080249e4c8@75d0fa77, obj#1139726: org.apache.spark.sql.Row
(133) SerializeFromObject [codegen id : 412]
Input [1]: [obj#1139726]
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#1139733, 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#1139734, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -17), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -17), StringType, ObjectType(class java.lang.String)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, timeDependentSettingsName), ArrayType(StringType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsName#1139735, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -18), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -18), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, timeDependentSettingsStartDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsStartDatetime#1139736, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -19), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -19), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, timeDependentSettingsEndDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsEndDatetime#1139737, if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -20), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -20), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsValue#1139738]
(134) Filter [codegen id : 412]
Input [6]: [product#1139733, plant#1139734, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
Condition : (isnotnull(product#1139733) AND isnotnull(plant#1139734))
(135) BroadcastExchange
Input [6]: [product#1139733, plant#1139734, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1816380]
(136) BroadcastQueryStage
Output [6]: [product#1139733, plant#1139734, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
Arguments: 707
(137) BroadcastHashJoin [codegen id : 413]
Left keys [2]: [product#1135691, plant#1135692]
Right keys [2]: [product#1139733, plant#1139734]
Join type: LeftOuter
Join condition: None
(138) Project [codegen id : 413]
Output [16]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, [[0,ShelfLife.LIFOPreference,0.42],[0,StockExtrapolation.ConsiderUnfulfilledDemands,1]] AS configuration#1139540, CASE WHEN isnotnull(timeDependentSettingsName#1139735) THEN timeDependentSettingsName#1139735 ELSE [] END AS timeDependentSettingsName#1142017, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#1139736) THEN timeDependentSettingsStartDatetime#1139736 ELSE [] END AS timeDependentSettingsStartDatetime#1142018, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#1139737) THEN timeDependentSettingsEndDatetime#1139737 ELSE [] END AS timeDependentSettingsEndDatetime#1142019, CASE WHEN isnotnull(timeDependentSettingsValue#1139738) THEN timeDependentSettingsValue#1139738 ELSE [] END AS timeDependentSettingsValue#1142020]
Input [16]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, product#1139733, plant#1139734, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
(139) ResultQueryStage
Output [16]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1142017, timeDependentSettingsStartDatetime#1142018, timeDependentSettingsEndDatetime#1142019, timeDependentSettingsValue#1142020]
Arguments: 709
(140) Exchange
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: hashpartitioning(product#1135691, plant#1135692, 37), REPARTITION_BY_NUM, [plan_id=1715249]
(141) Project
Output [4]: [plant#1135698.internalRefUUID AS _extract_internalRefUUID#1142890, product#1135699.internalRefUUID AS _extract_internalRefUUID#1142891, productionAspect#1135701.productMovementPlants.unitOfIssue.code AS _extract_code#1142888, productionAspect#1135701.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142889]
Input [4]: [plant#1135698, product#1135699, productionAspect#1135701, systemId#1135696]
(142) Exchange
Input [4]: [_extract_internalRefUUID#1142890, _extract_internalRefUUID#1142891, _extract_code#1142888, _extract_internalRefUUID#1142889]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715252]
(143) Project
Output [4]: [_extract_code#1142888, _extract_internalRefUUID#1142889, _extract_internalRefUUID#1142891, _extract_internalRefUUID#1142890]
Input [4]: [_extract_internalRefUUID#1142890, _extract_internalRefUUID#1142891, _extract_code#1142888, _extract_internalRefUUID#1142889]
(144) BroadcastExchange
Input [4]: [_extract_code#1142888, _extract_internalRefUUID#1142889, _extract_internalRefUUID#1142891, _extract_internalRefUUID#1142890]
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=1717554]
(145) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135691, ), isnull(product#1135691), coalesce(plant#1135692, ), isnull(plant#1135692)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142891, ), isnull(_extract_internalRefUUID#1142891), coalesce(_extract_internalRefUUID#1142890, ), isnull(_extract_internalRefUUID#1142890)]
Join type: LeftOuter
Join condition: None
(146) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889]
Input [7]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889, _extract_internalRefUUID#1142891, _extract_internalRefUUID#1142890]
(147) Project
Output [1]: [internalUUID#1135709]
Input [2]: [internalUUID#1135709, systemId#1135708]
(148) Exchange
Input [1]: [internalUUID#1135709]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715258]
(149) BroadcastExchange
Input [1]: [internalUUID#1135709]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717558]
(150) 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
(151) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889]
Input [6]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889, internalUUID#1135709]
(152) Filter
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
Condition : isnotnull(internalUUID#1135725)
(153) Project
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(154) Exchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715264]
(155) BroadcastExchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717562]
(156) BroadcastHashJoin
Left keys [1]: [product#1135691]
Right keys [1]: [internalUUID#1135725]
Join type: LeftOuter
Join condition: None
(157) Project
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, filter(unitOfMeasureConversions#1135731, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142888) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142889)) 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 [8]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_code#1142888, _extract_internalRefUUID#1142889, internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
(158) Project
Output [5]: [product#1135691, plant#1135692, orderDateTime#1135693, filteredUnitOfMeasureConversions#1135737.quantityDenominator AS _extract_quantityDenominator#1142383, filteredUnitOfMeasureConversions#1135737.quantityNumerator AS _extract_quantityNumerator#1142384]
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, filteredUnitOfMeasureConversions#1135737]
(159) Generate
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_quantityDenominator#1142383, _extract_quantityNumerator#1142384]
Arguments: explode(_extract_quantityNumerator#1142384), [product#1135691, plant#1135692, orderDateTime#1135693, _extract_quantityDenominator#1142383], true, [quantityNumerator#1135745]
(160) Generate
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, _extract_quantityDenominator#1142383, quantityNumerator#1135745]
Arguments: explode(_extract_quantityDenominator#1142383), [product#1135691, plant#1135692, orderDateTime#1135693, quantityNumerator#1135745], true, [quantityDenominator#1135748]
(161) Project
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, (cast(quantityNumerator#1135745 as double) / cast(quantityDenominator#1135748 as double)) AS outboundUnit#1135749]
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, quantityNumerator#1135745, quantityDenominator#1135748]
(162) Project
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, CASE WHEN (isnull(outboundUnit#1135749) OR (outboundUnit#1135749 <= 0.0)) THEN 1.0 ELSE outboundUnit#1135749 END AS outboundUnit#1135750]
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, outboundUnit#1135749]
(163) Sort
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, outboundUnit#1135750]
Arguments: [product#1135691 ASC NULLS FIRST, plant#1135692 ASC NULLS FIRST], false, 0
(164) 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>>>>>
(165) 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))
(166) 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]
(167) Exchange
Input [6]: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715275]
(168) 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=1717594]
(169) 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>>>>>
(170) Filter
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
Condition : (((marketUnit#1135751 <=> Alert_Test1) AND (size(distributionCenters#1135757, true) > 0)) AND isnotnull(distributionCenters#1135757))
(171) Project
Output [1]: [distributionCenters#1135757]
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
(172) Exchange
Input [1]: [distributionCenters#1135757]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715279]
(173) Generate
Input [1]: [distributionCenters#1135757]
Arguments: explode(distributionCenters#1135757), false, [distributionCenters#1135775]
(174) Filter
Input [1]: [distributionCenters#1135775]
Condition : (((size(distributionCenters#1135775.storageLocations, true) > 0) AND isnotnull(distributionCenters#1135775.storageLocations)) AND isnotnull(distributionCenters#1135775.internalRefUUID))
(175) Project
Output [2]: [distributionCenters#1135775.internalRefUUID AS _extract_internalRefUUID#1142202, distributionCenters#1135775.storageLocations AS _extract_storageLocations#1142203]
Input [1]: [distributionCenters#1135775]
(176) Generate
Input [2]: [_extract_internalRefUUID#1142202, _extract_storageLocations#1142203]
Arguments: explode(_extract_storageLocations#1142203), [_extract_internalRefUUID#1142202], false, [storageLocations#1135782]
(177) Project
Output [3]: [_extract_internalRefUUID#1142202 AS plantUuid#1135777, storageLocations#1135782.id AS storageLocId#1135783, storageLocations#1135782.internalRefUUID AS storageLocUuid#1135784]
Input [2]: [_extract_internalRefUUID#1142202, storageLocations#1135782]
(178) BroadcastExchange
Input [3]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717590]
(179) 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>
(180) Filter
Input [2]: [product#1136047, plant#1136048]
Condition : isnotnull(plant#1136048)
(181) Exchange
Input [2]: [product#1136047, plant#1136048]
Arguments: hashpartitioning(product#1136047, plant#1136048, 37), REPARTITION_BY_NUM, [plan_id=1716828]
(182) 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>>>>
(183) Project
Output [4]: [plant#1136053.internalRefUUID AS _extract_internalRefUUID#1142894, product#1136054.internalRefUUID AS _extract_internalRefUUID#1142895, productionAspect#1136056.productMovementPlants.unitOfIssue.code AS _extract_code#1142892, productionAspect#1136056.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142893]
Input [4]: [plant#1136053, product#1136054, productionAspect#1136056, systemId#1136051]
(184) Exchange
Input [4]: [_extract_internalRefUUID#1142894, _extract_internalRefUUID#1142895, _extract_code#1142892, _extract_internalRefUUID#1142893]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715291]
(185) Project
Output [4]: [_extract_code#1142892, _extract_internalRefUUID#1142893, _extract_internalRefUUID#1142895, _extract_internalRefUUID#1142894]
Input [4]: [_extract_internalRefUUID#1142894, _extract_internalRefUUID#1142895, _extract_code#1142892, _extract_internalRefUUID#1142893]
(186) BroadcastExchange
Input [4]: [_extract_code#1142892, _extract_internalRefUUID#1142893, _extract_internalRefUUID#1142895, _extract_internalRefUUID#1142894]
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=1717570]
(187) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136047, ), isnull(product#1136047), coalesce(plant#1136048, ), isnull(plant#1136048)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142895, ), isnull(_extract_internalRefUUID#1142895), coalesce(_extract_internalRefUUID#1142894, ), isnull(_extract_internalRefUUID#1142894)]
Join type: LeftOuter
Join condition: None
(188) Project
Output [4]: [product#1136047, plant#1136048, _extract_code#1142892, _extract_internalRefUUID#1142893]
Input [6]: [product#1136047, plant#1136048, _extract_code#1142892, _extract_internalRefUUID#1142893, _extract_internalRefUUID#1142895, _extract_internalRefUUID#1142894]
(189) 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>
(190) Project
Output [1]: [internalUUID#1136061]
Input [2]: [internalUUID#1136061, systemId#1136060]
(191) Exchange
Input [1]: [internalUUID#1136061]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715297]
(192) BroadcastExchange
Input [1]: [internalUUID#1136061]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717574]
(193) 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
(194) Project
Output [4]: [product#1136047, plant#1136048, _extract_code#1142892, _extract_internalRefUUID#1142893]
Input [5]: [product#1136047, plant#1136048, _extract_code#1142892, _extract_internalRefUUID#1142893, internalUUID#1136061]
(195) 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>>>
(196) Filter
Input [4]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081, systemId#1136074]
Condition : isnotnull(internalUUID#1136075)
(197) Project
Output [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Input [4]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081, systemId#1136074]
(198) Exchange
Input [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715303]
(199) BroadcastExchange
Input [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717578]
(200) BroadcastHashJoin
Left keys [1]: [product#1136047]
Right keys [1]: [internalUUID#1136075]
Join type: LeftOuter
Join condition: None
(201) Project
Output [2]: [plant#1136048, filter(unitOfMeasureConversions#1136081, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142892) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142893)) 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#1142892, _extract_internalRefUUID#1142893, internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
(202) Generate
Input [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086]
Arguments: explode(filteredUnitOfMeasureConversions#1136086.quantityNumerator), [plant#1136048, filteredUnitOfMeasureConversions#1136086], true, [quantityNumerator#1136087]
(203) Project
Output [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086.quantityDenominator AS _extract_quantityDenominator#1142204]
Input [3]: [plant#1136048, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087]
(204) Generate
Input [2]: [plant#1136048, _extract_quantityDenominator#1142204]
Arguments: explode(_extract_quantityDenominator#1142204), [plant#1136048], true, [quantityDenominator#1136088]
(205) Project
Output [1]: [plant#1136048]
Input [2]: [plant#1136048, quantityDenominator#1136088]
(206) HashAggregate
Input [1]: [plant#1136048]
Keys [1]: [plant#1136048]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136048]
(207) Exchange
Input [1]: [plant#1136048]
Arguments: hashpartitioning(plant#1136048, 37), ENSURE_REQUIREMENTS, [plan_id=1717587]
(208) HashAggregate
Input [1]: [plant#1136048]
Keys [1]: [plant#1136048]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136048]
(209) BroadcastHashJoin
Left keys [1]: [plantUuid#1135777]
Right keys [1]: [plant#1136048]
Join type: Inner
Join condition: None
(210) Project
Output [3]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784]
Input [4]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784, plant#1136048]
(211) 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
(212) 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]
(213) 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]
(214) 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]
(215) Filter
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantities#1135799]
Condition : ((size(stockQuantities#1135799, true) > 0) AND isnotnull(calculationDateTime#1135798))
(216) Generate
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantities#1135799]
Arguments: explode(stockQuantities#1135799), [product#1135789, plant#1135790, calculationDateTime#1135798], false, [stockQuantity#1135814]
(217) 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))
(218) Project
Output [5]: [plant#1135790.internalRefUUID AS plantUuid#1135816, product#1135789.internalRefUUID AS productUuid#1135818, calculationDateTime#1135798, stockQuantity#1135814.storagelocation.id AS storageLocId#1135819, stockQuantity#1135814.quantity.measure AS quantity#1135821]
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantity#1135814]
(219) Exchange
Input [5]: [plantUuid#1135816, productUuid#1135818, calculationDateTime#1135798, storageLocId#1135819, quantity#1135821]
Arguments: hashpartitioning(productUuid#1135818, plantUuid#1135816, 37), ENSURE_REQUIREMENTS, [plan_id=1717620]
(220) Sort
Input [5]: [plantUuid#1135816, productUuid#1135818, calculationDateTime#1135798, storageLocId#1135819, quantity#1135821]
Arguments: [productUuid#1135818 ASC NULLS FIRST, plantUuid#1135816 ASC NULLS FIRST], false, 0
(221) 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>
(222) Filter
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Condition : ((isnotnull(orderDateTime#1135835) AND isnotnull(plant#1135834)) AND isnotnull(product#1135833))
(223) Exchange
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Arguments: hashpartitioning(product#1135833, plant#1135834, 37), REPARTITION_BY_NUM, [plan_id=1716851]
(224) 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>>>>
(225) Project
Output [4]: [plant#1135839.internalRefUUID AS _extract_internalRefUUID#1142898, product#1135840.internalRefUUID AS _extract_internalRefUUID#1142899, productionAspect#1135842.productMovementPlants.unitOfIssue.code AS _extract_code#1142896, productionAspect#1135842.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142897]
Input [4]: [plant#1135839, product#1135840, productionAspect#1135842, systemId#1135837]
(226) Exchange
Input [4]: [_extract_internalRefUUID#1142898, _extract_internalRefUUID#1142899, _extract_code#1142896, _extract_internalRefUUID#1142897]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715328]
(227) Project
Output [4]: [_extract_code#1142896, _extract_internalRefUUID#1142897, _extract_internalRefUUID#1142899, _extract_internalRefUUID#1142898]
Input [4]: [_extract_internalRefUUID#1142898, _extract_internalRefUUID#1142899, _extract_code#1142896, _extract_internalRefUUID#1142897]
(228) BroadcastExchange
Input [4]: [_extract_code#1142896, _extract_internalRefUUID#1142897, _extract_internalRefUUID#1142899, _extract_internalRefUUID#1142898]
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=1717603]
(229) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135833, ), isnull(product#1135833), coalesce(plant#1135834, ), isnull(plant#1135834)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142899, ), isnull(_extract_internalRefUUID#1142899), coalesce(_extract_internalRefUUID#1142898, ), isnull(_extract_internalRefUUID#1142898)]
Join type: LeftOuter
Join condition: None
(230) Project
Output [5]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1142896, _extract_internalRefUUID#1142897]
Input [7]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1142896, _extract_internalRefUUID#1142897, _extract_internalRefUUID#1142899, _extract_internalRefUUID#1142898]
(231) 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>
(232) Project
Output [1]: [internalUUID#1135847]
Input [2]: [internalUUID#1135847, systemId#1135846]
(233) Exchange
Input [1]: [internalUUID#1135847]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715334]
(234) BroadcastExchange
Input [1]: [internalUUID#1135847]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717607]
(235) 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
(236) Project
Output [5]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1142896, _extract_internalRefUUID#1142897]
Input [6]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_code#1142896, _extract_internalRefUUID#1142897, internalUUID#1135847]
(237) 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>>>
(238) Filter
Input [4]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867, systemId#1135860]
Condition : isnotnull(internalUUID#1135861)
(239) Project
Output [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Input [4]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867, systemId#1135860]
(240) Exchange
Input [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715340]
(241) BroadcastExchange
Input [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717611]
(242) BroadcastHashJoin
Left keys [1]: [product#1135833]
Right keys [1]: [internalUUID#1135861]
Join type: LeftOuter
Join condition: None
(243) Project
Output [4]: [product#1135833, plant#1135834, orderDateTime#1135835, filter(unitOfMeasureConversions#1135867, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142896) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142897)) 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#1142896, _extract_internalRefUUID#1142897, internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
(244) 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]
(245) Project
Output [4]: [product#1135833, plant#1135834, orderDateTime#1135835, filteredUnitOfMeasureConversions#1135872.quantityDenominator AS _extract_quantityDenominator#1142208]
Input [5]: [product#1135833, plant#1135834, orderDateTime#1135835, filteredUnitOfMeasureConversions#1135872, quantityNumerator#1135873]
(246) Generate
Input [4]: [product#1135833, plant#1135834, orderDateTime#1135835, _extract_quantityDenominator#1142208]
Arguments: explode(_extract_quantityDenominator#1142208), [product#1135833, plant#1135834, orderDateTime#1135835], true, [quantityDenominator#1135874]
(247) Project
Output [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Input [4]: [product#1135833, plant#1135834, orderDateTime#1135835, quantityDenominator#1135874]
(248) Sort
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Arguments: [product#1135833 ASC NULLS FIRST, plant#1135834 ASC NULLS FIRST], false, 0
(249) SortMergeJoin
Left keys [2]: [productUuid#1135818, plantUuid#1135816]
Right keys [2]: [product#1135833, plant#1135834]
Join type: Inner
Join condition: (calculationDateTime#1135798 <= orderDateTime#1135835)
(250) Project
Output [5]: [plantUuid#1135816 AS plant#1135881, productUuid#1135818 AS product#1135882, storageLocId#1135819, calculationDateTime#1135798, quantity#1135821]
Input [8]: [plantUuid#1135816, productUuid#1135818, calculationDateTime#1135798, storageLocId#1135819, quantity#1135821, product#1135833, plant#1135834, orderDateTime#1135835]
(251) Exchange
Input [5]: [plant#1135881, product#1135882, storageLocId#1135819, calculationDateTime#1135798, quantity#1135821]
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=1717684]
(252) Sort
Input [5]: [plant#1135881, product#1135882, storageLocId#1135819, calculationDateTime#1135798, quantity#1135821]
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
(253) 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>>>>>
(254) 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))
(255) 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]
(256) Exchange
Input [6]: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715352]
(257) 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=1717649]
(258) 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>>>>>
(259) Filter
Input [2]: [marketUnit#1135896, distributionCenters#1135902]
Condition : (((marketUnit#1135896 <=> Alert_Test1) AND (size(distributionCenters#1135902, true) > 0)) AND isnotnull(distributionCenters#1135902))
(260) Project
Output [1]: [distributionCenters#1135902]
Input [2]: [marketUnit#1135896, distributionCenters#1135902]
(261) Exchange
Input [1]: [distributionCenters#1135902]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715356]
(262) Generate
Input [1]: [distributionCenters#1135902]
Arguments: explode(distributionCenters#1135902), false, [distributionCenters#1135918]
(263) Filter
Input [1]: [distributionCenters#1135918]
Condition : (((size(distributionCenters#1135918.storageLocations, true) > 0) AND isnotnull(distributionCenters#1135918.storageLocations)) AND isnotnull(distributionCenters#1135918.internalRefUUID))
(264) Project
Output [2]: [distributionCenters#1135918.internalRefUUID AS _extract_internalRefUUID#1142212, distributionCenters#1135918.storageLocations AS _extract_storageLocations#1142213]
Input [1]: [distributionCenters#1135918]
(265) Generate
Input [2]: [_extract_internalRefUUID#1142212, _extract_storageLocations#1142213]
Arguments: explode(_extract_storageLocations#1142213), [_extract_internalRefUUID#1142212], false, [storageLocations#1135919]
(266) Project
Output [3]: [_extract_internalRefUUID#1142212 AS plantUuid#1135921, storageLocations#1135919.id AS storageLocId#1135922, storageLocations#1135919.internalRefUUID AS storageLocUuid#1135923]
Input [2]: [_extract_internalRefUUID#1142212, storageLocations#1135919]
(267) BroadcastExchange
Input [3]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717645]
(268) 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>
(269) Filter
Input [2]: [product#1135924, plant#1135925]
Condition : isnotnull(plant#1135925)
(270) Exchange
Input [2]: [product#1135924, plant#1135925]
Arguments: hashpartitioning(product#1135924, plant#1135925, 37), REPARTITION_BY_NUM, [plan_id=1716864]
(271) 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>>>>
(272) Project
Output [4]: [plant#1135930.internalRefUUID AS _extract_internalRefUUID#1142900, product#1135931.internalRefUUID AS _extract_internalRefUUID#1142901, productionAspect#1135933.productMovementPlants.unitOfIssue.code AS _extract_code#1142902, productionAspect#1135933.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142903]
Input [4]: [plant#1135930, product#1135931, productionAspect#1135933, systemId#1135928]
(273) Exchange
Input [4]: [_extract_internalRefUUID#1142900, _extract_internalRefUUID#1142901, _extract_code#1142902, _extract_internalRefUUID#1142903]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715368]
(274) Project
Output [4]: [_extract_code#1142902, _extract_internalRefUUID#1142903, _extract_internalRefUUID#1142901, _extract_internalRefUUID#1142900]
Input [4]: [_extract_internalRefUUID#1142900, _extract_internalRefUUID#1142901, _extract_code#1142902, _extract_internalRefUUID#1142903]
(275) BroadcastExchange
Input [4]: [_extract_code#1142902, _extract_internalRefUUID#1142903, _extract_internalRefUUID#1142901, _extract_internalRefUUID#1142900]
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=1717625]
(276) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135924, ), isnull(product#1135924), coalesce(plant#1135925, ), isnull(plant#1135925)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142901, ), isnull(_extract_internalRefUUID#1142901), coalesce(_extract_internalRefUUID#1142900, ), isnull(_extract_internalRefUUID#1142900)]
Join type: LeftOuter
Join condition: None
(277) Project
Output [4]: [product#1135924, plant#1135925, _extract_code#1142902, _extract_internalRefUUID#1142903]
Input [6]: [product#1135924, plant#1135925, _extract_code#1142902, _extract_internalRefUUID#1142903, _extract_internalRefUUID#1142901, _extract_internalRefUUID#1142900]
(278) 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>
(279) Project
Output [1]: [internalUUID#1135938]
Input [2]: [internalUUID#1135938, systemId#1135937]
(280) Exchange
Input [1]: [internalUUID#1135938]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715374]
(281) BroadcastExchange
Input [1]: [internalUUID#1135938]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717629]
(282) 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
(283) Project
Output [4]: [product#1135924, plant#1135925, _extract_code#1142902, _extract_internalRefUUID#1142903]
Input [5]: [product#1135924, plant#1135925, _extract_code#1142902, _extract_internalRefUUID#1142903, internalUUID#1135938]
(284) 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>>>
(285) Filter
Input [4]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958, systemId#1135951]
Condition : isnotnull(internalUUID#1135952)
(286) Project
Output [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Input [4]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958, systemId#1135951]
(287) Exchange
Input [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715380]
(288) BroadcastExchange
Input [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717633]
(289) BroadcastHashJoin
Left keys [1]: [product#1135924]
Right keys [1]: [internalUUID#1135952]
Join type: LeftOuter
Join condition: None
(290) Project
Output [2]: [plant#1135925, filter(unitOfMeasureConversions#1135958, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142902) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142903)) 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#1142902, _extract_internalRefUUID#1142903, internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
(291) Generate
Input [2]: [plant#1135925, filteredUnitOfMeasureConversions#1135963]
Arguments: explode(filteredUnitOfMeasureConversions#1135963.quantityNumerator), [plant#1135925, filteredUnitOfMeasureConversions#1135963], true, [quantityNumerator#1135964]
(292) Project
Output [2]: [plant#1135925, filteredUnitOfMeasureConversions#1135963.quantityDenominator AS _extract_quantityDenominator#1142214]
Input [3]: [plant#1135925, filteredUnitOfMeasureConversions#1135963, quantityNumerator#1135964]
(293) Generate
Input [2]: [plant#1135925, _extract_quantityDenominator#1142214]
Arguments: explode(_extract_quantityDenominator#1142214), [plant#1135925], true, [quantityDenominator#1135965]
(294) Project
Output [1]: [plant#1135925]
Input [2]: [plant#1135925, quantityDenominator#1135965]
(295) HashAggregate
Input [1]: [plant#1135925]
Keys [1]: [plant#1135925]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1135925]
(296) Exchange
Input [1]: [plant#1135925]
Arguments: hashpartitioning(plant#1135925, 37), ENSURE_REQUIREMENTS, [plan_id=1717642]
(297) HashAggregate
Input [1]: [plant#1135925]
Keys [1]: [plant#1135925]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1135925]
(298) BroadcastHashJoin
Left keys [1]: [plantUuid#1135921]
Right keys [1]: [plant#1135925]
Join type: Inner
Join condition: None
(299) Project
Output [3]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923]
Input [4]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923, plant#1135925]
(300) 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
(301) 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]
(302) 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]
(303) 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]
(304) Filter
Input [4]: [product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantities#1135970]
Condition : ((size(stockQuantities#1135970, true) > 0) AND isnotnull(calculationDateTime#1135969))
(305) Generate
Input [4]: [product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantities#1135970]
Arguments: explode(stockQuantities#1135970), [product#1135892, plant#1135893, calculationDateTime#1135969], false, [stockQuantity#1135971]
(306) 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))
(307) 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]
(308) Exchange
Input [4]: [plantUuid#1135973, productUuid#1135975, calculationDateTime#1135969, storageLocId#1135976]
Arguments: hashpartitioning(productUuid#1135975, plantUuid#1135973, 37), ENSURE_REQUIREMENTS, [plan_id=1717675]
(309) Sort
Input [4]: [plantUuid#1135973, productUuid#1135975, calculationDateTime#1135969, storageLocId#1135976]
Arguments: [productUuid#1135975 ASC NULLS FIRST, plantUuid#1135973 ASC NULLS FIRST], false, 0
(310) 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>
(311) Filter
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Condition : ((isnotnull(orderDateTime#1135983) AND isnotnull(plant#1135982)) AND isnotnull(product#1135981))
(312) Exchange
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Arguments: hashpartitioning(product#1135981, plant#1135982, 37), REPARTITION_BY_NUM, [plan_id=1716887]
(313) 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>>>>
(314) Project
Output [4]: [plant#1135987.internalRefUUID AS _extract_internalRefUUID#1142904, product#1135988.internalRefUUID AS _extract_internalRefUUID#1142907, productionAspect#1135990.productMovementPlants.unitOfIssue.code AS _extract_code#1142905, productionAspect#1135990.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142906]
Input [4]: [plant#1135987, product#1135988, productionAspect#1135990, systemId#1135985]
(315) Exchange
Input [4]: [_extract_internalRefUUID#1142904, _extract_internalRefUUID#1142907, _extract_code#1142905, _extract_internalRefUUID#1142906]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715405]
(316) Project
Output [4]: [_extract_code#1142905, _extract_internalRefUUID#1142906, _extract_internalRefUUID#1142907, _extract_internalRefUUID#1142904]
Input [4]: [_extract_internalRefUUID#1142904, _extract_internalRefUUID#1142907, _extract_code#1142905, _extract_internalRefUUID#1142906]
(317) BroadcastExchange
Input [4]: [_extract_code#1142905, _extract_internalRefUUID#1142906, _extract_internalRefUUID#1142907, _extract_internalRefUUID#1142904]
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=1717658]
(318) BroadcastHashJoin
Left keys [4]: [coalesce(product#1135981, ), isnull(product#1135981), coalesce(plant#1135982, ), isnull(plant#1135982)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142907, ), isnull(_extract_internalRefUUID#1142907), coalesce(_extract_internalRefUUID#1142904, ), isnull(_extract_internalRefUUID#1142904)]
Join type: LeftOuter
Join condition: None
(319) Project
Output [5]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1142905, _extract_internalRefUUID#1142906]
Input [7]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1142905, _extract_internalRefUUID#1142906, _extract_internalRefUUID#1142907, _extract_internalRefUUID#1142904]
(320) 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>
(321) Project
Output [1]: [internalUUID#1135995]
Input [2]: [internalUUID#1135995, systemId#1135994]
(322) Exchange
Input [1]: [internalUUID#1135995]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715411]
(323) BroadcastExchange
Input [1]: [internalUUID#1135995]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717662]
(324) 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
(325) Project
Output [5]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1142905, _extract_internalRefUUID#1142906]
Input [6]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_code#1142905, _extract_internalRefUUID#1142906, internalUUID#1135995]
(326) 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>>>
(327) Filter
Input [4]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015, systemId#1136008]
Condition : isnotnull(internalUUID#1136009)
(328) Project
Output [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Input [4]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015, systemId#1136008]
(329) Exchange
Input [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715417]
(330) BroadcastExchange
Input [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717666]
(331) BroadcastHashJoin
Left keys [1]: [product#1135981]
Right keys [1]: [internalUUID#1136009]
Join type: LeftOuter
Join condition: None
(332) Project
Output [4]: [product#1135981, plant#1135982, orderDateTime#1135983, filter(unitOfMeasureConversions#1136015, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142905) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142906)) 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#1142905, _extract_internalRefUUID#1142906, internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
(333) 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]
(334) Project
Output [4]: [product#1135981, plant#1135982, orderDateTime#1135983, filteredUnitOfMeasureConversions#1136020.quantityDenominator AS _extract_quantityDenominator#1142218]
Input [5]: [product#1135981, plant#1135982, orderDateTime#1135983, filteredUnitOfMeasureConversions#1136020, quantityNumerator#1136021]
(335) Generate
Input [4]: [product#1135981, plant#1135982, orderDateTime#1135983, _extract_quantityDenominator#1142218]
Arguments: explode(_extract_quantityDenominator#1142218), [product#1135981, plant#1135982, orderDateTime#1135983], true, [quantityDenominator#1136022]
(336) Project
Output [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Input [4]: [product#1135981, plant#1135982, orderDateTime#1135983, quantityDenominator#1136022]
(337) Sort
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Arguments: [product#1135981 ASC NULLS FIRST, plant#1135982 ASC NULLS FIRST], false, 0
(338) SortMergeJoin
Left keys [2]: [productUuid#1135975, plantUuid#1135973]
Right keys [2]: [product#1135981, plant#1135982]
Join type: Inner
Join condition: (calculationDateTime#1135969 <= orderDateTime#1135983)
(339) 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]
(340) 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]
(341) 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]
(342) 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=1717685]
(343) 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
(344) 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
(345) Project
Output [4]: [plant#1135881, product#1135882, calculationDateTime#1135798, quantity#1135821]
Input [9]: [plant#1135881, product#1135882, storageLocId#1135819, calculationDateTime#1135798, quantity#1135821, plant#1136025, product#1136026, storageLocId#1135976, max_calc_datetime#1135883]
(346) HashAggregate
Input [4]: [plant#1135881, product#1135882, calculationDateTime#1135798, quantity#1135821]
Keys [2]: [product#1135882, plant#1135881]
Functions [2]: [partial_min(calculationDateTime#1135798), partial_sum(quantity#1135821)]
Aggregate Attributes [2]: [min#1137517, sum#1143934]
Results [4]: [product#1135882, plant#1135881, min#1137518, sum#1143935]
(347) Exchange
Input [4]: [product#1135882, plant#1135881, min#1137518, sum#1143935]
Arguments: hashpartitioning(product#1135882, plant#1135881, 37), ENSURE_REQUIREMENTS, [plan_id=1717692]
(348) HashAggregate
Input [4]: [product#1135882, plant#1135881, min#1137518, sum#1143935]
Keys [2]: [product#1135882, plant#1135881]
Functions [2]: [min(calculationDateTime#1135798), sum(quantity#1135821)]
Aggregate Attributes [2]: [min(calculationDateTime#1135798)#1136045, sum(quantity#1135821)#1136044]
Results [4]: [product#1135882, plant#1135881, min(calculationDateTime#1135798)#1136045 AS minCalculationDateTime#1136038, round(sum(quantity#1135821)#1136044, 0) AS roundedQuantitySum#1136046]
(349) Sort
Input [4]: [product#1135882, plant#1135881, minCalculationDateTime#1136038, roundedQuantitySum#1136046]
Arguments: [product#1135882 ASC NULLS FIRST, plant#1135881 ASC NULLS FIRST], false, 0
(350) SortMergeJoin
Left keys [2]: [product#1135691, plant#1135692]
Right keys [2]: [product#1135882, plant#1135881]
Join type: LeftOuter
Join condition: None
(351) Project
Output [5]: [product#1135691, plant#1135692, outboundUnit#1135750, CASE WHEN isnotnull(minCalculationDateTime#1136038) THEN minCalculationDateTime#1136038 ELSE orderDateTime#1135693 END AS stockDatetime#1136095, CASE WHEN isnotnull(roundedQuantitySum#1136046) THEN array(roundedQuantitySum#1136046) ELSE [0.0] END AS stockBatchQuantities#1136096]
Input [8]: [product#1135691, plant#1135692, orderDateTime#1135693, outboundUnit#1135750, product#1135882, plant#1135881, minCalculationDateTime#1136038, roundedQuantitySum#1136046]
(352) Exchange
Input [5]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096]
Arguments: hashpartitioning(coalesce(plant#1135692, ), isnull(plant#1135692), coalesce(product#1135691, ), isnull(product#1135691), 37), ENSURE_REQUIREMENTS, [plan_id=1717856]
(353) Sort
Input [5]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096]
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
(354) 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>
(355) Exchange
Input [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
Arguments: hashpartitioning(product#1136173, plant#1136174, 37), REPARTITION_BY_NUM, [plan_id=1715435]
(356) 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]
(357) 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=1715438]
(358) 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]
(359) 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=1717700]
(360) 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
(361) Project
Output [2]: [internalUUID#1136187, address#1136193.timeZone.code AS timezonecode#1136198]
Input [3]: [internalUUID#1136187, address#1136193, systemId#1136186]
(362) Exchange
Input [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715443]
(363) BroadcastExchange
Input [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717703]
(364) 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
(365) 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]
(366) 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>>>
(367) Filter
Input [4]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207, systemId#1136200]
Condition : isnotnull(internalUUID#1136201)
(368) Project
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Input [4]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207, systemId#1136200]
(369) Exchange
Input [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715449]
(370) BroadcastExchange
Input [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717707]
(371) BroadcastHashJoin
Left keys [1]: [product#1136173]
Right keys [1]: [internalUUID#1136201]
Join type: LeftOuter
Join condition: None
(372) 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]
(373) Project
Output [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filteredUnitOfMeasureConversions#1136212.quantityDenominator AS _extract_quantityDenominator#1142415, filteredUnitOfMeasureConversions#1136212.quantityNumerator AS _extract_quantityNumerator#1142416]
Input [6]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, filteredUnitOfMeasureConversions#1136212]
(374) Generate
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1142415, _extract_quantityNumerator#1142416]
Arguments: explode(_extract_quantityNumerator#1142416), [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1142415], true, [quantityNumerator#1136213]
(375) Generate
Input [7]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, _extract_quantityDenominator#1142415, quantityNumerator#1136213]
Arguments: explode(_extract_quantityDenominator#1142415), [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, quantityNumerator#1136213], true, [quantityDenominator#1136214]
(376) 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]
(377) 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]
(378) 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
(379) 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>>>>>
(380) 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))
(381) 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]
(382) Exchange
Input [6]: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715460]
(383) 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=1717739]
(384) 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>>>>>
(385) Filter
Input [2]: [marketUnit#1136223, distributionCenters#1136229]
Condition : (((marketUnit#1136223 <=> Alert_Test1) AND (size(distributionCenters#1136229, true) > 0)) AND isnotnull(distributionCenters#1136229))
(386) Project
Output [1]: [distributionCenters#1136229]
Input [2]: [marketUnit#1136223, distributionCenters#1136229]
(387) Exchange
Input [1]: [distributionCenters#1136229]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715464]
(388) Generate
Input [1]: [distributionCenters#1136229]
Arguments: explode(distributionCenters#1136229), false, [distributionCenters#1136245]
(389) Filter
Input [1]: [distributionCenters#1136245]
Condition : (((size(distributionCenters#1136245.storageLocations, true) > 0) AND isnotnull(distributionCenters#1136245.storageLocations)) AND isnotnull(distributionCenters#1136245.internalRefUUID))
(390) Project
Output [2]: [distributionCenters#1136245.internalRefUUID AS _extract_internalRefUUID#1142224, distributionCenters#1136245.storageLocations AS _extract_storageLocations#1142225]
Input [1]: [distributionCenters#1136245]
(391) Generate
Input [2]: [_extract_internalRefUUID#1142224, _extract_storageLocations#1142225]
Arguments: explode(_extract_storageLocations#1142225), [_extract_internalRefUUID#1142224], false, [storageLocations#1136246]
(392) Project
Output [3]: [_extract_internalRefUUID#1142224 AS plantUuid#1136248, storageLocations#1136246.id AS storageLocId#1136249, storageLocations#1136246.internalRefUUID AS storageLocUuid#1136250]
Input [2]: [_extract_internalRefUUID#1142224, storageLocations#1136246]
(393) BroadcastExchange
Input [3]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717735]
(394) 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>
(395) Filter
Input [2]: [product#1136251, plant#1136252]
Condition : isnotnull(plant#1136252)
(396) Exchange
Input [2]: [product#1136251, plant#1136252]
Arguments: hashpartitioning(product#1136251, plant#1136252, 37), REPARTITION_BY_NUM, [plan_id=1716908]
(397) 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>>>>
(398) Project
Output [4]: [plant#1136257.internalRefUUID AS _extract_internalRefUUID#1142910, product#1136258.internalRefUUID AS _extract_internalRefUUID#1142911, productionAspect#1136260.productMovementPlants.unitOfIssue.code AS _extract_code#1142908, productionAspect#1136260.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142909]
Input [4]: [plant#1136257, product#1136258, productionAspect#1136260, systemId#1136255]
(399) Exchange
Input [4]: [_extract_internalRefUUID#1142910, _extract_internalRefUUID#1142911, _extract_code#1142908, _extract_internalRefUUID#1142909]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715476]
(400) Project
Output [4]: [_extract_code#1142908, _extract_internalRefUUID#1142909, _extract_internalRefUUID#1142911, _extract_internalRefUUID#1142910]
Input [4]: [_extract_internalRefUUID#1142910, _extract_internalRefUUID#1142911, _extract_code#1142908, _extract_internalRefUUID#1142909]
(401) BroadcastExchange
Input [4]: [_extract_code#1142908, _extract_internalRefUUID#1142909, _extract_internalRefUUID#1142911, _extract_internalRefUUID#1142910]
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=1717715]
(402) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136251, ), isnull(product#1136251), coalesce(plant#1136252, ), isnull(plant#1136252)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142911, ), isnull(_extract_internalRefUUID#1142911), coalesce(_extract_internalRefUUID#1142910, ), isnull(_extract_internalRefUUID#1142910)]
Join type: LeftOuter
Join condition: None
(403) Project
Output [4]: [product#1136251, plant#1136252, _extract_code#1142908, _extract_internalRefUUID#1142909]
Input [6]: [product#1136251, plant#1136252, _extract_code#1142908, _extract_internalRefUUID#1142909, _extract_internalRefUUID#1142911, _extract_internalRefUUID#1142910]
(404) 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>
(405) Project
Output [1]: [internalUUID#1136265]
Input [2]: [internalUUID#1136265, systemId#1136264]
(406) Exchange
Input [1]: [internalUUID#1136265]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715482]
(407) BroadcastExchange
Input [1]: [internalUUID#1136265]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717719]
(408) 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
(409) Project
Output [4]: [product#1136251, plant#1136252, _extract_code#1142908, _extract_internalRefUUID#1142909]
Input [5]: [product#1136251, plant#1136252, _extract_code#1142908, _extract_internalRefUUID#1142909, internalUUID#1136265]
(410) 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>>>
(411) Filter
Input [4]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285, systemId#1136278]
Condition : isnotnull(internalUUID#1136279)
(412) Project
Output [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Input [4]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285, systemId#1136278]
(413) Exchange
Input [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715488]
(414) BroadcastExchange
Input [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717723]
(415) BroadcastHashJoin
Left keys [1]: [product#1136251]
Right keys [1]: [internalUUID#1136279]
Join type: LeftOuter
Join condition: None
(416) Project
Output [2]: [plant#1136252, filter(unitOfMeasureConversions#1136285, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142908) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142909)) 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#1142908, _extract_internalRefUUID#1142909, internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
(417) Generate
Input [2]: [plant#1136252, filteredUnitOfMeasureConversions#1136290]
Arguments: explode(filteredUnitOfMeasureConversions#1136290.quantityNumerator), [plant#1136252, filteredUnitOfMeasureConversions#1136290], true, [quantityNumerator#1136291]
(418) Project
Output [2]: [plant#1136252, filteredUnitOfMeasureConversions#1136290.quantityDenominator AS _extract_quantityDenominator#1142226]
Input [3]: [plant#1136252, filteredUnitOfMeasureConversions#1136290, quantityNumerator#1136291]
(419) Generate
Input [2]: [plant#1136252, _extract_quantityDenominator#1142226]
Arguments: explode(_extract_quantityDenominator#1142226), [plant#1136252], true, [quantityDenominator#1136292]
(420) Project
Output [1]: [plant#1136252]
Input [2]: [plant#1136252, quantityDenominator#1136292]
(421) HashAggregate
Input [1]: [plant#1136252]
Keys [1]: [plant#1136252]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136252]
(422) Exchange
Input [1]: [plant#1136252]
Arguments: hashpartitioning(plant#1136252, 37), ENSURE_REQUIREMENTS, [plan_id=1717732]
(423) HashAggregate
Input [1]: [plant#1136252]
Keys [1]: [plant#1136252]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136252]
(424) BroadcastHashJoin
Left keys [1]: [plantUuid#1136248]
Right keys [1]: [plant#1136252]
Join type: Inner
Join condition: None
(425) Project
Output [3]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250]
Input [4]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250, plant#1136252]
(426) 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
(427) 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]
(428) 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]
(429) 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]
(430) Filter
Input [4]: [product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantities#1136297]
Condition : ((size(stockQuantities#1136297, true) > 0) AND isnotnull(calculationDateTime#1136296))
(431) Generate
Input [4]: [product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantities#1136297]
Arguments: explode(stockQuantities#1136297), [product#1136219, plant#1136220, calculationDateTime#1136296], false, [stockQuantity#1136298]
(432) 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))
(433) 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]
(434) Exchange
Input [5]: [plantUuid#1136300, productUuid#1136302, calculationDateTime#1136296, storageLocId#1136303, quantity#1136305]
Arguments: hashpartitioning(productUuid#1136302, plantUuid#1136300, 37), ENSURE_REQUIREMENTS, [plan_id=1717765]
(435) 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
(436) 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>
(437) Filter
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Condition : ((isnotnull(orderDateTime#1136310) AND isnotnull(plant#1136309)) AND isnotnull(product#1136308))
(438) Exchange
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Arguments: hashpartitioning(product#1136308, plant#1136309, 37), REPARTITION_BY_NUM, [plan_id=1716931]
(439) 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>>>>
(440) Project
Output [4]: [plant#1136314.internalRefUUID AS _extract_internalRefUUID#1142915, product#1136315.internalRefUUID AS _extract_internalRefUUID#1142914, productionAspect#1136317.productMovementPlants.unitOfIssue.code AS _extract_code#1142912, productionAspect#1136317.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142913]
Input [4]: [plant#1136314, product#1136315, productionAspect#1136317, systemId#1136312]
(441) Exchange
Input [4]: [_extract_internalRefUUID#1142915, _extract_internalRefUUID#1142914, _extract_code#1142912, _extract_internalRefUUID#1142913]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715513]
(442) Project
Output [4]: [_extract_code#1142912, _extract_internalRefUUID#1142913, _extract_internalRefUUID#1142914, _extract_internalRefUUID#1142915]
Input [4]: [_extract_internalRefUUID#1142915, _extract_internalRefUUID#1142914, _extract_code#1142912, _extract_internalRefUUID#1142913]
(443) BroadcastExchange
Input [4]: [_extract_code#1142912, _extract_internalRefUUID#1142913, _extract_internalRefUUID#1142914, _extract_internalRefUUID#1142915]
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=1717748]
(444) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136308, ), isnull(product#1136308), coalesce(plant#1136309, ), isnull(plant#1136309)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142914, ), isnull(_extract_internalRefUUID#1142914), coalesce(_extract_internalRefUUID#1142915, ), isnull(_extract_internalRefUUID#1142915)]
Join type: LeftOuter
Join condition: None
(445) Project
Output [5]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1142912, _extract_internalRefUUID#1142913]
Input [7]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1142912, _extract_internalRefUUID#1142913, _extract_internalRefUUID#1142914, _extract_internalRefUUID#1142915]
(446) 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>
(447) Project
Output [1]: [internalUUID#1136322]
Input [2]: [internalUUID#1136322, systemId#1136321]
(448) Exchange
Input [1]: [internalUUID#1136322]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715519]
(449) BroadcastExchange
Input [1]: [internalUUID#1136322]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717752]
(450) 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
(451) Project
Output [5]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1142912, _extract_internalRefUUID#1142913]
Input [6]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_code#1142912, _extract_internalRefUUID#1142913, internalUUID#1136322]
(452) 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>>>
(453) Filter
Input [4]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342, systemId#1136335]
Condition : isnotnull(internalUUID#1136336)
(454) Project
Output [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Input [4]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342, systemId#1136335]
(455) Exchange
Input [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715525]
(456) BroadcastExchange
Input [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717756]
(457) BroadcastHashJoin
Left keys [1]: [product#1136308]
Right keys [1]: [internalUUID#1136336]
Join type: LeftOuter
Join condition: None
(458) Project
Output [4]: [product#1136308, plant#1136309, orderDateTime#1136310, filter(unitOfMeasureConversions#1136342, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142912) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142913)) 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#1142912, _extract_internalRefUUID#1142913, internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
(459) 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]
(460) Project
Output [4]: [product#1136308, plant#1136309, orderDateTime#1136310, filteredUnitOfMeasureConversions#1136347.quantityDenominator AS _extract_quantityDenominator#1142230]
Input [5]: [product#1136308, plant#1136309, orderDateTime#1136310, filteredUnitOfMeasureConversions#1136347, quantityNumerator#1136348]
(461) Generate
Input [4]: [product#1136308, plant#1136309, orderDateTime#1136310, _extract_quantityDenominator#1142230]
Arguments: explode(_extract_quantityDenominator#1142230), [product#1136308, plant#1136309, orderDateTime#1136310], true, [quantityDenominator#1136349]
(462) Project
Output [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Input [4]: [product#1136308, plant#1136309, orderDateTime#1136310, quantityDenominator#1136349]
(463) Sort
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Arguments: [product#1136308 ASC NULLS FIRST, plant#1136309 ASC NULLS FIRST], false, 0
(464) SortMergeJoin
Left keys [2]: [productUuid#1136302, plantUuid#1136300]
Right keys [2]: [product#1136308, plant#1136309]
Join type: Inner
Join condition: (calculationDateTime#1136296 <= orderDateTime#1136310)
(465) 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]
(466) 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=1717829]
(467) 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
(468) 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>>>>>
(469) 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))
(470) 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]
(471) Exchange
Input [6]: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715537]
(472) 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=1717794]
(473) 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>>>>>
(474) Filter
Input [2]: [marketUnit#1136360, distributionCenters#1136366]
Condition : (((marketUnit#1136360 <=> Alert_Test1) AND (size(distributionCenters#1136366, true) > 0)) AND isnotnull(distributionCenters#1136366))
(475) Project
Output [1]: [distributionCenters#1136366]
Input [2]: [marketUnit#1136360, distributionCenters#1136366]
(476) Exchange
Input [1]: [distributionCenters#1136366]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715541]
(477) Generate
Input [1]: [distributionCenters#1136366]
Arguments: explode(distributionCenters#1136366), false, [distributionCenters#1136382]
(478) Filter
Input [1]: [distributionCenters#1136382]
Condition : (((size(distributionCenters#1136382.storageLocations, true) > 0) AND isnotnull(distributionCenters#1136382.storageLocations)) AND isnotnull(distributionCenters#1136382.internalRefUUID))
(479) Project
Output [2]: [distributionCenters#1136382.internalRefUUID AS _extract_internalRefUUID#1142234, distributionCenters#1136382.storageLocations AS _extract_storageLocations#1142235]
Input [1]: [distributionCenters#1136382]
(480) Generate
Input [2]: [_extract_internalRefUUID#1142234, _extract_storageLocations#1142235]
Arguments: explode(_extract_storageLocations#1142235), [_extract_internalRefUUID#1142234], false, [storageLocations#1136383]
(481) Project
Output [3]: [_extract_internalRefUUID#1142234 AS plantUuid#1136385, storageLocations#1136383.id AS storageLocId#1136386, storageLocations#1136383.internalRefUUID AS storageLocUuid#1136387]
Input [2]: [_extract_internalRefUUID#1142234, storageLocations#1136383]
(482) BroadcastExchange
Input [3]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717790]
(483) 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>
(484) Filter
Input [2]: [product#1136388, plant#1136389]
Condition : isnotnull(plant#1136389)
(485) Exchange
Input [2]: [product#1136388, plant#1136389]
Arguments: hashpartitioning(product#1136388, plant#1136389, 37), REPARTITION_BY_NUM, [plan_id=1716944]
(486) 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>>>>
(487) Project
Output [4]: [plant#1136394.internalRefUUID AS _extract_internalRefUUID#1142919, product#1136395.internalRefUUID AS _extract_internalRefUUID#1142916, productionAspect#1136397.productMovementPlants.unitOfIssue.code AS _extract_code#1142917, productionAspect#1136397.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142918]
Input [4]: [plant#1136394, product#1136395, productionAspect#1136397, systemId#1136392]
(488) Exchange
Input [4]: [_extract_internalRefUUID#1142919, _extract_internalRefUUID#1142916, _extract_code#1142917, _extract_internalRefUUID#1142918]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715553]
(489) Project
Output [4]: [_extract_code#1142917, _extract_internalRefUUID#1142918, _extract_internalRefUUID#1142916, _extract_internalRefUUID#1142919]
Input [4]: [_extract_internalRefUUID#1142919, _extract_internalRefUUID#1142916, _extract_code#1142917, _extract_internalRefUUID#1142918]
(490) BroadcastExchange
Input [4]: [_extract_code#1142917, _extract_internalRefUUID#1142918, _extract_internalRefUUID#1142916, _extract_internalRefUUID#1142919]
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=1717770]
(491) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136388, ), isnull(product#1136388), coalesce(plant#1136389, ), isnull(plant#1136389)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142916, ), isnull(_extract_internalRefUUID#1142916), coalesce(_extract_internalRefUUID#1142919, ), isnull(_extract_internalRefUUID#1142919)]
Join type: LeftOuter
Join condition: None
(492) Project
Output [4]: [product#1136388, plant#1136389, _extract_code#1142917, _extract_internalRefUUID#1142918]
Input [6]: [product#1136388, plant#1136389, _extract_code#1142917, _extract_internalRefUUID#1142918, _extract_internalRefUUID#1142916, _extract_internalRefUUID#1142919]
(493) 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>
(494) Project
Output [1]: [internalUUID#1136402]
Input [2]: [internalUUID#1136402, systemId#1136401]
(495) Exchange
Input [1]: [internalUUID#1136402]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715559]
(496) BroadcastExchange
Input [1]: [internalUUID#1136402]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717774]
(497) 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
(498) Project
Output [4]: [product#1136388, plant#1136389, _extract_code#1142917, _extract_internalRefUUID#1142918]
Input [5]: [product#1136388, plant#1136389, _extract_code#1142917, _extract_internalRefUUID#1142918, internalUUID#1136402]
(499) 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>>>
(500) Filter
Input [4]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422, systemId#1136415]
Condition : isnotnull(internalUUID#1136416)
(501) Project
Output [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Input [4]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422, systemId#1136415]
(502) Exchange
Input [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715565]
(503) BroadcastExchange
Input [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717778]
(504) BroadcastHashJoin
Left keys [1]: [product#1136388]
Right keys [1]: [internalUUID#1136416]
Join type: LeftOuter
Join condition: None
(505) Project
Output [2]: [plant#1136389, filter(unitOfMeasureConversions#1136422, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142917) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142918)) 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#1142917, _extract_internalRefUUID#1142918, internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
(506) Generate
Input [2]: [plant#1136389, filteredUnitOfMeasureConversions#1136427]
Arguments: explode(filteredUnitOfMeasureConversions#1136427.quantityNumerator), [plant#1136389, filteredUnitOfMeasureConversions#1136427], true, [quantityNumerator#1136428]
(507) Project
Output [2]: [plant#1136389, filteredUnitOfMeasureConversions#1136427.quantityDenominator AS _extract_quantityDenominator#1142236]
Input [3]: [plant#1136389, filteredUnitOfMeasureConversions#1136427, quantityNumerator#1136428]
(508) Generate
Input [2]: [plant#1136389, _extract_quantityDenominator#1142236]
Arguments: explode(_extract_quantityDenominator#1142236), [plant#1136389], true, [quantityDenominator#1136429]
(509) Project
Output [1]: [plant#1136389]
Input [2]: [plant#1136389, quantityDenominator#1136429]
(510) HashAggregate
Input [1]: [plant#1136389]
Keys [1]: [plant#1136389]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136389]
(511) Exchange
Input [1]: [plant#1136389]
Arguments: hashpartitioning(plant#1136389, 37), ENSURE_REQUIREMENTS, [plan_id=1717787]
(512) HashAggregate
Input [1]: [plant#1136389]
Keys [1]: [plant#1136389]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136389]
(513) BroadcastHashJoin
Left keys [1]: [plantUuid#1136385]
Right keys [1]: [plant#1136389]
Join type: Inner
Join condition: None
(514) Project
Output [3]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387]
Input [4]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387, plant#1136389]
(515) 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
(516) 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]
(517) 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]
(518) 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]
(519) Filter
Input [4]: [product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantities#1136434]
Condition : ((size(stockQuantities#1136434, true) > 0) AND isnotnull(calculationDateTime#1136433))
(520) Generate
Input [4]: [product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantities#1136434]
Arguments: explode(stockQuantities#1136434), [product#1136356, plant#1136357, calculationDateTime#1136433], false, [stockQuantity#1136435]
(521) 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))
(522) 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]
(523) Exchange
Input [4]: [plantUuid#1136437, productUuid#1136439, calculationDateTime#1136433, storageLocId#1136440]
Arguments: hashpartitioning(productUuid#1136439, plantUuid#1136437, 37), ENSURE_REQUIREMENTS, [plan_id=1717820]
(524) Sort
Input [4]: [plantUuid#1136437, productUuid#1136439, calculationDateTime#1136433, storageLocId#1136440]
Arguments: [productUuid#1136439 ASC NULLS FIRST, plantUuid#1136437 ASC NULLS FIRST], false, 0
(525) 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>
(526) Filter
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Condition : ((isnotnull(orderDateTime#1136447) AND isnotnull(plant#1136446)) AND isnotnull(product#1136445))
(527) Exchange
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Arguments: hashpartitioning(product#1136445, plant#1136446, 37), REPARTITION_BY_NUM, [plan_id=1716967]
(528) 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>>>>
(529) Project
Output [4]: [plant#1136451.internalRefUUID AS _extract_internalRefUUID#1142920, product#1136452.internalRefUUID AS _extract_internalRefUUID#1142923, productionAspect#1136454.productMovementPlants.unitOfIssue.code AS _extract_code#1142921, productionAspect#1136454.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142922]
Input [4]: [plant#1136451, product#1136452, productionAspect#1136454, systemId#1136449]
(530) Exchange
Input [4]: [_extract_internalRefUUID#1142920, _extract_internalRefUUID#1142923, _extract_code#1142921, _extract_internalRefUUID#1142922]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715590]
(531) Project
Output [4]: [_extract_code#1142921, _extract_internalRefUUID#1142922, _extract_internalRefUUID#1142923, _extract_internalRefUUID#1142920]
Input [4]: [_extract_internalRefUUID#1142920, _extract_internalRefUUID#1142923, _extract_code#1142921, _extract_internalRefUUID#1142922]
(532) BroadcastExchange
Input [4]: [_extract_code#1142921, _extract_internalRefUUID#1142922, _extract_internalRefUUID#1142923, _extract_internalRefUUID#1142920]
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=1717803]
(533) BroadcastHashJoin
Left keys [4]: [coalesce(product#1136445, ), isnull(product#1136445), coalesce(plant#1136446, ), isnull(plant#1136446)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142923, ), isnull(_extract_internalRefUUID#1142923), coalesce(_extract_internalRefUUID#1142920, ), isnull(_extract_internalRefUUID#1142920)]
Join type: LeftOuter
Join condition: None
(534) Project
Output [5]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1142921, _extract_internalRefUUID#1142922]
Input [7]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1142921, _extract_internalRefUUID#1142922, _extract_internalRefUUID#1142923, _extract_internalRefUUID#1142920]
(535) 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>
(536) Project
Output [1]: [internalUUID#1136459]
Input [2]: [internalUUID#1136459, systemId#1136458]
(537) Exchange
Input [1]: [internalUUID#1136459]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715596]
(538) BroadcastExchange
Input [1]: [internalUUID#1136459]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717807]
(539) 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
(540) Project
Output [5]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1142921, _extract_internalRefUUID#1142922]
Input [6]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_code#1142921, _extract_internalRefUUID#1142922, internalUUID#1136459]
(541) 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>>>
(542) Filter
Input [4]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479, systemId#1136472]
Condition : isnotnull(internalUUID#1136473)
(543) Project
Output [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Input [4]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479, systemId#1136472]
(544) Exchange
Input [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715602]
(545) BroadcastExchange
Input [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717811]
(546) BroadcastHashJoin
Left keys [1]: [product#1136445]
Right keys [1]: [internalUUID#1136473]
Join type: LeftOuter
Join condition: None
(547) Project
Output [4]: [product#1136445, plant#1136446, orderDateTime#1136447, filter(unitOfMeasureConversions#1136479, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142921) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142922)) 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#1142921, _extract_internalRefUUID#1142922, internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
(548) 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]
(549) Project
Output [4]: [product#1136445, plant#1136446, orderDateTime#1136447, filteredUnitOfMeasureConversions#1136484.quantityDenominator AS _extract_quantityDenominator#1142240]
Input [5]: [product#1136445, plant#1136446, orderDateTime#1136447, filteredUnitOfMeasureConversions#1136484, quantityNumerator#1136485]
(550) Generate
Input [4]: [product#1136445, plant#1136446, orderDateTime#1136447, _extract_quantityDenominator#1142240]
Arguments: explode(_extract_quantityDenominator#1142240), [product#1136445, plant#1136446, orderDateTime#1136447], true, [quantityDenominator#1136486]
(551) Project
Output [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Input [4]: [product#1136445, plant#1136446, orderDateTime#1136447, quantityDenominator#1136486]
(552) Sort
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Arguments: [product#1136445 ASC NULLS FIRST, plant#1136446 ASC NULLS FIRST], false, 0
(553) SortMergeJoin
Left keys [2]: [productUuid#1136439, plantUuid#1136437]
Right keys [2]: [product#1136445, plant#1136446]
Join type: Inner
Join condition: (calculationDateTime#1136433 <= orderDateTime#1136447)
(554) 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]
(555) 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]
(556) 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]
(557) 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=1717830]
(558) 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
(559) 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
(560) 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]
(561) 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]
(562) Exchange
Input [4]: [product#1136353, plant#1136352, min#1137539, sum#1137540]
Arguments: hashpartitioning(product#1136353, plant#1136352, 37), ENSURE_REQUIREMENTS, [plan_id=1717837]
(563) 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]
(564) Sort
Input [4]: [product#1136353, plant#1136352, minCalculationDateTime#1136493, roundedQuantitySum#1136494]
Arguments: [product#1136353 ASC NULLS FIRST, plant#1136352 ASC NULLS FIRST], false, 0
(565) SortMergeJoin
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136353, plant#1136352]
Join type: LeftOuter
Join condition: None
(566) 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]
(567) 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))
(568) 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=1717846]
(569) BroadcastHashJoin
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136098, plant#1136099]
Join type: LeftOuter
Join condition: None
(570) 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]
(571) 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#1143937)), lambda arg#1143937, false))) AS stockBatchQuantities#1136496, [7226582400000000] AS [7226582400000000]#1143936]
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]#1143936, buf#1137536]
(572) ObjectHashAggregate
Input [10]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1143936, buf#1137536]
Keys [9]: [product#1136173, plant#1136174, orderDateTime#1136175, productPlant#1136185, timezonecode#1136199, outboundUnit#1136216, stockDatetime#1136495, stockBatchQuantities#1136496, [7226582400000000]#1143936]
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]
(573) 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, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#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, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1136496, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), 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, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#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
(574) 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
(575) 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, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1136171, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1136172]
(576) Exchange
Input [4]: [product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: hashpartitioning(coalesce(plant#1136170, ), isnull(plant#1136170), coalesce(product#1136169, ), isnull(product#1136169), 37), ENSURE_REQUIREMENTS, [plan_id=1717857]
(577) Sort
Input [4]: [product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
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
(578) 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
(579) Project
Output [7]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Input [9]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, product#1136169, plant#1136170, dayBucketDemands#1136171, pointInTimeDemands#1136172]
(580) Exchange
Input [7]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: hashpartitioning(product#1135691, plant#1135692, 37), ENSURE_REQUIREMENTS, [plan_id=1718186]
(581) Sort
Input [7]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172]
Arguments: [product#1135691 ASC NULLS FIRST, plant#1135692 ASC NULLS FIRST], false, 0
(582) InMemoryTableScan
Output [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Arguments: [product#1136540, plant#1136539, openGoodsMovements#1137658], [isnotnull(product#1136540), isnotnull(plant#1136539)]
(583) InMemoryRelation
Arguments: [product#1136540, plant#1136539, openGoodsMovements#1137658], StorageLevel(disk, memory, 2 replicas)
(584) EmptyRelation
Output [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Arguments: [plan_id=1763674]
(585) ResultQueryStage
Output [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Arguments: 2
(586) 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]
(587) 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)
(588) 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>
(589) ColumnarToRow
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
(590) Filter
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Condition : (isnotnull(plant#1135692) AND isnotnull(product#1135691))
(591) Exchange
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: hashpartitioning(product#1135691, plant#1135692, 37), REPARTITION_BY_NUM, [plan_id=1727639]
(592) ShuffleQueryStage
Output [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: 0
(593) 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>>>>
(594) ColumnarToRow
Input [4]: [plant#1135698, product#1135699, productionAspect#1135701, systemId#1135696]
(595) 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]
(596) Exchange
Input [4]: [_extract_internalRefUUID#1136837, _extract_internalRefUUID#1136838, _extract_code#1136835, _extract_internalRefUUID#1136836]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727655]
(597) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#1136837, _extract_internalRefUUID#1136838, _extract_code#1136835, _extract_internalRefUUID#1136836]
Arguments: 1
(598) 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]
(599) 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]
(600) BroadcastQueryStage
Output [4]: [_extract_code#1136835, _extract_internalRefUUID#1136836, _extract_internalRefUUID#1136838, _extract_internalRefUUID#1136837]
Arguments: 118
(601) 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
(602) 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]
(603) 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>>>
(604) ColumnarToRow
Input [3]: [internalUUID#1135709, address#1135715, systemId#1135708]
(605) Project
Output [2]: [internalUUID#1135709, address#1135715.timeZone.code AS timezonecode#1135720]
Input [3]: [internalUUID#1135709, address#1135715, systemId#1135708]
(606) Exchange
Input [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727674]
(607) ShuffleQueryStage
Output [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: 2
(608) BroadcastExchange
Input [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1729885]
(609) BroadcastQueryStage
Output [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: 97
(610) 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
(611) 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]
(612) 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>>>
(613) ColumnarToRow
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(614) Filter
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
Condition : isnotnull(internalUUID#1135725)
(615) Project
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(616) Exchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727694]
(617) ShuffleQueryStage
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: 3
(618) BroadcastExchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1733533]
(619) BroadcastQueryStage
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: 107
(620) BroadcastHashJoin
Left keys [1]: [product#1135691]
Right keys [1]: [internalUUID#1135725]
Join type: LeftOuter
Join condition: None
(621) 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]
(622) 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]
(623) 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]
(624) 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]
(625) Project
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723]
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, quantityDenominator#1135748]
(626) 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]
(627) 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]
(628) 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]
(629) ShuffleQueryStage
Output [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: 173
(630) AQEShuffleRead
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: local
(631) 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>
(632) ColumnarToRow
Input [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
(633) Exchange
Input [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
Arguments: hashpartitioning(product#1136173, plant#1136174, 37), REPARTITION_BY_NUM, [plan_id=1728205]
(634) ShuffleQueryStage
Output [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
Arguments: 39
(635) 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>>>
(636) ColumnarToRow
Input [8]: [internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184, systemId#1136177]
(637) 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]
(638) 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]
(639) ShuffleQueryStage
Output [8]: [systemId#1136177, internalUUID#1136178, plant#1136179, product#1136180, blockedForReplenishmentStartingFrom#1136181, productionAspect#1136182, salesPlant#1136183, listing#1136184]
Arguments: 40
(640) 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]
(641) 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]
(642) BroadcastQueryStage
Output [1]: [productPlant#1136185]
Arguments: 146
(643) 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
(644) ReusedExchange [Reuses operator id: 608]
Output [2]: [internalUUID#1136187, timezonecode#1136198]
(645) BroadcastQueryStage
Output [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: 98
(646) 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
(647) 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]
(648) ReusedExchange [Reuses operator id: 618]
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
(649) BroadcastQueryStage
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: 112
(650) BroadcastHashJoin
Left keys [1]: [product#1136173]
Right keys [1]: [internalUUID#1136201]
Join type: LeftOuter
Join condition: None
(651) 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]
(652) 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]
(653) 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]
(654) 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]
(655) 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]
(656) 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]
(657) 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]
(658) 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]
(659) 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>>>
(660) ColumnarToRow
Input [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
(661) 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))
(662) 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]
(663) BroadcastQueryStage
Output [9]: [product#1136098, plant#1136099, demandChannel#1136100, demandStream#1136101, considerVariance#1136102, demandTimeBuckets#1136103, demandPointInTimeStart#1136104, demandPointInTimeEnd#1136105, demandPointInTime#1136106]
Arguments: 85
(664) BroadcastHashJoin
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136098, plant#1136099]
Join type: LeftOuter
Join condition: None
(665) 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]
(666) 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]
(667) 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]
(668) 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
(669) 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
(670) 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]
(671) 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]
(672) ShuffleQueryStage
Output [2]: [product#1136169, plant#1136170]
Arguments: 172
(673) AQEShuffleRead
Input [2]: [product#1136169, plant#1136170]
Arguments: local
(674) 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]
(675) BroadcastQueryStage
Output [2]: [product#1136169, plant#1136170]
Arguments: 174
(676) 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
(677) 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]
(678) Exchange
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: hashpartitioning(plant#1135692, 37), ENSURE_REQUIREMENTS, [plan_id=1763538]
(679) ShuffleQueryStage
Output [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: 175
(680) Sort
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: [plant#1135692 ASC NULLS FIRST], false, 0
(681) ReusedExchange [Reuses operator id: 2623]
Output [1]: [distributionCenters#1136568]
(682) ShuffleQueryStage
Output [1]: [distributionCenters#1136568]
Arguments: 87
(683) Generate
Input [1]: [distributionCenters#1136568]
Arguments: explode(distributionCenters#1136568), false, [distributionCenters#1136584]
(684) Filter
Input [1]: [distributionCenters#1136584]
Condition : (((size(distributionCenters#1136584.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1136584.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1136584.internalRefUUID))
(685) Project
Output [2]: [distributionCenters#1136584.internalRefUUID AS _extract_internalRefUUID#1136687, distributionCenters#1136584.storageLocations.internalRefUUID AS _extract_internalRefUUID#1136872]
Input [1]: [distributionCenters#1136584]
(686) Generate
Input [2]: [_extract_internalRefUUID#1136687, _extract_internalRefUUID#1136872]
Arguments: explode(_extract_internalRefUUID#1136872), [_extract_internalRefUUID#1136687], false, [storageLocations#1136585]
(687) Filter
Input [2]: [_extract_internalRefUUID#1136687, storageLocations#1136585]
Condition : isnotnull(storageLocations#1136585)
(688) Project
Output [2]: [_extract_internalRefUUID#1136687 AS plantUuid#1136587, storageLocations#1136585 AS storageLocUuid#1136589]
Input [2]: [_extract_internalRefUUID#1136687, storageLocations#1136585]
(689) BroadcastExchange
Input [2]: [plantUuid#1136587, storageLocUuid#1136589]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1732733]
(690) BroadcastQueryStage
Output [2]: [plantUuid#1136587, storageLocUuid#1136589]
Arguments: 106
(691) ReusedExchange [Reuses operator id: 2649]
Output [1]: [plant#1136591]
(692) ShuffleQueryStage
Output [1]: [plant#1136591]
Arguments: 160
(693) HashAggregate
Input [1]: [plant#1136591]
Keys [1]: [plant#1136591]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136591]
(694) BroadcastHashJoin
Left keys [1]: [plantUuid#1136587]
Right keys [1]: [plant#1136591]
Join type: Inner
Join condition: None
(695) Project
Output [2]: [plantUuid#1136587 AS plant#1136561, storageLocUuid#1136589]
Input [3]: [plantUuid#1136587, storageLocUuid#1136589, plant#1136591]
(696) Sort
Input [2]: [plant#1136561, storageLocUuid#1136589]
Arguments: [plant#1136561 ASC NULLS FIRST], false, 0
(697) SortMergeJoin
Left keys [1]: [plant#1135692]
Right keys [1]: [plant#1136561]
Join type: Inner
Join condition: None
(698) 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]
(699) 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>>>>>
(700) ColumnarToRow
Input [6]: [internalUUID#1136523, id#1136524, supplier#1136526, isMarkedForDeletion#1136529, items#1136530, systemId#1136522]
(701) 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))
(702) 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]
(703) Exchange
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1729016]
(704) ShuffleQueryStage
Output [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: 96
(705) Generate
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: explode(items#1136530), [internalUUID#1136523, id#1136524, supplier#1136526], false, [item#1136534]
(706) 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)))
(707) 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]
(708) 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]
(709) 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
(710) 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
(711) 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]
(712) 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
(713) Filter
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Condition : (isnotnull(plant#1135692) AND isnotnull(product#1135691))
(714) Exchange
Input [3]: [product#1135691, plant#1135692, orderDateTime#1135693]
Arguments: hashpartitioning(product#1135691, plant#1135692, 37), REPARTITION_BY_NUM, [plan_id=1710333]
(715) 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]
(716) Exchange
Input [4]: [_extract_internalRefUUID#1136837, _extract_internalRefUUID#1136838, _extract_code#1136835, _extract_internalRefUUID#1136836]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709904]
(717) 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]
(718) 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]
(719) 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
(720) 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]
(721) Project
Output [2]: [internalUUID#1135709, address#1135715.timeZone.code AS timezonecode#1135720]
Input [3]: [internalUUID#1135709, address#1135715, systemId#1135708]
(722) Exchange
Input [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709910]
(723) BroadcastExchange
Input [2]: [internalUUID#1135709, timezonecode#1135720]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710536]
(724) 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
(725) 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]
(726) Filter
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
Condition : isnotnull(internalUUID#1135725)
(727) Project
Output [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Input [4]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731, systemId#1135724]
(728) Exchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709916]
(729) BroadcastExchange
Input [3]: [internalUUID#1135725, baseUnitOfMeasure#1135729, unitOfMeasureConversions#1135731]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710540]
(730) BroadcastHashJoin
Left keys [1]: [product#1135691]
Right keys [1]: [internalUUID#1135725]
Join type: LeftOuter
Join condition: None
(731) 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]
(732) 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]
(733) 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]
(734) 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]
(735) Project
Output [4]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723]
Input [5]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723, quantityDenominator#1135748]
(736) Sort
Input [4]: [product#1135691, plant#1135692, orderDateTime#1135693, timezonecode#1135723]
Arguments: [product#1135691 ASC NULLS FIRST, plant#1135692 ASC NULLS FIRST], false, 0
(737) 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>>>>>
(738) 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))
(739) 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]
(740) Exchange
Input [6]: [systemId#1135787, internalUUID#1135788, product#1135789, plant#1135790, calculationDateTime#1135791, stockQuantities#1135792]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709926]
(741) 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]
(742) 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>>>>>
(743) Filter
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
Condition : (((marketUnit#1135751 <=> Alert_Test1) AND (size(distributionCenters#1135757, true) > 0)) AND isnotnull(distributionCenters#1135757))
(744) Project
Output [1]: [distributionCenters#1135757]
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
(745) Exchange
Input [1]: [distributionCenters#1135757]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709930]
(746) Generate
Input [1]: [distributionCenters#1135757]
Arguments: explode(distributionCenters#1135757), false, [distributionCenters#1135775]
(747) Filter
Input [1]: [distributionCenters#1135775]
Condition : (((size(distributionCenters#1135775.storageLocations, true) > 0) AND isnotnull(distributionCenters#1135775.storageLocations)) AND isnotnull(distributionCenters#1135775.internalRefUUID))
(748) Project
Output [2]: [distributionCenters#1135775.internalRefUUID AS _extract_internalRefUUID#1136645, distributionCenters#1135775.storageLocations AS _extract_storageLocations#1136646]
Input [1]: [distributionCenters#1135775]
(749) Generate
Input [2]: [_extract_internalRefUUID#1136645, _extract_storageLocations#1136646]
Arguments: explode(_extract_storageLocations#1136646), [_extract_internalRefUUID#1136645], false, [storageLocations#1135782]
(750) 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]
(751) BroadcastExchange
Input [3]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710567]
(752) 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>
(753) Filter
Input [2]: [product#1136047, plant#1136048]
Condition : isnotnull(plant#1136048)
(754) Exchange
Input [2]: [product#1136047, plant#1136048]
Arguments: hashpartitioning(product#1136047, plant#1136048, 37), REPARTITION_BY_NUM, [plan_id=1710344]
(755) 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>>>>
(756) 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]
(757) Exchange
Input [4]: [_extract_internalRefUUID#1136841, _extract_internalRefUUID#1136842, _extract_code#1136839, _extract_internalRefUUID#1136840]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709942]
(758) 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]
(759) 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]
(760) 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
(761) 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]
(762) 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>
(763) Project
Output [1]: [internalUUID#1136061]
Input [2]: [internalUUID#1136061, systemId#1136060]
(764) Exchange
Input [1]: [internalUUID#1136061]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709948]
(765) BroadcastExchange
Input [1]: [internalUUID#1136061]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710551]
(766) 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
(767) 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]
(768) 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>>>
(769) Filter
Input [4]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081, systemId#1136074]
Condition : isnotnull(internalUUID#1136075)
(770) Project
Output [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Input [4]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081, systemId#1136074]
(771) Exchange
Input [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709954]
(772) BroadcastExchange
Input [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710555]
(773) BroadcastHashJoin
Left keys [1]: [product#1136047]
Right keys [1]: [internalUUID#1136075]
Join type: LeftOuter
Join condition: None
(774) 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]
(775) Generate
Input [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086]
Arguments: explode(filteredUnitOfMeasureConversions#1136086.quantityNumerator), [plant#1136048, filteredUnitOfMeasureConversions#1136086], true, [quantityNumerator#1136087]
(776) Project
Output [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086.quantityDenominator AS _extract_quantityDenominator#1136647]
Input [3]: [plant#1136048, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087]
(777) Generate
Input [2]: [plant#1136048, _extract_quantityDenominator#1136647]
Arguments: explode(_extract_quantityDenominator#1136647), [plant#1136048], true, [quantityDenominator#1136088]
(778) Project
Output [1]: [plant#1136048]
Input [2]: [plant#1136048, quantityDenominator#1136088]
(779) HashAggregate
Input [1]: [plant#1136048]
Keys [1]: [plant#1136048]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136048]
(780) Exchange
Input [1]: [plant#1136048]
Arguments: hashpartitioning(plant#1136048, 37), ENSURE_REQUIREMENTS, [plan_id=1710564]
(781) HashAggregate
Input [1]: [plant#1136048]
Keys [1]: [plant#1136048]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136048]
(782) BroadcastHashJoin
Left keys [1]: [plantUuid#1135777]
Right keys [1]: [plant#1136048]
Join type: Inner
Join condition: None
(783) Project
Output [3]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784]
Input [4]: [plantUuid#1135777, storageLocId#1135783, storageLocUuid#1135784, plant#1136048]
(784) 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
(785) 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]
(786) 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]
(787) 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]
(788) Filter
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantities#1135799]
Condition : ((size(stockQuantities#1135799, true) > 0) AND isnotnull(calculationDateTime#1135798))
(789) Generate
Input [4]: [product#1135789, plant#1135790, calculationDateTime#1135798, stockQuantities#1135799]
Arguments: explode(stockQuantities#1135799), [product#1135789, plant#1135790, calculationDateTime#1135798], false, [stockQuantity#1135814]
(790) 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))
(791) 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]
(792) Exchange
Input [4]: [plantUuid#1135816, productUuid#1135818, calculationDateTime#1135798, storageLocId#1135819]
Arguments: hashpartitioning(productUuid#1135818, plantUuid#1135816, 37), ENSURE_REQUIREMENTS, [plan_id=1710597]
(793) Sort
Input [4]: [plantUuid#1135816, productUuid#1135818, calculationDateTime#1135798, storageLocId#1135819]
Arguments: [productUuid#1135818 ASC NULLS FIRST, plantUuid#1135816 ASC NULLS FIRST], false, 0
(794) 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>
(795) Filter
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Condition : ((isnotnull(orderDateTime#1135835) AND isnotnull(plant#1135834)) AND isnotnull(product#1135833))
(796) Exchange
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Arguments: hashpartitioning(product#1135833, plant#1135834, 37), REPARTITION_BY_NUM, [plan_id=1710367]
(797) 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>>>>
(798) 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]
(799) Exchange
Input [4]: [_extract_internalRefUUID#1136845, _extract_internalRefUUID#1136846, _extract_code#1136843, _extract_internalRefUUID#1136844]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709979]
(800) 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]
(801) 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]
(802) 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
(803) 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]
(804) 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>
(805) Project
Output [1]: [internalUUID#1135847]
Input [2]: [internalUUID#1135847, systemId#1135846]
(806) Exchange
Input [1]: [internalUUID#1135847]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709985]
(807) BroadcastExchange
Input [1]: [internalUUID#1135847]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710584]
(808) 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
(809) 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]
(810) 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>>>
(811) Filter
Input [4]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867, systemId#1135860]
Condition : isnotnull(internalUUID#1135861)
(812) Project
Output [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Input [4]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867, systemId#1135860]
(813) Exchange
Input [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1709991]
(814) BroadcastExchange
Input [3]: [internalUUID#1135861, baseUnitOfMeasure#1135865, unitOfMeasureConversions#1135867]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710588]
(815) BroadcastHashJoin
Left keys [1]: [product#1135833]
Right keys [1]: [internalUUID#1135861]
Join type: LeftOuter
Join condition: None
(816) 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]
(817) 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]
(818) 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]
(819) 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]
(820) Project
Output [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Input [4]: [product#1135833, plant#1135834, orderDateTime#1135835, quantityDenominator#1135874]
(821) Sort
Input [3]: [product#1135833, plant#1135834, orderDateTime#1135835]
Arguments: [product#1135833 ASC NULLS FIRST, plant#1135834 ASC NULLS FIRST], false, 0
(822) SortMergeJoin
Left keys [2]: [productUuid#1135818, plantUuid#1135816]
Right keys [2]: [product#1135833, plant#1135834]
Join type: Inner
Join condition: (calculationDateTime#1135798 <= orderDateTime#1135835)
(823) 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]
(824) 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]
(825) 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
(826) 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>>>>>
(827) 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))
(828) 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]
(829) Exchange
Input [6]: [systemId#1135890, internalUUID#1135891, product#1135892, plant#1135893, calculationDateTime#1135894, stockQuantities#1135895]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710003]
(830) 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]
(831) 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>>>>>
(832) Filter
Input [2]: [marketUnit#1135896, distributionCenters#1135902]
Condition : (((marketUnit#1135896 <=> Alert_Test1) AND (size(distributionCenters#1135902, true) > 0)) AND isnotnull(distributionCenters#1135902))
(833) Project
Output [1]: [distributionCenters#1135902]
Input [2]: [marketUnit#1135896, distributionCenters#1135902]
(834) Exchange
Input [1]: [distributionCenters#1135902]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710007]
(835) Generate
Input [1]: [distributionCenters#1135902]
Arguments: explode(distributionCenters#1135902), false, [distributionCenters#1135918]
(836) Filter
Input [1]: [distributionCenters#1135918]
Condition : (((size(distributionCenters#1135918.storageLocations, true) > 0) AND isnotnull(distributionCenters#1135918.storageLocations)) AND isnotnull(distributionCenters#1135918.internalRefUUID))
(837) Project
Output [2]: [distributionCenters#1135918.internalRefUUID AS _extract_internalRefUUID#1136655, distributionCenters#1135918.storageLocations AS _extract_storageLocations#1136656]
Input [1]: [distributionCenters#1135918]
(838) Generate
Input [2]: [_extract_internalRefUUID#1136655, _extract_storageLocations#1136656]
Arguments: explode(_extract_storageLocations#1136656), [_extract_internalRefUUID#1136655], false, [storageLocations#1135919]
(839) 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]
(840) BroadcastExchange
Input [3]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710622]
(841) 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>
(842) Filter
Input [2]: [product#1135924, plant#1135925]
Condition : isnotnull(plant#1135925)
(843) Exchange
Input [2]: [product#1135924, plant#1135925]
Arguments: hashpartitioning(product#1135924, plant#1135925, 37), REPARTITION_BY_NUM, [plan_id=1710380]
(844) 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>>>>
(845) 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]
(846) Exchange
Input [4]: [_extract_internalRefUUID#1136847, _extract_internalRefUUID#1136848, _extract_code#1136849, _extract_internalRefUUID#1136850]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710019]
(847) 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]
(848) 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]
(849) 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
(850) 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]
(851) 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>
(852) Project
Output [1]: [internalUUID#1135938]
Input [2]: [internalUUID#1135938, systemId#1135937]
(853) Exchange
Input [1]: [internalUUID#1135938]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710025]
(854) BroadcastExchange
Input [1]: [internalUUID#1135938]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710606]
(855) 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
(856) 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]
(857) 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>>>
(858) Filter
Input [4]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958, systemId#1135951]
Condition : isnotnull(internalUUID#1135952)
(859) Project
Output [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Input [4]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958, systemId#1135951]
(860) Exchange
Input [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710031]
(861) BroadcastExchange
Input [3]: [internalUUID#1135952, baseUnitOfMeasure#1135956, unitOfMeasureConversions#1135958]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710610]
(862) BroadcastHashJoin
Left keys [1]: [product#1135924]
Right keys [1]: [internalUUID#1135952]
Join type: LeftOuter
Join condition: None
(863) 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]
(864) Generate
Input [2]: [plant#1135925, filteredUnitOfMeasureConversions#1135963]
Arguments: explode(filteredUnitOfMeasureConversions#1135963.quantityNumerator), [plant#1135925, filteredUnitOfMeasureConversions#1135963], true, [quantityNumerator#1135964]
(865) Project
Output [2]: [plant#1135925, filteredUnitOfMeasureConversions#1135963.quantityDenominator AS _extract_quantityDenominator#1136657]
Input [3]: [plant#1135925, filteredUnitOfMeasureConversions#1135963, quantityNumerator#1135964]
(866) Generate
Input [2]: [plant#1135925, _extract_quantityDenominator#1136657]
Arguments: explode(_extract_quantityDenominator#1136657), [plant#1135925], true, [quantityDenominator#1135965]
(867) Project
Output [1]: [plant#1135925]
Input [2]: [plant#1135925, quantityDenominator#1135965]
(868) HashAggregate
Input [1]: [plant#1135925]
Keys [1]: [plant#1135925]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1135925]
(869) Exchange
Input [1]: [plant#1135925]
Arguments: hashpartitioning(plant#1135925, 37), ENSURE_REQUIREMENTS, [plan_id=1710619]
(870) HashAggregate
Input [1]: [plant#1135925]
Keys [1]: [plant#1135925]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1135925]
(871) BroadcastHashJoin
Left keys [1]: [plantUuid#1135921]
Right keys [1]: [plant#1135925]
Join type: Inner
Join condition: None
(872) Project
Output [3]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923]
Input [4]: [plantUuid#1135921, storageLocId#1135922, storageLocUuid#1135923, plant#1135925]
(873) 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
(874) 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]
(875) 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]
(876) 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]
(877) Filter
Input [4]: [product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantities#1135970]
Condition : ((size(stockQuantities#1135970, true) > 0) AND isnotnull(calculationDateTime#1135969))
(878) Generate
Input [4]: [product#1135892, plant#1135893, calculationDateTime#1135969, stockQuantities#1135970]
Arguments: explode(stockQuantities#1135970), [product#1135892, plant#1135893, calculationDateTime#1135969], false, [stockQuantity#1135971]
(879) 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))
(880) 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]
(881) Exchange
Input [4]: [plantUuid#1135973, productUuid#1135975, calculationDateTime#1135969, storageLocId#1135976]
Arguments: hashpartitioning(productUuid#1135975, plantUuid#1135973, 37), ENSURE_REQUIREMENTS, [plan_id=1710652]
(882) Sort
Input [4]: [plantUuid#1135973, productUuid#1135975, calculationDateTime#1135969, storageLocId#1135976]
Arguments: [productUuid#1135975 ASC NULLS FIRST, plantUuid#1135973 ASC NULLS FIRST], false, 0
(883) 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>
(884) Filter
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Condition : ((isnotnull(orderDateTime#1135983) AND isnotnull(plant#1135982)) AND isnotnull(product#1135981))
(885) Exchange
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Arguments: hashpartitioning(product#1135981, plant#1135982, 37), REPARTITION_BY_NUM, [plan_id=1710403]
(886) 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>>>>
(887) 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]
(888) Exchange
Input [4]: [_extract_internalRefUUID#1136851, _extract_internalRefUUID#1136854, _extract_code#1136852, _extract_internalRefUUID#1136853]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710056]
(889) 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]
(890) 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]
(891) 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
(892) 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]
(893) 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>
(894) Project
Output [1]: [internalUUID#1135995]
Input [2]: [internalUUID#1135995, systemId#1135994]
(895) Exchange
Input [1]: [internalUUID#1135995]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710062]
(896) BroadcastExchange
Input [1]: [internalUUID#1135995]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710639]
(897) 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
(898) 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]
(899) 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>>>
(900) Filter
Input [4]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015, systemId#1136008]
Condition : isnotnull(internalUUID#1136009)
(901) Project
Output [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Input [4]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015, systemId#1136008]
(902) Exchange
Input [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710068]
(903) BroadcastExchange
Input [3]: [internalUUID#1136009, baseUnitOfMeasure#1136013, unitOfMeasureConversions#1136015]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710643]
(904) BroadcastHashJoin
Left keys [1]: [product#1135981]
Right keys [1]: [internalUUID#1136009]
Join type: LeftOuter
Join condition: None
(905) 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]
(906) 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]
(907) 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]
(908) 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]
(909) Project
Output [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Input [4]: [product#1135981, plant#1135982, orderDateTime#1135983, quantityDenominator#1136022]
(910) Sort
Input [3]: [product#1135981, plant#1135982, orderDateTime#1135983]
Arguments: [product#1135981 ASC NULLS FIRST, plant#1135982 ASC NULLS FIRST], false, 0
(911) SortMergeJoin
Left keys [2]: [productUuid#1135975, plantUuid#1135973]
Right keys [2]: [product#1135981, plant#1135982]
Join type: Inner
Join condition: (calculationDateTime#1135969 <= orderDateTime#1135983)
(912) 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]
(913) 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]
(914) 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]
(915) 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]
(916) 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
(917) 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
(918) 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]
(919) 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]
(920) Exchange
Input [3]: [product#1135882, plant#1135881, min#1137518]
Arguments: hashpartitioning(product#1135882, plant#1135881, 37), ENSURE_REQUIREMENTS, [plan_id=1710669]
(921) 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]
(922) Sort
Input [3]: [product#1135882, plant#1135881, minCalculationDateTime#1136038]
Arguments: [product#1135882 ASC NULLS FIRST, plant#1135881 ASC NULLS FIRST], false, 0
(923) SortMergeJoin
Left keys [2]: [product#1135691, plant#1135692]
Right keys [2]: [product#1135882, plant#1135881]
Join type: LeftOuter
Join condition: None
(924) 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]
(925) 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]
(926) 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
(927) Exchange
Input [3]: [product#1136173, plant#1136174, orderDateTime#1136175]
Arguments: hashpartitioning(product#1136173, plant#1136174, 37), REPARTITION_BY_NUM, [plan_id=1710086]
(928) 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]
(929) 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]
(930) 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]
(931) 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]
(932) 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
(933) 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>>>
(934) Project
Output [2]: [internalUUID#1136187, address#1136193.timeZone.code AS timezonecode#1136198]
Input [3]: [internalUUID#1136187, address#1136193, systemId#1136186]
(935) Exchange
Input [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710094]
(936) BroadcastExchange
Input [2]: [internalUUID#1136187, timezonecode#1136198]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710680]
(937) 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
(938) 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]
(939) 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>>>
(940) Filter
Input [4]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207, systemId#1136200]
Condition : isnotnull(internalUUID#1136201)
(941) Project
Output [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Input [4]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207, systemId#1136200]
(942) Exchange
Input [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710100]
(943) BroadcastExchange
Input [3]: [internalUUID#1136201, baseUnitOfMeasure#1136205, unitOfMeasureConversions#1136207]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710684]
(944) BroadcastHashJoin
Left keys [1]: [product#1136173]
Right keys [1]: [internalUUID#1136201]
Join type: LeftOuter
Join condition: None
(945) 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]
(946) 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]
(947) 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]
(948) 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]
(949) 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]
(950) 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]
(951) 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
(952) 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>>>>>
(953) 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))
(954) 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]
(955) Exchange
Input [6]: [systemId#1136217, internalUUID#1136218, product#1136219, plant#1136220, calculationDateTime#1136221, stockQuantities#1136222]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710111]
(956) 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]
(957) 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>>>>>
(958) Filter
Input [2]: [marketUnit#1136223, distributionCenters#1136229]
Condition : (((marketUnit#1136223 <=> Alert_Test1) AND (size(distributionCenters#1136229, true) > 0)) AND isnotnull(distributionCenters#1136229))
(959) Project
Output [1]: [distributionCenters#1136229]
Input [2]: [marketUnit#1136223, distributionCenters#1136229]
(960) Exchange
Input [1]: [distributionCenters#1136229]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710115]
(961) Generate
Input [1]: [distributionCenters#1136229]
Arguments: explode(distributionCenters#1136229), false, [distributionCenters#1136245]
(962) Filter
Input [1]: [distributionCenters#1136245]
Condition : (((size(distributionCenters#1136245.storageLocations, true) > 0) AND isnotnull(distributionCenters#1136245.storageLocations)) AND isnotnull(distributionCenters#1136245.internalRefUUID))
(963) Project
Output [2]: [distributionCenters#1136245.internalRefUUID AS _extract_internalRefUUID#1136667, distributionCenters#1136245.storageLocations AS _extract_storageLocations#1136668]
Input [1]: [distributionCenters#1136245]
(964) Generate
Input [2]: [_extract_internalRefUUID#1136667, _extract_storageLocations#1136668]
Arguments: explode(_extract_storageLocations#1136668), [_extract_internalRefUUID#1136667], false, [storageLocations#1136246]
(965) 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]
(966) BroadcastExchange
Input [3]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710712]
(967) 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>
(968) Filter
Input [2]: [product#1136251, plant#1136252]
Condition : isnotnull(plant#1136252)
(969) Exchange
Input [2]: [product#1136251, plant#1136252]
Arguments: hashpartitioning(product#1136251, plant#1136252, 37), REPARTITION_BY_NUM, [plan_id=1710424]
(970) 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>>>>
(971) 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]
(972) Exchange
Input [4]: [_extract_internalRefUUID#1136857, _extract_internalRefUUID#1136858, _extract_code#1136855, _extract_internalRefUUID#1136856]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710127]
(973) 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]
(974) 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]
(975) 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
(976) 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]
(977) 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>
(978) Project
Output [1]: [internalUUID#1136265]
Input [2]: [internalUUID#1136265, systemId#1136264]
(979) Exchange
Input [1]: [internalUUID#1136265]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710133]
(980) BroadcastExchange
Input [1]: [internalUUID#1136265]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710696]
(981) 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
(982) 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]
(983) 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>>>
(984) Filter
Input [4]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285, systemId#1136278]
Condition : isnotnull(internalUUID#1136279)
(985) Project
Output [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Input [4]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285, systemId#1136278]
(986) Exchange
Input [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710139]
(987) BroadcastExchange
Input [3]: [internalUUID#1136279, baseUnitOfMeasure#1136283, unitOfMeasureConversions#1136285]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710700]
(988) BroadcastHashJoin
Left keys [1]: [product#1136251]
Right keys [1]: [internalUUID#1136279]
Join type: LeftOuter
Join condition: None
(989) 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]
(990) Generate
Input [2]: [plant#1136252, filteredUnitOfMeasureConversions#1136290]
Arguments: explode(filteredUnitOfMeasureConversions#1136290.quantityNumerator), [plant#1136252, filteredUnitOfMeasureConversions#1136290], true, [quantityNumerator#1136291]
(991) Project
Output [2]: [plant#1136252, filteredUnitOfMeasureConversions#1136290.quantityDenominator AS _extract_quantityDenominator#1136669]
Input [3]: [plant#1136252, filteredUnitOfMeasureConversions#1136290, quantityNumerator#1136291]
(992) Generate
Input [2]: [plant#1136252, _extract_quantityDenominator#1136669]
Arguments: explode(_extract_quantityDenominator#1136669), [plant#1136252], true, [quantityDenominator#1136292]
(993) Project
Output [1]: [plant#1136252]
Input [2]: [plant#1136252, quantityDenominator#1136292]
(994) HashAggregate
Input [1]: [plant#1136252]
Keys [1]: [plant#1136252]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136252]
(995) Exchange
Input [1]: [plant#1136252]
Arguments: hashpartitioning(plant#1136252, 37), ENSURE_REQUIREMENTS, [plan_id=1710709]
(996) HashAggregate
Input [1]: [plant#1136252]
Keys [1]: [plant#1136252]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136252]
(997) BroadcastHashJoin
Left keys [1]: [plantUuid#1136248]
Right keys [1]: [plant#1136252]
Join type: Inner
Join condition: None
(998) Project
Output [3]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250]
Input [4]: [plantUuid#1136248, storageLocId#1136249, storageLocUuid#1136250, plant#1136252]
(999) 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
(1000) 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]
(1001) 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]
(1002) 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]
(1003) Filter
Input [4]: [product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantities#1136297]
Condition : ((size(stockQuantities#1136297, true) > 0) AND isnotnull(calculationDateTime#1136296))
(1004) Generate
Input [4]: [product#1136219, plant#1136220, calculationDateTime#1136296, stockQuantities#1136297]
Arguments: explode(stockQuantities#1136297), [product#1136219, plant#1136220, calculationDateTime#1136296], false, [stockQuantity#1136298]
(1005) 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))
(1006) 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]
(1007) 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]
(1008) 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
(1009) 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>
(1010) Filter
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Condition : ((isnotnull(orderDateTime#1136310) AND isnotnull(plant#1136309)) AND isnotnull(product#1136308))
(1011) Exchange
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Arguments: hashpartitioning(product#1136308, plant#1136309, 37), REPARTITION_BY_NUM, [plan_id=1710447]
(1012) 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>>>>
(1013) 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]
(1014) Exchange
Input [4]: [_extract_internalRefUUID#1136862, _extract_internalRefUUID#1136861, _extract_code#1136859, _extract_internalRefUUID#1136860]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710164]
(1015) 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]
(1016) 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]
(1017) 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
(1018) 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]
(1019) 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>
(1020) Project
Output [1]: [internalUUID#1136322]
Input [2]: [internalUUID#1136322, systemId#1136321]
(1021) Exchange
Input [1]: [internalUUID#1136322]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710170]
(1022) BroadcastExchange
Input [1]: [internalUUID#1136322]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710729]
(1023) 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
(1024) 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]
(1025) 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>>>
(1026) Filter
Input [4]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342, systemId#1136335]
Condition : isnotnull(internalUUID#1136336)
(1027) Project
Output [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Input [4]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342, systemId#1136335]
(1028) Exchange
Input [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710176]
(1029) BroadcastExchange
Input [3]: [internalUUID#1136336, baseUnitOfMeasure#1136340, unitOfMeasureConversions#1136342]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710733]
(1030) BroadcastHashJoin
Left keys [1]: [product#1136308]
Right keys [1]: [internalUUID#1136336]
Join type: LeftOuter
Join condition: None
(1031) 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]
(1032) 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]
(1033) 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]
(1034) 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]
(1035) Project
Output [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Input [4]: [product#1136308, plant#1136309, orderDateTime#1136310, quantityDenominator#1136349]
(1036) Sort
Input [3]: [product#1136308, plant#1136309, orderDateTime#1136310]
Arguments: [product#1136308 ASC NULLS FIRST, plant#1136309 ASC NULLS FIRST], false, 0
(1037) SortMergeJoin
Left keys [2]: [productUuid#1136302, plantUuid#1136300]
Right keys [2]: [product#1136308, plant#1136309]
Join type: Inner
Join condition: (calculationDateTime#1136296 <= orderDateTime#1136310)
(1038) 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]
(1039) 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]
(1040) 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
(1041) 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>>>>>
(1042) 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))
(1043) 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]
(1044) Exchange
Input [6]: [systemId#1136354, internalUUID#1136355, product#1136356, plant#1136357, calculationDateTime#1136358, stockQuantities#1136359]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710188]
(1045) 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]
(1046) 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>>>>>
(1047) Filter
Input [2]: [marketUnit#1136360, distributionCenters#1136366]
Condition : (((marketUnit#1136360 <=> Alert_Test1) AND (size(distributionCenters#1136366, true) > 0)) AND isnotnull(distributionCenters#1136366))
(1048) Project
Output [1]: [distributionCenters#1136366]
Input [2]: [marketUnit#1136360, distributionCenters#1136366]
(1049) Exchange
Input [1]: [distributionCenters#1136366]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710192]
(1050) Generate
Input [1]: [distributionCenters#1136366]
Arguments: explode(distributionCenters#1136366), false, [distributionCenters#1136382]
(1051) Filter
Input [1]: [distributionCenters#1136382]
Condition : (((size(distributionCenters#1136382.storageLocations, true) > 0) AND isnotnull(distributionCenters#1136382.storageLocations)) AND isnotnull(distributionCenters#1136382.internalRefUUID))
(1052) Project
Output [2]: [distributionCenters#1136382.internalRefUUID AS _extract_internalRefUUID#1136677, distributionCenters#1136382.storageLocations AS _extract_storageLocations#1136678]
Input [1]: [distributionCenters#1136382]
(1053) Generate
Input [2]: [_extract_internalRefUUID#1136677, _extract_storageLocations#1136678]
Arguments: explode(_extract_storageLocations#1136678), [_extract_internalRefUUID#1136677], false, [storageLocations#1136383]
(1054) 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]
(1055) BroadcastExchange
Input [3]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710767]
(1056) 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>
(1057) Filter
Input [2]: [product#1136388, plant#1136389]
Condition : isnotnull(plant#1136389)
(1058) Exchange
Input [2]: [product#1136388, plant#1136389]
Arguments: hashpartitioning(product#1136388, plant#1136389, 37), REPARTITION_BY_NUM, [plan_id=1710460]
(1059) 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>>>>
(1060) 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]
(1061) Exchange
Input [4]: [_extract_internalRefUUID#1136866, _extract_internalRefUUID#1136863, _extract_code#1136864, _extract_internalRefUUID#1136865]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710204]
(1062) 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]
(1063) 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]
(1064) 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
(1065) 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]
(1066) 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>
(1067) Project
Output [1]: [internalUUID#1136402]
Input [2]: [internalUUID#1136402, systemId#1136401]
(1068) Exchange
Input [1]: [internalUUID#1136402]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710210]
(1069) BroadcastExchange
Input [1]: [internalUUID#1136402]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710751]
(1070) 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
(1071) 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]
(1072) 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>>>
(1073) Filter
Input [4]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422, systemId#1136415]
Condition : isnotnull(internalUUID#1136416)
(1074) Project
Output [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Input [4]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422, systemId#1136415]
(1075) Exchange
Input [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710216]
(1076) BroadcastExchange
Input [3]: [internalUUID#1136416, baseUnitOfMeasure#1136420, unitOfMeasureConversions#1136422]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710755]
(1077) BroadcastHashJoin
Left keys [1]: [product#1136388]
Right keys [1]: [internalUUID#1136416]
Join type: LeftOuter
Join condition: None
(1078) 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]
(1079) Generate
Input [2]: [plant#1136389, filteredUnitOfMeasureConversions#1136427]
Arguments: explode(filteredUnitOfMeasureConversions#1136427.quantityNumerator), [plant#1136389, filteredUnitOfMeasureConversions#1136427], true, [quantityNumerator#1136428]
(1080) Project
Output [2]: [plant#1136389, filteredUnitOfMeasureConversions#1136427.quantityDenominator AS _extract_quantityDenominator#1136679]
Input [3]: [plant#1136389, filteredUnitOfMeasureConversions#1136427, quantityNumerator#1136428]
(1081) Generate
Input [2]: [plant#1136389, _extract_quantityDenominator#1136679]
Arguments: explode(_extract_quantityDenominator#1136679), [plant#1136389], true, [quantityDenominator#1136429]
(1082) Project
Output [1]: [plant#1136389]
Input [2]: [plant#1136389, quantityDenominator#1136429]
(1083) HashAggregate
Input [1]: [plant#1136389]
Keys [1]: [plant#1136389]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136389]
(1084) Exchange
Input [1]: [plant#1136389]
Arguments: hashpartitioning(plant#1136389, 37), ENSURE_REQUIREMENTS, [plan_id=1710764]
(1085) HashAggregate
Input [1]: [plant#1136389]
Keys [1]: [plant#1136389]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136389]
(1086) BroadcastHashJoin
Left keys [1]: [plantUuid#1136385]
Right keys [1]: [plant#1136389]
Join type: Inner
Join condition: None
(1087) Project
Output [3]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387]
Input [4]: [plantUuid#1136385, storageLocId#1136386, storageLocUuid#1136387, plant#1136389]
(1088) 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
(1089) 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]
(1090) 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]
(1091) 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]
(1092) Filter
Input [4]: [product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantities#1136434]
Condition : ((size(stockQuantities#1136434, true) > 0) AND isnotnull(calculationDateTime#1136433))
(1093) Generate
Input [4]: [product#1136356, plant#1136357, calculationDateTime#1136433, stockQuantities#1136434]
Arguments: explode(stockQuantities#1136434), [product#1136356, plant#1136357, calculationDateTime#1136433], false, [stockQuantity#1136435]
(1094) 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))
(1095) 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]
(1096) Exchange
Input [4]: [plantUuid#1136437, productUuid#1136439, calculationDateTime#1136433, storageLocId#1136440]
Arguments: hashpartitioning(productUuid#1136439, plantUuid#1136437, 37), ENSURE_REQUIREMENTS, [plan_id=1710797]
(1097) Sort
Input [4]: [plantUuid#1136437, productUuid#1136439, calculationDateTime#1136433, storageLocId#1136440]
Arguments: [productUuid#1136439 ASC NULLS FIRST, plantUuid#1136437 ASC NULLS FIRST], false, 0
(1098) 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>
(1099) Filter
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Condition : ((isnotnull(orderDateTime#1136447) AND isnotnull(plant#1136446)) AND isnotnull(product#1136445))
(1100) Exchange
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Arguments: hashpartitioning(product#1136445, plant#1136446, 37), REPARTITION_BY_NUM, [plan_id=1710483]
(1101) 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>>>>
(1102) 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]
(1103) Exchange
Input [4]: [_extract_internalRefUUID#1136867, _extract_internalRefUUID#1136870, _extract_code#1136868, _extract_internalRefUUID#1136869]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710241]
(1104) 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]
(1105) 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]
(1106) 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
(1107) 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]
(1108) 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>
(1109) Project
Output [1]: [internalUUID#1136459]
Input [2]: [internalUUID#1136459, systemId#1136458]
(1110) Exchange
Input [1]: [internalUUID#1136459]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710247]
(1111) BroadcastExchange
Input [1]: [internalUUID#1136459]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710784]
(1112) 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
(1113) 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]
(1114) 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>>>
(1115) Filter
Input [4]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479, systemId#1136472]
Condition : isnotnull(internalUUID#1136473)
(1116) Project
Output [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Input [4]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479, systemId#1136472]
(1117) Exchange
Input [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710253]
(1118) BroadcastExchange
Input [3]: [internalUUID#1136473, baseUnitOfMeasure#1136477, unitOfMeasureConversions#1136479]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710788]
(1119) BroadcastHashJoin
Left keys [1]: [product#1136445]
Right keys [1]: [internalUUID#1136473]
Join type: LeftOuter
Join condition: None
(1120) 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]
(1121) 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]
(1122) 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]
(1123) 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]
(1124) Project
Output [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Input [4]: [product#1136445, plant#1136446, orderDateTime#1136447, quantityDenominator#1136486]
(1125) Sort
Input [3]: [product#1136445, plant#1136446, orderDateTime#1136447]
Arguments: [product#1136445 ASC NULLS FIRST, plant#1136446 ASC NULLS FIRST], false, 0
(1126) SortMergeJoin
Left keys [2]: [productUuid#1136439, plantUuid#1136437]
Right keys [2]: [product#1136445, plant#1136446]
Join type: Inner
Join condition: (calculationDateTime#1136433 <= orderDateTime#1136447)
(1127) 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]
(1128) 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]
(1129) 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]
(1130) 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]
(1131) 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
(1132) 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
(1133) 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]
(1134) 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]
(1135) Exchange
Input [4]: [product#1136353, plant#1136352, min#1137539, sum#1137540]
Arguments: hashpartitioning(product#1136353, plant#1136352, 37), ENSURE_REQUIREMENTS, [plan_id=1710814]
(1136) 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]
(1137) Sort
Input [4]: [product#1136353, plant#1136352, minCalculationDateTime#1136493, roundedQuantitySum#1136494]
Arguments: [product#1136353 ASC NULLS FIRST, plant#1136352 ASC NULLS FIRST], false, 0
(1138) SortMergeJoin
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136353, plant#1136352]
Join type: LeftOuter
Join condition: None
(1139) 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]
(1140) 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))
(1141) 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]
(1142) BroadcastHashJoin
Left keys [2]: [product#1136173, plant#1136174]
Right keys [2]: [product#1136098, plant#1136099]
Join type: LeftOuter
Join condition: None
(1143) 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]
(1144) 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]
(1145) 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]
(1146) 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
(1147) 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
(1148) 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]
(1149) 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]
(1150) 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
(1151) 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
(1152) 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]
(1153) Exchange
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: hashpartitioning(plant#1135692, 37), ENSURE_REQUIREMENTS, [plan_id=1710864]
(1154) Sort
Input [4]: [product#1135691, plant#1135692, timezonecode#1135723, stockDatetime#1136095]
Arguments: [plant#1135692 ASC NULLS FIRST], false, 0
(1155) 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>>>>>
(1156) Filter
Input [2]: [marketUnit#1136562, distributionCenters#1136568]
Condition : (((marketUnit#1136562 <=> Alert_Test1) AND (size(distributionCenters#1136568, true) > 0)) AND isnotnull(distributionCenters#1136568))
(1157) Project
Output [1]: [distributionCenters#1136568]
Input [2]: [marketUnit#1136562, distributionCenters#1136568]
(1158) Exchange
Input [1]: [distributionCenters#1136568]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710285]
(1159) Generate
Input [1]: [distributionCenters#1136568]
Arguments: explode(distributionCenters#1136568), false, [distributionCenters#1136584]
(1160) Filter
Input [1]: [distributionCenters#1136584]
Condition : (((size(distributionCenters#1136584.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1136584.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1136584.internalRefUUID))
(1161) Project
Output [2]: [distributionCenters#1136584.internalRefUUID AS _extract_internalRefUUID#1136687, distributionCenters#1136584.storageLocations.internalRefUUID AS _extract_internalRefUUID#1136872]
Input [1]: [distributionCenters#1136584]
(1162) Generate
Input [2]: [_extract_internalRefUUID#1136687, _extract_internalRefUUID#1136872]
Arguments: explode(_extract_internalRefUUID#1136872), [_extract_internalRefUUID#1136687], false, [storageLocations#1136585]
(1163) Filter
Input [2]: [_extract_internalRefUUID#1136687, storageLocations#1136585]
Condition : isnotnull(storageLocations#1136585)
(1164) Project
Output [2]: [_extract_internalRefUUID#1136687 AS plantUuid#1136587, storageLocations#1136585 AS storageLocUuid#1136589]
Input [2]: [_extract_internalRefUUID#1136687, storageLocations#1136585]
(1165) BroadcastExchange
Input [2]: [plantUuid#1136587, storageLocUuid#1136589]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710859]
(1166) 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>
(1167) Filter
Input [2]: [product#1136590, plant#1136591]
Condition : isnotnull(plant#1136591)
(1168) Exchange
Input [2]: [product#1136590, plant#1136591]
Arguments: hashpartitioning(product#1136590, plant#1136591, 37), REPARTITION_BY_NUM, [plan_id=1710513]
(1169) 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>>>>
(1170) 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]
(1171) Exchange
Input [4]: [_extract_internalRefUUID#1136876, _extract_internalRefUUID#1136875, _extract_code#1136873, _extract_internalRefUUID#1136874]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710298]
(1172) 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]
(1173) 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]
(1174) 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
(1175) 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]
(1176) 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>
(1177) Project
Output [1]: [internalUUID#1136604]
Input [2]: [internalUUID#1136604, systemId#1136603]
(1178) Exchange
Input [1]: [internalUUID#1136604]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710304]
(1179) BroadcastExchange
Input [1]: [internalUUID#1136604]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1710843]
(1180) 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
(1181) 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]
(1182) 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>>>
(1183) Filter
Input [4]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624, systemId#1136617]
Condition : isnotnull(internalUUID#1136618)
(1184) Project
Output [3]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624]
Input [4]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624, systemId#1136617]
(1185) Exchange
Input [3]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710310]
(1186) BroadcastExchange
Input [3]: [internalUUID#1136618, baseUnitOfMeasure#1136622, unitOfMeasureConversions#1136624]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1710847]
(1187) BroadcastHashJoin
Left keys [1]: [product#1136590]
Right keys [1]: [internalUUID#1136618]
Join type: LeftOuter
Join condition: None
(1188) 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]
(1189) Generate
Input [2]: [plant#1136591, filteredUnitOfMeasureConversions#1136629]
Arguments: explode(filteredUnitOfMeasureConversions#1136629.quantityNumerator), [plant#1136591, filteredUnitOfMeasureConversions#1136629], true, [quantityNumerator#1136630]
(1190) Project
Output [2]: [plant#1136591, filteredUnitOfMeasureConversions#1136629.quantityDenominator AS _extract_quantityDenominator#1136689]
Input [3]: [plant#1136591, filteredUnitOfMeasureConversions#1136629, quantityNumerator#1136630]
(1191) Generate
Input [2]: [plant#1136591, _extract_quantityDenominator#1136689]
Arguments: explode(_extract_quantityDenominator#1136689), [plant#1136591], true, [quantityDenominator#1136631]
(1192) Project
Output [1]: [plant#1136591]
Input [2]: [plant#1136591, quantityDenominator#1136631]
(1193) HashAggregate
Input [1]: [plant#1136591]
Keys [1]: [plant#1136591]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136591]
(1194) Exchange
Input [1]: [plant#1136591]
Arguments: hashpartitioning(plant#1136591, 37), ENSURE_REQUIREMENTS, [plan_id=1710856]
(1195) HashAggregate
Input [1]: [plant#1136591]
Keys [1]: [plant#1136591]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136591]
(1196) BroadcastHashJoin
Left keys [1]: [plantUuid#1136587]
Right keys [1]: [plant#1136591]
Join type: Inner
Join condition: None
(1197) Project
Output [2]: [plantUuid#1136587 AS plant#1136561, storageLocUuid#1136589]
Input [3]: [plantUuid#1136587, storageLocUuid#1136589, plant#1136591]
(1198) Sort
Input [2]: [plant#1136561, storageLocUuid#1136589]
Arguments: [plant#1136561 ASC NULLS FIRST], false, 0
(1199) SortMergeJoin
Left keys [1]: [plant#1135692]
Right keys [1]: [plant#1136561]
Join type: Inner
Join condition: None
(1200) 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]
(1201) 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))
(1202) 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]
(1203) Exchange
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1710326]
(1204) Generate
Input [4]: [internalUUID#1136523, id#1136524, supplier#1136526, items#1136530]
Arguments: explode(items#1136530), [internalUUID#1136523, id#1136524, supplier#1136526], false, [item#1136534]
(1205) 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)))
(1206) 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]
(1207) 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]
(1208) 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
(1209) 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]
(1210) 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
(1211) 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]
(1212) 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]
(1213) 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
(1214) 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]
(1215) 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]
(1216) 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]
(1217) Exchange
Input [3]: [product#1136540, plant#1136539, buf#1137934]
Arguments: hashpartitioning(product#1136540, plant#1136539, 37), ENSURE_REQUIREMENTS, [plan_id=1710904]
(1218) 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]
(1219) Filter
Input [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Condition : (size(openGoodsMovements#1137658, false) > 0)
(1220) AdaptiveSparkPlan
Output [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Arguments: isFinalPlan=true
(1221) Filter
Input [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Condition : (isnotnull(product#1136540) AND isnotnull(plant#1136539))
(1222) Scan parquet
Output [3]: [product#1137981, plant#1137982, orderDateTime#1137983]
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,orderDateTime:timestamp>
(1223) Filter
Input [3]: [product#1137981, plant#1137982, orderDateTime#1137983]
Condition : isnotnull(plant#1137982)
(1224) Exchange
Input [3]: [product#1137981, plant#1137982, orderDateTime#1137983]
Arguments: hashpartitioning(product#1137981, plant#1137982, 37), REPARTITION_BY_NUM, [plan_id=1716997]
(1225) Scan parquet
Output [4]: [plant#1137987, product#1137988, productionAspect#1137990, systemId#1137985]
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>>>>
(1226) Project
Output [4]: [plant#1137987.internalRefUUID AS _extract_internalRefUUID#1142924, product#1137988.internalRefUUID AS _extract_internalRefUUID#1142925, productionAspect#1137990.productMovementPlants.unitOfIssue.code AS _extract_code#1142926, productionAspect#1137990.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142927]
Input [4]: [plant#1137987, product#1137988, productionAspect#1137990, systemId#1137985]
(1227) Exchange
Input [4]: [_extract_internalRefUUID#1142924, _extract_internalRefUUID#1142925, _extract_code#1142926, _extract_internalRefUUID#1142927]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715639]
(1228) Project
Output [4]: [_extract_code#1142926, _extract_internalRefUUID#1142927, _extract_internalRefUUID#1142925, _extract_internalRefUUID#1142924]
Input [4]: [_extract_internalRefUUID#1142924, _extract_internalRefUUID#1142925, _extract_code#1142926, _extract_internalRefUUID#1142927]
(1229) BroadcastExchange
Input [4]: [_extract_code#1142926, _extract_internalRefUUID#1142927, _extract_internalRefUUID#1142925, _extract_internalRefUUID#1142924]
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=1717862]
(1230) BroadcastHashJoin
Left keys [4]: [coalesce(product#1137981, ), isnull(product#1137981), coalesce(plant#1137982, ), isnull(plant#1137982)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142925, ), isnull(_extract_internalRefUUID#1142925), coalesce(_extract_internalRefUUID#1142924, ), isnull(_extract_internalRefUUID#1142924)]
Join type: LeftOuter
Join condition: None
(1231) Project
Output [5]: [product#1137981, plant#1137982, orderDateTime#1137983, _extract_code#1142926, _extract_internalRefUUID#1142927]
Input [7]: [product#1137981, plant#1137982, orderDateTime#1137983, _extract_code#1142926, _extract_internalRefUUID#1142927, _extract_internalRefUUID#1142925, _extract_internalRefUUID#1142924]
(1232) Scan parquet
Output [2]: [internalUUID#1137995, systemId#1137994]
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>
(1233) Project
Output [1]: [internalUUID#1137995]
Input [2]: [internalUUID#1137995, systemId#1137994]
(1234) Exchange
Input [1]: [internalUUID#1137995]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715645]
(1235) BroadcastExchange
Input [1]: [internalUUID#1137995]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717866]
(1236) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1137982, ), isnull(plant#1137982)]
Right keys [2]: [coalesce(internalUUID#1137995, ), isnull(internalUUID#1137995)]
Join type: LeftOuter
Join condition: None
(1237) Project
Output [5]: [product#1137981, plant#1137982, orderDateTime#1137983, _extract_code#1142926, _extract_internalRefUUID#1142927]
Input [6]: [product#1137981, plant#1137982, orderDateTime#1137983, _extract_code#1142926, _extract_internalRefUUID#1142927, internalUUID#1137995]
(1238) Scan parquet
Output [4]: [internalUUID#1138009, baseUnitOfMeasure#1138013, unitOfMeasureConversions#1138015, systemId#1138008]
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>>>
(1239) Filter
Input [4]: [internalUUID#1138009, baseUnitOfMeasure#1138013, unitOfMeasureConversions#1138015, systemId#1138008]
Condition : isnotnull(internalUUID#1138009)
(1240) Project
Output [3]: [internalUUID#1138009, baseUnitOfMeasure#1138013, unitOfMeasureConversions#1138015]
Input [4]: [internalUUID#1138009, baseUnitOfMeasure#1138013, unitOfMeasureConversions#1138015, systemId#1138008]
(1241) Exchange
Input [3]: [internalUUID#1138009, baseUnitOfMeasure#1138013, unitOfMeasureConversions#1138015]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715651]
(1242) BroadcastExchange
Input [3]: [internalUUID#1138009, baseUnitOfMeasure#1138013, unitOfMeasureConversions#1138015]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717870]
(1243) BroadcastHashJoin
Left keys [1]: [product#1137981]
Right keys [1]: [internalUUID#1138009]
Join type: LeftOuter
Join condition: None
(1244) Project
Output [4]: [product#1137981, plant#1137982, orderDateTime#1137983, filter(unitOfMeasureConversions#1138015, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142926) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142927)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138013.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138013.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138020]
Input [8]: [product#1137981, plant#1137982, orderDateTime#1137983, _extract_code#1142926, _extract_internalRefUUID#1142927, internalUUID#1138009, baseUnitOfMeasure#1138013, unitOfMeasureConversions#1138015]
(1245) Generate
Input [4]: [product#1137981, plant#1137982, orderDateTime#1137983, filteredUnitOfMeasureConversions#1138020]
Arguments: explode(filteredUnitOfMeasureConversions#1138020.quantityNumerator), [product#1137981, plant#1137982, orderDateTime#1137983, filteredUnitOfMeasureConversions#1138020], true, [quantityNumerator#1138021]
(1246) Project
Output [4]: [product#1137981, plant#1137982, orderDateTime#1137983, filteredUnitOfMeasureConversions#1138020.quantityDenominator AS _extract_quantityDenominator#1142244]
Input [5]: [product#1137981, plant#1137982, orderDateTime#1137983, filteredUnitOfMeasureConversions#1138020, quantityNumerator#1138021]
(1247) Generate
Input [4]: [product#1137981, plant#1137982, orderDateTime#1137983, _extract_quantityDenominator#1142244]
Arguments: explode(_extract_quantityDenominator#1142244), [product#1137981, plant#1137982, orderDateTime#1137983], true, [quantityDenominator#1138022]
(1248) Project
Output [3]: [product#1137981, plant#1137982, orderDateTime#1137983]
Input [4]: [product#1137981, plant#1137982, orderDateTime#1137983, quantityDenominator#1138022]
(1249) Sort
Input [3]: [product#1137981, plant#1137982, orderDateTime#1137983]
Arguments: [product#1137981 ASC NULLS FIRST, plant#1137982 ASC NULLS FIRST], false, 0
(1250) Scan parquet
Output [6]: [internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030, systemId#1138025]
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>>>>>
(1251) Filter
Input [6]: [internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030, systemId#1138025]
Condition : (isnotnull(plant#1138028.internalRefUUID) AND isnotnull(product#1138027.internalRefUUID))
(1252) Project
Output [6]: [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030]
Input [6]: [internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030, systemId#1138025]
(1253) Exchange
Input [6]: [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715661]
(1254) BroadcastExchange
Input [6]: [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030]
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=1717901]
(1255) Scan parquet
Output [2]: [marketUnit#1138031, distributionCenters#1138037]
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>>>>>
(1256) Filter
Input [2]: [marketUnit#1138031, distributionCenters#1138037]
Condition : (((marketUnit#1138031 <=> Alert_Test1) AND (size(distributionCenters#1138037, true) > 0)) AND isnotnull(distributionCenters#1138037))
(1257) Project
Output [1]: [distributionCenters#1138037]
Input [2]: [marketUnit#1138031, distributionCenters#1138037]
(1258) Exchange
Input [1]: [distributionCenters#1138037]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715665]
(1259) Generate
Input [1]: [distributionCenters#1138037]
Arguments: explode(distributionCenters#1138037), false, [distributionCenters#1138053]
(1260) Filter
Input [1]: [distributionCenters#1138053]
Condition : (((size(distributionCenters#1138053.storageLocations, true) > 0) AND isnotnull(distributionCenters#1138053.storageLocations)) AND isnotnull(distributionCenters#1138053.internalRefUUID))
(1261) Project
Output [2]: [distributionCenters#1138053.internalRefUUID AS _extract_internalRefUUID#1142248, distributionCenters#1138053.storageLocations AS _extract_storageLocations#1142249]
Input [1]: [distributionCenters#1138053]
(1262) Generate
Input [2]: [_extract_internalRefUUID#1142248, _extract_storageLocations#1142249]
Arguments: explode(_extract_storageLocations#1142249), [_extract_internalRefUUID#1142248], false, [storageLocations#1138054]
(1263) Project
Output [3]: [_extract_internalRefUUID#1142248 AS plantUuid#1138056, storageLocations#1138054.id AS storageLocId#1138057, storageLocations#1138054.internalRefUUID AS storageLocUuid#1138058]
Input [2]: [_extract_internalRefUUID#1142248, storageLocations#1138054]
(1264) BroadcastExchange
Input [3]: [plantUuid#1138056, storageLocId#1138057, storageLocUuid#1138058]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717897]
(1265) Scan parquet
Output [2]: [product#1138059, plant#1138060]
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>
(1266) Filter
Input [2]: [product#1138059, plant#1138060]
Condition : isnotnull(plant#1138060)
(1267) Exchange
Input [2]: [product#1138059, plant#1138060]
Arguments: hashpartitioning(product#1138059, plant#1138060, 37), REPARTITION_BY_NUM, [plan_id=1717008]
(1268) Scan parquet
Output [4]: [plant#1138065, product#1138066, productionAspect#1138068, systemId#1138063]
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>>>>
(1269) Project
Output [4]: [plant#1138065.internalRefUUID AS _extract_internalRefUUID#1142928, product#1138066.internalRefUUID AS _extract_internalRefUUID#1142929, productionAspect#1138068.productMovementPlants.unitOfIssue.code AS _extract_code#1142930, productionAspect#1138068.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142931]
Input [4]: [plant#1138065, product#1138066, productionAspect#1138068, systemId#1138063]
(1270) Exchange
Input [4]: [_extract_internalRefUUID#1142928, _extract_internalRefUUID#1142929, _extract_code#1142930, _extract_internalRefUUID#1142931]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715677]
(1271) Project
Output [4]: [_extract_code#1142930, _extract_internalRefUUID#1142931, _extract_internalRefUUID#1142929, _extract_internalRefUUID#1142928]
Input [4]: [_extract_internalRefUUID#1142928, _extract_internalRefUUID#1142929, _extract_code#1142930, _extract_internalRefUUID#1142931]
(1272) BroadcastExchange
Input [4]: [_extract_code#1142930, _extract_internalRefUUID#1142931, _extract_internalRefUUID#1142929, _extract_internalRefUUID#1142928]
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=1717877]
(1273) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138059, ), isnull(product#1138059), coalesce(plant#1138060, ), isnull(plant#1138060)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142929, ), isnull(_extract_internalRefUUID#1142929), coalesce(_extract_internalRefUUID#1142928, ), isnull(_extract_internalRefUUID#1142928)]
Join type: LeftOuter
Join condition: None
(1274) Project
Output [4]: [product#1138059, plant#1138060, _extract_code#1142930, _extract_internalRefUUID#1142931]
Input [6]: [product#1138059, plant#1138060, _extract_code#1142930, _extract_internalRefUUID#1142931, _extract_internalRefUUID#1142929, _extract_internalRefUUID#1142928]
(1275) Scan parquet
Output [2]: [internalUUID#1138073, systemId#1138072]
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>
(1276) Project
Output [1]: [internalUUID#1138073]
Input [2]: [internalUUID#1138073, systemId#1138072]
(1277) Exchange
Input [1]: [internalUUID#1138073]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715683]
(1278) BroadcastExchange
Input [1]: [internalUUID#1138073]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717881]
(1279) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138060, ), isnull(plant#1138060)]
Right keys [2]: [coalesce(internalUUID#1138073, ), isnull(internalUUID#1138073)]
Join type: LeftOuter
Join condition: None
(1280) Project
Output [4]: [product#1138059, plant#1138060, _extract_code#1142930, _extract_internalRefUUID#1142931]
Input [5]: [product#1138059, plant#1138060, _extract_code#1142930, _extract_internalRefUUID#1142931, internalUUID#1138073]
(1281) Scan parquet
Output [4]: [internalUUID#1138087, baseUnitOfMeasure#1138091, unitOfMeasureConversions#1138093, systemId#1138086]
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>>>
(1282) Filter
Input [4]: [internalUUID#1138087, baseUnitOfMeasure#1138091, unitOfMeasureConversions#1138093, systemId#1138086]
Condition : isnotnull(internalUUID#1138087)
(1283) Project
Output [3]: [internalUUID#1138087, baseUnitOfMeasure#1138091, unitOfMeasureConversions#1138093]
Input [4]: [internalUUID#1138087, baseUnitOfMeasure#1138091, unitOfMeasureConversions#1138093, systemId#1138086]
(1284) Exchange
Input [3]: [internalUUID#1138087, baseUnitOfMeasure#1138091, unitOfMeasureConversions#1138093]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715689]
(1285) BroadcastExchange
Input [3]: [internalUUID#1138087, baseUnitOfMeasure#1138091, unitOfMeasureConversions#1138093]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717885]
(1286) BroadcastHashJoin
Left keys [1]: [product#1138059]
Right keys [1]: [internalUUID#1138087]
Join type: LeftOuter
Join condition: None
(1287) Project
Output [2]: [plant#1138060, filter(unitOfMeasureConversions#1138093, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142930) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142931)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138091.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138091.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138098]
Input [7]: [product#1138059, plant#1138060, _extract_code#1142930, _extract_internalRefUUID#1142931, internalUUID#1138087, baseUnitOfMeasure#1138091, unitOfMeasureConversions#1138093]
(1288) Generate
Input [2]: [plant#1138060, filteredUnitOfMeasureConversions#1138098]
Arguments: explode(filteredUnitOfMeasureConversions#1138098.quantityNumerator), [plant#1138060, filteredUnitOfMeasureConversions#1138098], true, [quantityNumerator#1138099]
(1289) Project
Output [2]: [plant#1138060, filteredUnitOfMeasureConversions#1138098.quantityDenominator AS _extract_quantityDenominator#1142250]
Input [3]: [plant#1138060, filteredUnitOfMeasureConversions#1138098, quantityNumerator#1138099]
(1290) Generate
Input [2]: [plant#1138060, _extract_quantityDenominator#1142250]
Arguments: explode(_extract_quantityDenominator#1142250), [plant#1138060], true, [quantityDenominator#1138100]
(1291) Project
Output [1]: [plant#1138060]
Input [2]: [plant#1138060, quantityDenominator#1138100]
(1292) HashAggregate
Input [1]: [plant#1138060]
Keys [1]: [plant#1138060]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1138060]
(1293) Exchange
Input [1]: [plant#1138060]
Arguments: hashpartitioning(plant#1138060, 37), ENSURE_REQUIREMENTS, [plan_id=1717894]
(1294) HashAggregate
Input [1]: [plant#1138060]
Keys [1]: [plant#1138060]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1138060]
(1295) BroadcastHashJoin
Left keys [1]: [plantUuid#1138056]
Right keys [1]: [plant#1138060]
Join type: Inner
Join condition: None
(1296) Project
Output [3]: [plantUuid#1138056, storageLocId#1138057, storageLocUuid#1138058]
Input [4]: [plantUuid#1138056, storageLocId#1138057, storageLocUuid#1138058, plant#1138060]
(1297) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138028.internalRefUUID, ), isnull(plant#1138028.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1138056, ), isnull(plantUuid#1138056)]
Join type: Inner
Join condition: None
(1298) Generate
Input [9]: [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, stockQuantities#1138030, plantUuid#1138056, storageLocId#1138057, storageLocUuid#1138058]
Arguments: explode(filter(stockQuantities#1138030, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138058) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138057)), lambda x#1135796, false))), [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, plantUuid#1138056], false, [stockQuantity#1138103]
(1299) ObjectHashAggregate
Input [7]: [systemId#1138025, internalUUID#1138026, product#1138027, plant#1138028, calculationDateTime#1138029, plantUuid#1138056, stockQuantity#1138103]
Keys [5]: [plantUuid#1138056, internalUUID#1138026, plant#1138028, product#1138027, systemId#1138025]
Functions [2]: [partial_first(calculationDateTime#1138029, false), partial_collect_list(stockQuantity#1138103, 0, 0)]
Aggregate Attributes [3]: [first#1143944, valueSet#1143945, buf#1143946]
Results [8]: [plantUuid#1138056, internalUUID#1138026, plant#1138028, product#1138027, systemId#1138025, first#1143947, valueSet#1143948, buf#1143949]
(1300) ObjectHashAggregate
Input [8]: [plantUuid#1138056, internalUUID#1138026, plant#1138028, product#1138027, systemId#1138025, first#1143947, valueSet#1143948, buf#1143949]
Keys [5]: [plantUuid#1138056, internalUUID#1138026, plant#1138028, product#1138027, systemId#1138025]
Functions [2]: [first(calculationDateTime#1138029, false), collect_list(stockQuantity#1138103, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1138029)()#1135811, collect_list(stockQuantity#1138103, 0, 0)#1135812]
Results [4]: [product#1138027, plant#1138028, first(calculationDateTime#1138029)()#1135811 AS calculationDateTime#1138104, collect_list(stockQuantity#1138103, 0, 0)#1135812 AS stockQuantities#1138105]
(1301) Filter
Input [4]: [product#1138027, plant#1138028, calculationDateTime#1138104, stockQuantities#1138105]
Condition : ((size(stockQuantities#1138105, true) > 0) AND isnotnull(calculationDateTime#1138104))
(1302) Generate
Input [4]: [product#1138027, plant#1138028, calculationDateTime#1138104, stockQuantities#1138105]
Arguments: explode(stockQuantities#1138105), [product#1138027, plant#1138028, calculationDateTime#1138104], false, [stockQuantity#1138106]
(1303) Filter
Input [4]: [product#1138027, plant#1138028, calculationDateTime#1138104, stockQuantity#1138106]
Condition : (((isnotnull(stockQuantity#1138106.specialStockIndicator.code) AND isnotnull(stockQuantity#1138106.stockType.code)) AND (stockQuantity#1138106.specialStockIndicator.code = )) AND (stockQuantity#1138106.stockType.code = 01))
(1304) Project
Output [4]: [plant#1138028.internalRefUUID AS plantUuid#1138108, product#1138027.internalRefUUID AS productUuid#1138110, calculationDateTime#1138104, stockQuantity#1138106.storagelocation.id AS storageLocId#1138111]
Input [4]: [product#1138027, plant#1138028, calculationDateTime#1138104, stockQuantity#1138106]
(1305) Exchange
Input [4]: [plantUuid#1138108, productUuid#1138110, calculationDateTime#1138104, storageLocId#1138111]
Arguments: hashpartitioning(productUuid#1138110, plantUuid#1138108, 37), ENSURE_REQUIREMENTS, [plan_id=1717927]
(1306) Sort
Input [4]: [plantUuid#1138108, productUuid#1138110, calculationDateTime#1138104, storageLocId#1138111]
Arguments: [productUuid#1138110 ASC NULLS FIRST, plantUuid#1138108 ASC NULLS FIRST], false, 0
(1307) Scan parquet
Output [3]: [product#1138116, plant#1138117, orderDateTime#1138118]
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>
(1308) Filter
Input [3]: [product#1138116, plant#1138117, orderDateTime#1138118]
Condition : ((isnotnull(orderDateTime#1138118) AND isnotnull(plant#1138117)) AND isnotnull(product#1138116))
(1309) Exchange
Input [3]: [product#1138116, plant#1138117, orderDateTime#1138118]
Arguments: hashpartitioning(product#1138116, plant#1138117, 37), REPARTITION_BY_NUM, [plan_id=1717031]
(1310) Scan parquet
Output [4]: [plant#1138122, product#1138123, productionAspect#1138125, systemId#1138120]
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>>>>
(1311) Project
Output [4]: [plant#1138122.internalRefUUID AS _extract_internalRefUUID#1142932, product#1138123.internalRefUUID AS _extract_internalRefUUID#1142933, productionAspect#1138125.productMovementPlants.unitOfIssue.code AS _extract_code#1142934, productionAspect#1138125.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142935]
Input [4]: [plant#1138122, product#1138123, productionAspect#1138125, systemId#1138120]
(1312) Exchange
Input [4]: [_extract_internalRefUUID#1142932, _extract_internalRefUUID#1142933, _extract_code#1142934, _extract_internalRefUUID#1142935]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715714]
(1313) Project
Output [4]: [_extract_code#1142934, _extract_internalRefUUID#1142935, _extract_internalRefUUID#1142933, _extract_internalRefUUID#1142932]
Input [4]: [_extract_internalRefUUID#1142932, _extract_internalRefUUID#1142933, _extract_code#1142934, _extract_internalRefUUID#1142935]
(1314) BroadcastExchange
Input [4]: [_extract_code#1142934, _extract_internalRefUUID#1142935, _extract_internalRefUUID#1142933, _extract_internalRefUUID#1142932]
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=1717910]
(1315) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138116, ), isnull(product#1138116), coalesce(plant#1138117, ), isnull(plant#1138117)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142933, ), isnull(_extract_internalRefUUID#1142933), coalesce(_extract_internalRefUUID#1142932, ), isnull(_extract_internalRefUUID#1142932)]
Join type: LeftOuter
Join condition: None
(1316) Project
Output [5]: [product#1138116, plant#1138117, orderDateTime#1138118, _extract_code#1142934, _extract_internalRefUUID#1142935]
Input [7]: [product#1138116, plant#1138117, orderDateTime#1138118, _extract_code#1142934, _extract_internalRefUUID#1142935, _extract_internalRefUUID#1142933, _extract_internalRefUUID#1142932]
(1317) Scan parquet
Output [2]: [internalUUID#1138130, systemId#1138129]
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>
(1318) Project
Output [1]: [internalUUID#1138130]
Input [2]: [internalUUID#1138130, systemId#1138129]
(1319) Exchange
Input [1]: [internalUUID#1138130]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715720]
(1320) BroadcastExchange
Input [1]: [internalUUID#1138130]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717914]
(1321) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138117, ), isnull(plant#1138117)]
Right keys [2]: [coalesce(internalUUID#1138130, ), isnull(internalUUID#1138130)]
Join type: LeftOuter
Join condition: None
(1322) Project
Output [5]: [product#1138116, plant#1138117, orderDateTime#1138118, _extract_code#1142934, _extract_internalRefUUID#1142935]
Input [6]: [product#1138116, plant#1138117, orderDateTime#1138118, _extract_code#1142934, _extract_internalRefUUID#1142935, internalUUID#1138130]
(1323) Scan parquet
Output [4]: [internalUUID#1138144, baseUnitOfMeasure#1138148, unitOfMeasureConversions#1138150, systemId#1138143]
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>>>
(1324) Filter
Input [4]: [internalUUID#1138144, baseUnitOfMeasure#1138148, unitOfMeasureConversions#1138150, systemId#1138143]
Condition : isnotnull(internalUUID#1138144)
(1325) Project
Output [3]: [internalUUID#1138144, baseUnitOfMeasure#1138148, unitOfMeasureConversions#1138150]
Input [4]: [internalUUID#1138144, baseUnitOfMeasure#1138148, unitOfMeasureConversions#1138150, systemId#1138143]
(1326) Exchange
Input [3]: [internalUUID#1138144, baseUnitOfMeasure#1138148, unitOfMeasureConversions#1138150]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715726]
(1327) BroadcastExchange
Input [3]: [internalUUID#1138144, baseUnitOfMeasure#1138148, unitOfMeasureConversions#1138150]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717918]
(1328) BroadcastHashJoin
Left keys [1]: [product#1138116]
Right keys [1]: [internalUUID#1138144]
Join type: LeftOuter
Join condition: None
(1329) Project
Output [4]: [product#1138116, plant#1138117, orderDateTime#1138118, filter(unitOfMeasureConversions#1138150, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142934) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142935)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138148.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138148.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138155]
Input [8]: [product#1138116, plant#1138117, orderDateTime#1138118, _extract_code#1142934, _extract_internalRefUUID#1142935, internalUUID#1138144, baseUnitOfMeasure#1138148, unitOfMeasureConversions#1138150]
(1330) Generate
Input [4]: [product#1138116, plant#1138117, orderDateTime#1138118, filteredUnitOfMeasureConversions#1138155]
Arguments: explode(filteredUnitOfMeasureConversions#1138155.quantityNumerator), [product#1138116, plant#1138117, orderDateTime#1138118, filteredUnitOfMeasureConversions#1138155], true, [quantityNumerator#1138156]
(1331) Project
Output [4]: [product#1138116, plant#1138117, orderDateTime#1138118, filteredUnitOfMeasureConversions#1138155.quantityDenominator AS _extract_quantityDenominator#1142254]
Input [5]: [product#1138116, plant#1138117, orderDateTime#1138118, filteredUnitOfMeasureConversions#1138155, quantityNumerator#1138156]
(1332) Generate
Input [4]: [product#1138116, plant#1138117, orderDateTime#1138118, _extract_quantityDenominator#1142254]
Arguments: explode(_extract_quantityDenominator#1142254), [product#1138116, plant#1138117, orderDateTime#1138118], true, [quantityDenominator#1138157]
(1333) Project
Output [3]: [product#1138116, plant#1138117, orderDateTime#1138118]
Input [4]: [product#1138116, plant#1138117, orderDateTime#1138118, quantityDenominator#1138157]
(1334) Sort
Input [3]: [product#1138116, plant#1138117, orderDateTime#1138118]
Arguments: [product#1138116 ASC NULLS FIRST, plant#1138117 ASC NULLS FIRST], false, 0
(1335) SortMergeJoin
Left keys [2]: [productUuid#1138110, plantUuid#1138108]
Right keys [2]: [product#1138116, plant#1138117]
Join type: Inner
Join condition: (calculationDateTime#1138104 <= orderDateTime#1138118)
(1336) Project
Output [4]: [plantUuid#1138108 AS plant#1138160, productUuid#1138110 AS product#1138161, storageLocId#1138111, calculationDateTime#1138104]
Input [7]: [plantUuid#1138108, productUuid#1138110, calculationDateTime#1138104, storageLocId#1138111, product#1138116, plant#1138117, orderDateTime#1138118]
(1337) Exchange
Input [4]: [plant#1138160, product#1138161, storageLocId#1138111, calculationDateTime#1138104]
Arguments: hashpartitioning(coalesce(plant#1138160, ), isnull(plant#1138160), coalesce(product#1138161, ), isnull(product#1138161), coalesce(storageLocId#1138111, ), isnull(storageLocId#1138111), coalesce(calculationDateTime#1138104, 1970-01-01 00:00:00), isnull(calculationDateTime#1138104), 37), ENSURE_REQUIREMENTS, [plan_id=1717991]
(1338) Sort
Input [4]: [plant#1138160, product#1138161, storageLocId#1138111, calculationDateTime#1138104]
Arguments: [coalesce(plant#1138160, ) ASC NULLS FIRST, isnull(plant#1138160) ASC NULLS FIRST, coalesce(product#1138161, ) ASC NULLS FIRST, isnull(product#1138161) ASC NULLS FIRST, coalesce(storageLocId#1138111, ) ASC NULLS FIRST, isnull(storageLocId#1138111) ASC NULLS FIRST, coalesce(calculationDateTime#1138104, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1138104) ASC NULLS FIRST], false, 0
(1339) Scan parquet
Output [6]: [internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167, systemId#1138162]
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>>>>>
(1340) Filter
Input [6]: [internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167, systemId#1138162]
Condition : (isnotnull(plant#1138165.internalRefUUID) AND isnotnull(product#1138164.internalRefUUID))
(1341) Project
Output [6]: [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167]
Input [6]: [internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167, systemId#1138162]
(1342) Exchange
Input [6]: [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715738]
(1343) BroadcastExchange
Input [6]: [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167]
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=1717956]
(1344) Scan parquet
Output [2]: [marketUnit#1138168, distributionCenters#1138174]
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>>>>>
(1345) Filter
Input [2]: [marketUnit#1138168, distributionCenters#1138174]
Condition : (((marketUnit#1138168 <=> Alert_Test1) AND (size(distributionCenters#1138174, true) > 0)) AND isnotnull(distributionCenters#1138174))
(1346) Project
Output [1]: [distributionCenters#1138174]
Input [2]: [marketUnit#1138168, distributionCenters#1138174]
(1347) Exchange
Input [1]: [distributionCenters#1138174]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715742]
(1348) Generate
Input [1]: [distributionCenters#1138174]
Arguments: explode(distributionCenters#1138174), false, [distributionCenters#1138190]
(1349) Filter
Input [1]: [distributionCenters#1138190]
Condition : (((size(distributionCenters#1138190.storageLocations, true) > 0) AND isnotnull(distributionCenters#1138190.storageLocations)) AND isnotnull(distributionCenters#1138190.internalRefUUID))
(1350) Project
Output [2]: [distributionCenters#1138190.internalRefUUID AS _extract_internalRefUUID#1142258, distributionCenters#1138190.storageLocations AS _extract_storageLocations#1142259]
Input [1]: [distributionCenters#1138190]
(1351) Generate
Input [2]: [_extract_internalRefUUID#1142258, _extract_storageLocations#1142259]
Arguments: explode(_extract_storageLocations#1142259), [_extract_internalRefUUID#1142258], false, [storageLocations#1138191]
(1352) Project
Output [3]: [_extract_internalRefUUID#1142258 AS plantUuid#1138193, storageLocations#1138191.id AS storageLocId#1138194, storageLocations#1138191.internalRefUUID AS storageLocUuid#1138195]
Input [2]: [_extract_internalRefUUID#1142258, storageLocations#1138191]
(1353) BroadcastExchange
Input [3]: [plantUuid#1138193, storageLocId#1138194, storageLocUuid#1138195]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717952]
(1354) Scan parquet
Output [2]: [product#1138196, plant#1138197]
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>
(1355) Filter
Input [2]: [product#1138196, plant#1138197]
Condition : isnotnull(plant#1138197)
(1356) Exchange
Input [2]: [product#1138196, plant#1138197]
Arguments: hashpartitioning(product#1138196, plant#1138197, 37), REPARTITION_BY_NUM, [plan_id=1717044]
(1357) Scan parquet
Output [4]: [plant#1138202, product#1138203, productionAspect#1138205, systemId#1138200]
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>>>>
(1358) Project
Output [4]: [plant#1138202.internalRefUUID AS _extract_internalRefUUID#1142939, product#1138203.internalRefUUID AS _extract_internalRefUUID#1142938, productionAspect#1138205.productMovementPlants.unitOfIssue.code AS _extract_code#1142936, productionAspect#1138205.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142937]
Input [4]: [plant#1138202, product#1138203, productionAspect#1138205, systemId#1138200]
(1359) Exchange
Input [4]: [_extract_internalRefUUID#1142939, _extract_internalRefUUID#1142938, _extract_code#1142936, _extract_internalRefUUID#1142937]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715754]
(1360) Project
Output [4]: [_extract_code#1142936, _extract_internalRefUUID#1142937, _extract_internalRefUUID#1142938, _extract_internalRefUUID#1142939]
Input [4]: [_extract_internalRefUUID#1142939, _extract_internalRefUUID#1142938, _extract_code#1142936, _extract_internalRefUUID#1142937]
(1361) BroadcastExchange
Input [4]: [_extract_code#1142936, _extract_internalRefUUID#1142937, _extract_internalRefUUID#1142938, _extract_internalRefUUID#1142939]
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=1717932]
(1362) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138196, ), isnull(product#1138196), coalesce(plant#1138197, ), isnull(plant#1138197)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142938, ), isnull(_extract_internalRefUUID#1142938), coalesce(_extract_internalRefUUID#1142939, ), isnull(_extract_internalRefUUID#1142939)]
Join type: LeftOuter
Join condition: None
(1363) Project
Output [4]: [product#1138196, plant#1138197, _extract_code#1142936, _extract_internalRefUUID#1142937]
Input [6]: [product#1138196, plant#1138197, _extract_code#1142936, _extract_internalRefUUID#1142937, _extract_internalRefUUID#1142938, _extract_internalRefUUID#1142939]
(1364) Scan parquet
Output [2]: [internalUUID#1138210, systemId#1138209]
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>
(1365) Project
Output [1]: [internalUUID#1138210]
Input [2]: [internalUUID#1138210, systemId#1138209]
(1366) Exchange
Input [1]: [internalUUID#1138210]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715760]
(1367) BroadcastExchange
Input [1]: [internalUUID#1138210]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717936]
(1368) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138197, ), isnull(plant#1138197)]
Right keys [2]: [coalesce(internalUUID#1138210, ), isnull(internalUUID#1138210)]
Join type: LeftOuter
Join condition: None
(1369) Project
Output [4]: [product#1138196, plant#1138197, _extract_code#1142936, _extract_internalRefUUID#1142937]
Input [5]: [product#1138196, plant#1138197, _extract_code#1142936, _extract_internalRefUUID#1142937, internalUUID#1138210]
(1370) Scan parquet
Output [4]: [internalUUID#1138224, baseUnitOfMeasure#1138228, unitOfMeasureConversions#1138230, systemId#1138223]
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>>>
(1371) Filter
Input [4]: [internalUUID#1138224, baseUnitOfMeasure#1138228, unitOfMeasureConversions#1138230, systemId#1138223]
Condition : isnotnull(internalUUID#1138224)
(1372) Project
Output [3]: [internalUUID#1138224, baseUnitOfMeasure#1138228, unitOfMeasureConversions#1138230]
Input [4]: [internalUUID#1138224, baseUnitOfMeasure#1138228, unitOfMeasureConversions#1138230, systemId#1138223]
(1373) Exchange
Input [3]: [internalUUID#1138224, baseUnitOfMeasure#1138228, unitOfMeasureConversions#1138230]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715766]
(1374) BroadcastExchange
Input [3]: [internalUUID#1138224, baseUnitOfMeasure#1138228, unitOfMeasureConversions#1138230]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717940]
(1375) BroadcastHashJoin
Left keys [1]: [product#1138196]
Right keys [1]: [internalUUID#1138224]
Join type: LeftOuter
Join condition: None
(1376) Project
Output [2]: [plant#1138197, filter(unitOfMeasureConversions#1138230, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142936) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142937)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138228.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138228.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138235]
Input [7]: [product#1138196, plant#1138197, _extract_code#1142936, _extract_internalRefUUID#1142937, internalUUID#1138224, baseUnitOfMeasure#1138228, unitOfMeasureConversions#1138230]
(1377) Generate
Input [2]: [plant#1138197, filteredUnitOfMeasureConversions#1138235]
Arguments: explode(filteredUnitOfMeasureConversions#1138235.quantityNumerator), [plant#1138197, filteredUnitOfMeasureConversions#1138235], true, [quantityNumerator#1138236]
(1378) Project
Output [2]: [plant#1138197, filteredUnitOfMeasureConversions#1138235.quantityDenominator AS _extract_quantityDenominator#1142260]
Input [3]: [plant#1138197, filteredUnitOfMeasureConversions#1138235, quantityNumerator#1138236]
(1379) Generate
Input [2]: [plant#1138197, _extract_quantityDenominator#1142260]
Arguments: explode(_extract_quantityDenominator#1142260), [plant#1138197], true, [quantityDenominator#1138237]
(1380) Project
Output [1]: [plant#1138197]
Input [2]: [plant#1138197, quantityDenominator#1138237]
(1381) HashAggregate
Input [1]: [plant#1138197]
Keys [1]: [plant#1138197]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1138197]
(1382) Exchange
Input [1]: [plant#1138197]
Arguments: hashpartitioning(plant#1138197, 37), ENSURE_REQUIREMENTS, [plan_id=1717949]
(1383) HashAggregate
Input [1]: [plant#1138197]
Keys [1]: [plant#1138197]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1138197]
(1384) BroadcastHashJoin
Left keys [1]: [plantUuid#1138193]
Right keys [1]: [plant#1138197]
Join type: Inner
Join condition: None
(1385) Project
Output [3]: [plantUuid#1138193, storageLocId#1138194, storageLocUuid#1138195]
Input [4]: [plantUuid#1138193, storageLocId#1138194, storageLocUuid#1138195, plant#1138197]
(1386) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138165.internalRefUUID, ), isnull(plant#1138165.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1138193, ), isnull(plantUuid#1138193)]
Join type: Inner
Join condition: None
(1387) Generate
Input [9]: [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, stockQuantities#1138167, plantUuid#1138193, storageLocId#1138194, storageLocUuid#1138195]
Arguments: explode(filter(stockQuantities#1138167, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138195) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138194)), lambda x#1135796, false))), [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, plantUuid#1138193], false, [stockQuantity#1138240]
(1388) ObjectHashAggregate
Input [7]: [systemId#1138162, internalUUID#1138163, product#1138164, plant#1138165, calculationDateTime#1138166, plantUuid#1138193, stockQuantity#1138240]
Keys [5]: [plantUuid#1138193, internalUUID#1138163, plant#1138165, product#1138164, systemId#1138162]
Functions [2]: [partial_first(calculationDateTime#1138166, false), partial_collect_list(stockQuantity#1138240, 0, 0)]
Aggregate Attributes [3]: [first#1143952, valueSet#1143953, buf#1143954]
Results [8]: [plantUuid#1138193, internalUUID#1138163, plant#1138165, product#1138164, systemId#1138162, first#1143955, valueSet#1143956, buf#1143957]
(1389) ObjectHashAggregate
Input [8]: [plantUuid#1138193, internalUUID#1138163, plant#1138165, product#1138164, systemId#1138162, first#1143955, valueSet#1143956, buf#1143957]
Keys [5]: [plantUuid#1138193, internalUUID#1138163, plant#1138165, product#1138164, systemId#1138162]
Functions [2]: [first(calculationDateTime#1138166, false), collect_list(stockQuantity#1138240, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1138166)()#1135811, collect_list(stockQuantity#1138240, 0, 0)#1135812]
Results [4]: [product#1138164, plant#1138165, first(calculationDateTime#1138166)()#1135811 AS calculationDateTime#1138241, collect_list(stockQuantity#1138240, 0, 0)#1135812 AS stockQuantities#1138242]
(1390) Filter
Input [4]: [product#1138164, plant#1138165, calculationDateTime#1138241, stockQuantities#1138242]
Condition : ((size(stockQuantities#1138242, true) > 0) AND isnotnull(calculationDateTime#1138241))
(1391) Generate
Input [4]: [product#1138164, plant#1138165, calculationDateTime#1138241, stockQuantities#1138242]
Arguments: explode(stockQuantities#1138242), [product#1138164, plant#1138165, calculationDateTime#1138241], false, [stockQuantity#1138243]
(1392) Filter
Input [4]: [product#1138164, plant#1138165, calculationDateTime#1138241, stockQuantity#1138243]
Condition : (((isnotnull(stockQuantity#1138243.specialStockIndicator.code) AND isnotnull(stockQuantity#1138243.stockType.code)) AND (stockQuantity#1138243.specialStockIndicator.code = )) AND (stockQuantity#1138243.stockType.code = 01))
(1393) Project
Output [4]: [plant#1138165.internalRefUUID AS plantUuid#1138245, product#1138164.internalRefUUID AS productUuid#1138247, calculationDateTime#1138241, stockQuantity#1138243.storagelocation.id AS storageLocId#1138248]
Input [4]: [product#1138164, plant#1138165, calculationDateTime#1138241, stockQuantity#1138243]
(1394) Exchange
Input [4]: [plantUuid#1138245, productUuid#1138247, calculationDateTime#1138241, storageLocId#1138248]
Arguments: hashpartitioning(productUuid#1138247, plantUuid#1138245, 37), ENSURE_REQUIREMENTS, [plan_id=1717982]
(1395) Sort
Input [4]: [plantUuid#1138245, productUuid#1138247, calculationDateTime#1138241, storageLocId#1138248]
Arguments: [productUuid#1138247 ASC NULLS FIRST, plantUuid#1138245 ASC NULLS FIRST], false, 0
(1396) Scan parquet
Output [3]: [product#1138253, plant#1138254, orderDateTime#1138255]
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>
(1397) Filter
Input [3]: [product#1138253, plant#1138254, orderDateTime#1138255]
Condition : ((isnotnull(orderDateTime#1138255) AND isnotnull(plant#1138254)) AND isnotnull(product#1138253))
(1398) Exchange
Input [3]: [product#1138253, plant#1138254, orderDateTime#1138255]
Arguments: hashpartitioning(product#1138253, plant#1138254, 37), REPARTITION_BY_NUM, [plan_id=1717067]
(1399) Scan parquet
Output [4]: [plant#1138259, product#1138260, productionAspect#1138262, systemId#1138257]
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>>>>
(1400) Project
Output [4]: [plant#1138259.internalRefUUID AS _extract_internalRefUUID#1142941, product#1138260.internalRefUUID AS _extract_internalRefUUID#1142940, productionAspect#1138262.productMovementPlants.unitOfIssue.code AS _extract_code#1142942, productionAspect#1138262.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142943]
Input [4]: [plant#1138259, product#1138260, productionAspect#1138262, systemId#1138257]
(1401) Exchange
Input [4]: [_extract_internalRefUUID#1142941, _extract_internalRefUUID#1142940, _extract_code#1142942, _extract_internalRefUUID#1142943]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715791]
(1402) Project
Output [4]: [_extract_code#1142942, _extract_internalRefUUID#1142943, _extract_internalRefUUID#1142940, _extract_internalRefUUID#1142941]
Input [4]: [_extract_internalRefUUID#1142941, _extract_internalRefUUID#1142940, _extract_code#1142942, _extract_internalRefUUID#1142943]
(1403) BroadcastExchange
Input [4]: [_extract_code#1142942, _extract_internalRefUUID#1142943, _extract_internalRefUUID#1142940, _extract_internalRefUUID#1142941]
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=1717965]
(1404) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138253, ), isnull(product#1138253), coalesce(plant#1138254, ), isnull(plant#1138254)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142940, ), isnull(_extract_internalRefUUID#1142940), coalesce(_extract_internalRefUUID#1142941, ), isnull(_extract_internalRefUUID#1142941)]
Join type: LeftOuter
Join condition: None
(1405) Project
Output [5]: [product#1138253, plant#1138254, orderDateTime#1138255, _extract_code#1142942, _extract_internalRefUUID#1142943]
Input [7]: [product#1138253, plant#1138254, orderDateTime#1138255, _extract_code#1142942, _extract_internalRefUUID#1142943, _extract_internalRefUUID#1142940, _extract_internalRefUUID#1142941]
(1406) Scan parquet
Output [2]: [internalUUID#1138267, systemId#1138266]
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>
(1407) Project
Output [1]: [internalUUID#1138267]
Input [2]: [internalUUID#1138267, systemId#1138266]
(1408) Exchange
Input [1]: [internalUUID#1138267]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715797]
(1409) BroadcastExchange
Input [1]: [internalUUID#1138267]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1717969]
(1410) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138254, ), isnull(plant#1138254)]
Right keys [2]: [coalesce(internalUUID#1138267, ), isnull(internalUUID#1138267)]
Join type: LeftOuter
Join condition: None
(1411) Project
Output [5]: [product#1138253, plant#1138254, orderDateTime#1138255, _extract_code#1142942, _extract_internalRefUUID#1142943]
Input [6]: [product#1138253, plant#1138254, orderDateTime#1138255, _extract_code#1142942, _extract_internalRefUUID#1142943, internalUUID#1138267]
(1412) Scan parquet
Output [4]: [internalUUID#1138281, baseUnitOfMeasure#1138285, unitOfMeasureConversions#1138287, systemId#1138280]
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>>>
(1413) Filter
Input [4]: [internalUUID#1138281, baseUnitOfMeasure#1138285, unitOfMeasureConversions#1138287, systemId#1138280]
Condition : isnotnull(internalUUID#1138281)
(1414) Project
Output [3]: [internalUUID#1138281, baseUnitOfMeasure#1138285, unitOfMeasureConversions#1138287]
Input [4]: [internalUUID#1138281, baseUnitOfMeasure#1138285, unitOfMeasureConversions#1138287, systemId#1138280]
(1415) Exchange
Input [3]: [internalUUID#1138281, baseUnitOfMeasure#1138285, unitOfMeasureConversions#1138287]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715803]
(1416) BroadcastExchange
Input [3]: [internalUUID#1138281, baseUnitOfMeasure#1138285, unitOfMeasureConversions#1138287]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1717973]
(1417) BroadcastHashJoin
Left keys [1]: [product#1138253]
Right keys [1]: [internalUUID#1138281]
Join type: LeftOuter
Join condition: None
(1418) Project
Output [4]: [product#1138253, plant#1138254, orderDateTime#1138255, filter(unitOfMeasureConversions#1138287, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142942) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142943)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138285.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138285.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138292]
Input [8]: [product#1138253, plant#1138254, orderDateTime#1138255, _extract_code#1142942, _extract_internalRefUUID#1142943, internalUUID#1138281, baseUnitOfMeasure#1138285, unitOfMeasureConversions#1138287]
(1419) Generate
Input [4]: [product#1138253, plant#1138254, orderDateTime#1138255, filteredUnitOfMeasureConversions#1138292]
Arguments: explode(filteredUnitOfMeasureConversions#1138292.quantityNumerator), [product#1138253, plant#1138254, orderDateTime#1138255, filteredUnitOfMeasureConversions#1138292], true, [quantityNumerator#1138293]
(1420) Project
Output [4]: [product#1138253, plant#1138254, orderDateTime#1138255, filteredUnitOfMeasureConversions#1138292.quantityDenominator AS _extract_quantityDenominator#1142264]
Input [5]: [product#1138253, plant#1138254, orderDateTime#1138255, filteredUnitOfMeasureConversions#1138292, quantityNumerator#1138293]
(1421) Generate
Input [4]: [product#1138253, plant#1138254, orderDateTime#1138255, _extract_quantityDenominator#1142264]
Arguments: explode(_extract_quantityDenominator#1142264), [product#1138253, plant#1138254, orderDateTime#1138255], true, [quantityDenominator#1138294]
(1422) Project
Output [3]: [product#1138253, plant#1138254, orderDateTime#1138255]
Input [4]: [product#1138253, plant#1138254, orderDateTime#1138255, quantityDenominator#1138294]
(1423) Sort
Input [3]: [product#1138253, plant#1138254, orderDateTime#1138255]
Arguments: [product#1138253 ASC NULLS FIRST, plant#1138254 ASC NULLS FIRST], false, 0
(1424) SortMergeJoin
Left keys [2]: [productUuid#1138247, plantUuid#1138245]
Right keys [2]: [product#1138253, plant#1138254]
Join type: Inner
Join condition: (calculationDateTime#1138241 <= orderDateTime#1138255)
(1425) Project
Output [4]: [plantUuid#1138245 AS plant#1138297, productUuid#1138247 AS product#1138298, storageLocId#1138248, calculationDateTime#1138241]
Input [7]: [plantUuid#1138245, productUuid#1138247, calculationDateTime#1138241, storageLocId#1138248, product#1138253, plant#1138254, orderDateTime#1138255]
(1426) HashAggregate
Input [4]: [plant#1138297, product#1138298, storageLocId#1138248, calculationDateTime#1138241]
Keys [3]: [plant#1138297, product#1138298, storageLocId#1138248]
Functions [1]: [partial_max(calculationDateTime#1138241)]
Aggregate Attributes [1]: [max#1143950]
Results [4]: [plant#1138297, product#1138298, storageLocId#1138248, max#1143951]
(1427) HashAggregate
Input [4]: [plant#1138297, product#1138298, storageLocId#1138248, max#1143951]
Keys [3]: [plant#1138297, product#1138298, storageLocId#1138248]
Functions [1]: [max(calculationDateTime#1138241)]
Aggregate Attributes [1]: [max(calculationDateTime#1138241)#1135889]
Results [4]: [plant#1138297, product#1138298, storageLocId#1138248, max(calculationDateTime#1138241)#1135889 AS max_calc_datetime#1138299]
(1428) Exchange
Input [4]: [plant#1138297, product#1138298, storageLocId#1138248, max_calc_datetime#1138299]
Arguments: hashpartitioning(coalesce(plant#1138297, ), isnull(plant#1138297), coalesce(product#1138298, ), isnull(product#1138298), coalesce(storageLocId#1138248, ), isnull(storageLocId#1138248), coalesce(max_calc_datetime#1138299, 1970-01-01 00:00:00), isnull(max_calc_datetime#1138299), 37), ENSURE_REQUIREMENTS, [plan_id=1717992]
(1429) Sort
Input [4]: [plant#1138297, product#1138298, storageLocId#1138248, max_calc_datetime#1138299]
Arguments: [coalesce(plant#1138297, ) ASC NULLS FIRST, isnull(plant#1138297) ASC NULLS FIRST, coalesce(product#1138298, ) ASC NULLS FIRST, isnull(product#1138298) ASC NULLS FIRST, coalesce(storageLocId#1138248, ) ASC NULLS FIRST, isnull(storageLocId#1138248) ASC NULLS FIRST, coalesce(max_calc_datetime#1138299, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1138299) ASC NULLS FIRST], false, 0
(1430) SortMergeJoin
Left keys [8]: [coalesce(plant#1138160, ), isnull(plant#1138160), coalesce(product#1138161, ), isnull(product#1138161), coalesce(storageLocId#1138111, ), isnull(storageLocId#1138111), coalesce(calculationDateTime#1138104, 1970-01-01 00:00:00), isnull(calculationDateTime#1138104)]
Right keys [8]: [coalesce(plant#1138297, ), isnull(plant#1138297), coalesce(product#1138298, ), isnull(product#1138298), coalesce(storageLocId#1138248, ), isnull(storageLocId#1138248), coalesce(max_calc_datetime#1138299, 1970-01-01 00:00:00), isnull(max_calc_datetime#1138299)]
Join type: Inner
Join condition: None
(1431) Project
Output [3]: [plant#1138160, product#1138161, calculationDateTime#1138104]
Input [8]: [plant#1138160, product#1138161, storageLocId#1138111, calculationDateTime#1138104, plant#1138297, product#1138298, storageLocId#1138248, max_calc_datetime#1138299]
(1432) HashAggregate
Input [3]: [plant#1138160, product#1138161, calculationDateTime#1138104]
Keys [2]: [product#1138161, plant#1138160]
Functions [1]: [partial_min(calculationDateTime#1138104)]
Aggregate Attributes [1]: [min#1143942]
Results [3]: [product#1138161, plant#1138160, min#1143943]
(1433) Exchange
Input [3]: [product#1138161, plant#1138160, min#1143943]
Arguments: hashpartitioning(product#1138161, plant#1138160, 37), ENSURE_REQUIREMENTS, [plan_id=1717999]
(1434) HashAggregate
Input [3]: [product#1138161, plant#1138160, min#1143943]
Keys [2]: [product#1138161, plant#1138160]
Functions [1]: [min(calculationDateTime#1138104)]
Aggregate Attributes [1]: [min(calculationDateTime#1138104)#1136045]
Results [3]: [product#1138161, plant#1138160, min(calculationDateTime#1138104)#1136045 AS minCalculationDateTime#1138301]
(1435) Sort
Input [3]: [product#1138161, plant#1138160, minCalculationDateTime#1138301]
Arguments: [product#1138161 ASC NULLS FIRST, plant#1138160 ASC NULLS FIRST], false, 0
(1436) SortMergeJoin
Left keys [2]: [product#1137981, plant#1137982]
Right keys [2]: [product#1138161, plant#1138160]
Join type: LeftOuter
Join condition: None
(1437) Project
Output [3]: [product#1137981, plant#1137982, CASE WHEN isnotnull(minCalculationDateTime#1138301) THEN minCalculationDateTime#1138301 ELSE orderDateTime#1137983 END AS stockDatetime#1138303]
Input [6]: [product#1137981, plant#1137982, orderDateTime#1137983, product#1138161, plant#1138160, minCalculationDateTime#1138301]
(1438) Exchange
Input [3]: [product#1137981, plant#1137982, stockDatetime#1138303]
Arguments: hashpartitioning(coalesce(plant#1137982, ), isnull(plant#1137982), coalesce(product#1137981, ), isnull(product#1137981), 37), ENSURE_REQUIREMENTS, [plan_id=1718163]
(1439) Sort
Input [3]: [product#1137981, plant#1137982, stockDatetime#1138303]
Arguments: [coalesce(plant#1137982, ) ASC NULLS FIRST, isnull(plant#1137982) ASC NULLS FIRST, coalesce(product#1137981, ) ASC NULLS FIRST, isnull(product#1137981) ASC NULLS FIRST], false, 0
(1440) Scan parquet
Output [3]: [product#1138306, plant#1138307, orderDateTime#1138308]
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>
(1441) Exchange
Input [3]: [product#1138306, plant#1138307, orderDateTime#1138308]
Arguments: hashpartitioning(product#1138306, plant#1138307, 37), REPARTITION_BY_NUM, [plan_id=1715821]
(1442) Scan parquet
Output [8]: [internalUUID#1138311, plant#1138312, product#1138313, blockedForReplenishmentStartingFrom#1138314, productionAspect#1138315, salesPlant#1138316, listing#1138317, systemId#1138310]
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>>>
(1443) Project
Output [8]: [systemId#1138310, internalUUID#1138311, plant#1138312, product#1138313, blockedForReplenishmentStartingFrom#1138314, productionAspect#1138315, salesPlant#1138316, listing#1138317]
Input [8]: [internalUUID#1138311, plant#1138312, product#1138313, blockedForReplenishmentStartingFrom#1138314, productionAspect#1138315, salesPlant#1138316, listing#1138317, systemId#1138310]
(1444) Exchange
Input [8]: [systemId#1138310, internalUUID#1138311, plant#1138312, product#1138313, blockedForReplenishmentStartingFrom#1138314, productionAspect#1138315, salesPlant#1138316, listing#1138317]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715824]
(1445) Project
Output [1]: [struct(systemId, systemId#1138310, internalUUID, internalUUID#1138311, plant, plant#1138312, product, product#1138313, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1138314, productionAspect, productionAspect#1138315, salesPlant, salesPlant#1138316, listing, listing#1138317) AS productPlant#1138318]
Input [8]: [systemId#1138310, internalUUID#1138311, plant#1138312, product#1138313, blockedForReplenishmentStartingFrom#1138314, productionAspect#1138315, salesPlant#1138316, listing#1138317]
(1446) BroadcastExchange
Input [1]: [productPlant#1138318]
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=1718007]
(1447) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138306, ), isnull(product#1138306), coalesce(plant#1138307, ), isnull(plant#1138307)]
Right keys [4]: [coalesce(productPlant#1138318.product.internalRefUUID, ), isnull(productPlant#1138318.product.internalRefUUID), coalesce(productPlant#1138318.plant.internalRefUUID, ), isnull(productPlant#1138318.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(1448) Scan parquet
Output [3]: [internalUUID#1138320, address#1138326, systemId#1138319]
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>>>
(1449) Project
Output [2]: [internalUUID#1138320, address#1138326.timeZone.code AS timezonecode#1138331]
Input [3]: [internalUUID#1138320, address#1138326, systemId#1138319]
(1450) Exchange
Input [2]: [internalUUID#1138320, timezonecode#1138331]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715829]
(1451) BroadcastExchange
Input [2]: [internalUUID#1138320, timezonecode#1138331]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718010]
(1452) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138307, ), isnull(plant#1138307)]
Right keys [2]: [coalesce(internalUUID#1138320, ), isnull(internalUUID#1138320)]
Join type: LeftOuter
Join condition: None
(1453) Project
Output [5]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, CASE WHEN isnotnull(timezonecode#1138331) THEN timezonecode#1138331 ELSE UTC END AS timezonecode#1138332]
Input [6]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, internalUUID#1138320, timezonecode#1138331]
(1454) Scan parquet
Output [4]: [internalUUID#1138334, baseUnitOfMeasure#1138338, unitOfMeasureConversions#1138340, systemId#1138333]
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>>>
(1455) Filter
Input [4]: [internalUUID#1138334, baseUnitOfMeasure#1138338, unitOfMeasureConversions#1138340, systemId#1138333]
Condition : isnotnull(internalUUID#1138334)
(1456) Project
Output [3]: [internalUUID#1138334, baseUnitOfMeasure#1138338, unitOfMeasureConversions#1138340]
Input [4]: [internalUUID#1138334, baseUnitOfMeasure#1138338, unitOfMeasureConversions#1138340, systemId#1138333]
(1457) Exchange
Input [3]: [internalUUID#1138334, baseUnitOfMeasure#1138338, unitOfMeasureConversions#1138340]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715835]
(1458) BroadcastExchange
Input [3]: [internalUUID#1138334, baseUnitOfMeasure#1138338, unitOfMeasureConversions#1138340]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718014]
(1459) BroadcastHashJoin
Left keys [1]: [product#1138306]
Right keys [1]: [internalUUID#1138334]
Join type: LeftOuter
Join condition: None
(1460) Project
Output [6]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, filter(unitOfMeasureConversions#1138340, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138338.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138338.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138345]
Input [8]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, internalUUID#1138334, baseUnitOfMeasure#1138338, unitOfMeasureConversions#1138340]
(1461) Project
Output [7]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, filteredUnitOfMeasureConversions#1138345.quantityDenominator AS _extract_quantityDenominator#1142471, filteredUnitOfMeasureConversions#1138345.quantityNumerator AS _extract_quantityNumerator#1142472]
Input [6]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, filteredUnitOfMeasureConversions#1138345]
(1462) Generate
Input [7]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, _extract_quantityDenominator#1142471, _extract_quantityNumerator#1142472]
Arguments: explode(_extract_quantityNumerator#1142472), [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, _extract_quantityDenominator#1142471], true, [quantityNumerator#1138346]
(1463) Generate
Input [7]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, _extract_quantityDenominator#1142471, quantityNumerator#1138346]
Arguments: explode(_extract_quantityDenominator#1142471), [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, quantityNumerator#1138346], true, [quantityDenominator#1138347]
(1464) Project
Output [6]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, (cast(quantityNumerator#1138346 as double) / cast(quantityDenominator#1138347 as double)) AS outboundUnit#1138348]
Input [7]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, quantityNumerator#1138346, quantityDenominator#1138347]
(1465) Project
Output [6]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, CASE WHEN (isnull(outboundUnit#1138348) OR (outboundUnit#1138348 <= 0.0)) THEN 1.0 ELSE outboundUnit#1138348 END AS outboundUnit#1138349]
Input [6]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138348]
(1466) Sort
Input [6]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349]
Arguments: [product#1138306 ASC NULLS FIRST, plant#1138307 ASC NULLS FIRST], false, 0
(1467) Scan parquet
Output [6]: [internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355, systemId#1138350]
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>>>>>
(1468) Filter
Input [6]: [internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355, systemId#1138350]
Condition : (isnotnull(plant#1138353.internalRefUUID) AND isnotnull(product#1138352.internalRefUUID))
(1469) Project
Output [6]: [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355]
Input [6]: [internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355, systemId#1138350]
(1470) Exchange
Input [6]: [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715846]
(1471) BroadcastExchange
Input [6]: [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355]
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=1718046]
(1472) Scan parquet
Output [2]: [marketUnit#1138356, distributionCenters#1138362]
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>>>>>
(1473) Filter
Input [2]: [marketUnit#1138356, distributionCenters#1138362]
Condition : (((marketUnit#1138356 <=> Alert_Test1) AND (size(distributionCenters#1138362, true) > 0)) AND isnotnull(distributionCenters#1138362))
(1474) Project
Output [1]: [distributionCenters#1138362]
Input [2]: [marketUnit#1138356, distributionCenters#1138362]
(1475) Exchange
Input [1]: [distributionCenters#1138362]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715850]
(1476) Generate
Input [1]: [distributionCenters#1138362]
Arguments: explode(distributionCenters#1138362), false, [distributionCenters#1138378]
(1477) Filter
Input [1]: [distributionCenters#1138378]
Condition : (((size(distributionCenters#1138378.storageLocations, true) > 0) AND isnotnull(distributionCenters#1138378.storageLocations)) AND isnotnull(distributionCenters#1138378.internalRefUUID))
(1478) Project
Output [2]: [distributionCenters#1138378.internalRefUUID AS _extract_internalRefUUID#1142270, distributionCenters#1138378.storageLocations AS _extract_storageLocations#1142271]
Input [1]: [distributionCenters#1138378]
(1479) Generate
Input [2]: [_extract_internalRefUUID#1142270, _extract_storageLocations#1142271]
Arguments: explode(_extract_storageLocations#1142271), [_extract_internalRefUUID#1142270], false, [storageLocations#1138379]
(1480) Project
Output [3]: [_extract_internalRefUUID#1142270 AS plantUuid#1138381, storageLocations#1138379.id AS storageLocId#1138382, storageLocations#1138379.internalRefUUID AS storageLocUuid#1138383]
Input [2]: [_extract_internalRefUUID#1142270, storageLocations#1138379]
(1481) BroadcastExchange
Input [3]: [plantUuid#1138381, storageLocId#1138382, storageLocUuid#1138383]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718042]
(1482) Scan parquet
Output [2]: [product#1138384, plant#1138385]
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>
(1483) Filter
Input [2]: [product#1138384, plant#1138385]
Condition : isnotnull(plant#1138385)
(1484) Exchange
Input [2]: [product#1138384, plant#1138385]
Arguments: hashpartitioning(product#1138384, plant#1138385, 37), REPARTITION_BY_NUM, [plan_id=1717088]
(1485) Scan parquet
Output [4]: [plant#1138390, product#1138391, productionAspect#1138393, systemId#1138388]
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>>>>
(1486) Project
Output [4]: [plant#1138390.internalRefUUID AS _extract_internalRefUUID#1142945, product#1138391.internalRefUUID AS _extract_internalRefUUID#1142944, productionAspect#1138393.productMovementPlants.unitOfIssue.code AS _extract_code#1142946, productionAspect#1138393.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142947]
Input [4]: [plant#1138390, product#1138391, productionAspect#1138393, systemId#1138388]
(1487) Exchange
Input [4]: [_extract_internalRefUUID#1142945, _extract_internalRefUUID#1142944, _extract_code#1142946, _extract_internalRefUUID#1142947]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715862]
(1488) Project
Output [4]: [_extract_code#1142946, _extract_internalRefUUID#1142947, _extract_internalRefUUID#1142944, _extract_internalRefUUID#1142945]
Input [4]: [_extract_internalRefUUID#1142945, _extract_internalRefUUID#1142944, _extract_code#1142946, _extract_internalRefUUID#1142947]
(1489) BroadcastExchange
Input [4]: [_extract_code#1142946, _extract_internalRefUUID#1142947, _extract_internalRefUUID#1142944, _extract_internalRefUUID#1142945]
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=1718022]
(1490) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138384, ), isnull(product#1138384), coalesce(plant#1138385, ), isnull(plant#1138385)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142944, ), isnull(_extract_internalRefUUID#1142944), coalesce(_extract_internalRefUUID#1142945, ), isnull(_extract_internalRefUUID#1142945)]
Join type: LeftOuter
Join condition: None
(1491) Project
Output [4]: [product#1138384, plant#1138385, _extract_code#1142946, _extract_internalRefUUID#1142947]
Input [6]: [product#1138384, plant#1138385, _extract_code#1142946, _extract_internalRefUUID#1142947, _extract_internalRefUUID#1142944, _extract_internalRefUUID#1142945]
(1492) Scan parquet
Output [2]: [internalUUID#1138398, systemId#1138397]
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>
(1493) Project
Output [1]: [internalUUID#1138398]
Input [2]: [internalUUID#1138398, systemId#1138397]
(1494) Exchange
Input [1]: [internalUUID#1138398]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715868]
(1495) BroadcastExchange
Input [1]: [internalUUID#1138398]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718026]
(1496) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138385, ), isnull(plant#1138385)]
Right keys [2]: [coalesce(internalUUID#1138398, ), isnull(internalUUID#1138398)]
Join type: LeftOuter
Join condition: None
(1497) Project
Output [4]: [product#1138384, plant#1138385, _extract_code#1142946, _extract_internalRefUUID#1142947]
Input [5]: [product#1138384, plant#1138385, _extract_code#1142946, _extract_internalRefUUID#1142947, internalUUID#1138398]
(1498) Scan parquet
Output [4]: [internalUUID#1138412, baseUnitOfMeasure#1138416, unitOfMeasureConversions#1138418, systemId#1138411]
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>>>
(1499) Filter
Input [4]: [internalUUID#1138412, baseUnitOfMeasure#1138416, unitOfMeasureConversions#1138418, systemId#1138411]
Condition : isnotnull(internalUUID#1138412)
(1500) Project
Output [3]: [internalUUID#1138412, baseUnitOfMeasure#1138416, unitOfMeasureConversions#1138418]
Input [4]: [internalUUID#1138412, baseUnitOfMeasure#1138416, unitOfMeasureConversions#1138418, systemId#1138411]
(1501) Exchange
Input [3]: [internalUUID#1138412, baseUnitOfMeasure#1138416, unitOfMeasureConversions#1138418]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715874]
(1502) BroadcastExchange
Input [3]: [internalUUID#1138412, baseUnitOfMeasure#1138416, unitOfMeasureConversions#1138418]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718030]
(1503) BroadcastHashJoin
Left keys [1]: [product#1138384]
Right keys [1]: [internalUUID#1138412]
Join type: LeftOuter
Join condition: None
(1504) Project
Output [2]: [plant#1138385, filter(unitOfMeasureConversions#1138418, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142946) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142947)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138416.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138416.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138423]
Input [7]: [product#1138384, plant#1138385, _extract_code#1142946, _extract_internalRefUUID#1142947, internalUUID#1138412, baseUnitOfMeasure#1138416, unitOfMeasureConversions#1138418]
(1505) Generate
Input [2]: [plant#1138385, filteredUnitOfMeasureConversions#1138423]
Arguments: explode(filteredUnitOfMeasureConversions#1138423.quantityNumerator), [plant#1138385, filteredUnitOfMeasureConversions#1138423], true, [quantityNumerator#1138424]
(1506) Project
Output [2]: [plant#1138385, filteredUnitOfMeasureConversions#1138423.quantityDenominator AS _extract_quantityDenominator#1142272]
Input [3]: [plant#1138385, filteredUnitOfMeasureConversions#1138423, quantityNumerator#1138424]
(1507) Generate
Input [2]: [plant#1138385, _extract_quantityDenominator#1142272]
Arguments: explode(_extract_quantityDenominator#1142272), [plant#1138385], true, [quantityDenominator#1138425]
(1508) Project
Output [1]: [plant#1138385]
Input [2]: [plant#1138385, quantityDenominator#1138425]
(1509) HashAggregate
Input [1]: [plant#1138385]
Keys [1]: [plant#1138385]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1138385]
(1510) Exchange
Input [1]: [plant#1138385]
Arguments: hashpartitioning(plant#1138385, 37), ENSURE_REQUIREMENTS, [plan_id=1718039]
(1511) HashAggregate
Input [1]: [plant#1138385]
Keys [1]: [plant#1138385]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1138385]
(1512) BroadcastHashJoin
Left keys [1]: [plantUuid#1138381]
Right keys [1]: [plant#1138385]
Join type: Inner
Join condition: None
(1513) Project
Output [3]: [plantUuid#1138381, storageLocId#1138382, storageLocUuid#1138383]
Input [4]: [plantUuid#1138381, storageLocId#1138382, storageLocUuid#1138383, plant#1138385]
(1514) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138353.internalRefUUID, ), isnull(plant#1138353.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1138381, ), isnull(plantUuid#1138381)]
Join type: Inner
Join condition: None
(1515) Generate
Input [9]: [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, stockQuantities#1138355, plantUuid#1138381, storageLocId#1138382, storageLocUuid#1138383]
Arguments: explode(filter(stockQuantities#1138355, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138383) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138382)), lambda x#1135796, false))), [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, plantUuid#1138381], false, [stockQuantity#1138428]
(1516) ObjectHashAggregate
Input [7]: [systemId#1138350, internalUUID#1138351, product#1138352, plant#1138353, calculationDateTime#1138354, plantUuid#1138381, stockQuantity#1138428]
Keys [5]: [plantUuid#1138381, internalUUID#1138351, plant#1138353, product#1138352, systemId#1138350]
Functions [2]: [partial_first(calculationDateTime#1138354, false), partial_collect_list(stockQuantity#1138428, 0, 0)]
Aggregate Attributes [3]: [first#1143966, valueSet#1143967, buf#1143968]
Results [8]: [plantUuid#1138381, internalUUID#1138351, plant#1138353, product#1138352, systemId#1138350, first#1143969, valueSet#1143970, buf#1143971]
(1517) ObjectHashAggregate
Input [8]: [plantUuid#1138381, internalUUID#1138351, plant#1138353, product#1138352, systemId#1138350, first#1143969, valueSet#1143970, buf#1143971]
Keys [5]: [plantUuid#1138381, internalUUID#1138351, plant#1138353, product#1138352, systemId#1138350]
Functions [2]: [first(calculationDateTime#1138354, false), collect_list(stockQuantity#1138428, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1138354)()#1135811, collect_list(stockQuantity#1138428, 0, 0)#1135812]
Results [4]: [product#1138352, plant#1138353, first(calculationDateTime#1138354)()#1135811 AS calculationDateTime#1138429, collect_list(stockQuantity#1138428, 0, 0)#1135812 AS stockQuantities#1138430]
(1518) Filter
Input [4]: [product#1138352, plant#1138353, calculationDateTime#1138429, stockQuantities#1138430]
Condition : ((size(stockQuantities#1138430, true) > 0) AND isnotnull(calculationDateTime#1138429))
(1519) Generate
Input [4]: [product#1138352, plant#1138353, calculationDateTime#1138429, stockQuantities#1138430]
Arguments: explode(stockQuantities#1138430), [product#1138352, plant#1138353, calculationDateTime#1138429], false, [stockQuantity#1138431]
(1520) Filter
Input [4]: [product#1138352, plant#1138353, calculationDateTime#1138429, stockQuantity#1138431]
Condition : (((isnotnull(stockQuantity#1138431.specialStockIndicator.code) AND isnotnull(stockQuantity#1138431.stockType.code)) AND (stockQuantity#1138431.specialStockIndicator.code = )) AND (stockQuantity#1138431.stockType.code = 01))
(1521) Project
Output [5]: [plant#1138353.internalRefUUID AS plantUuid#1138433, product#1138352.internalRefUUID AS productUuid#1138435, calculationDateTime#1138429, stockQuantity#1138431.storagelocation.id AS storageLocId#1138436, stockQuantity#1138431.quantity.measure AS quantity#1138438]
Input [4]: [product#1138352, plant#1138353, calculationDateTime#1138429, stockQuantity#1138431]
(1522) Exchange
Input [5]: [plantUuid#1138433, productUuid#1138435, calculationDateTime#1138429, storageLocId#1138436, quantity#1138438]
Arguments: hashpartitioning(productUuid#1138435, plantUuid#1138433, 37), ENSURE_REQUIREMENTS, [plan_id=1718072]
(1523) Sort
Input [5]: [plantUuid#1138433, productUuid#1138435, calculationDateTime#1138429, storageLocId#1138436, quantity#1138438]
Arguments: [productUuid#1138435 ASC NULLS FIRST, plantUuid#1138433 ASC NULLS FIRST], false, 0
(1524) Scan parquet
Output [3]: [product#1138441, plant#1138442, orderDateTime#1138443]
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>
(1525) Filter
Input [3]: [product#1138441, plant#1138442, orderDateTime#1138443]
Condition : ((isnotnull(orderDateTime#1138443) AND isnotnull(plant#1138442)) AND isnotnull(product#1138441))
(1526) Exchange
Input [3]: [product#1138441, plant#1138442, orderDateTime#1138443]
Arguments: hashpartitioning(product#1138441, plant#1138442, 37), REPARTITION_BY_NUM, [plan_id=1717111]
(1527) Scan parquet
Output [4]: [plant#1138447, product#1138448, productionAspect#1138450, systemId#1138445]
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>>>>
(1528) Project
Output [4]: [plant#1138447.internalRefUUID AS _extract_internalRefUUID#1142949, product#1138448.internalRefUUID AS _extract_internalRefUUID#1142948, productionAspect#1138450.productMovementPlants.unitOfIssue.code AS _extract_code#1142950, productionAspect#1138450.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142951]
Input [4]: [plant#1138447, product#1138448, productionAspect#1138450, systemId#1138445]
(1529) Exchange
Input [4]: [_extract_internalRefUUID#1142949, _extract_internalRefUUID#1142948, _extract_code#1142950, _extract_internalRefUUID#1142951]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715899]
(1530) Project
Output [4]: [_extract_code#1142950, _extract_internalRefUUID#1142951, _extract_internalRefUUID#1142948, _extract_internalRefUUID#1142949]
Input [4]: [_extract_internalRefUUID#1142949, _extract_internalRefUUID#1142948, _extract_code#1142950, _extract_internalRefUUID#1142951]
(1531) BroadcastExchange
Input [4]: [_extract_code#1142950, _extract_internalRefUUID#1142951, _extract_internalRefUUID#1142948, _extract_internalRefUUID#1142949]
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=1718055]
(1532) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138441, ), isnull(product#1138441), coalesce(plant#1138442, ), isnull(plant#1138442)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142948, ), isnull(_extract_internalRefUUID#1142948), coalesce(_extract_internalRefUUID#1142949, ), isnull(_extract_internalRefUUID#1142949)]
Join type: LeftOuter
Join condition: None
(1533) Project
Output [5]: [product#1138441, plant#1138442, orderDateTime#1138443, _extract_code#1142950, _extract_internalRefUUID#1142951]
Input [7]: [product#1138441, plant#1138442, orderDateTime#1138443, _extract_code#1142950, _extract_internalRefUUID#1142951, _extract_internalRefUUID#1142948, _extract_internalRefUUID#1142949]
(1534) Scan parquet
Output [2]: [internalUUID#1138455, systemId#1138454]
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>
(1535) Project
Output [1]: [internalUUID#1138455]
Input [2]: [internalUUID#1138455, systemId#1138454]
(1536) Exchange
Input [1]: [internalUUID#1138455]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715905]
(1537) BroadcastExchange
Input [1]: [internalUUID#1138455]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718059]
(1538) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138442, ), isnull(plant#1138442)]
Right keys [2]: [coalesce(internalUUID#1138455, ), isnull(internalUUID#1138455)]
Join type: LeftOuter
Join condition: None
(1539) Project
Output [5]: [product#1138441, plant#1138442, orderDateTime#1138443, _extract_code#1142950, _extract_internalRefUUID#1142951]
Input [6]: [product#1138441, plant#1138442, orderDateTime#1138443, _extract_code#1142950, _extract_internalRefUUID#1142951, internalUUID#1138455]
(1540) Scan parquet
Output [4]: [internalUUID#1138469, baseUnitOfMeasure#1138473, unitOfMeasureConversions#1138475, systemId#1138468]
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>>>
(1541) Filter
Input [4]: [internalUUID#1138469, baseUnitOfMeasure#1138473, unitOfMeasureConversions#1138475, systemId#1138468]
Condition : isnotnull(internalUUID#1138469)
(1542) Project
Output [3]: [internalUUID#1138469, baseUnitOfMeasure#1138473, unitOfMeasureConversions#1138475]
Input [4]: [internalUUID#1138469, baseUnitOfMeasure#1138473, unitOfMeasureConversions#1138475, systemId#1138468]
(1543) Exchange
Input [3]: [internalUUID#1138469, baseUnitOfMeasure#1138473, unitOfMeasureConversions#1138475]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715911]
(1544) BroadcastExchange
Input [3]: [internalUUID#1138469, baseUnitOfMeasure#1138473, unitOfMeasureConversions#1138475]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718063]
(1545) BroadcastHashJoin
Left keys [1]: [product#1138441]
Right keys [1]: [internalUUID#1138469]
Join type: LeftOuter
Join condition: None
(1546) Project
Output [4]: [product#1138441, plant#1138442, orderDateTime#1138443, filter(unitOfMeasureConversions#1138475, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142950) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142951)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138473.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138473.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138480]
Input [8]: [product#1138441, plant#1138442, orderDateTime#1138443, _extract_code#1142950, _extract_internalRefUUID#1142951, internalUUID#1138469, baseUnitOfMeasure#1138473, unitOfMeasureConversions#1138475]
(1547) Generate
Input [4]: [product#1138441, plant#1138442, orderDateTime#1138443, filteredUnitOfMeasureConversions#1138480]
Arguments: explode(filteredUnitOfMeasureConversions#1138480.quantityNumerator), [product#1138441, plant#1138442, orderDateTime#1138443, filteredUnitOfMeasureConversions#1138480], true, [quantityNumerator#1138481]
(1548) Project
Output [4]: [product#1138441, plant#1138442, orderDateTime#1138443, filteredUnitOfMeasureConversions#1138480.quantityDenominator AS _extract_quantityDenominator#1142276]
Input [5]: [product#1138441, plant#1138442, orderDateTime#1138443, filteredUnitOfMeasureConversions#1138480, quantityNumerator#1138481]
(1549) Generate
Input [4]: [product#1138441, plant#1138442, orderDateTime#1138443, _extract_quantityDenominator#1142276]
Arguments: explode(_extract_quantityDenominator#1142276), [product#1138441, plant#1138442, orderDateTime#1138443], true, [quantityDenominator#1138482]
(1550) Project
Output [3]: [product#1138441, plant#1138442, orderDateTime#1138443]
Input [4]: [product#1138441, plant#1138442, orderDateTime#1138443, quantityDenominator#1138482]
(1551) Sort
Input [3]: [product#1138441, plant#1138442, orderDateTime#1138443]
Arguments: [product#1138441 ASC NULLS FIRST, plant#1138442 ASC NULLS FIRST], false, 0
(1552) SortMergeJoin
Left keys [2]: [productUuid#1138435, plantUuid#1138433]
Right keys [2]: [product#1138441, plant#1138442]
Join type: Inner
Join condition: (calculationDateTime#1138429 <= orderDateTime#1138443)
(1553) Project
Output [5]: [plantUuid#1138433 AS plant#1138485, productUuid#1138435 AS product#1138486, storageLocId#1138436, calculationDateTime#1138429, quantity#1138438]
Input [8]: [plantUuid#1138433, productUuid#1138435, calculationDateTime#1138429, storageLocId#1138436, quantity#1138438, product#1138441, plant#1138442, orderDateTime#1138443]
(1554) Exchange
Input [5]: [plant#1138485, product#1138486, storageLocId#1138436, calculationDateTime#1138429, quantity#1138438]
Arguments: hashpartitioning(coalesce(plant#1138485, ), isnull(plant#1138485), coalesce(product#1138486, ), isnull(product#1138486), coalesce(storageLocId#1138436, ), isnull(storageLocId#1138436), coalesce(calculationDateTime#1138429, 1970-01-01 00:00:00), isnull(calculationDateTime#1138429), 37), ENSURE_REQUIREMENTS, [plan_id=1718136]
(1555) Sort
Input [5]: [plant#1138485, product#1138486, storageLocId#1138436, calculationDateTime#1138429, quantity#1138438]
Arguments: [coalesce(plant#1138485, ) ASC NULLS FIRST, isnull(plant#1138485) ASC NULLS FIRST, coalesce(product#1138486, ) ASC NULLS FIRST, isnull(product#1138486) ASC NULLS FIRST, coalesce(storageLocId#1138436, ) ASC NULLS FIRST, isnull(storageLocId#1138436) ASC NULLS FIRST, coalesce(calculationDateTime#1138429, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1138429) ASC NULLS FIRST], false, 0
(1556) Scan parquet
Output [6]: [internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492, systemId#1138487]
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>>>>>
(1557) Filter
Input [6]: [internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492, systemId#1138487]
Condition : (isnotnull(plant#1138490.internalRefUUID) AND isnotnull(product#1138489.internalRefUUID))
(1558) Project
Output [6]: [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492]
Input [6]: [internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492, systemId#1138487]
(1559) Exchange
Input [6]: [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715923]
(1560) BroadcastExchange
Input [6]: [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492]
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=1718101]
(1561) Scan parquet
Output [2]: [marketUnit#1138493, distributionCenters#1138499]
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>>>>>
(1562) Filter
Input [2]: [marketUnit#1138493, distributionCenters#1138499]
Condition : (((marketUnit#1138493 <=> Alert_Test1) AND (size(distributionCenters#1138499, true) > 0)) AND isnotnull(distributionCenters#1138499))
(1563) Project
Output [1]: [distributionCenters#1138499]
Input [2]: [marketUnit#1138493, distributionCenters#1138499]
(1564) Exchange
Input [1]: [distributionCenters#1138499]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715927]
(1565) Generate
Input [1]: [distributionCenters#1138499]
Arguments: explode(distributionCenters#1138499), false, [distributionCenters#1138515]
(1566) Filter
Input [1]: [distributionCenters#1138515]
Condition : (((size(distributionCenters#1138515.storageLocations, true) > 0) AND isnotnull(distributionCenters#1138515.storageLocations)) AND isnotnull(distributionCenters#1138515.internalRefUUID))
(1567) Project
Output [2]: [distributionCenters#1138515.internalRefUUID AS _extract_internalRefUUID#1142280, distributionCenters#1138515.storageLocations AS _extract_storageLocations#1142281]
Input [1]: [distributionCenters#1138515]
(1568) Generate
Input [2]: [_extract_internalRefUUID#1142280, _extract_storageLocations#1142281]
Arguments: explode(_extract_storageLocations#1142281), [_extract_internalRefUUID#1142280], false, [storageLocations#1138516]
(1569) Project
Output [3]: [_extract_internalRefUUID#1142280 AS plantUuid#1138518, storageLocations#1138516.id AS storageLocId#1138519, storageLocations#1138516.internalRefUUID AS storageLocUuid#1138520]
Input [2]: [_extract_internalRefUUID#1142280, storageLocations#1138516]
(1570) BroadcastExchange
Input [3]: [plantUuid#1138518, storageLocId#1138519, storageLocUuid#1138520]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718097]
(1571) Scan parquet
Output [2]: [product#1138521, plant#1138522]
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>
(1572) Filter
Input [2]: [product#1138521, plant#1138522]
Condition : isnotnull(plant#1138522)
(1573) Exchange
Input [2]: [product#1138521, plant#1138522]
Arguments: hashpartitioning(product#1138521, plant#1138522, 37), REPARTITION_BY_NUM, [plan_id=1717124]
(1574) Scan parquet
Output [4]: [plant#1138527, product#1138528, productionAspect#1138530, systemId#1138525]
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>>>>
(1575) Project
Output [4]: [plant#1138527.internalRefUUID AS _extract_internalRefUUID#1142955, product#1138528.internalRefUUID AS _extract_internalRefUUID#1142952, productionAspect#1138530.productMovementPlants.unitOfIssue.code AS _extract_code#1142953, productionAspect#1138530.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142954]
Input [4]: [plant#1138527, product#1138528, productionAspect#1138530, systemId#1138525]
(1576) Exchange
Input [4]: [_extract_internalRefUUID#1142955, _extract_internalRefUUID#1142952, _extract_code#1142953, _extract_internalRefUUID#1142954]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715939]
(1577) Project
Output [4]: [_extract_code#1142953, _extract_internalRefUUID#1142954, _extract_internalRefUUID#1142952, _extract_internalRefUUID#1142955]
Input [4]: [_extract_internalRefUUID#1142955, _extract_internalRefUUID#1142952, _extract_code#1142953, _extract_internalRefUUID#1142954]
(1578) BroadcastExchange
Input [4]: [_extract_code#1142953, _extract_internalRefUUID#1142954, _extract_internalRefUUID#1142952, _extract_internalRefUUID#1142955]
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=1718077]
(1579) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138521, ), isnull(product#1138521), coalesce(plant#1138522, ), isnull(plant#1138522)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142952, ), isnull(_extract_internalRefUUID#1142952), coalesce(_extract_internalRefUUID#1142955, ), isnull(_extract_internalRefUUID#1142955)]
Join type: LeftOuter
Join condition: None
(1580) Project
Output [4]: [product#1138521, plant#1138522, _extract_code#1142953, _extract_internalRefUUID#1142954]
Input [6]: [product#1138521, plant#1138522, _extract_code#1142953, _extract_internalRefUUID#1142954, _extract_internalRefUUID#1142952, _extract_internalRefUUID#1142955]
(1581) Scan parquet
Output [2]: [internalUUID#1138535, systemId#1138534]
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>
(1582) Project
Output [1]: [internalUUID#1138535]
Input [2]: [internalUUID#1138535, systemId#1138534]
(1583) Exchange
Input [1]: [internalUUID#1138535]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715945]
(1584) BroadcastExchange
Input [1]: [internalUUID#1138535]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718081]
(1585) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138522, ), isnull(plant#1138522)]
Right keys [2]: [coalesce(internalUUID#1138535, ), isnull(internalUUID#1138535)]
Join type: LeftOuter
Join condition: None
(1586) Project
Output [4]: [product#1138521, plant#1138522, _extract_code#1142953, _extract_internalRefUUID#1142954]
Input [5]: [product#1138521, plant#1138522, _extract_code#1142953, _extract_internalRefUUID#1142954, internalUUID#1138535]
(1587) Scan parquet
Output [4]: [internalUUID#1138549, baseUnitOfMeasure#1138553, unitOfMeasureConversions#1138555, systemId#1138548]
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>>>
(1588) Filter
Input [4]: [internalUUID#1138549, baseUnitOfMeasure#1138553, unitOfMeasureConversions#1138555, systemId#1138548]
Condition : isnotnull(internalUUID#1138549)
(1589) Project
Output [3]: [internalUUID#1138549, baseUnitOfMeasure#1138553, unitOfMeasureConversions#1138555]
Input [4]: [internalUUID#1138549, baseUnitOfMeasure#1138553, unitOfMeasureConversions#1138555, systemId#1138548]
(1590) Exchange
Input [3]: [internalUUID#1138549, baseUnitOfMeasure#1138553, unitOfMeasureConversions#1138555]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715951]
(1591) BroadcastExchange
Input [3]: [internalUUID#1138549, baseUnitOfMeasure#1138553, unitOfMeasureConversions#1138555]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718085]
(1592) BroadcastHashJoin
Left keys [1]: [product#1138521]
Right keys [1]: [internalUUID#1138549]
Join type: LeftOuter
Join condition: None
(1593) Project
Output [2]: [plant#1138522, filter(unitOfMeasureConversions#1138555, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142953) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142954)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138553.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138553.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138560]
Input [7]: [product#1138521, plant#1138522, _extract_code#1142953, _extract_internalRefUUID#1142954, internalUUID#1138549, baseUnitOfMeasure#1138553, unitOfMeasureConversions#1138555]
(1594) Generate
Input [2]: [plant#1138522, filteredUnitOfMeasureConversions#1138560]
Arguments: explode(filteredUnitOfMeasureConversions#1138560.quantityNumerator), [plant#1138522, filteredUnitOfMeasureConversions#1138560], true, [quantityNumerator#1138561]
(1595) Project
Output [2]: [plant#1138522, filteredUnitOfMeasureConversions#1138560.quantityDenominator AS _extract_quantityDenominator#1142282]
Input [3]: [plant#1138522, filteredUnitOfMeasureConversions#1138560, quantityNumerator#1138561]
(1596) Generate
Input [2]: [plant#1138522, _extract_quantityDenominator#1142282]
Arguments: explode(_extract_quantityDenominator#1142282), [plant#1138522], true, [quantityDenominator#1138562]
(1597) Project
Output [1]: [plant#1138522]
Input [2]: [plant#1138522, quantityDenominator#1138562]
(1598) HashAggregate
Input [1]: [plant#1138522]
Keys [1]: [plant#1138522]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1138522]
(1599) Exchange
Input [1]: [plant#1138522]
Arguments: hashpartitioning(plant#1138522, 37), ENSURE_REQUIREMENTS, [plan_id=1718094]
(1600) HashAggregate
Input [1]: [plant#1138522]
Keys [1]: [plant#1138522]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1138522]
(1601) BroadcastHashJoin
Left keys [1]: [plantUuid#1138518]
Right keys [1]: [plant#1138522]
Join type: Inner
Join condition: None
(1602) Project
Output [3]: [plantUuid#1138518, storageLocId#1138519, storageLocUuid#1138520]
Input [4]: [plantUuid#1138518, storageLocId#1138519, storageLocUuid#1138520, plant#1138522]
(1603) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138490.internalRefUUID, ), isnull(plant#1138490.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1138518, ), isnull(plantUuid#1138518)]
Join type: Inner
Join condition: None
(1604) Generate
Input [9]: [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, stockQuantities#1138492, plantUuid#1138518, storageLocId#1138519, storageLocUuid#1138520]
Arguments: explode(filter(stockQuantities#1138492, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1138520) AND (lambda x#1135796.storageLocation.Id = storageLocId#1138519)), lambda x#1135796, false))), [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, plantUuid#1138518], false, [stockQuantity#1138565]
(1605) ObjectHashAggregate
Input [7]: [systemId#1138487, internalUUID#1138488, product#1138489, plant#1138490, calculationDateTime#1138491, plantUuid#1138518, stockQuantity#1138565]
Keys [5]: [plantUuid#1138518, internalUUID#1138488, plant#1138490, product#1138489, systemId#1138487]
Functions [2]: [partial_first(calculationDateTime#1138491, false), partial_collect_list(stockQuantity#1138565, 0, 0)]
Aggregate Attributes [3]: [first#1143974, valueSet#1143975, buf#1143976]
Results [8]: [plantUuid#1138518, internalUUID#1138488, plant#1138490, product#1138489, systemId#1138487, first#1143977, valueSet#1143978, buf#1143979]
(1606) ObjectHashAggregate
Input [8]: [plantUuid#1138518, internalUUID#1138488, plant#1138490, product#1138489, systemId#1138487, first#1143977, valueSet#1143978, buf#1143979]
Keys [5]: [plantUuid#1138518, internalUUID#1138488, plant#1138490, product#1138489, systemId#1138487]
Functions [2]: [first(calculationDateTime#1138491, false), collect_list(stockQuantity#1138565, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1138491)()#1135811, collect_list(stockQuantity#1138565, 0, 0)#1135812]
Results [4]: [product#1138489, plant#1138490, first(calculationDateTime#1138491)()#1135811 AS calculationDateTime#1138566, collect_list(stockQuantity#1138565, 0, 0)#1135812 AS stockQuantities#1138567]
(1607) Filter
Input [4]: [product#1138489, plant#1138490, calculationDateTime#1138566, stockQuantities#1138567]
Condition : ((size(stockQuantities#1138567, true) > 0) AND isnotnull(calculationDateTime#1138566))
(1608) Generate
Input [4]: [product#1138489, plant#1138490, calculationDateTime#1138566, stockQuantities#1138567]
Arguments: explode(stockQuantities#1138567), [product#1138489, plant#1138490, calculationDateTime#1138566], false, [stockQuantity#1138568]
(1609) Filter
Input [4]: [product#1138489, plant#1138490, calculationDateTime#1138566, stockQuantity#1138568]
Condition : (((isnotnull(stockQuantity#1138568.specialStockIndicator.code) AND isnotnull(stockQuantity#1138568.stockType.code)) AND (stockQuantity#1138568.specialStockIndicator.code = )) AND (stockQuantity#1138568.stockType.code = 01))
(1610) Project
Output [4]: [plant#1138490.internalRefUUID AS plantUuid#1138570, product#1138489.internalRefUUID AS productUuid#1138572, calculationDateTime#1138566, stockQuantity#1138568.storagelocation.id AS storageLocId#1138573]
Input [4]: [product#1138489, plant#1138490, calculationDateTime#1138566, stockQuantity#1138568]
(1611) Exchange
Input [4]: [plantUuid#1138570, productUuid#1138572, calculationDateTime#1138566, storageLocId#1138573]
Arguments: hashpartitioning(productUuid#1138572, plantUuid#1138570, 37), ENSURE_REQUIREMENTS, [plan_id=1718127]
(1612) Sort
Input [4]: [plantUuid#1138570, productUuid#1138572, calculationDateTime#1138566, storageLocId#1138573]
Arguments: [productUuid#1138572 ASC NULLS FIRST, plantUuid#1138570 ASC NULLS FIRST], false, 0
(1613) Scan parquet
Output [3]: [product#1138578, plant#1138579, orderDateTime#1138580]
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>
(1614) Filter
Input [3]: [product#1138578, plant#1138579, orderDateTime#1138580]
Condition : ((isnotnull(orderDateTime#1138580) AND isnotnull(plant#1138579)) AND isnotnull(product#1138578))
(1615) Exchange
Input [3]: [product#1138578, plant#1138579, orderDateTime#1138580]
Arguments: hashpartitioning(product#1138578, plant#1138579, 37), REPARTITION_BY_NUM, [plan_id=1717147]
(1616) Scan parquet
Output [4]: [plant#1138584, product#1138585, productionAspect#1138587, systemId#1138582]
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>>>>
(1617) Project
Output [4]: [plant#1138584.internalRefUUID AS _extract_internalRefUUID#1142958, product#1138585.internalRefUUID AS _extract_internalRefUUID#1142959, productionAspect#1138587.productMovementPlants.unitOfIssue.code AS _extract_code#1142956, productionAspect#1138587.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142957]
Input [4]: [plant#1138584, product#1138585, productionAspect#1138587, systemId#1138582]
(1618) Exchange
Input [4]: [_extract_internalRefUUID#1142958, _extract_internalRefUUID#1142959, _extract_code#1142956, _extract_internalRefUUID#1142957]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715976]
(1619) Project
Output [4]: [_extract_code#1142956, _extract_internalRefUUID#1142957, _extract_internalRefUUID#1142959, _extract_internalRefUUID#1142958]
Input [4]: [_extract_internalRefUUID#1142958, _extract_internalRefUUID#1142959, _extract_code#1142956, _extract_internalRefUUID#1142957]
(1620) BroadcastExchange
Input [4]: [_extract_code#1142956, _extract_internalRefUUID#1142957, _extract_internalRefUUID#1142959, _extract_internalRefUUID#1142958]
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=1718110]
(1621) BroadcastHashJoin
Left keys [4]: [coalesce(product#1138578, ), isnull(product#1138578), coalesce(plant#1138579, ), isnull(plant#1138579)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142959, ), isnull(_extract_internalRefUUID#1142959), coalesce(_extract_internalRefUUID#1142958, ), isnull(_extract_internalRefUUID#1142958)]
Join type: LeftOuter
Join condition: None
(1622) Project
Output [5]: [product#1138578, plant#1138579, orderDateTime#1138580, _extract_code#1142956, _extract_internalRefUUID#1142957]
Input [7]: [product#1138578, plant#1138579, orderDateTime#1138580, _extract_code#1142956, _extract_internalRefUUID#1142957, _extract_internalRefUUID#1142959, _extract_internalRefUUID#1142958]
(1623) Scan parquet
Output [2]: [internalUUID#1138592, systemId#1138591]
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>
(1624) Project
Output [1]: [internalUUID#1138592]
Input [2]: [internalUUID#1138592, systemId#1138591]
(1625) Exchange
Input [1]: [internalUUID#1138592]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715982]
(1626) BroadcastExchange
Input [1]: [internalUUID#1138592]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718114]
(1627) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1138579, ), isnull(plant#1138579)]
Right keys [2]: [coalesce(internalUUID#1138592, ), isnull(internalUUID#1138592)]
Join type: LeftOuter
Join condition: None
(1628) Project
Output [5]: [product#1138578, plant#1138579, orderDateTime#1138580, _extract_code#1142956, _extract_internalRefUUID#1142957]
Input [6]: [product#1138578, plant#1138579, orderDateTime#1138580, _extract_code#1142956, _extract_internalRefUUID#1142957, internalUUID#1138592]
(1629) Scan parquet
Output [4]: [internalUUID#1138606, baseUnitOfMeasure#1138610, unitOfMeasureConversions#1138612, systemId#1138605]
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>>>
(1630) Filter
Input [4]: [internalUUID#1138606, baseUnitOfMeasure#1138610, unitOfMeasureConversions#1138612, systemId#1138605]
Condition : isnotnull(internalUUID#1138606)
(1631) Project
Output [3]: [internalUUID#1138606, baseUnitOfMeasure#1138610, unitOfMeasureConversions#1138612]
Input [4]: [internalUUID#1138606, baseUnitOfMeasure#1138610, unitOfMeasureConversions#1138612, systemId#1138605]
(1632) Exchange
Input [3]: [internalUUID#1138606, baseUnitOfMeasure#1138610, unitOfMeasureConversions#1138612]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1715988]
(1633) BroadcastExchange
Input [3]: [internalUUID#1138606, baseUnitOfMeasure#1138610, unitOfMeasureConversions#1138612]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718118]
(1634) BroadcastHashJoin
Left keys [1]: [product#1138578]
Right keys [1]: [internalUUID#1138606]
Join type: LeftOuter
Join condition: None
(1635) Project
Output [4]: [product#1138578, plant#1138579, orderDateTime#1138580, filter(unitOfMeasureConversions#1138612, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142956) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142957)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1138610.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1138610.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1138617]
Input [8]: [product#1138578, plant#1138579, orderDateTime#1138580, _extract_code#1142956, _extract_internalRefUUID#1142957, internalUUID#1138606, baseUnitOfMeasure#1138610, unitOfMeasureConversions#1138612]
(1636) Generate
Input [4]: [product#1138578, plant#1138579, orderDateTime#1138580, filteredUnitOfMeasureConversions#1138617]
Arguments: explode(filteredUnitOfMeasureConversions#1138617.quantityNumerator), [product#1138578, plant#1138579, orderDateTime#1138580, filteredUnitOfMeasureConversions#1138617], true, [quantityNumerator#1138618]
(1637) Project
Output [4]: [product#1138578, plant#1138579, orderDateTime#1138580, filteredUnitOfMeasureConversions#1138617.quantityDenominator AS _extract_quantityDenominator#1142286]
Input [5]: [product#1138578, plant#1138579, orderDateTime#1138580, filteredUnitOfMeasureConversions#1138617, quantityNumerator#1138618]
(1638) Generate
Input [4]: [product#1138578, plant#1138579, orderDateTime#1138580, _extract_quantityDenominator#1142286]
Arguments: explode(_extract_quantityDenominator#1142286), [product#1138578, plant#1138579, orderDateTime#1138580], true, [quantityDenominator#1138619]
(1639) Project
Output [3]: [product#1138578, plant#1138579, orderDateTime#1138580]
Input [4]: [product#1138578, plant#1138579, orderDateTime#1138580, quantityDenominator#1138619]
(1640) Sort
Input [3]: [product#1138578, plant#1138579, orderDateTime#1138580]
Arguments: [product#1138578 ASC NULLS FIRST, plant#1138579 ASC NULLS FIRST], false, 0
(1641) SortMergeJoin
Left keys [2]: [productUuid#1138572, plantUuid#1138570]
Right keys [2]: [product#1138578, plant#1138579]
Join type: Inner
Join condition: (calculationDateTime#1138566 <= orderDateTime#1138580)
(1642) Project
Output [4]: [plantUuid#1138570 AS plant#1138622, productUuid#1138572 AS product#1138623, storageLocId#1138573, calculationDateTime#1138566]
Input [7]: [plantUuid#1138570, productUuid#1138572, calculationDateTime#1138566, storageLocId#1138573, product#1138578, plant#1138579, orderDateTime#1138580]
(1643) HashAggregate
Input [4]: [plant#1138622, product#1138623, storageLocId#1138573, calculationDateTime#1138566]
Keys [3]: [plant#1138622, product#1138623, storageLocId#1138573]
Functions [1]: [partial_max(calculationDateTime#1138566)]
Aggregate Attributes [1]: [max#1143972]
Results [4]: [plant#1138622, product#1138623, storageLocId#1138573, max#1143973]
(1644) HashAggregate
Input [4]: [plant#1138622, product#1138623, storageLocId#1138573, max#1143973]
Keys [3]: [plant#1138622, product#1138623, storageLocId#1138573]
Functions [1]: [max(calculationDateTime#1138566)]
Aggregate Attributes [1]: [max(calculationDateTime#1138566)#1135889]
Results [4]: [plant#1138622, product#1138623, storageLocId#1138573, max(calculationDateTime#1138566)#1135889 AS max_calc_datetime#1138624]
(1645) Exchange
Input [4]: [plant#1138622, product#1138623, storageLocId#1138573, max_calc_datetime#1138624]
Arguments: hashpartitioning(coalesce(plant#1138622, ), isnull(plant#1138622), coalesce(product#1138623, ), isnull(product#1138623), coalesce(storageLocId#1138573, ), isnull(storageLocId#1138573), coalesce(max_calc_datetime#1138624, 1970-01-01 00:00:00), isnull(max_calc_datetime#1138624), 37), ENSURE_REQUIREMENTS, [plan_id=1718137]
(1646) Sort
Input [4]: [plant#1138622, product#1138623, storageLocId#1138573, max_calc_datetime#1138624]
Arguments: [coalesce(plant#1138622, ) ASC NULLS FIRST, isnull(plant#1138622) ASC NULLS FIRST, coalesce(product#1138623, ) ASC NULLS FIRST, isnull(product#1138623) ASC NULLS FIRST, coalesce(storageLocId#1138573, ) ASC NULLS FIRST, isnull(storageLocId#1138573) ASC NULLS FIRST, coalesce(max_calc_datetime#1138624, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1138624) ASC NULLS FIRST], false, 0
(1647) SortMergeJoin
Left keys [8]: [coalesce(plant#1138485, ), isnull(plant#1138485), coalesce(product#1138486, ), isnull(product#1138486), coalesce(storageLocId#1138436, ), isnull(storageLocId#1138436), coalesce(calculationDateTime#1138429, 1970-01-01 00:00:00), isnull(calculationDateTime#1138429)]
Right keys [8]: [coalesce(plant#1138622, ), isnull(plant#1138622), coalesce(product#1138623, ), isnull(product#1138623), coalesce(storageLocId#1138573, ), isnull(storageLocId#1138573), coalesce(max_calc_datetime#1138624, 1970-01-01 00:00:00), isnull(max_calc_datetime#1138624)]
Join type: Inner
Join condition: None
(1648) Project
Output [4]: [plant#1138485, product#1138486, calculationDateTime#1138429, quantity#1138438]
Input [9]: [plant#1138485, product#1138486, storageLocId#1138436, calculationDateTime#1138429, quantity#1138438, plant#1138622, product#1138623, storageLocId#1138573, max_calc_datetime#1138624]
(1649) HashAggregate
Input [4]: [plant#1138485, product#1138486, calculationDateTime#1138429, quantity#1138438]
Keys [2]: [product#1138486, plant#1138485]
Functions [2]: [partial_min(calculationDateTime#1138429), partial_sum(quantity#1138438)]
Aggregate Attributes [2]: [min#1143962, sum#1143963]
Results [4]: [product#1138486, plant#1138485, min#1143964, sum#1143965]
(1650) Exchange
Input [4]: [product#1138486, plant#1138485, min#1143964, sum#1143965]
Arguments: hashpartitioning(product#1138486, plant#1138485, 37), ENSURE_REQUIREMENTS, [plan_id=1718144]
(1651) HashAggregate
Input [4]: [product#1138486, plant#1138485, min#1143964, sum#1143965]
Keys [2]: [product#1138486, plant#1138485]
Functions [2]: [min(calculationDateTime#1138429), sum(quantity#1138438)]
Aggregate Attributes [2]: [min(calculationDateTime#1138429)#1136045, sum(quantity#1138438)#1136044]
Results [4]: [product#1138486, plant#1138485, min(calculationDateTime#1138429)#1136045 AS minCalculationDateTime#1138626, round(sum(quantity#1138438)#1136044, 0) AS roundedQuantitySum#1138627]
(1652) Sort
Input [4]: [product#1138486, plant#1138485, minCalculationDateTime#1138626, roundedQuantitySum#1138627]
Arguments: [product#1138486 ASC NULLS FIRST, plant#1138485 ASC NULLS FIRST], false, 0
(1653) SortMergeJoin
Left keys [2]: [product#1138306, plant#1138307]
Right keys [2]: [product#1138486, plant#1138485]
Join type: LeftOuter
Join condition: None
(1654) Project
Output [8]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, CASE WHEN isnotnull(minCalculationDateTime#1138626) THEN minCalculationDateTime#1138626 ELSE orderDateTime#1138308 END AS stockDatetime#1138628, CASE WHEN isnotnull(roundedQuantitySum#1138627) THEN array(roundedQuantitySum#1138627) ELSE [0.0] END AS stockBatchQuantities#1138629]
Input [10]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, product#1138486, plant#1138485, minCalculationDateTime#1138626, roundedQuantitySum#1138627]
(1655) Scan parquet
Output [9]: [product#1138631, plant#1138632, demandChannel#1138633, demandStream#1138634, considerVariance#1138635, demandTimeBuckets#1138636, demandPointInTimeStart#1138637, demandPointInTimeEnd#1138638, demandPointInTime#1138639]
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>>>
(1656) Filter
Input [9]: [product#1138631, plant#1138632, demandChannel#1138633, demandStream#1138634, considerVariance#1138635, demandTimeBuckets#1138636, demandPointInTimeStart#1138637, demandPointInTimeEnd#1138638, demandPointInTime#1138639]
Condition : (isnotnull(product#1138631) AND isnotnull(plant#1138632))
(1657) BroadcastExchange
Input [9]: [product#1138631, plant#1138632, demandChannel#1138633, demandStream#1138634, considerVariance#1138635, demandTimeBuckets#1138636, demandPointInTimeStart#1138637, demandPointInTimeEnd#1138638, demandPointInTime#1138639]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1718153]
(1658) BroadcastHashJoin
Left keys [2]: [product#1138306, plant#1138307]
Right keys [2]: [product#1138631, plant#1138632]
Join type: LeftOuter
Join condition: None
(1659) Project
Output [9]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, CASE WHEN isnotnull(product#1138631) THEN struct(demandChannel, demandChannel#1138633, demandStream, demandStream#1138634, considerVariance, considerVariance#1138635, demandTimeBuckets, demandTimeBuckets#1138636, demandPointInTimeStart, demandPointInTimeStart#1138637, demandPointInTimeEnd, demandPointInTimeEnd#1138638, demandPointInTime, demandPointInTime#1138639) END AS rawDemands#1138640]
Input [17]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, product#1138631, plant#1138632, demandChannel#1138633, demandStream#1138634, considerVariance#1138635, demandTimeBuckets#1138636, demandPointInTimeStart#1138637, demandPointInTimeEnd#1138638, demandPointInTime#1138639]
(1660) ObjectHashAggregate
Input [9]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, rawDemands#1138640]
Keys [9]: [product#1138306, plant#1138307, orderDateTime#1138308, knownfloatingpointnormalized(if (isnull(productPlant#1138318)) null else named_struct(systemId, productPlant#1138318.systemId, internalUUID, productPlant#1138318.internalUUID, plant, productPlant#1138318.plant, product, productPlant#1138318.product, blockedForReplenishmentStartingFrom, productPlant#1138318.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1138318.productionAspect)) null else named_struct(productMovementPlants, productPlant#1138318.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1138318.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1138318.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1138318.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1138318.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1138318.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1138318.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1138318.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1138318.salesPlant, listing, productPlant#1138318.listing)) AS productPlant#1138318, timezonecode#1138332, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1138349)) AS outboundUnit#1138349, stockDatetime#1138628, knownfloatingpointnormalized(transform(stockBatchQuantities#1138629, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1143959)), lambda arg#1143959, false))) AS stockBatchQuantities#1138629, [7226582400000000] AS [7226582400000000]#1143958]
Functions [1]: [partial_collect_list(rawDemands#1138640, 0, 0)]
Aggregate Attributes [1]: [buf#1143960]
Results [10]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, [7226582400000000]#1143958, buf#1143961]
(1661) ObjectHashAggregate
Input [10]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, [7226582400000000]#1143958, buf#1143961]
Keys [9]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, [7226582400000000]#1143958]
Functions [1]: [collect_list(rawDemands#1138640, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1138640, 0, 0)#1136138]
Results [10]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1138630, collect_list(rawDemands#1138640, 0, 0)#1136138 AS rawDemands#1138641]
(1662) DeserializeToObject
Input [10]: [product#1138306, plant#1138307, orderDateTime#1138308, productPlant#1138318, timezonecode#1138332, outboundUnit#1138349, stockDatetime#1138628, stockBatchQuantities#1138629, stockBatchShelfLifeEndDatetimes#1138630, rawDemands#1138641]
Arguments: createexternalrow(invoke(product#1138306.toString()), invoke(plant#1138307.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1138308)), if (isnull(productPlant#1138318)) null else createexternalrow(invoke(productPlant#1138318.systemId.toString()), invoke(productPlant#1138318.internalUUID.toString()), if (isnull(productPlant#1138318.plant)) null else createexternalrow(invoke(productPlant#1138318.plant.internalRefUUID.toString()), invoke(productPlant#1138318.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1138318.product)) null else createexternalrow(invoke(productPlant#1138318.product.internalRefUUID.toString()), invoke(productPlant#1138318.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1138318.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1138318.productionAspect)) null else createexternalrow(if (isnull(productPlant#1138318.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1138318.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#1138318.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1138318.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1138318.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1138318.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1138318.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1138318.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#1138318.salesPlant)) null else createexternalrow(if (isnull(productPlant#1138318.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1138318.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1138318.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1138318.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#1138332.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1138349)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1138628)), mapobjects(lambdavariable(MapObject, DoubleType, true, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1138629, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), stockBatchShelfLifeEndDatetimes#1138630, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1138641, 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
(1663) 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
(1664) 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#1138642, 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#1138643]
(1665) Exchange
Input [2]: [product#1138642, plant#1138643]
Arguments: hashpartitioning(coalesce(plant#1138643, ), isnull(plant#1138643), coalesce(product#1138642, ), isnull(product#1138642), 37), ENSURE_REQUIREMENTS, [plan_id=1718164]
(1666) Sort
Input [2]: [product#1138642, plant#1138643]
Arguments: [coalesce(plant#1138643, ) ASC NULLS FIRST, isnull(plant#1138643) ASC NULLS FIRST, coalesce(product#1138642, ) ASC NULLS FIRST, isnull(product#1138642) ASC NULLS FIRST], false, 0
(1667) SortMergeJoin
Left keys [4]: [coalesce(plant#1137982, ), isnull(plant#1137982), coalesce(product#1137981, ), isnull(product#1137981)]
Right keys [4]: [coalesce(plant#1138643, ), isnull(plant#1138643), coalesce(product#1138642, ), isnull(product#1138642)]
Join type: LeftOuter
Join condition: None
(1668) Project
Output [3]: [product#1137981, plant#1137982, stockDatetime#1138303]
Input [5]: [product#1137981, plant#1137982, stockDatetime#1138303, product#1138642, plant#1138643]
(1669) Scan parquet
Output [6]: [internalUUID#1138647, id#1138648, supplier#1138650, isMarkedForDeletion#1138653, items#1138654, systemId#1138646]
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>>>>>
(1670) Filter
Input [6]: [internalUUID#1138647, id#1138648, supplier#1138650, isMarkedForDeletion#1138653, items#1138654, systemId#1138646]
Condition : (((isnotnull(isMarkedForDeletion#1138653) AND NOT isMarkedForDeletion#1138653) AND (size(items#1138654, true) > 0)) AND isnotnull(items#1138654))
(1671) Project
Output [4]: [internalUUID#1138647, id#1138648, supplier#1138650, items#1138654]
Input [6]: [internalUUID#1138647, id#1138648, supplier#1138650, isMarkedForDeletion#1138653, items#1138654, systemId#1138646]
(1672) Exchange
Input [4]: [internalUUID#1138647, id#1138648, supplier#1138650, items#1138654]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716020]
(1673) Generate
Input [4]: [internalUUID#1138647, id#1138648, supplier#1138650, items#1138654]
Arguments: explode(items#1138654), [internalUUID#1138647, id#1138648, supplier#1138650], false, [item#1138655]
(1674) Filter
Input [4]: [internalUUID#1138647, id#1138648, supplier#1138650, item#1138655]
Condition : ((((isnotnull(item#1138655.deletionIndicator) AND isnotnull(item#1138655.completeIndicator)) AND isnotnull(item#1138655.returnIndicator)) AND ((NOT item#1138655.deletionIndicator AND NOT item#1138655.completeIndicator) AND NOT item#1138655.returnIndicator)) AND isnotnull(item#1138655.product.internalRefUUID))
(1675) Project
Output [9]: [id#1138648, internalUUID#1138647, supplier#1138650.internalRefUUID AS supplierUuid#1138656, item#1138655.product.internalRefUUID AS product#1138658, item#1138655.quantityUnit.code AS quantityUom#1138662, item#1138655.quantityUnit.internalRefUUID AS quantityUomUuid#1138663, item#1138655.quantityNumerator AS quantityNumerator#1138664, item#1138655.quantityDenominator AS quantityDenominator#1138665, item#1138655.scheduleLines AS scheduleLines#1138666]
Input [4]: [internalUUID#1138647, id#1138648, supplier#1138650, item#1138655]
(1676) BroadcastExchange
Input [9]: [id#1138648, internalUUID#1138647, supplierUuid#1138656, product#1138658, quantityUom#1138662, quantityUomUuid#1138663, quantityNumerator#1138664, quantityDenominator#1138665, scheduleLines#1138666]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, string, true], ), isnull(input[3, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true])),false), [plan_id=1718170]
(1677) BroadcastHashJoin
Left keys [4]: [coalesce(product#1137981, ), isnull(product#1137981), coalesce(plant#1137982, ), isnull(plant#1137982)]
Right keys [4]: [coalesce(product#1138658, ), isnull(product#1138658), coalesce(supplierUuid#1138656, ), isnull(supplierUuid#1138656)]
Join type: Inner
Join condition: None
(1678) Project
Output [3]: [product#1138658, plant#1137982, filter(transform(filter(transform(scheduleLines#1138666, lambdafunction(struct(openQty, (greatest((lambda x_134#1137959.quantity - coalesce(lambda x_134#1137959.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_134#1137959.productAvailabilityDateTime, lambda x_134#1137959.deliveryAt)), lambda x_134#1137959, false)), lambdafunction((lambda x_135#1137960.availabilityDatetime < stockDatetime#1138303), lambda x_135#1137960, false)), lambdafunction(struct(documentId, id#1138648, documentUuid, internalUUID#1138647, openQty, lambda x_136#1137961.openQty, openQtyInBaseUnit, ((lambda x_136#1137961.openQty * quantityNumerator#1138664) / quantityDenominator#1138665), qtyUom, quantityUom#1138662, qtyUomUuid, quantityUomUuid#1138663, availabilityDatetime, lambda x_136#1137961.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_136#1137961, false)), lambdafunction(NOT (lambda x_137#1137962.openQty = 0.0), lambda x_137#1137962, false)) AS openGoodsMovements#1137958]
Input [12]: [product#1137981, plant#1137982, stockDatetime#1138303, id#1138648, internalUUID#1138647, supplierUuid#1138656, product#1138658, quantityUom#1138662, quantityUomUuid#1138663, quantityNumerator#1138664, quantityDenominator#1138665, scheduleLines#1138666]
(1679) ObjectHashAggregate
Input [3]: [product#1138658, plant#1137982, openGoodsMovements#1137958]
Keys [2]: [product#1138658, plant#1137982]
Functions [1]: [partial_collect_list(openGoodsMovements#1137958, 0, 0)]
Aggregate Attributes [1]: [buf#1143940]
Results [3]: [product#1138658, plant#1137982, buf#1143941]
(1680) Exchange
Input [3]: [product#1138658, plant#1137982, buf#1143941]
Arguments: hashpartitioning(product#1138658, plant#1137982, 37), ENSURE_REQUIREMENTS, [plan_id=1718175]
(1681) ObjectHashAggregate
Input [3]: [product#1138658, plant#1137982, buf#1143941]
Keys [2]: [product#1138658, plant#1137982]
Functions [1]: [collect_list(openGoodsMovements#1137958, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1137958, 0, 0)#1137980]
Results [3]: [product#1138658, plant#1137982, flatten(collect_list(openGoodsMovements#1137958, 0, 0)#1137980) AS openGoodsMovements#1137963]
(1682) Filter
Input [3]: [product#1138658, plant#1137982, openGoodsMovements#1137963]
Condition : (size(openGoodsMovements#1137963, false) > 0)
(1683) Union
(1684) ObjectHashAggregate
Input [3]: [product#1136540, plant#1136539, openGoodsMovements#1137658]
Keys [2]: [product#1136540, plant#1136539]
Functions [1]: [partial_collect_list(openGoodsMovements#1137658, 0, 0)]
Aggregate Attributes [1]: [buf#1143938]
Results [3]: [product#1136540, plant#1136539, buf#1143939]
(1685) Exchange
Input [3]: [product#1136540, plant#1136539, buf#1143939]
Arguments: hashpartitioning(product#1136540, plant#1136539, 37), ENSURE_REQUIREMENTS, [plan_id=1718181]
(1686) ObjectHashAggregate
Input [3]: [product#1136540, plant#1136539, buf#1143939]
Keys [2]: [product#1136540, plant#1136539]
Functions [1]: [collect_list(openGoodsMovements#1137658, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1137658, 0, 0)#1138722]
Results [3]: [product#1136540, plant#1136539, flatten(collect_list(openGoodsMovements#1137658, 0, 0)#1138722) AS openGoodsMovements#1138718]
(1687) Project
Output [5]: [product#1136540, plant#1136539, openGoodsMovements#1138718.openQtyInBaseUnit AS _extract_openQtyInBaseUnit#1142380, openGoodsMovements#1138718.availabilityDatetime AS _extract_availabilityDatetime#1142381, openGoodsMovements#1138718.shelfLifeEndDatetime AS _extract_shelfLifeEndDatetime#1142382]
Input [3]: [product#1136540, plant#1136539, openGoodsMovements#1138718]
(1688) Sort
Input [5]: [product#1136540, plant#1136539, _extract_openQtyInBaseUnit#1142380, _extract_availabilityDatetime#1142381, _extract_shelfLifeEndDatetime#1142382]
Arguments: [product#1136540 ASC NULLS FIRST, plant#1136539 ASC NULLS FIRST], false, 0
(1689) SortMergeJoin
Left keys [2]: [product#1135691, plant#1135692]
Right keys [2]: [product#1136540, plant#1136539]
Join type: LeftOuter
Join condition: None
(1690) Project
Output [10]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172, coalesce(_extract_openQtyInBaseUnit#1142380, []) AS openGoodsMovementQuantities#1139437, coalesce(_extract_availabilityDatetime#1142381, []) AS openGoodsMovementAvailabilityDatetimes#1139438, coalesce(_extract_shelfLifeEndDatetime#1142382, []) AS openGoodsMovementShelfLifeEndDatetimes#1139439]
Input [12]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172, product#1136540, plant#1136539, _extract_openQtyInBaseUnit#1142380, _extract_availabilityDatetime#1142381, _extract_shelfLifeEndDatetime#1142382]
(1691) Scan parquet
Output [3]: [product#1139739, plant#1139740, orderDateTime#1139741]
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>
(1692) Exchange
Input [3]: [product#1139739, plant#1139740, orderDateTime#1139741]
Arguments: hashpartitioning(product#1139739, plant#1139740, 37), REPARTITION_BY_NUM, [plan_id=1716036]
(1693) Scan parquet
Output [8]: [internalUUID#1139744, plant#1139745, product#1139746, blockedForReplenishmentStartingFrom#1139747, productionAspect#1139748, salesPlant#1139749, listing#1139750, systemId#1139743]
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>>>
(1694) Project
Output [8]: [systemId#1139743, internalUUID#1139744, plant#1139745, product#1139746, blockedForReplenishmentStartingFrom#1139747, productionAspect#1139748, salesPlant#1139749, listing#1139750]
Input [8]: [internalUUID#1139744, plant#1139745, product#1139746, blockedForReplenishmentStartingFrom#1139747, productionAspect#1139748, salesPlant#1139749, listing#1139750, systemId#1139743]
(1695) Exchange
Input [8]: [systemId#1139743, internalUUID#1139744, plant#1139745, product#1139746, blockedForReplenishmentStartingFrom#1139747, productionAspect#1139748, salesPlant#1139749, listing#1139750]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716039]
(1696) Project
Output [1]: [struct(systemId, systemId#1139743, internalUUID, internalUUID#1139744, plant, plant#1139745, product, product#1139746, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1139747, productionAspect, productionAspect#1139748, salesPlant, salesPlant#1139749, listing, listing#1139750) AS productPlant#1139751]
Input [8]: [systemId#1139743, internalUUID#1139744, plant#1139745, product#1139746, blockedForReplenishmentStartingFrom#1139747, productionAspect#1139748, salesPlant#1139749, listing#1139750]
(1697) BroadcastExchange
Input [1]: [productPlant#1139751]
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=1718191]
(1698) BroadcastHashJoin
Left keys [4]: [coalesce(product#1139739, ), isnull(product#1139739), coalesce(plant#1139740, ), isnull(plant#1139740)]
Right keys [4]: [coalesce(productPlant#1139751.product.internalRefUUID, ), isnull(productPlant#1139751.product.internalRefUUID), coalesce(productPlant#1139751.plant.internalRefUUID, ), isnull(productPlant#1139751.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(1699) Scan parquet
Output [3]: [internalUUID#1139753, address#1139759, systemId#1139752]
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>>>
(1700) Project
Output [2]: [internalUUID#1139753, address#1139759.timeZone.code AS timezonecode#1139764]
Input [3]: [internalUUID#1139753, address#1139759, systemId#1139752]
(1701) Exchange
Input [2]: [internalUUID#1139753, timezonecode#1139764]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716044]
(1702) BroadcastExchange
Input [2]: [internalUUID#1139753, timezonecode#1139764]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718194]
(1703) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1139740, ), isnull(plant#1139740)]
Right keys [2]: [coalesce(internalUUID#1139753, ), isnull(internalUUID#1139753)]
Join type: LeftOuter
Join condition: None
(1704) Project
Output [5]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, CASE WHEN isnotnull(timezonecode#1139764) THEN timezonecode#1139764 ELSE UTC END AS timezonecode#1139765]
Input [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, internalUUID#1139753, timezonecode#1139764]
(1705) Scan parquet
Output [4]: [internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773, systemId#1139766]
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>>>
(1706) Filter
Input [4]: [internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773, systemId#1139766]
Condition : isnotnull(internalUUID#1139767)
(1707) Project
Output [3]: [internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773]
Input [4]: [internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773, systemId#1139766]
(1708) Exchange
Input [3]: [internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716050]
(1709) BroadcastExchange
Input [3]: [internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718198]
(1710) BroadcastHashJoin
Left keys [1]: [product#1139739]
Right keys [1]: [internalUUID#1139767]
Join type: LeftOuter
Join condition: None
(1711) Project
Output [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, filter(unitOfMeasureConversions#1139773, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139771.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139771.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139778]
Input [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, internalUUID#1139767, baseUnitOfMeasure#1139771, unitOfMeasureConversions#1139773]
(1712) Project
Output [7]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, filteredUnitOfMeasureConversions#1139778.quantityDenominator AS _extract_quantityDenominator#1142500, filteredUnitOfMeasureConversions#1139778.quantityNumerator AS _extract_quantityNumerator#1142501]
Input [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, filteredUnitOfMeasureConversions#1139778]
(1713) Generate
Input [7]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, _extract_quantityDenominator#1142500, _extract_quantityNumerator#1142501]
Arguments: explode(_extract_quantityNumerator#1142501), [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, _extract_quantityDenominator#1142500], true, [quantityNumerator#1139779]
(1714) Generate
Input [7]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, _extract_quantityDenominator#1142500, quantityNumerator#1139779]
Arguments: explode(_extract_quantityDenominator#1142500), [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, quantityNumerator#1139779], true, [quantityDenominator#1139780]
(1715) Project
Output [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, (cast(quantityNumerator#1139779 as double) / cast(quantityDenominator#1139780 as double)) AS outboundUnit#1139781]
Input [7]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, quantityNumerator#1139779, quantityDenominator#1139780]
(1716) Project
Output [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, CASE WHEN (isnull(outboundUnit#1139781) OR (outboundUnit#1139781 <= 0.0)) THEN 1.0 ELSE outboundUnit#1139781 END AS outboundUnit#1139782]
Input [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139781]
(1717) Sort
Input [6]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782]
Arguments: [product#1139739 ASC NULLS FIRST, plant#1139740 ASC NULLS FIRST], false, 0
(1718) Scan parquet
Output [6]: [internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788, systemId#1139783]
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>>>>>
(1719) Filter
Input [6]: [internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788, systemId#1139783]
Condition : (isnotnull(plant#1139786.internalRefUUID) AND isnotnull(product#1139785.internalRefUUID))
(1720) Project
Output [6]: [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788]
Input [6]: [internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788, systemId#1139783]
(1721) Exchange
Input [6]: [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716061]
(1722) BroadcastExchange
Input [6]: [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788]
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=1718230]
(1723) Scan parquet
Output [2]: [marketUnit#1139789, distributionCenters#1139795]
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>>>>>
(1724) Filter
Input [2]: [marketUnit#1139789, distributionCenters#1139795]
Condition : (((marketUnit#1139789 <=> Alert_Test1) AND (size(distributionCenters#1139795, true) > 0)) AND isnotnull(distributionCenters#1139795))
(1725) Project
Output [1]: [distributionCenters#1139795]
Input [2]: [marketUnit#1139789, distributionCenters#1139795]
(1726) Exchange
Input [1]: [distributionCenters#1139795]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716065]
(1727) Generate
Input [1]: [distributionCenters#1139795]
Arguments: explode(distributionCenters#1139795), false, [distributionCenters#1139811]
(1728) Filter
Input [1]: [distributionCenters#1139811]
Condition : (((size(distributionCenters#1139811.storageLocations, true) > 0) AND isnotnull(distributionCenters#1139811.storageLocations)) AND isnotnull(distributionCenters#1139811.internalRefUUID))
(1729) Project
Output [2]: [distributionCenters#1139811.internalRefUUID AS _extract_internalRefUUID#1142292, distributionCenters#1139811.storageLocations AS _extract_storageLocations#1142293]
Input [1]: [distributionCenters#1139811]
(1730) Generate
Input [2]: [_extract_internalRefUUID#1142292, _extract_storageLocations#1142293]
Arguments: explode(_extract_storageLocations#1142293), [_extract_internalRefUUID#1142292], false, [storageLocations#1139812]
(1731) Project
Output [3]: [_extract_internalRefUUID#1142292 AS plantUuid#1139814, storageLocations#1139812.id AS storageLocId#1139815, storageLocations#1139812.internalRefUUID AS storageLocUuid#1139816]
Input [2]: [_extract_internalRefUUID#1142292, storageLocations#1139812]
(1732) BroadcastExchange
Input [3]: [plantUuid#1139814, storageLocId#1139815, storageLocUuid#1139816]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718226]
(1733) Scan parquet
Output [2]: [product#1139817, plant#1139818]
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>
(1734) Filter
Input [2]: [product#1139817, plant#1139818]
Condition : isnotnull(plant#1139818)
(1735) Exchange
Input [2]: [product#1139817, plant#1139818]
Arguments: hashpartitioning(product#1139817, plant#1139818, 37), REPARTITION_BY_NUM, [plan_id=1717188]
(1736) Scan parquet
Output [4]: [plant#1139823, product#1139824, productionAspect#1139826, systemId#1139821]
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>>>>
(1737) Project
Output [4]: [plant#1139823.internalRefUUID AS _extract_internalRefUUID#1142963, product#1139824.internalRefUUID AS _extract_internalRefUUID#1142960, productionAspect#1139826.productMovementPlants.unitOfIssue.code AS _extract_code#1142961, productionAspect#1139826.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142962]
Input [4]: [plant#1139823, product#1139824, productionAspect#1139826, systemId#1139821]
(1738) Exchange
Input [4]: [_extract_internalRefUUID#1142963, _extract_internalRefUUID#1142960, _extract_code#1142961, _extract_internalRefUUID#1142962]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716077]
(1739) Project
Output [4]: [_extract_code#1142961, _extract_internalRefUUID#1142962, _extract_internalRefUUID#1142960, _extract_internalRefUUID#1142963]
Input [4]: [_extract_internalRefUUID#1142963, _extract_internalRefUUID#1142960, _extract_code#1142961, _extract_internalRefUUID#1142962]
(1740) BroadcastExchange
Input [4]: [_extract_code#1142961, _extract_internalRefUUID#1142962, _extract_internalRefUUID#1142960, _extract_internalRefUUID#1142963]
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=1718206]
(1741) BroadcastHashJoin
Left keys [4]: [coalesce(product#1139817, ), isnull(product#1139817), coalesce(plant#1139818, ), isnull(plant#1139818)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142960, ), isnull(_extract_internalRefUUID#1142960), coalesce(_extract_internalRefUUID#1142963, ), isnull(_extract_internalRefUUID#1142963)]
Join type: LeftOuter
Join condition: None
(1742) Project
Output [4]: [product#1139817, plant#1139818, _extract_code#1142961, _extract_internalRefUUID#1142962]
Input [6]: [product#1139817, plant#1139818, _extract_code#1142961, _extract_internalRefUUID#1142962, _extract_internalRefUUID#1142960, _extract_internalRefUUID#1142963]
(1743) Scan parquet
Output [2]: [internalUUID#1139831, systemId#1139830]
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>
(1744) Project
Output [1]: [internalUUID#1139831]
Input [2]: [internalUUID#1139831, systemId#1139830]
(1745) Exchange
Input [1]: [internalUUID#1139831]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716083]
(1746) BroadcastExchange
Input [1]: [internalUUID#1139831]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718210]
(1747) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1139818, ), isnull(plant#1139818)]
Right keys [2]: [coalesce(internalUUID#1139831, ), isnull(internalUUID#1139831)]
Join type: LeftOuter
Join condition: None
(1748) Project
Output [4]: [product#1139817, plant#1139818, _extract_code#1142961, _extract_internalRefUUID#1142962]
Input [5]: [product#1139817, plant#1139818, _extract_code#1142961, _extract_internalRefUUID#1142962, internalUUID#1139831]
(1749) Scan parquet
Output [4]: [internalUUID#1139845, baseUnitOfMeasure#1139849, unitOfMeasureConversions#1139851, systemId#1139844]
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>>>
(1750) Filter
Input [4]: [internalUUID#1139845, baseUnitOfMeasure#1139849, unitOfMeasureConversions#1139851, systemId#1139844]
Condition : isnotnull(internalUUID#1139845)
(1751) Project
Output [3]: [internalUUID#1139845, baseUnitOfMeasure#1139849, unitOfMeasureConversions#1139851]
Input [4]: [internalUUID#1139845, baseUnitOfMeasure#1139849, unitOfMeasureConversions#1139851, systemId#1139844]
(1752) Exchange
Input [3]: [internalUUID#1139845, baseUnitOfMeasure#1139849, unitOfMeasureConversions#1139851]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716089]
(1753) BroadcastExchange
Input [3]: [internalUUID#1139845, baseUnitOfMeasure#1139849, unitOfMeasureConversions#1139851]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718214]
(1754) BroadcastHashJoin
Left keys [1]: [product#1139817]
Right keys [1]: [internalUUID#1139845]
Join type: LeftOuter
Join condition: None
(1755) Project
Output [2]: [plant#1139818, filter(unitOfMeasureConversions#1139851, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142961) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142962)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139849.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139849.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139856]
Input [7]: [product#1139817, plant#1139818, _extract_code#1142961, _extract_internalRefUUID#1142962, internalUUID#1139845, baseUnitOfMeasure#1139849, unitOfMeasureConversions#1139851]
(1756) Generate
Input [2]: [plant#1139818, filteredUnitOfMeasureConversions#1139856]
Arguments: explode(filteredUnitOfMeasureConversions#1139856.quantityNumerator), [plant#1139818, filteredUnitOfMeasureConversions#1139856], true, [quantityNumerator#1139857]
(1757) Project
Output [2]: [plant#1139818, filteredUnitOfMeasureConversions#1139856.quantityDenominator AS _extract_quantityDenominator#1142294]
Input [3]: [plant#1139818, filteredUnitOfMeasureConversions#1139856, quantityNumerator#1139857]
(1758) Generate
Input [2]: [plant#1139818, _extract_quantityDenominator#1142294]
Arguments: explode(_extract_quantityDenominator#1142294), [plant#1139818], true, [quantityDenominator#1139858]
(1759) Project
Output [1]: [plant#1139818]
Input [2]: [plant#1139818, quantityDenominator#1139858]
(1760) HashAggregate
Input [1]: [plant#1139818]
Keys [1]: [plant#1139818]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1139818]
(1761) Exchange
Input [1]: [plant#1139818]
Arguments: hashpartitioning(plant#1139818, 37), ENSURE_REQUIREMENTS, [plan_id=1718223]
(1762) HashAggregate
Input [1]: [plant#1139818]
Keys [1]: [plant#1139818]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1139818]
(1763) BroadcastHashJoin
Left keys [1]: [plantUuid#1139814]
Right keys [1]: [plant#1139818]
Join type: Inner
Join condition: None
(1764) Project
Output [3]: [plantUuid#1139814, storageLocId#1139815, storageLocUuid#1139816]
Input [4]: [plantUuid#1139814, storageLocId#1139815, storageLocUuid#1139816, plant#1139818]
(1765) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1139786.internalRefUUID, ), isnull(plant#1139786.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1139814, ), isnull(plantUuid#1139814)]
Join type: Inner
Join condition: None
(1766) Generate
Input [9]: [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, stockQuantities#1139788, plantUuid#1139814, storageLocId#1139815, storageLocUuid#1139816]
Arguments: explode(filter(stockQuantities#1139788, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1139816) AND (lambda x#1135796.storageLocation.Id = storageLocId#1139815)), lambda x#1135796, false))), [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, plantUuid#1139814], false, [stockQuantity#1139861]
(1767) ObjectHashAggregate
Input [7]: [systemId#1139783, internalUUID#1139784, product#1139785, plant#1139786, calculationDateTime#1139787, plantUuid#1139814, stockQuantity#1139861]
Keys [5]: [plantUuid#1139814, internalUUID#1139784, plant#1139786, product#1139785, systemId#1139783]
Functions [2]: [partial_first(calculationDateTime#1139787, false), partial_collect_list(stockQuantity#1139861, 0, 0)]
Aggregate Attributes [3]: [first#1143984, valueSet#1143985, buf#1143986]
Results [8]: [plantUuid#1139814, internalUUID#1139784, plant#1139786, product#1139785, systemId#1139783, first#1143987, valueSet#1143988, buf#1143989]
(1768) ObjectHashAggregate
Input [8]: [plantUuid#1139814, internalUUID#1139784, plant#1139786, product#1139785, systemId#1139783, first#1143987, valueSet#1143988, buf#1143989]
Keys [5]: [plantUuid#1139814, internalUUID#1139784, plant#1139786, product#1139785, systemId#1139783]
Functions [2]: [first(calculationDateTime#1139787, false), collect_list(stockQuantity#1139861, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1139787)()#1135811, collect_list(stockQuantity#1139861, 0, 0)#1135812]
Results [4]: [product#1139785, plant#1139786, first(calculationDateTime#1139787)()#1135811 AS calculationDateTime#1139862, collect_list(stockQuantity#1139861, 0, 0)#1135812 AS stockQuantities#1139863]
(1769) Filter
Input [4]: [product#1139785, plant#1139786, calculationDateTime#1139862, stockQuantities#1139863]
Condition : ((size(stockQuantities#1139863, true) > 0) AND isnotnull(calculationDateTime#1139862))
(1770) Generate
Input [4]: [product#1139785, plant#1139786, calculationDateTime#1139862, stockQuantities#1139863]
Arguments: explode(stockQuantities#1139863), [product#1139785, plant#1139786, calculationDateTime#1139862], false, [stockQuantity#1139864]
(1771) Filter
Input [4]: [product#1139785, plant#1139786, calculationDateTime#1139862, stockQuantity#1139864]
Condition : (((isnotnull(stockQuantity#1139864.specialStockIndicator.code) AND isnotnull(stockQuantity#1139864.stockType.code)) AND (stockQuantity#1139864.specialStockIndicator.code = )) AND (stockQuantity#1139864.stockType.code = 01))
(1772) Project
Output [5]: [plant#1139786.internalRefUUID AS plantUuid#1139866, product#1139785.internalRefUUID AS productUuid#1139868, calculationDateTime#1139862, stockQuantity#1139864.storagelocation.id AS storageLocId#1139869, stockQuantity#1139864.quantity.measure AS quantity#1139871]
Input [4]: [product#1139785, plant#1139786, calculationDateTime#1139862, stockQuantity#1139864]
(1773) Exchange
Input [5]: [plantUuid#1139866, productUuid#1139868, calculationDateTime#1139862, storageLocId#1139869, quantity#1139871]
Arguments: hashpartitioning(productUuid#1139868, plantUuid#1139866, 37), ENSURE_REQUIREMENTS, [plan_id=1718256]
(1774) Sort
Input [5]: [plantUuid#1139866, productUuid#1139868, calculationDateTime#1139862, storageLocId#1139869, quantity#1139871]
Arguments: [productUuid#1139868 ASC NULLS FIRST, plantUuid#1139866 ASC NULLS FIRST], false, 0
(1775) Scan parquet
Output [3]: [product#1139874, plant#1139875, orderDateTime#1139876]
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>
(1776) Filter
Input [3]: [product#1139874, plant#1139875, orderDateTime#1139876]
Condition : ((isnotnull(orderDateTime#1139876) AND isnotnull(plant#1139875)) AND isnotnull(product#1139874))
(1777) Exchange
Input [3]: [product#1139874, plant#1139875, orderDateTime#1139876]
Arguments: hashpartitioning(product#1139874, plant#1139875, 37), REPARTITION_BY_NUM, [plan_id=1717211]
(1778) Scan parquet
Output [4]: [plant#1139880, product#1139881, productionAspect#1139883, systemId#1139878]
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>>>>
(1779) Project
Output [4]: [plant#1139880.internalRefUUID AS _extract_internalRefUUID#1142967, product#1139881.internalRefUUID AS _extract_internalRefUUID#1142964, productionAspect#1139883.productMovementPlants.unitOfIssue.code AS _extract_code#1142965, productionAspect#1139883.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142966]
Input [4]: [plant#1139880, product#1139881, productionAspect#1139883, systemId#1139878]
(1780) Exchange
Input [4]: [_extract_internalRefUUID#1142967, _extract_internalRefUUID#1142964, _extract_code#1142965, _extract_internalRefUUID#1142966]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716114]
(1781) Project
Output [4]: [_extract_code#1142965, _extract_internalRefUUID#1142966, _extract_internalRefUUID#1142964, _extract_internalRefUUID#1142967]
Input [4]: [_extract_internalRefUUID#1142967, _extract_internalRefUUID#1142964, _extract_code#1142965, _extract_internalRefUUID#1142966]
(1782) BroadcastExchange
Input [4]: [_extract_code#1142965, _extract_internalRefUUID#1142966, _extract_internalRefUUID#1142964, _extract_internalRefUUID#1142967]
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=1718239]
(1783) BroadcastHashJoin
Left keys [4]: [coalesce(product#1139874, ), isnull(product#1139874), coalesce(plant#1139875, ), isnull(plant#1139875)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142964, ), isnull(_extract_internalRefUUID#1142964), coalesce(_extract_internalRefUUID#1142967, ), isnull(_extract_internalRefUUID#1142967)]
Join type: LeftOuter
Join condition: None
(1784) Project
Output [5]: [product#1139874, plant#1139875, orderDateTime#1139876, _extract_code#1142965, _extract_internalRefUUID#1142966]
Input [7]: [product#1139874, plant#1139875, orderDateTime#1139876, _extract_code#1142965, _extract_internalRefUUID#1142966, _extract_internalRefUUID#1142964, _extract_internalRefUUID#1142967]
(1785) Scan parquet
Output [2]: [internalUUID#1139888, systemId#1139887]
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>
(1786) Project
Output [1]: [internalUUID#1139888]
Input [2]: [internalUUID#1139888, systemId#1139887]
(1787) Exchange
Input [1]: [internalUUID#1139888]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716120]
(1788) BroadcastExchange
Input [1]: [internalUUID#1139888]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718243]
(1789) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1139875, ), isnull(plant#1139875)]
Right keys [2]: [coalesce(internalUUID#1139888, ), isnull(internalUUID#1139888)]
Join type: LeftOuter
Join condition: None
(1790) Project
Output [5]: [product#1139874, plant#1139875, orderDateTime#1139876, _extract_code#1142965, _extract_internalRefUUID#1142966]
Input [6]: [product#1139874, plant#1139875, orderDateTime#1139876, _extract_code#1142965, _extract_internalRefUUID#1142966, internalUUID#1139888]
(1791) Scan parquet
Output [4]: [internalUUID#1139902, baseUnitOfMeasure#1139906, unitOfMeasureConversions#1139908, systemId#1139901]
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>>>
(1792) Filter
Input [4]: [internalUUID#1139902, baseUnitOfMeasure#1139906, unitOfMeasureConversions#1139908, systemId#1139901]
Condition : isnotnull(internalUUID#1139902)
(1793) Project
Output [3]: [internalUUID#1139902, baseUnitOfMeasure#1139906, unitOfMeasureConversions#1139908]
Input [4]: [internalUUID#1139902, baseUnitOfMeasure#1139906, unitOfMeasureConversions#1139908, systemId#1139901]
(1794) Exchange
Input [3]: [internalUUID#1139902, baseUnitOfMeasure#1139906, unitOfMeasureConversions#1139908]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716126]
(1795) BroadcastExchange
Input [3]: [internalUUID#1139902, baseUnitOfMeasure#1139906, unitOfMeasureConversions#1139908]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718247]
(1796) BroadcastHashJoin
Left keys [1]: [product#1139874]
Right keys [1]: [internalUUID#1139902]
Join type: LeftOuter
Join condition: None
(1797) Project
Output [4]: [product#1139874, plant#1139875, orderDateTime#1139876, filter(unitOfMeasureConversions#1139908, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142965) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142966)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139906.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139906.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139913]
Input [8]: [product#1139874, plant#1139875, orderDateTime#1139876, _extract_code#1142965, _extract_internalRefUUID#1142966, internalUUID#1139902, baseUnitOfMeasure#1139906, unitOfMeasureConversions#1139908]
(1798) Generate
Input [4]: [product#1139874, plant#1139875, orderDateTime#1139876, filteredUnitOfMeasureConversions#1139913]
Arguments: explode(filteredUnitOfMeasureConversions#1139913.quantityNumerator), [product#1139874, plant#1139875, orderDateTime#1139876, filteredUnitOfMeasureConversions#1139913], true, [quantityNumerator#1139914]
(1799) Project
Output [4]: [product#1139874, plant#1139875, orderDateTime#1139876, filteredUnitOfMeasureConversions#1139913.quantityDenominator AS _extract_quantityDenominator#1142298]
Input [5]: [product#1139874, plant#1139875, orderDateTime#1139876, filteredUnitOfMeasureConversions#1139913, quantityNumerator#1139914]
(1800) Generate
Input [4]: [product#1139874, plant#1139875, orderDateTime#1139876, _extract_quantityDenominator#1142298]
Arguments: explode(_extract_quantityDenominator#1142298), [product#1139874, plant#1139875, orderDateTime#1139876], true, [quantityDenominator#1139915]
(1801) Project
Output [3]: [product#1139874, plant#1139875, orderDateTime#1139876]
Input [4]: [product#1139874, plant#1139875, orderDateTime#1139876, quantityDenominator#1139915]
(1802) Sort
Input [3]: [product#1139874, plant#1139875, orderDateTime#1139876]
Arguments: [product#1139874 ASC NULLS FIRST, plant#1139875 ASC NULLS FIRST], false, 0
(1803) SortMergeJoin
Left keys [2]: [productUuid#1139868, plantUuid#1139866]
Right keys [2]: [product#1139874, plant#1139875]
Join type: Inner
Join condition: (calculationDateTime#1139862 <= orderDateTime#1139876)
(1804) Project
Output [5]: [plantUuid#1139866 AS plant#1139918, productUuid#1139868 AS product#1139919, storageLocId#1139869, calculationDateTime#1139862, quantity#1139871]
Input [8]: [plantUuid#1139866, productUuid#1139868, calculationDateTime#1139862, storageLocId#1139869, quantity#1139871, product#1139874, plant#1139875, orderDateTime#1139876]
(1805) Exchange
Input [5]: [plant#1139918, product#1139919, storageLocId#1139869, calculationDateTime#1139862, quantity#1139871]
Arguments: hashpartitioning(coalesce(plant#1139918, ), isnull(plant#1139918), coalesce(product#1139919, ), isnull(product#1139919), coalesce(storageLocId#1139869, ), isnull(storageLocId#1139869), coalesce(calculationDateTime#1139862, 1970-01-01 00:00:00), isnull(calculationDateTime#1139862), 37), ENSURE_REQUIREMENTS, [plan_id=1718320]
(1806) Sort
Input [5]: [plant#1139918, product#1139919, storageLocId#1139869, calculationDateTime#1139862, quantity#1139871]
Arguments: [coalesce(plant#1139918, ) ASC NULLS FIRST, isnull(plant#1139918) ASC NULLS FIRST, coalesce(product#1139919, ) ASC NULLS FIRST, isnull(product#1139919) ASC NULLS FIRST, coalesce(storageLocId#1139869, ) ASC NULLS FIRST, isnull(storageLocId#1139869) ASC NULLS FIRST, coalesce(calculationDateTime#1139862, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1139862) ASC NULLS FIRST], false, 0
(1807) Scan parquet
Output [6]: [internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925, systemId#1139920]
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>>>>>
(1808) Filter
Input [6]: [internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925, systemId#1139920]
Condition : (isnotnull(plant#1139923.internalRefUUID) AND isnotnull(product#1139922.internalRefUUID))
(1809) Project
Output [6]: [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925]
Input [6]: [internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925, systemId#1139920]
(1810) Exchange
Input [6]: [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716138]
(1811) BroadcastExchange
Input [6]: [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925]
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=1718285]
(1812) Scan parquet
Output [2]: [marketUnit#1139926, distributionCenters#1139932]
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>>>>>
(1813) Filter
Input [2]: [marketUnit#1139926, distributionCenters#1139932]
Condition : (((marketUnit#1139926 <=> Alert_Test1) AND (size(distributionCenters#1139932, true) > 0)) AND isnotnull(distributionCenters#1139932))
(1814) Project
Output [1]: [distributionCenters#1139932]
Input [2]: [marketUnit#1139926, distributionCenters#1139932]
(1815) Exchange
Input [1]: [distributionCenters#1139932]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716142]
(1816) Generate
Input [1]: [distributionCenters#1139932]
Arguments: explode(distributionCenters#1139932), false, [distributionCenters#1139948]
(1817) Filter
Input [1]: [distributionCenters#1139948]
Condition : (((size(distributionCenters#1139948.storageLocations, true) > 0) AND isnotnull(distributionCenters#1139948.storageLocations)) AND isnotnull(distributionCenters#1139948.internalRefUUID))
(1818) Project
Output [2]: [distributionCenters#1139948.internalRefUUID AS _extract_internalRefUUID#1142302, distributionCenters#1139948.storageLocations AS _extract_storageLocations#1142303]
Input [1]: [distributionCenters#1139948]
(1819) Generate
Input [2]: [_extract_internalRefUUID#1142302, _extract_storageLocations#1142303]
Arguments: explode(_extract_storageLocations#1142303), [_extract_internalRefUUID#1142302], false, [storageLocations#1139949]
(1820) Project
Output [3]: [_extract_internalRefUUID#1142302 AS plantUuid#1139951, storageLocations#1139949.id AS storageLocId#1139952, storageLocations#1139949.internalRefUUID AS storageLocUuid#1139953]
Input [2]: [_extract_internalRefUUID#1142302, storageLocations#1139949]
(1821) BroadcastExchange
Input [3]: [plantUuid#1139951, storageLocId#1139952, storageLocUuid#1139953]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718281]
(1822) Scan parquet
Output [2]: [product#1139954, plant#1139955]
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>
(1823) Filter
Input [2]: [product#1139954, plant#1139955]
Condition : isnotnull(plant#1139955)
(1824) Exchange
Input [2]: [product#1139954, plant#1139955]
Arguments: hashpartitioning(product#1139954, plant#1139955, 37), REPARTITION_BY_NUM, [plan_id=1717224]
(1825) Scan parquet
Output [4]: [plant#1139960, product#1139961, productionAspect#1139963, systemId#1139958]
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>>>>
(1826) Project
Output [4]: [plant#1139960.internalRefUUID AS _extract_internalRefUUID#1142968, product#1139961.internalRefUUID AS _extract_internalRefUUID#1142969, productionAspect#1139963.productMovementPlants.unitOfIssue.code AS _extract_code#1142970, productionAspect#1139963.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142971]
Input [4]: [plant#1139960, product#1139961, productionAspect#1139963, systemId#1139958]
(1827) Exchange
Input [4]: [_extract_internalRefUUID#1142968, _extract_internalRefUUID#1142969, _extract_code#1142970, _extract_internalRefUUID#1142971]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716154]
(1828) Project
Output [4]: [_extract_code#1142970, _extract_internalRefUUID#1142971, _extract_internalRefUUID#1142969, _extract_internalRefUUID#1142968]
Input [4]: [_extract_internalRefUUID#1142968, _extract_internalRefUUID#1142969, _extract_code#1142970, _extract_internalRefUUID#1142971]
(1829) BroadcastExchange
Input [4]: [_extract_code#1142970, _extract_internalRefUUID#1142971, _extract_internalRefUUID#1142969, _extract_internalRefUUID#1142968]
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=1718261]
(1830) BroadcastHashJoin
Left keys [4]: [coalesce(product#1139954, ), isnull(product#1139954), coalesce(plant#1139955, ), isnull(plant#1139955)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142969, ), isnull(_extract_internalRefUUID#1142969), coalesce(_extract_internalRefUUID#1142968, ), isnull(_extract_internalRefUUID#1142968)]
Join type: LeftOuter
Join condition: None
(1831) Project
Output [4]: [product#1139954, plant#1139955, _extract_code#1142970, _extract_internalRefUUID#1142971]
Input [6]: [product#1139954, plant#1139955, _extract_code#1142970, _extract_internalRefUUID#1142971, _extract_internalRefUUID#1142969, _extract_internalRefUUID#1142968]
(1832) Scan parquet
Output [2]: [internalUUID#1139968, systemId#1139967]
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>
(1833) Project
Output [1]: [internalUUID#1139968]
Input [2]: [internalUUID#1139968, systemId#1139967]
(1834) Exchange
Input [1]: [internalUUID#1139968]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716160]
(1835) BroadcastExchange
Input [1]: [internalUUID#1139968]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718265]
(1836) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1139955, ), isnull(plant#1139955)]
Right keys [2]: [coalesce(internalUUID#1139968, ), isnull(internalUUID#1139968)]
Join type: LeftOuter
Join condition: None
(1837) Project
Output [4]: [product#1139954, plant#1139955, _extract_code#1142970, _extract_internalRefUUID#1142971]
Input [5]: [product#1139954, plant#1139955, _extract_code#1142970, _extract_internalRefUUID#1142971, internalUUID#1139968]
(1838) Scan parquet
Output [4]: [internalUUID#1139982, baseUnitOfMeasure#1139986, unitOfMeasureConversions#1139988, systemId#1139981]
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>>>
(1839) Filter
Input [4]: [internalUUID#1139982, baseUnitOfMeasure#1139986, unitOfMeasureConversions#1139988, systemId#1139981]
Condition : isnotnull(internalUUID#1139982)
(1840) Project
Output [3]: [internalUUID#1139982, baseUnitOfMeasure#1139986, unitOfMeasureConversions#1139988]
Input [4]: [internalUUID#1139982, baseUnitOfMeasure#1139986, unitOfMeasureConversions#1139988, systemId#1139981]
(1841) Exchange
Input [3]: [internalUUID#1139982, baseUnitOfMeasure#1139986, unitOfMeasureConversions#1139988]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716166]
(1842) BroadcastExchange
Input [3]: [internalUUID#1139982, baseUnitOfMeasure#1139986, unitOfMeasureConversions#1139988]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718269]
(1843) BroadcastHashJoin
Left keys [1]: [product#1139954]
Right keys [1]: [internalUUID#1139982]
Join type: LeftOuter
Join condition: None
(1844) Project
Output [2]: [plant#1139955, filter(unitOfMeasureConversions#1139988, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142970) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142971)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1139986.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1139986.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1139993]
Input [7]: [product#1139954, plant#1139955, _extract_code#1142970, _extract_internalRefUUID#1142971, internalUUID#1139982, baseUnitOfMeasure#1139986, unitOfMeasureConversions#1139988]
(1845) Generate
Input [2]: [plant#1139955, filteredUnitOfMeasureConversions#1139993]
Arguments: explode(filteredUnitOfMeasureConversions#1139993.quantityNumerator), [plant#1139955, filteredUnitOfMeasureConversions#1139993], true, [quantityNumerator#1139994]
(1846) Project
Output [2]: [plant#1139955, filteredUnitOfMeasureConversions#1139993.quantityDenominator AS _extract_quantityDenominator#1142304]
Input [3]: [plant#1139955, filteredUnitOfMeasureConversions#1139993, quantityNumerator#1139994]
(1847) Generate
Input [2]: [plant#1139955, _extract_quantityDenominator#1142304]
Arguments: explode(_extract_quantityDenominator#1142304), [plant#1139955], true, [quantityDenominator#1139995]
(1848) Project
Output [1]: [plant#1139955]
Input [2]: [plant#1139955, quantityDenominator#1139995]
(1849) HashAggregate
Input [1]: [plant#1139955]
Keys [1]: [plant#1139955]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1139955]
(1850) Exchange
Input [1]: [plant#1139955]
Arguments: hashpartitioning(plant#1139955, 37), ENSURE_REQUIREMENTS, [plan_id=1718278]
(1851) HashAggregate
Input [1]: [plant#1139955]
Keys [1]: [plant#1139955]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1139955]
(1852) BroadcastHashJoin
Left keys [1]: [plantUuid#1139951]
Right keys [1]: [plant#1139955]
Join type: Inner
Join condition: None
(1853) Project
Output [3]: [plantUuid#1139951, storageLocId#1139952, storageLocUuid#1139953]
Input [4]: [plantUuid#1139951, storageLocId#1139952, storageLocUuid#1139953, plant#1139955]
(1854) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1139923.internalRefUUID, ), isnull(plant#1139923.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1139951, ), isnull(plantUuid#1139951)]
Join type: Inner
Join condition: None
(1855) Generate
Input [9]: [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, stockQuantities#1139925, plantUuid#1139951, storageLocId#1139952, storageLocUuid#1139953]
Arguments: explode(filter(stockQuantities#1139925, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1139953) AND (lambda x#1135796.storageLocation.Id = storageLocId#1139952)), lambda x#1135796, false))), [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, plantUuid#1139951], false, [stockQuantity#1139998]
(1856) ObjectHashAggregate
Input [7]: [systemId#1139920, internalUUID#1139921, product#1139922, plant#1139923, calculationDateTime#1139924, plantUuid#1139951, stockQuantity#1139998]
Keys [5]: [plantUuid#1139951, internalUUID#1139921, plant#1139923, product#1139922, systemId#1139920]
Functions [2]: [partial_first(calculationDateTime#1139924, false), partial_collect_list(stockQuantity#1139998, 0, 0)]
Aggregate Attributes [3]: [first#1143992, valueSet#1143993, buf#1143994]
Results [8]: [plantUuid#1139951, internalUUID#1139921, plant#1139923, product#1139922, systemId#1139920, first#1143995, valueSet#1143996, buf#1143997]
(1857) ObjectHashAggregate
Input [8]: [plantUuid#1139951, internalUUID#1139921, plant#1139923, product#1139922, systemId#1139920, first#1143995, valueSet#1143996, buf#1143997]
Keys [5]: [plantUuid#1139951, internalUUID#1139921, plant#1139923, product#1139922, systemId#1139920]
Functions [2]: [first(calculationDateTime#1139924, false), collect_list(stockQuantity#1139998, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1139924)()#1135811, collect_list(stockQuantity#1139998, 0, 0)#1135812]
Results [4]: [product#1139922, plant#1139923, first(calculationDateTime#1139924)()#1135811 AS calculationDateTime#1139999, collect_list(stockQuantity#1139998, 0, 0)#1135812 AS stockQuantities#1140000]
(1858) Filter
Input [4]: [product#1139922, plant#1139923, calculationDateTime#1139999, stockQuantities#1140000]
Condition : ((size(stockQuantities#1140000, true) > 0) AND isnotnull(calculationDateTime#1139999))
(1859) Generate
Input [4]: [product#1139922, plant#1139923, calculationDateTime#1139999, stockQuantities#1140000]
Arguments: explode(stockQuantities#1140000), [product#1139922, plant#1139923, calculationDateTime#1139999], false, [stockQuantity#1140001]
(1860) Filter
Input [4]: [product#1139922, plant#1139923, calculationDateTime#1139999, stockQuantity#1140001]
Condition : (((isnotnull(stockQuantity#1140001.specialStockIndicator.code) AND isnotnull(stockQuantity#1140001.stockType.code)) AND (stockQuantity#1140001.specialStockIndicator.code = )) AND (stockQuantity#1140001.stockType.code = 01))
(1861) Project
Output [4]: [plant#1139923.internalRefUUID AS plantUuid#1140003, product#1139922.internalRefUUID AS productUuid#1140005, calculationDateTime#1139999, stockQuantity#1140001.storagelocation.id AS storageLocId#1140006]
Input [4]: [product#1139922, plant#1139923, calculationDateTime#1139999, stockQuantity#1140001]
(1862) Exchange
Input [4]: [plantUuid#1140003, productUuid#1140005, calculationDateTime#1139999, storageLocId#1140006]
Arguments: hashpartitioning(productUuid#1140005, plantUuid#1140003, 37), ENSURE_REQUIREMENTS, [plan_id=1718311]
(1863) Sort
Input [4]: [plantUuid#1140003, productUuid#1140005, calculationDateTime#1139999, storageLocId#1140006]
Arguments: [productUuid#1140005 ASC NULLS FIRST, plantUuid#1140003 ASC NULLS FIRST], false, 0
(1864) Scan parquet
Output [3]: [product#1140011, plant#1140012, orderDateTime#1140013]
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>
(1865) Filter
Input [3]: [product#1140011, plant#1140012, orderDateTime#1140013]
Condition : ((isnotnull(orderDateTime#1140013) AND isnotnull(plant#1140012)) AND isnotnull(product#1140011))
(1866) Exchange
Input [3]: [product#1140011, plant#1140012, orderDateTime#1140013]
Arguments: hashpartitioning(product#1140011, plant#1140012, 37), REPARTITION_BY_NUM, [plan_id=1717247]
(1867) Scan parquet
Output [4]: [plant#1140017, product#1140018, productionAspect#1140020, systemId#1140015]
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>>>>
(1868) Project
Output [4]: [plant#1140017.internalRefUUID AS _extract_internalRefUUID#1142972, product#1140018.internalRefUUID AS _extract_internalRefUUID#1142973, productionAspect#1140020.productMovementPlants.unitOfIssue.code AS _extract_code#1142974, productionAspect#1140020.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142975]
Input [4]: [plant#1140017, product#1140018, productionAspect#1140020, systemId#1140015]
(1869) Exchange
Input [4]: [_extract_internalRefUUID#1142972, _extract_internalRefUUID#1142973, _extract_code#1142974, _extract_internalRefUUID#1142975]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716191]
(1870) Project
Output [4]: [_extract_code#1142974, _extract_internalRefUUID#1142975, _extract_internalRefUUID#1142973, _extract_internalRefUUID#1142972]
Input [4]: [_extract_internalRefUUID#1142972, _extract_internalRefUUID#1142973, _extract_code#1142974, _extract_internalRefUUID#1142975]
(1871) BroadcastExchange
Input [4]: [_extract_code#1142974, _extract_internalRefUUID#1142975, _extract_internalRefUUID#1142973, _extract_internalRefUUID#1142972]
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=1718294]
(1872) BroadcastHashJoin
Left keys [4]: [coalesce(product#1140011, ), isnull(product#1140011), coalesce(plant#1140012, ), isnull(plant#1140012)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142973, ), isnull(_extract_internalRefUUID#1142973), coalesce(_extract_internalRefUUID#1142972, ), isnull(_extract_internalRefUUID#1142972)]
Join type: LeftOuter
Join condition: None
(1873) Project
Output [5]: [product#1140011, plant#1140012, orderDateTime#1140013, _extract_code#1142974, _extract_internalRefUUID#1142975]
Input [7]: [product#1140011, plant#1140012, orderDateTime#1140013, _extract_code#1142974, _extract_internalRefUUID#1142975, _extract_internalRefUUID#1142973, _extract_internalRefUUID#1142972]
(1874) Scan parquet
Output [2]: [internalUUID#1140025, systemId#1140024]
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>
(1875) Project
Output [1]: [internalUUID#1140025]
Input [2]: [internalUUID#1140025, systemId#1140024]
(1876) Exchange
Input [1]: [internalUUID#1140025]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716197]
(1877) BroadcastExchange
Input [1]: [internalUUID#1140025]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718298]
(1878) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1140012, ), isnull(plant#1140012)]
Right keys [2]: [coalesce(internalUUID#1140025, ), isnull(internalUUID#1140025)]
Join type: LeftOuter
Join condition: None
(1879) Project
Output [5]: [product#1140011, plant#1140012, orderDateTime#1140013, _extract_code#1142974, _extract_internalRefUUID#1142975]
Input [6]: [product#1140011, plant#1140012, orderDateTime#1140013, _extract_code#1142974, _extract_internalRefUUID#1142975, internalUUID#1140025]
(1880) Scan parquet
Output [4]: [internalUUID#1140039, baseUnitOfMeasure#1140043, unitOfMeasureConversions#1140045, systemId#1140038]
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>>>
(1881) Filter
Input [4]: [internalUUID#1140039, baseUnitOfMeasure#1140043, unitOfMeasureConversions#1140045, systemId#1140038]
Condition : isnotnull(internalUUID#1140039)
(1882) Project
Output [3]: [internalUUID#1140039, baseUnitOfMeasure#1140043, unitOfMeasureConversions#1140045]
Input [4]: [internalUUID#1140039, baseUnitOfMeasure#1140043, unitOfMeasureConversions#1140045, systemId#1140038]
(1883) Exchange
Input [3]: [internalUUID#1140039, baseUnitOfMeasure#1140043, unitOfMeasureConversions#1140045]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716203]
(1884) BroadcastExchange
Input [3]: [internalUUID#1140039, baseUnitOfMeasure#1140043, unitOfMeasureConversions#1140045]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718302]
(1885) BroadcastHashJoin
Left keys [1]: [product#1140011]
Right keys [1]: [internalUUID#1140039]
Join type: LeftOuter
Join condition: None
(1886) Project
Output [4]: [product#1140011, plant#1140012, orderDateTime#1140013, filter(unitOfMeasureConversions#1140045, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142974) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142975)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140043.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140043.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140050]
Input [8]: [product#1140011, plant#1140012, orderDateTime#1140013, _extract_code#1142974, _extract_internalRefUUID#1142975, internalUUID#1140039, baseUnitOfMeasure#1140043, unitOfMeasureConversions#1140045]
(1887) Generate
Input [4]: [product#1140011, plant#1140012, orderDateTime#1140013, filteredUnitOfMeasureConversions#1140050]
Arguments: explode(filteredUnitOfMeasureConversions#1140050.quantityNumerator), [product#1140011, plant#1140012, orderDateTime#1140013, filteredUnitOfMeasureConversions#1140050], true, [quantityNumerator#1140051]
(1888) Project
Output [4]: [product#1140011, plant#1140012, orderDateTime#1140013, filteredUnitOfMeasureConversions#1140050.quantityDenominator AS _extract_quantityDenominator#1142308]
Input [5]: [product#1140011, plant#1140012, orderDateTime#1140013, filteredUnitOfMeasureConversions#1140050, quantityNumerator#1140051]
(1889) Generate
Input [4]: [product#1140011, plant#1140012, orderDateTime#1140013, _extract_quantityDenominator#1142308]
Arguments: explode(_extract_quantityDenominator#1142308), [product#1140011, plant#1140012, orderDateTime#1140013], true, [quantityDenominator#1140052]
(1890) Project
Output [3]: [product#1140011, plant#1140012, orderDateTime#1140013]
Input [4]: [product#1140011, plant#1140012, orderDateTime#1140013, quantityDenominator#1140052]
(1891) Sort
Input [3]: [product#1140011, plant#1140012, orderDateTime#1140013]
Arguments: [product#1140011 ASC NULLS FIRST, plant#1140012 ASC NULLS FIRST], false, 0
(1892) SortMergeJoin
Left keys [2]: [productUuid#1140005, plantUuid#1140003]
Right keys [2]: [product#1140011, plant#1140012]
Join type: Inner
Join condition: (calculationDateTime#1139999 <= orderDateTime#1140013)
(1893) Project
Output [4]: [plantUuid#1140003 AS plant#1140055, productUuid#1140005 AS product#1140056, storageLocId#1140006, calculationDateTime#1139999]
Input [7]: [plantUuid#1140003, productUuid#1140005, calculationDateTime#1139999, storageLocId#1140006, product#1140011, plant#1140012, orderDateTime#1140013]
(1894) HashAggregate
Input [4]: [plant#1140055, product#1140056, storageLocId#1140006, calculationDateTime#1139999]
Keys [3]: [plant#1140055, product#1140056, storageLocId#1140006]
Functions [1]: [partial_max(calculationDateTime#1139999)]
Aggregate Attributes [1]: [max#1143990]
Results [4]: [plant#1140055, product#1140056, storageLocId#1140006, max#1143991]
(1895) HashAggregate
Input [4]: [plant#1140055, product#1140056, storageLocId#1140006, max#1143991]
Keys [3]: [plant#1140055, product#1140056, storageLocId#1140006]
Functions [1]: [max(calculationDateTime#1139999)]
Aggregate Attributes [1]: [max(calculationDateTime#1139999)#1135889]
Results [4]: [plant#1140055, product#1140056, storageLocId#1140006, max(calculationDateTime#1139999)#1135889 AS max_calc_datetime#1140057]
(1896) Exchange
Input [4]: [plant#1140055, product#1140056, storageLocId#1140006, max_calc_datetime#1140057]
Arguments: hashpartitioning(coalesce(plant#1140055, ), isnull(plant#1140055), coalesce(product#1140056, ), isnull(product#1140056), coalesce(storageLocId#1140006, ), isnull(storageLocId#1140006), coalesce(max_calc_datetime#1140057, 1970-01-01 00:00:00), isnull(max_calc_datetime#1140057), 37), ENSURE_REQUIREMENTS, [plan_id=1718321]
(1897) Sort
Input [4]: [plant#1140055, product#1140056, storageLocId#1140006, max_calc_datetime#1140057]
Arguments: [coalesce(plant#1140055, ) ASC NULLS FIRST, isnull(plant#1140055) ASC NULLS FIRST, coalesce(product#1140056, ) ASC NULLS FIRST, isnull(product#1140056) ASC NULLS FIRST, coalesce(storageLocId#1140006, ) ASC NULLS FIRST, isnull(storageLocId#1140006) ASC NULLS FIRST, coalesce(max_calc_datetime#1140057, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1140057) ASC NULLS FIRST], false, 0
(1898) SortMergeJoin
Left keys [8]: [coalesce(plant#1139918, ), isnull(plant#1139918), coalesce(product#1139919, ), isnull(product#1139919), coalesce(storageLocId#1139869, ), isnull(storageLocId#1139869), coalesce(calculationDateTime#1139862, 1970-01-01 00:00:00), isnull(calculationDateTime#1139862)]
Right keys [8]: [coalesce(plant#1140055, ), isnull(plant#1140055), coalesce(product#1140056, ), isnull(product#1140056), coalesce(storageLocId#1140006, ), isnull(storageLocId#1140006), coalesce(max_calc_datetime#1140057, 1970-01-01 00:00:00), isnull(max_calc_datetime#1140057)]
Join type: Inner
Join condition: None
(1899) Project
Output [4]: [plant#1139918, product#1139919, calculationDateTime#1139862, quantity#1139871]
Input [9]: [plant#1139918, product#1139919, storageLocId#1139869, calculationDateTime#1139862, quantity#1139871, plant#1140055, product#1140056, storageLocId#1140006, max_calc_datetime#1140057]
(1900) HashAggregate
Input [4]: [plant#1139918, product#1139919, calculationDateTime#1139862, quantity#1139871]
Keys [2]: [product#1139919, plant#1139918]
Functions [2]: [partial_min(calculationDateTime#1139862), partial_sum(quantity#1139871)]
Aggregate Attributes [2]: [min#1143980, sum#1143981]
Results [4]: [product#1139919, plant#1139918, min#1143982, sum#1143983]
(1901) Exchange
Input [4]: [product#1139919, plant#1139918, min#1143982, sum#1143983]
Arguments: hashpartitioning(product#1139919, plant#1139918, 37), ENSURE_REQUIREMENTS, [plan_id=1718328]
(1902) HashAggregate
Input [4]: [product#1139919, plant#1139918, min#1143982, sum#1143983]
Keys [2]: [product#1139919, plant#1139918]
Functions [2]: [min(calculationDateTime#1139862), sum(quantity#1139871)]
Aggregate Attributes [2]: [min(calculationDateTime#1139862)#1136045, sum(quantity#1139871)#1136044]
Results [4]: [product#1139919, plant#1139918, min(calculationDateTime#1139862)#1136045 AS minCalculationDateTime#1140059, round(sum(quantity#1139871)#1136044, 0) AS roundedQuantitySum#1140060]
(1903) Sort
Input [4]: [product#1139919, plant#1139918, minCalculationDateTime#1140059, roundedQuantitySum#1140060]
Arguments: [product#1139919 ASC NULLS FIRST, plant#1139918 ASC NULLS FIRST], false, 0
(1904) SortMergeJoin
Left keys [2]: [product#1139739, plant#1139740]
Right keys [2]: [product#1139919, plant#1139918]
Join type: LeftOuter
Join condition: None
(1905) Project
Output [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, CASE WHEN isnotnull(minCalculationDateTime#1140059) THEN minCalculationDateTime#1140059 ELSE orderDateTime#1139741 END AS stockDatetime#1140061, CASE WHEN isnotnull(roundedQuantitySum#1140060) THEN array(roundedQuantitySum#1140060) ELSE [0.0] END AS stockBatchQuantities#1140062]
Input [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, product#1139919, plant#1139918, minCalculationDateTime#1140059, roundedQuantitySum#1140060]
(1906) Exchange
Input [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062]
Arguments: hashpartitioning(coalesce(plant#1139740, ), isnull(plant#1139740), coalesce(product#1139739, ), isnull(product#1139739), 37), ENSURE_REQUIREMENTS, [plan_id=1718492]
(1907) Sort
Input [8]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062]
Arguments: [coalesce(plant#1139740, ) ASC NULLS FIRST, isnull(plant#1139740) ASC NULLS FIRST, coalesce(product#1139739, ) ASC NULLS FIRST, isnull(product#1139739) ASC NULLS FIRST], false, 0
(1908) Scan parquet
Output [3]: [product#1140064, plant#1140065, orderDateTime#1140066]
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>
(1909) Exchange
Input [3]: [product#1140064, plant#1140065, orderDateTime#1140066]
Arguments: hashpartitioning(product#1140064, plant#1140065, 37), REPARTITION_BY_NUM, [plan_id=1716221]
(1910) Scan parquet
Output [8]: [internalUUID#1140069, plant#1140070, product#1140071, blockedForReplenishmentStartingFrom#1140072, productionAspect#1140073, salesPlant#1140074, listing#1140075, systemId#1140068]
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>>>
(1911) Project
Output [8]: [systemId#1140068, internalUUID#1140069, plant#1140070, product#1140071, blockedForReplenishmentStartingFrom#1140072, productionAspect#1140073, salesPlant#1140074, listing#1140075]
Input [8]: [internalUUID#1140069, plant#1140070, product#1140071, blockedForReplenishmentStartingFrom#1140072, productionAspect#1140073, salesPlant#1140074, listing#1140075, systemId#1140068]
(1912) Exchange
Input [8]: [systemId#1140068, internalUUID#1140069, plant#1140070, product#1140071, blockedForReplenishmentStartingFrom#1140072, productionAspect#1140073, salesPlant#1140074, listing#1140075]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716224]
(1913) Project
Output [1]: [struct(systemId, systemId#1140068, internalUUID, internalUUID#1140069, plant, plant#1140070, product, product#1140071, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1140072, productionAspect, productionAspect#1140073, salesPlant, salesPlant#1140074, listing, listing#1140075) AS productPlant#1140076]
Input [8]: [systemId#1140068, internalUUID#1140069, plant#1140070, product#1140071, blockedForReplenishmentStartingFrom#1140072, productionAspect#1140073, salesPlant#1140074, listing#1140075]
(1914) BroadcastExchange
Input [1]: [productPlant#1140076]
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=1718336]
(1915) BroadcastHashJoin
Left keys [4]: [coalesce(product#1140064, ), isnull(product#1140064), coalesce(plant#1140065, ), isnull(plant#1140065)]
Right keys [4]: [coalesce(productPlant#1140076.product.internalRefUUID, ), isnull(productPlant#1140076.product.internalRefUUID), coalesce(productPlant#1140076.plant.internalRefUUID, ), isnull(productPlant#1140076.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(1916) Scan parquet
Output [3]: [internalUUID#1140078, address#1140084, systemId#1140077]
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>>>
(1917) Project
Output [2]: [internalUUID#1140078, address#1140084.timeZone.code AS timezonecode#1140089]
Input [3]: [internalUUID#1140078, address#1140084, systemId#1140077]
(1918) Exchange
Input [2]: [internalUUID#1140078, timezonecode#1140089]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716229]
(1919) BroadcastExchange
Input [2]: [internalUUID#1140078, timezonecode#1140089]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718339]
(1920) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1140065, ), isnull(plant#1140065)]
Right keys [2]: [coalesce(internalUUID#1140078, ), isnull(internalUUID#1140078)]
Join type: LeftOuter
Join condition: None
(1921) Project
Output [5]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, CASE WHEN isnotnull(timezonecode#1140089) THEN timezonecode#1140089 ELSE UTC END AS timezonecode#1140090]
Input [6]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, internalUUID#1140078, timezonecode#1140089]
(1922) Scan parquet
Output [4]: [internalUUID#1140092, baseUnitOfMeasure#1140096, unitOfMeasureConversions#1140098, systemId#1140091]
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>>>
(1923) Filter
Input [4]: [internalUUID#1140092, baseUnitOfMeasure#1140096, unitOfMeasureConversions#1140098, systemId#1140091]
Condition : isnotnull(internalUUID#1140092)
(1924) Project
Output [3]: [internalUUID#1140092, baseUnitOfMeasure#1140096, unitOfMeasureConversions#1140098]
Input [4]: [internalUUID#1140092, baseUnitOfMeasure#1140096, unitOfMeasureConversions#1140098, systemId#1140091]
(1925) Exchange
Input [3]: [internalUUID#1140092, baseUnitOfMeasure#1140096, unitOfMeasureConversions#1140098]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716235]
(1926) BroadcastExchange
Input [3]: [internalUUID#1140092, baseUnitOfMeasure#1140096, unitOfMeasureConversions#1140098]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718343]
(1927) BroadcastHashJoin
Left keys [1]: [product#1140064]
Right keys [1]: [internalUUID#1140092]
Join type: LeftOuter
Join condition: None
(1928) Project
Output [6]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, filter(unitOfMeasureConversions#1140098, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140096.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140096.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140103]
Input [8]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, internalUUID#1140092, baseUnitOfMeasure#1140096, unitOfMeasureConversions#1140098]
(1929) Project
Output [7]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, filteredUnitOfMeasureConversions#1140103.quantityDenominator AS _extract_quantityDenominator#1142526, filteredUnitOfMeasureConversions#1140103.quantityNumerator AS _extract_quantityNumerator#1142527]
Input [6]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, filteredUnitOfMeasureConversions#1140103]
(1930) Generate
Input [7]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, _extract_quantityDenominator#1142526, _extract_quantityNumerator#1142527]
Arguments: explode(_extract_quantityNumerator#1142527), [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, _extract_quantityDenominator#1142526], true, [quantityNumerator#1140104]
(1931) Generate
Input [7]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, _extract_quantityDenominator#1142526, quantityNumerator#1140104]
Arguments: explode(_extract_quantityDenominator#1142526), [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, quantityNumerator#1140104], true, [quantityDenominator#1140105]
(1932) Project
Output [6]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, (cast(quantityNumerator#1140104 as double) / cast(quantityDenominator#1140105 as double)) AS outboundUnit#1140106]
Input [7]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, quantityNumerator#1140104, quantityDenominator#1140105]
(1933) Project
Output [6]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, CASE WHEN (isnull(outboundUnit#1140106) OR (outboundUnit#1140106 <= 0.0)) THEN 1.0 ELSE outboundUnit#1140106 END AS outboundUnit#1140107]
Input [6]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140106]
(1934) Sort
Input [6]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107]
Arguments: [product#1140064 ASC NULLS FIRST, plant#1140065 ASC NULLS FIRST], false, 0
(1935) Scan parquet
Output [6]: [internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113, systemId#1140108]
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>>>>>
(1936) Filter
Input [6]: [internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113, systemId#1140108]
Condition : (isnotnull(plant#1140111.internalRefUUID) AND isnotnull(product#1140110.internalRefUUID))
(1937) Project
Output [6]: [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113]
Input [6]: [internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113, systemId#1140108]
(1938) Exchange
Input [6]: [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716246]
(1939) BroadcastExchange
Input [6]: [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113]
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=1718375]
(1940) Scan parquet
Output [2]: [marketUnit#1140114, distributionCenters#1140120]
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>>>>>
(1941) Filter
Input [2]: [marketUnit#1140114, distributionCenters#1140120]
Condition : (((marketUnit#1140114 <=> Alert_Test1) AND (size(distributionCenters#1140120, true) > 0)) AND isnotnull(distributionCenters#1140120))
(1942) Project
Output [1]: [distributionCenters#1140120]
Input [2]: [marketUnit#1140114, distributionCenters#1140120]
(1943) Exchange
Input [1]: [distributionCenters#1140120]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716250]
(1944) Generate
Input [1]: [distributionCenters#1140120]
Arguments: explode(distributionCenters#1140120), false, [distributionCenters#1140136]
(1945) Filter
Input [1]: [distributionCenters#1140136]
Condition : (((size(distributionCenters#1140136.storageLocations, true) > 0) AND isnotnull(distributionCenters#1140136.storageLocations)) AND isnotnull(distributionCenters#1140136.internalRefUUID))
(1946) Project
Output [2]: [distributionCenters#1140136.internalRefUUID AS _extract_internalRefUUID#1142314, distributionCenters#1140136.storageLocations AS _extract_storageLocations#1142315]
Input [1]: [distributionCenters#1140136]
(1947) Generate
Input [2]: [_extract_internalRefUUID#1142314, _extract_storageLocations#1142315]
Arguments: explode(_extract_storageLocations#1142315), [_extract_internalRefUUID#1142314], false, [storageLocations#1140137]
(1948) Project
Output [3]: [_extract_internalRefUUID#1142314 AS plantUuid#1140139, storageLocations#1140137.id AS storageLocId#1140140, storageLocations#1140137.internalRefUUID AS storageLocUuid#1140141]
Input [2]: [_extract_internalRefUUID#1142314, storageLocations#1140137]
(1949) BroadcastExchange
Input [3]: [plantUuid#1140139, storageLocId#1140140, storageLocUuid#1140141]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718371]
(1950) Scan parquet
Output [2]: [product#1140142, plant#1140143]
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>
(1951) Filter
Input [2]: [product#1140142, plant#1140143]
Condition : isnotnull(plant#1140143)
(1952) Exchange
Input [2]: [product#1140142, plant#1140143]
Arguments: hashpartitioning(product#1140142, plant#1140143, 37), REPARTITION_BY_NUM, [plan_id=1717268]
(1953) Scan parquet
Output [4]: [plant#1140148, product#1140149, productionAspect#1140151, systemId#1140146]
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>>>>
(1954) Project
Output [4]: [plant#1140148.internalRefUUID AS _extract_internalRefUUID#1142976, product#1140149.internalRefUUID AS _extract_internalRefUUID#1142979, productionAspect#1140151.productMovementPlants.unitOfIssue.code AS _extract_code#1142977, productionAspect#1140151.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142978]
Input [4]: [plant#1140148, product#1140149, productionAspect#1140151, systemId#1140146]
(1955) Exchange
Input [4]: [_extract_internalRefUUID#1142976, _extract_internalRefUUID#1142979, _extract_code#1142977, _extract_internalRefUUID#1142978]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716262]
(1956) Project
Output [4]: [_extract_code#1142977, _extract_internalRefUUID#1142978, _extract_internalRefUUID#1142979, _extract_internalRefUUID#1142976]
Input [4]: [_extract_internalRefUUID#1142976, _extract_internalRefUUID#1142979, _extract_code#1142977, _extract_internalRefUUID#1142978]
(1957) BroadcastExchange
Input [4]: [_extract_code#1142977, _extract_internalRefUUID#1142978, _extract_internalRefUUID#1142979, _extract_internalRefUUID#1142976]
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=1718351]
(1958) BroadcastHashJoin
Left keys [4]: [coalesce(product#1140142, ), isnull(product#1140142), coalesce(plant#1140143, ), isnull(plant#1140143)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142979, ), isnull(_extract_internalRefUUID#1142979), coalesce(_extract_internalRefUUID#1142976, ), isnull(_extract_internalRefUUID#1142976)]
Join type: LeftOuter
Join condition: None
(1959) Project
Output [4]: [product#1140142, plant#1140143, _extract_code#1142977, _extract_internalRefUUID#1142978]
Input [6]: [product#1140142, plant#1140143, _extract_code#1142977, _extract_internalRefUUID#1142978, _extract_internalRefUUID#1142979, _extract_internalRefUUID#1142976]
(1960) Scan parquet
Output [2]: [internalUUID#1140156, systemId#1140155]
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>
(1961) Project
Output [1]: [internalUUID#1140156]
Input [2]: [internalUUID#1140156, systemId#1140155]
(1962) Exchange
Input [1]: [internalUUID#1140156]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716268]
(1963) BroadcastExchange
Input [1]: [internalUUID#1140156]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718355]
(1964) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1140143, ), isnull(plant#1140143)]
Right keys [2]: [coalesce(internalUUID#1140156, ), isnull(internalUUID#1140156)]
Join type: LeftOuter
Join condition: None
(1965) Project
Output [4]: [product#1140142, plant#1140143, _extract_code#1142977, _extract_internalRefUUID#1142978]
Input [5]: [product#1140142, plant#1140143, _extract_code#1142977, _extract_internalRefUUID#1142978, internalUUID#1140156]
(1966) Scan parquet
Output [4]: [internalUUID#1140170, baseUnitOfMeasure#1140174, unitOfMeasureConversions#1140176, systemId#1140169]
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>>>
(1967) Filter
Input [4]: [internalUUID#1140170, baseUnitOfMeasure#1140174, unitOfMeasureConversions#1140176, systemId#1140169]
Condition : isnotnull(internalUUID#1140170)
(1968) Project
Output [3]: [internalUUID#1140170, baseUnitOfMeasure#1140174, unitOfMeasureConversions#1140176]
Input [4]: [internalUUID#1140170, baseUnitOfMeasure#1140174, unitOfMeasureConversions#1140176, systemId#1140169]
(1969) Exchange
Input [3]: [internalUUID#1140170, baseUnitOfMeasure#1140174, unitOfMeasureConversions#1140176]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716274]
(1970) BroadcastExchange
Input [3]: [internalUUID#1140170, baseUnitOfMeasure#1140174, unitOfMeasureConversions#1140176]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718359]
(1971) BroadcastHashJoin
Left keys [1]: [product#1140142]
Right keys [1]: [internalUUID#1140170]
Join type: LeftOuter
Join condition: None
(1972) Project
Output [2]: [plant#1140143, filter(unitOfMeasureConversions#1140176, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142977) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142978)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140174.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140174.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140181]
Input [7]: [product#1140142, plant#1140143, _extract_code#1142977, _extract_internalRefUUID#1142978, internalUUID#1140170, baseUnitOfMeasure#1140174, unitOfMeasureConversions#1140176]
(1973) Generate
Input [2]: [plant#1140143, filteredUnitOfMeasureConversions#1140181]
Arguments: explode(filteredUnitOfMeasureConversions#1140181.quantityNumerator), [plant#1140143, filteredUnitOfMeasureConversions#1140181], true, [quantityNumerator#1140182]
(1974) Project
Output [2]: [plant#1140143, filteredUnitOfMeasureConversions#1140181.quantityDenominator AS _extract_quantityDenominator#1142316]
Input [3]: [plant#1140143, filteredUnitOfMeasureConversions#1140181, quantityNumerator#1140182]
(1975) Generate
Input [2]: [plant#1140143, _extract_quantityDenominator#1142316]
Arguments: explode(_extract_quantityDenominator#1142316), [plant#1140143], true, [quantityDenominator#1140183]
(1976) Project
Output [1]: [plant#1140143]
Input [2]: [plant#1140143, quantityDenominator#1140183]
(1977) HashAggregate
Input [1]: [plant#1140143]
Keys [1]: [plant#1140143]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1140143]
(1978) Exchange
Input [1]: [plant#1140143]
Arguments: hashpartitioning(plant#1140143, 37), ENSURE_REQUIREMENTS, [plan_id=1718368]
(1979) HashAggregate
Input [1]: [plant#1140143]
Keys [1]: [plant#1140143]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1140143]
(1980) BroadcastHashJoin
Left keys [1]: [plantUuid#1140139]
Right keys [1]: [plant#1140143]
Join type: Inner
Join condition: None
(1981) Project
Output [3]: [plantUuid#1140139, storageLocId#1140140, storageLocUuid#1140141]
Input [4]: [plantUuid#1140139, storageLocId#1140140, storageLocUuid#1140141, plant#1140143]
(1982) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1140111.internalRefUUID, ), isnull(plant#1140111.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1140139, ), isnull(plantUuid#1140139)]
Join type: Inner
Join condition: None
(1983) Generate
Input [9]: [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, stockQuantities#1140113, plantUuid#1140139, storageLocId#1140140, storageLocUuid#1140141]
Arguments: explode(filter(stockQuantities#1140113, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1140141) AND (lambda x#1135796.storageLocation.Id = storageLocId#1140140)), lambda x#1135796, false))), [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, plantUuid#1140139], false, [stockQuantity#1140186]
(1984) ObjectHashAggregate
Input [7]: [systemId#1140108, internalUUID#1140109, product#1140110, plant#1140111, calculationDateTime#1140112, plantUuid#1140139, stockQuantity#1140186]
Keys [5]: [plantUuid#1140139, internalUUID#1140109, plant#1140111, product#1140110, systemId#1140108]
Functions [2]: [partial_first(calculationDateTime#1140112, false), partial_collect_list(stockQuantity#1140186, 0, 0)]
Aggregate Attributes [3]: [first#1144006, valueSet#1144007, buf#1144008]
Results [8]: [plantUuid#1140139, internalUUID#1140109, plant#1140111, product#1140110, systemId#1140108, first#1144009, valueSet#1144010, buf#1144011]
(1985) ObjectHashAggregate
Input [8]: [plantUuid#1140139, internalUUID#1140109, plant#1140111, product#1140110, systemId#1140108, first#1144009, valueSet#1144010, buf#1144011]
Keys [5]: [plantUuid#1140139, internalUUID#1140109, plant#1140111, product#1140110, systemId#1140108]
Functions [2]: [first(calculationDateTime#1140112, false), collect_list(stockQuantity#1140186, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1140112)()#1135811, collect_list(stockQuantity#1140186, 0, 0)#1135812]
Results [4]: [product#1140110, plant#1140111, first(calculationDateTime#1140112)()#1135811 AS calculationDateTime#1140187, collect_list(stockQuantity#1140186, 0, 0)#1135812 AS stockQuantities#1140188]
(1986) Filter
Input [4]: [product#1140110, plant#1140111, calculationDateTime#1140187, stockQuantities#1140188]
Condition : ((size(stockQuantities#1140188, true) > 0) AND isnotnull(calculationDateTime#1140187))
(1987) Generate
Input [4]: [product#1140110, plant#1140111, calculationDateTime#1140187, stockQuantities#1140188]
Arguments: explode(stockQuantities#1140188), [product#1140110, plant#1140111, calculationDateTime#1140187], false, [stockQuantity#1140189]
(1988) Filter
Input [4]: [product#1140110, plant#1140111, calculationDateTime#1140187, stockQuantity#1140189]
Condition : (((isnotnull(stockQuantity#1140189.specialStockIndicator.code) AND isnotnull(stockQuantity#1140189.stockType.code)) AND (stockQuantity#1140189.specialStockIndicator.code = )) AND (stockQuantity#1140189.stockType.code = 01))
(1989) Project
Output [5]: [plant#1140111.internalRefUUID AS plantUuid#1140191, product#1140110.internalRefUUID AS productUuid#1140193, calculationDateTime#1140187, stockQuantity#1140189.storagelocation.id AS storageLocId#1140194, stockQuantity#1140189.quantity.measure AS quantity#1140196]
Input [4]: [product#1140110, plant#1140111, calculationDateTime#1140187, stockQuantity#1140189]
(1990) Exchange
Input [5]: [plantUuid#1140191, productUuid#1140193, calculationDateTime#1140187, storageLocId#1140194, quantity#1140196]
Arguments: hashpartitioning(productUuid#1140193, plantUuid#1140191, 37), ENSURE_REQUIREMENTS, [plan_id=1718401]
(1991) Sort
Input [5]: [plantUuid#1140191, productUuid#1140193, calculationDateTime#1140187, storageLocId#1140194, quantity#1140196]
Arguments: [productUuid#1140193 ASC NULLS FIRST, plantUuid#1140191 ASC NULLS FIRST], false, 0
(1992) Scan parquet
Output [3]: [product#1140199, plant#1140200, orderDateTime#1140201]
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>
(1993) Filter
Input [3]: [product#1140199, plant#1140200, orderDateTime#1140201]
Condition : ((isnotnull(orderDateTime#1140201) AND isnotnull(plant#1140200)) AND isnotnull(product#1140199))
(1994) Exchange
Input [3]: [product#1140199, plant#1140200, orderDateTime#1140201]
Arguments: hashpartitioning(product#1140199, plant#1140200, 37), REPARTITION_BY_NUM, [plan_id=1717291]
(1995) Scan parquet
Output [4]: [plant#1140205, product#1140206, productionAspect#1140208, systemId#1140203]
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>>>>
(1996) Project
Output [4]: [plant#1140205.internalRefUUID AS _extract_internalRefUUID#1142981, product#1140206.internalRefUUID AS _extract_internalRefUUID#1142980, productionAspect#1140208.productMovementPlants.unitOfIssue.code AS _extract_code#1142982, productionAspect#1140208.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142983]
Input [4]: [plant#1140205, product#1140206, productionAspect#1140208, systemId#1140203]
(1997) Exchange
Input [4]: [_extract_internalRefUUID#1142981, _extract_internalRefUUID#1142980, _extract_code#1142982, _extract_internalRefUUID#1142983]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716299]
(1998) Project
Output [4]: [_extract_code#1142982, _extract_internalRefUUID#1142983, _extract_internalRefUUID#1142980, _extract_internalRefUUID#1142981]
Input [4]: [_extract_internalRefUUID#1142981, _extract_internalRefUUID#1142980, _extract_code#1142982, _extract_internalRefUUID#1142983]
(1999) BroadcastExchange
Input [4]: [_extract_code#1142982, _extract_internalRefUUID#1142983, _extract_internalRefUUID#1142980, _extract_internalRefUUID#1142981]
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=1718384]
(2000) BroadcastHashJoin
Left keys [4]: [coalesce(product#1140199, ), isnull(product#1140199), coalesce(plant#1140200, ), isnull(plant#1140200)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142980, ), isnull(_extract_internalRefUUID#1142980), coalesce(_extract_internalRefUUID#1142981, ), isnull(_extract_internalRefUUID#1142981)]
Join type: LeftOuter
Join condition: None
(2001) Project
Output [5]: [product#1140199, plant#1140200, orderDateTime#1140201, _extract_code#1142982, _extract_internalRefUUID#1142983]
Input [7]: [product#1140199, plant#1140200, orderDateTime#1140201, _extract_code#1142982, _extract_internalRefUUID#1142983, _extract_internalRefUUID#1142980, _extract_internalRefUUID#1142981]
(2002) Scan parquet
Output [2]: [internalUUID#1140213, systemId#1140212]
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>
(2003) Project
Output [1]: [internalUUID#1140213]
Input [2]: [internalUUID#1140213, systemId#1140212]
(2004) Exchange
Input [1]: [internalUUID#1140213]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716305]
(2005) BroadcastExchange
Input [1]: [internalUUID#1140213]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718388]
(2006) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1140200, ), isnull(plant#1140200)]
Right keys [2]: [coalesce(internalUUID#1140213, ), isnull(internalUUID#1140213)]
Join type: LeftOuter
Join condition: None
(2007) Project
Output [5]: [product#1140199, plant#1140200, orderDateTime#1140201, _extract_code#1142982, _extract_internalRefUUID#1142983]
Input [6]: [product#1140199, plant#1140200, orderDateTime#1140201, _extract_code#1142982, _extract_internalRefUUID#1142983, internalUUID#1140213]
(2008) Scan parquet
Output [4]: [internalUUID#1140227, baseUnitOfMeasure#1140231, unitOfMeasureConversions#1140233, systemId#1140226]
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>>>
(2009) Filter
Input [4]: [internalUUID#1140227, baseUnitOfMeasure#1140231, unitOfMeasureConversions#1140233, systemId#1140226]
Condition : isnotnull(internalUUID#1140227)
(2010) Project
Output [3]: [internalUUID#1140227, baseUnitOfMeasure#1140231, unitOfMeasureConversions#1140233]
Input [4]: [internalUUID#1140227, baseUnitOfMeasure#1140231, unitOfMeasureConversions#1140233, systemId#1140226]
(2011) Exchange
Input [3]: [internalUUID#1140227, baseUnitOfMeasure#1140231, unitOfMeasureConversions#1140233]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716311]
(2012) BroadcastExchange
Input [3]: [internalUUID#1140227, baseUnitOfMeasure#1140231, unitOfMeasureConversions#1140233]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718392]
(2013) BroadcastHashJoin
Left keys [1]: [product#1140199]
Right keys [1]: [internalUUID#1140227]
Join type: LeftOuter
Join condition: None
(2014) Project
Output [4]: [product#1140199, plant#1140200, orderDateTime#1140201, filter(unitOfMeasureConversions#1140233, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142982) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142983)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140231.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140231.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140238]
Input [8]: [product#1140199, plant#1140200, orderDateTime#1140201, _extract_code#1142982, _extract_internalRefUUID#1142983, internalUUID#1140227, baseUnitOfMeasure#1140231, unitOfMeasureConversions#1140233]
(2015) Generate
Input [4]: [product#1140199, plant#1140200, orderDateTime#1140201, filteredUnitOfMeasureConversions#1140238]
Arguments: explode(filteredUnitOfMeasureConversions#1140238.quantityNumerator), [product#1140199, plant#1140200, orderDateTime#1140201, filteredUnitOfMeasureConversions#1140238], true, [quantityNumerator#1140239]
(2016) Project
Output [4]: [product#1140199, plant#1140200, orderDateTime#1140201, filteredUnitOfMeasureConversions#1140238.quantityDenominator AS _extract_quantityDenominator#1142320]
Input [5]: [product#1140199, plant#1140200, orderDateTime#1140201, filteredUnitOfMeasureConversions#1140238, quantityNumerator#1140239]
(2017) Generate
Input [4]: [product#1140199, plant#1140200, orderDateTime#1140201, _extract_quantityDenominator#1142320]
Arguments: explode(_extract_quantityDenominator#1142320), [product#1140199, plant#1140200, orderDateTime#1140201], true, [quantityDenominator#1140240]
(2018) Project
Output [3]: [product#1140199, plant#1140200, orderDateTime#1140201]
Input [4]: [product#1140199, plant#1140200, orderDateTime#1140201, quantityDenominator#1140240]
(2019) Sort
Input [3]: [product#1140199, plant#1140200, orderDateTime#1140201]
Arguments: [product#1140199 ASC NULLS FIRST, plant#1140200 ASC NULLS FIRST], false, 0
(2020) SortMergeJoin
Left keys [2]: [productUuid#1140193, plantUuid#1140191]
Right keys [2]: [product#1140199, plant#1140200]
Join type: Inner
Join condition: (calculationDateTime#1140187 <= orderDateTime#1140201)
(2021) Project
Output [5]: [plantUuid#1140191 AS plant#1140243, productUuid#1140193 AS product#1140244, storageLocId#1140194, calculationDateTime#1140187, quantity#1140196]
Input [8]: [plantUuid#1140191, productUuid#1140193, calculationDateTime#1140187, storageLocId#1140194, quantity#1140196, product#1140199, plant#1140200, orderDateTime#1140201]
(2022) Exchange
Input [5]: [plant#1140243, product#1140244, storageLocId#1140194, calculationDateTime#1140187, quantity#1140196]
Arguments: hashpartitioning(coalesce(plant#1140243, ), isnull(plant#1140243), coalesce(product#1140244, ), isnull(product#1140244), coalesce(storageLocId#1140194, ), isnull(storageLocId#1140194), coalesce(calculationDateTime#1140187, 1970-01-01 00:00:00), isnull(calculationDateTime#1140187), 37), ENSURE_REQUIREMENTS, [plan_id=1718465]
(2023) Sort
Input [5]: [plant#1140243, product#1140244, storageLocId#1140194, calculationDateTime#1140187, quantity#1140196]
Arguments: [coalesce(plant#1140243, ) ASC NULLS FIRST, isnull(plant#1140243) ASC NULLS FIRST, coalesce(product#1140244, ) ASC NULLS FIRST, isnull(product#1140244) ASC NULLS FIRST, coalesce(storageLocId#1140194, ) ASC NULLS FIRST, isnull(storageLocId#1140194) ASC NULLS FIRST, coalesce(calculationDateTime#1140187, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1140187) ASC NULLS FIRST], false, 0
(2024) Scan parquet
Output [6]: [internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250, systemId#1140245]
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>>>>>
(2025) Filter
Input [6]: [internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250, systemId#1140245]
Condition : (isnotnull(plant#1140248.internalRefUUID) AND isnotnull(product#1140247.internalRefUUID))
(2026) Project
Output [6]: [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250]
Input [6]: [internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250, systemId#1140245]
(2027) Exchange
Input [6]: [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716323]
(2028) BroadcastExchange
Input [6]: [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250]
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=1718430]
(2029) Scan parquet
Output [2]: [marketUnit#1140251, distributionCenters#1140257]
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>>>>>
(2030) Filter
Input [2]: [marketUnit#1140251, distributionCenters#1140257]
Condition : (((marketUnit#1140251 <=> Alert_Test1) AND (size(distributionCenters#1140257, true) > 0)) AND isnotnull(distributionCenters#1140257))
(2031) Project
Output [1]: [distributionCenters#1140257]
Input [2]: [marketUnit#1140251, distributionCenters#1140257]
(2032) Exchange
Input [1]: [distributionCenters#1140257]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716327]
(2033) Generate
Input [1]: [distributionCenters#1140257]
Arguments: explode(distributionCenters#1140257), false, [distributionCenters#1140273]
(2034) Filter
Input [1]: [distributionCenters#1140273]
Condition : (((size(distributionCenters#1140273.storageLocations, true) > 0) AND isnotnull(distributionCenters#1140273.storageLocations)) AND isnotnull(distributionCenters#1140273.internalRefUUID))
(2035) Project
Output [2]: [distributionCenters#1140273.internalRefUUID AS _extract_internalRefUUID#1142324, distributionCenters#1140273.storageLocations AS _extract_storageLocations#1142325]
Input [1]: [distributionCenters#1140273]
(2036) Generate
Input [2]: [_extract_internalRefUUID#1142324, _extract_storageLocations#1142325]
Arguments: explode(_extract_storageLocations#1142325), [_extract_internalRefUUID#1142324], false, [storageLocations#1140274]
(2037) Project
Output [3]: [_extract_internalRefUUID#1142324 AS plantUuid#1140276, storageLocations#1140274.id AS storageLocId#1140277, storageLocations#1140274.internalRefUUID AS storageLocUuid#1140278]
Input [2]: [_extract_internalRefUUID#1142324, storageLocations#1140274]
(2038) BroadcastExchange
Input [3]: [plantUuid#1140276, storageLocId#1140277, storageLocUuid#1140278]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718426]
(2039) Scan parquet
Output [2]: [product#1140279, plant#1140280]
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>
(2040) Filter
Input [2]: [product#1140279, plant#1140280]
Condition : isnotnull(plant#1140280)
(2041) Exchange
Input [2]: [product#1140279, plant#1140280]
Arguments: hashpartitioning(product#1140279, plant#1140280, 37), REPARTITION_BY_NUM, [plan_id=1717304]
(2042) Scan parquet
Output [4]: [plant#1140285, product#1140286, productionAspect#1140288, systemId#1140283]
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>>>>
(2043) Project
Output [4]: [plant#1140285.internalRefUUID AS _extract_internalRefUUID#1142987, product#1140286.internalRefUUID AS _extract_internalRefUUID#1142986, productionAspect#1140288.productMovementPlants.unitOfIssue.code AS _extract_code#1142984, productionAspect#1140288.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142985]
Input [4]: [plant#1140285, product#1140286, productionAspect#1140288, systemId#1140283]
(2044) Exchange
Input [4]: [_extract_internalRefUUID#1142987, _extract_internalRefUUID#1142986, _extract_code#1142984, _extract_internalRefUUID#1142985]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716339]
(2045) Project
Output [4]: [_extract_code#1142984, _extract_internalRefUUID#1142985, _extract_internalRefUUID#1142986, _extract_internalRefUUID#1142987]
Input [4]: [_extract_internalRefUUID#1142987, _extract_internalRefUUID#1142986, _extract_code#1142984, _extract_internalRefUUID#1142985]
(2046) BroadcastExchange
Input [4]: [_extract_code#1142984, _extract_internalRefUUID#1142985, _extract_internalRefUUID#1142986, _extract_internalRefUUID#1142987]
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=1718406]
(2047) BroadcastHashJoin
Left keys [4]: [coalesce(product#1140279, ), isnull(product#1140279), coalesce(plant#1140280, ), isnull(plant#1140280)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142986, ), isnull(_extract_internalRefUUID#1142986), coalesce(_extract_internalRefUUID#1142987, ), isnull(_extract_internalRefUUID#1142987)]
Join type: LeftOuter
Join condition: None
(2048) Project
Output [4]: [product#1140279, plant#1140280, _extract_code#1142984, _extract_internalRefUUID#1142985]
Input [6]: [product#1140279, plant#1140280, _extract_code#1142984, _extract_internalRefUUID#1142985, _extract_internalRefUUID#1142986, _extract_internalRefUUID#1142987]
(2049) Scan parquet
Output [2]: [internalUUID#1140293, systemId#1140292]
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>
(2050) Project
Output [1]: [internalUUID#1140293]
Input [2]: [internalUUID#1140293, systemId#1140292]
(2051) Exchange
Input [1]: [internalUUID#1140293]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716345]
(2052) BroadcastExchange
Input [1]: [internalUUID#1140293]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718410]
(2053) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1140280, ), isnull(plant#1140280)]
Right keys [2]: [coalesce(internalUUID#1140293, ), isnull(internalUUID#1140293)]
Join type: LeftOuter
Join condition: None
(2054) Project
Output [4]: [product#1140279, plant#1140280, _extract_code#1142984, _extract_internalRefUUID#1142985]
Input [5]: [product#1140279, plant#1140280, _extract_code#1142984, _extract_internalRefUUID#1142985, internalUUID#1140293]
(2055) Scan parquet
Output [4]: [internalUUID#1140307, baseUnitOfMeasure#1140311, unitOfMeasureConversions#1140313, systemId#1140306]
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>>>
(2056) Filter
Input [4]: [internalUUID#1140307, baseUnitOfMeasure#1140311, unitOfMeasureConversions#1140313, systemId#1140306]
Condition : isnotnull(internalUUID#1140307)
(2057) Project
Output [3]: [internalUUID#1140307, baseUnitOfMeasure#1140311, unitOfMeasureConversions#1140313]
Input [4]: [internalUUID#1140307, baseUnitOfMeasure#1140311, unitOfMeasureConversions#1140313, systemId#1140306]
(2058) Exchange
Input [3]: [internalUUID#1140307, baseUnitOfMeasure#1140311, unitOfMeasureConversions#1140313]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716351]
(2059) BroadcastExchange
Input [3]: [internalUUID#1140307, baseUnitOfMeasure#1140311, unitOfMeasureConversions#1140313]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718414]
(2060) BroadcastHashJoin
Left keys [1]: [product#1140279]
Right keys [1]: [internalUUID#1140307]
Join type: LeftOuter
Join condition: None
(2061) Project
Output [2]: [plant#1140280, filter(unitOfMeasureConversions#1140313, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142984) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142985)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140311.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140311.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140318]
Input [7]: [product#1140279, plant#1140280, _extract_code#1142984, _extract_internalRefUUID#1142985, internalUUID#1140307, baseUnitOfMeasure#1140311, unitOfMeasureConversions#1140313]
(2062) Generate
Input [2]: [plant#1140280, filteredUnitOfMeasureConversions#1140318]
Arguments: explode(filteredUnitOfMeasureConversions#1140318.quantityNumerator), [plant#1140280, filteredUnitOfMeasureConversions#1140318], true, [quantityNumerator#1140319]
(2063) Project
Output [2]: [plant#1140280, filteredUnitOfMeasureConversions#1140318.quantityDenominator AS _extract_quantityDenominator#1142326]
Input [3]: [plant#1140280, filteredUnitOfMeasureConversions#1140318, quantityNumerator#1140319]
(2064) Generate
Input [2]: [plant#1140280, _extract_quantityDenominator#1142326]
Arguments: explode(_extract_quantityDenominator#1142326), [plant#1140280], true, [quantityDenominator#1140320]
(2065) Project
Output [1]: [plant#1140280]
Input [2]: [plant#1140280, quantityDenominator#1140320]
(2066) HashAggregate
Input [1]: [plant#1140280]
Keys [1]: [plant#1140280]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1140280]
(2067) Exchange
Input [1]: [plant#1140280]
Arguments: hashpartitioning(plant#1140280, 37), ENSURE_REQUIREMENTS, [plan_id=1718423]
(2068) HashAggregate
Input [1]: [plant#1140280]
Keys [1]: [plant#1140280]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1140280]
(2069) BroadcastHashJoin
Left keys [1]: [plantUuid#1140276]
Right keys [1]: [plant#1140280]
Join type: Inner
Join condition: None
(2070) Project
Output [3]: [plantUuid#1140276, storageLocId#1140277, storageLocUuid#1140278]
Input [4]: [plantUuid#1140276, storageLocId#1140277, storageLocUuid#1140278, plant#1140280]
(2071) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1140248.internalRefUUID, ), isnull(plant#1140248.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1140276, ), isnull(plantUuid#1140276)]
Join type: Inner
Join condition: None
(2072) Generate
Input [9]: [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, stockQuantities#1140250, plantUuid#1140276, storageLocId#1140277, storageLocUuid#1140278]
Arguments: explode(filter(stockQuantities#1140250, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1140278) AND (lambda x#1135796.storageLocation.Id = storageLocId#1140277)), lambda x#1135796, false))), [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, plantUuid#1140276], false, [stockQuantity#1140323]
(2073) ObjectHashAggregate
Input [7]: [systemId#1140245, internalUUID#1140246, product#1140247, plant#1140248, calculationDateTime#1140249, plantUuid#1140276, stockQuantity#1140323]
Keys [5]: [plantUuid#1140276, internalUUID#1140246, plant#1140248, product#1140247, systemId#1140245]
Functions [2]: [partial_first(calculationDateTime#1140249, false), partial_collect_list(stockQuantity#1140323, 0, 0)]
Aggregate Attributes [3]: [first#1144014, valueSet#1144015, buf#1144016]
Results [8]: [plantUuid#1140276, internalUUID#1140246, plant#1140248, product#1140247, systemId#1140245, first#1144017, valueSet#1144018, buf#1144019]
(2074) ObjectHashAggregate
Input [8]: [plantUuid#1140276, internalUUID#1140246, plant#1140248, product#1140247, systemId#1140245, first#1144017, valueSet#1144018, buf#1144019]
Keys [5]: [plantUuid#1140276, internalUUID#1140246, plant#1140248, product#1140247, systemId#1140245]
Functions [2]: [first(calculationDateTime#1140249, false), collect_list(stockQuantity#1140323, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1140249)()#1135811, collect_list(stockQuantity#1140323, 0, 0)#1135812]
Results [4]: [product#1140247, plant#1140248, first(calculationDateTime#1140249)()#1135811 AS calculationDateTime#1140324, collect_list(stockQuantity#1140323, 0, 0)#1135812 AS stockQuantities#1140325]
(2075) Filter
Input [4]: [product#1140247, plant#1140248, calculationDateTime#1140324, stockQuantities#1140325]
Condition : ((size(stockQuantities#1140325, true) > 0) AND isnotnull(calculationDateTime#1140324))
(2076) Generate
Input [4]: [product#1140247, plant#1140248, calculationDateTime#1140324, stockQuantities#1140325]
Arguments: explode(stockQuantities#1140325), [product#1140247, plant#1140248, calculationDateTime#1140324], false, [stockQuantity#1140326]
(2077) Filter
Input [4]: [product#1140247, plant#1140248, calculationDateTime#1140324, stockQuantity#1140326]
Condition : (((isnotnull(stockQuantity#1140326.specialStockIndicator.code) AND isnotnull(stockQuantity#1140326.stockType.code)) AND (stockQuantity#1140326.specialStockIndicator.code = )) AND (stockQuantity#1140326.stockType.code = 01))
(2078) Project
Output [4]: [plant#1140248.internalRefUUID AS plantUuid#1140328, product#1140247.internalRefUUID AS productUuid#1140330, calculationDateTime#1140324, stockQuantity#1140326.storagelocation.id AS storageLocId#1140331]
Input [4]: [product#1140247, plant#1140248, calculationDateTime#1140324, stockQuantity#1140326]
(2079) Exchange
Input [4]: [plantUuid#1140328, productUuid#1140330, calculationDateTime#1140324, storageLocId#1140331]
Arguments: hashpartitioning(productUuid#1140330, plantUuid#1140328, 37), ENSURE_REQUIREMENTS, [plan_id=1718456]
(2080) Sort
Input [4]: [plantUuid#1140328, productUuid#1140330, calculationDateTime#1140324, storageLocId#1140331]
Arguments: [productUuid#1140330 ASC NULLS FIRST, plantUuid#1140328 ASC NULLS FIRST], false, 0
(2081) Scan parquet
Output [3]: [product#1140336, plant#1140337, orderDateTime#1140338]
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>
(2082) Filter
Input [3]: [product#1140336, plant#1140337, orderDateTime#1140338]
Condition : ((isnotnull(orderDateTime#1140338) AND isnotnull(plant#1140337)) AND isnotnull(product#1140336))
(2083) Exchange
Input [3]: [product#1140336, plant#1140337, orderDateTime#1140338]
Arguments: hashpartitioning(product#1140336, plant#1140337, 37), REPARTITION_BY_NUM, [plan_id=1717327]
(2084) Scan parquet
Output [4]: [plant#1140342, product#1140343, productionAspect#1140345, systemId#1140340]
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>>>>
(2085) Project
Output [4]: [plant#1140342.internalRefUUID AS _extract_internalRefUUID#1142989, product#1140343.internalRefUUID AS _extract_internalRefUUID#1142988, productionAspect#1140345.productMovementPlants.unitOfIssue.code AS _extract_code#1142990, productionAspect#1140345.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142991]
Input [4]: [plant#1140342, product#1140343, productionAspect#1140345, systemId#1140340]
(2086) Exchange
Input [4]: [_extract_internalRefUUID#1142989, _extract_internalRefUUID#1142988, _extract_code#1142990, _extract_internalRefUUID#1142991]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716376]
(2087) Project
Output [4]: [_extract_code#1142990, _extract_internalRefUUID#1142991, _extract_internalRefUUID#1142988, _extract_internalRefUUID#1142989]
Input [4]: [_extract_internalRefUUID#1142989, _extract_internalRefUUID#1142988, _extract_code#1142990, _extract_internalRefUUID#1142991]
(2088) BroadcastExchange
Input [4]: [_extract_code#1142990, _extract_internalRefUUID#1142991, _extract_internalRefUUID#1142988, _extract_internalRefUUID#1142989]
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=1718439]
(2089) BroadcastHashJoin
Left keys [4]: [coalesce(product#1140336, ), isnull(product#1140336), coalesce(plant#1140337, ), isnull(plant#1140337)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142988, ), isnull(_extract_internalRefUUID#1142988), coalesce(_extract_internalRefUUID#1142989, ), isnull(_extract_internalRefUUID#1142989)]
Join type: LeftOuter
Join condition: None
(2090) Project
Output [5]: [product#1140336, plant#1140337, orderDateTime#1140338, _extract_code#1142990, _extract_internalRefUUID#1142991]
Input [7]: [product#1140336, plant#1140337, orderDateTime#1140338, _extract_code#1142990, _extract_internalRefUUID#1142991, _extract_internalRefUUID#1142988, _extract_internalRefUUID#1142989]
(2091) Scan parquet
Output [2]: [internalUUID#1140350, systemId#1140349]
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>
(2092) Project
Output [1]: [internalUUID#1140350]
Input [2]: [internalUUID#1140350, systemId#1140349]
(2093) Exchange
Input [1]: [internalUUID#1140350]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716382]
(2094) BroadcastExchange
Input [1]: [internalUUID#1140350]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718443]
(2095) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1140337, ), isnull(plant#1140337)]
Right keys [2]: [coalesce(internalUUID#1140350, ), isnull(internalUUID#1140350)]
Join type: LeftOuter
Join condition: None
(2096) Project
Output [5]: [product#1140336, plant#1140337, orderDateTime#1140338, _extract_code#1142990, _extract_internalRefUUID#1142991]
Input [6]: [product#1140336, plant#1140337, orderDateTime#1140338, _extract_code#1142990, _extract_internalRefUUID#1142991, internalUUID#1140350]
(2097) Scan parquet
Output [4]: [internalUUID#1140364, baseUnitOfMeasure#1140368, unitOfMeasureConversions#1140370, systemId#1140363]
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>>>
(2098) Filter
Input [4]: [internalUUID#1140364, baseUnitOfMeasure#1140368, unitOfMeasureConversions#1140370, systemId#1140363]
Condition : isnotnull(internalUUID#1140364)
(2099) Project
Output [3]: [internalUUID#1140364, baseUnitOfMeasure#1140368, unitOfMeasureConversions#1140370]
Input [4]: [internalUUID#1140364, baseUnitOfMeasure#1140368, unitOfMeasureConversions#1140370, systemId#1140363]
(2100) Exchange
Input [3]: [internalUUID#1140364, baseUnitOfMeasure#1140368, unitOfMeasureConversions#1140370]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716388]
(2101) BroadcastExchange
Input [3]: [internalUUID#1140364, baseUnitOfMeasure#1140368, unitOfMeasureConversions#1140370]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718447]
(2102) BroadcastHashJoin
Left keys [1]: [product#1140336]
Right keys [1]: [internalUUID#1140364]
Join type: LeftOuter
Join condition: None
(2103) Project
Output [4]: [product#1140336, plant#1140337, orderDateTime#1140338, filter(unitOfMeasureConversions#1140370, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142990) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142991)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1140368.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1140368.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1140375]
Input [8]: [product#1140336, plant#1140337, orderDateTime#1140338, _extract_code#1142990, _extract_internalRefUUID#1142991, internalUUID#1140364, baseUnitOfMeasure#1140368, unitOfMeasureConversions#1140370]
(2104) Generate
Input [4]: [product#1140336, plant#1140337, orderDateTime#1140338, filteredUnitOfMeasureConversions#1140375]
Arguments: explode(filteredUnitOfMeasureConversions#1140375.quantityNumerator), [product#1140336, plant#1140337, orderDateTime#1140338, filteredUnitOfMeasureConversions#1140375], true, [quantityNumerator#1140376]
(2105) Project
Output [4]: [product#1140336, plant#1140337, orderDateTime#1140338, filteredUnitOfMeasureConversions#1140375.quantityDenominator AS _extract_quantityDenominator#1142330]
Input [5]: [product#1140336, plant#1140337, orderDateTime#1140338, filteredUnitOfMeasureConversions#1140375, quantityNumerator#1140376]
(2106) Generate
Input [4]: [product#1140336, plant#1140337, orderDateTime#1140338, _extract_quantityDenominator#1142330]
Arguments: explode(_extract_quantityDenominator#1142330), [product#1140336, plant#1140337, orderDateTime#1140338], true, [quantityDenominator#1140377]
(2107) Project
Output [3]: [product#1140336, plant#1140337, orderDateTime#1140338]
Input [4]: [product#1140336, plant#1140337, orderDateTime#1140338, quantityDenominator#1140377]
(2108) Sort
Input [3]: [product#1140336, plant#1140337, orderDateTime#1140338]
Arguments: [product#1140336 ASC NULLS FIRST, plant#1140337 ASC NULLS FIRST], false, 0
(2109) SortMergeJoin
Left keys [2]: [productUuid#1140330, plantUuid#1140328]
Right keys [2]: [product#1140336, plant#1140337]
Join type: Inner
Join condition: (calculationDateTime#1140324 <= orderDateTime#1140338)
(2110) Project
Output [4]: [plantUuid#1140328 AS plant#1140380, productUuid#1140330 AS product#1140381, storageLocId#1140331, calculationDateTime#1140324]
Input [7]: [plantUuid#1140328, productUuid#1140330, calculationDateTime#1140324, storageLocId#1140331, product#1140336, plant#1140337, orderDateTime#1140338]
(2111) HashAggregate
Input [4]: [plant#1140380, product#1140381, storageLocId#1140331, calculationDateTime#1140324]
Keys [3]: [plant#1140380, product#1140381, storageLocId#1140331]
Functions [1]: [partial_max(calculationDateTime#1140324)]
Aggregate Attributes [1]: [max#1144012]
Results [4]: [plant#1140380, product#1140381, storageLocId#1140331, max#1144013]
(2112) HashAggregate
Input [4]: [plant#1140380, product#1140381, storageLocId#1140331, max#1144013]
Keys [3]: [plant#1140380, product#1140381, storageLocId#1140331]
Functions [1]: [max(calculationDateTime#1140324)]
Aggregate Attributes [1]: [max(calculationDateTime#1140324)#1135889]
Results [4]: [plant#1140380, product#1140381, storageLocId#1140331, max(calculationDateTime#1140324)#1135889 AS max_calc_datetime#1140382]
(2113) Exchange
Input [4]: [plant#1140380, product#1140381, storageLocId#1140331, max_calc_datetime#1140382]
Arguments: hashpartitioning(coalesce(plant#1140380, ), isnull(plant#1140380), coalesce(product#1140381, ), isnull(product#1140381), coalesce(storageLocId#1140331, ), isnull(storageLocId#1140331), coalesce(max_calc_datetime#1140382, 1970-01-01 00:00:00), isnull(max_calc_datetime#1140382), 37), ENSURE_REQUIREMENTS, [plan_id=1718466]
(2114) Sort
Input [4]: [plant#1140380, product#1140381, storageLocId#1140331, max_calc_datetime#1140382]
Arguments: [coalesce(plant#1140380, ) ASC NULLS FIRST, isnull(plant#1140380) ASC NULLS FIRST, coalesce(product#1140381, ) ASC NULLS FIRST, isnull(product#1140381) ASC NULLS FIRST, coalesce(storageLocId#1140331, ) ASC NULLS FIRST, isnull(storageLocId#1140331) ASC NULLS FIRST, coalesce(max_calc_datetime#1140382, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1140382) ASC NULLS FIRST], false, 0
(2115) SortMergeJoin
Left keys [8]: [coalesce(plant#1140243, ), isnull(plant#1140243), coalesce(product#1140244, ), isnull(product#1140244), coalesce(storageLocId#1140194, ), isnull(storageLocId#1140194), coalesce(calculationDateTime#1140187, 1970-01-01 00:00:00), isnull(calculationDateTime#1140187)]
Right keys [8]: [coalesce(plant#1140380, ), isnull(plant#1140380), coalesce(product#1140381, ), isnull(product#1140381), coalesce(storageLocId#1140331, ), isnull(storageLocId#1140331), coalesce(max_calc_datetime#1140382, 1970-01-01 00:00:00), isnull(max_calc_datetime#1140382)]
Join type: Inner
Join condition: None
(2116) Project
Output [4]: [plant#1140243, product#1140244, calculationDateTime#1140187, quantity#1140196]
Input [9]: [plant#1140243, product#1140244, storageLocId#1140194, calculationDateTime#1140187, quantity#1140196, plant#1140380, product#1140381, storageLocId#1140331, max_calc_datetime#1140382]
(2117) HashAggregate
Input [4]: [plant#1140243, product#1140244, calculationDateTime#1140187, quantity#1140196]
Keys [2]: [product#1140244, plant#1140243]
Functions [2]: [partial_min(calculationDateTime#1140187), partial_sum(quantity#1140196)]
Aggregate Attributes [2]: [min#1144002, sum#1144003]
Results [4]: [product#1140244, plant#1140243, min#1144004, sum#1144005]
(2118) Exchange
Input [4]: [product#1140244, plant#1140243, min#1144004, sum#1144005]
Arguments: hashpartitioning(product#1140244, plant#1140243, 37), ENSURE_REQUIREMENTS, [plan_id=1718473]
(2119) HashAggregate
Input [4]: [product#1140244, plant#1140243, min#1144004, sum#1144005]
Keys [2]: [product#1140244, plant#1140243]
Functions [2]: [min(calculationDateTime#1140187), sum(quantity#1140196)]
Aggregate Attributes [2]: [min(calculationDateTime#1140187)#1136045, sum(quantity#1140196)#1136044]
Results [4]: [product#1140244, plant#1140243, min(calculationDateTime#1140187)#1136045 AS minCalculationDateTime#1140384, round(sum(quantity#1140196)#1136044, 0) AS roundedQuantitySum#1140385]
(2120) Sort
Input [4]: [product#1140244, plant#1140243, minCalculationDateTime#1140384, roundedQuantitySum#1140385]
Arguments: [product#1140244 ASC NULLS FIRST, plant#1140243 ASC NULLS FIRST], false, 0
(2121) SortMergeJoin
Left keys [2]: [product#1140064, plant#1140065]
Right keys [2]: [product#1140244, plant#1140243]
Join type: LeftOuter
Join condition: None
(2122) Project
Output [8]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, CASE WHEN isnotnull(minCalculationDateTime#1140384) THEN minCalculationDateTime#1140384 ELSE orderDateTime#1140066 END AS stockDatetime#1140386, CASE WHEN isnotnull(roundedQuantitySum#1140385) THEN array(roundedQuantitySum#1140385) ELSE [0.0] END AS stockBatchQuantities#1140387]
Input [10]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, product#1140244, plant#1140243, minCalculationDateTime#1140384, roundedQuantitySum#1140385]
(2123) Scan parquet
Output [9]: [product#1140389, plant#1140390, demandChannel#1140391, demandStream#1140392, considerVariance#1140393, demandTimeBuckets#1140394, demandPointInTimeStart#1140395, demandPointInTimeEnd#1140396, demandPointInTime#1140397]
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>>>
(2124) Filter
Input [9]: [product#1140389, plant#1140390, demandChannel#1140391, demandStream#1140392, considerVariance#1140393, demandTimeBuckets#1140394, demandPointInTimeStart#1140395, demandPointInTimeEnd#1140396, demandPointInTime#1140397]
Condition : (isnotnull(product#1140389) AND isnotnull(plant#1140390))
(2125) BroadcastExchange
Input [9]: [product#1140389, plant#1140390, demandChannel#1140391, demandStream#1140392, considerVariance#1140393, demandTimeBuckets#1140394, demandPointInTimeStart#1140395, demandPointInTimeEnd#1140396, demandPointInTime#1140397]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1718482]
(2126) BroadcastHashJoin
Left keys [2]: [product#1140064, plant#1140065]
Right keys [2]: [product#1140389, plant#1140390]
Join type: LeftOuter
Join condition: None
(2127) Project
Output [9]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, CASE WHEN isnotnull(product#1140389) THEN struct(demandChannel, demandChannel#1140391, demandStream, demandStream#1140392, considerVariance, considerVariance#1140393, demandTimeBuckets, demandTimeBuckets#1140394, demandPointInTimeStart, demandPointInTimeStart#1140395, demandPointInTimeEnd, demandPointInTimeEnd#1140396, demandPointInTime, demandPointInTime#1140397) END AS rawDemands#1140398]
Input [17]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, product#1140389, plant#1140390, demandChannel#1140391, demandStream#1140392, considerVariance#1140393, demandTimeBuckets#1140394, demandPointInTimeStart#1140395, demandPointInTimeEnd#1140396, demandPointInTime#1140397]
(2128) ObjectHashAggregate
Input [9]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, rawDemands#1140398]
Keys [9]: [product#1140064, plant#1140065, orderDateTime#1140066, knownfloatingpointnormalized(if (isnull(productPlant#1140076)) null else named_struct(systemId, productPlant#1140076.systemId, internalUUID, productPlant#1140076.internalUUID, plant, productPlant#1140076.plant, product, productPlant#1140076.product, blockedForReplenishmentStartingFrom, productPlant#1140076.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1140076.productionAspect)) null else named_struct(productMovementPlants, productPlant#1140076.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1140076.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1140076.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1140076.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1140076.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1140076.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1140076.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1140076.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1140076.salesPlant, listing, productPlant#1140076.listing)) AS productPlant#1140076, timezonecode#1140090, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1140107)) AS outboundUnit#1140107, stockDatetime#1140386, knownfloatingpointnormalized(transform(stockBatchQuantities#1140387, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1143999)), lambda arg#1143999, false))) AS stockBatchQuantities#1140387, [7226582400000000] AS [7226582400000000]#1143998]
Functions [1]: [partial_collect_list(rawDemands#1140398, 0, 0)]
Aggregate Attributes [1]: [buf#1144000]
Results [10]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, [7226582400000000]#1143998, buf#1144001]
(2129) ObjectHashAggregate
Input [10]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, [7226582400000000]#1143998, buf#1144001]
Keys [9]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, [7226582400000000]#1143998]
Functions [1]: [collect_list(rawDemands#1140398, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1140398, 0, 0)#1136138]
Results [10]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1140388, collect_list(rawDemands#1140398, 0, 0)#1136138 AS rawDemands#1140399]
(2130) DeserializeToObject
Input [10]: [product#1140064, plant#1140065, orderDateTime#1140066, productPlant#1140076, timezonecode#1140090, outboundUnit#1140107, stockDatetime#1140386, stockBatchQuantities#1140387, stockBatchShelfLifeEndDatetimes#1140388, rawDemands#1140399]
Arguments: createexternalrow(invoke(product#1140064.toString()), invoke(plant#1140065.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1140066)), if (isnull(productPlant#1140076)) null else createexternalrow(invoke(productPlant#1140076.systemId.toString()), invoke(productPlant#1140076.internalUUID.toString()), if (isnull(productPlant#1140076.plant)) null else createexternalrow(invoke(productPlant#1140076.plant.internalRefUUID.toString()), invoke(productPlant#1140076.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1140076.product)) null else createexternalrow(invoke(productPlant#1140076.product.internalRefUUID.toString()), invoke(productPlant#1140076.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1140076.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1140076.productionAspect)) null else createexternalrow(if (isnull(productPlant#1140076.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1140076.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#1140076.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1140076.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1140076.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1140076.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1140076.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1140076.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#1140076.salesPlant)) null else createexternalrow(if (isnull(productPlant#1140076.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1140076.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1140076.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1140076.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#1140090.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1140107)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1140386)), mapobjects(lambdavariable(MapObject, DoubleType, true, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1140387, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), stockBatchShelfLifeEndDatetimes#1140388, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1140399, 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
(2131) 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
(2132) 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#1140400, 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#1140401, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(2))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -2), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -3), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), anchorDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -4), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 5, anchorDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), anchorWeekdays, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), assertnotnull(static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -5), StringType, ObjectType(class java.lang.String))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 6, anchorWeekdays), ArrayType(StringType,false), ObjectType(class java.lang.Object)), None), anchorIndices, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else if (invoke(class [I.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -6), IntegerType, ObjectType(class java.lang.Integer)).intValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -1), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), ObjectType(interface org.apache.spark.sql.Row)), 7, anchorIndices), ArrayType(IntegerType,false), ObjectType(class java.lang.Object)), None))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, dayBucketDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(anchorDatetimes,ArrayType(TimestampType,false),true),StructField(anchorWeekdays,ArrayType(StringType,false),true),StructField(anchorIndices,ArrayType(IntegerType,false),true)),false), ObjectType(class java.lang.Object)), None) AS dayBucketDemands#1140402, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), assertnotnull(if (isnull(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)))) null else named_struct(demandChannel, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 0, demandChannel), StringType, ObjectType(class java.lang.String)))), demandStream, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 1, demandStream), StringType, ObjectType(class java.lang.String)))), considerVariance, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(2))) null else invoke(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 2, considerVariance), BooleanType, ObjectType(class java.lang.Boolean)).booleanValue()), demandDatetimes, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(3))) null else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), assertnotnull(static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -8), TimestampType, ObjectType(class java.sql.Timestamp))))), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 3, demandDatetimes), ArrayType(TimestampType,false), ObjectType(class java.lang.Object)), None), demandValues, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(4))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), assertnotnull(invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -9), DoubleType, ObjectType(class java.lang.Double)).doubleValue())), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 4, demandValues), ArrayType(DoubleType,false), ObjectType(class java.lang.Object)), None), demandVariances, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(5))) null else if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -10), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 5, demandVariances), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None), horizonStartDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(6))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 6, horizonStartDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))), horizonEndDatetime, if (invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)).isNullAt(7))) null else static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(getexternalrowfield(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -7), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), ObjectType(interface org.apache.spark.sql.Row)), 7, horizonEndDatetime), TimestampType, ObjectType(class java.sql.Timestamp)))))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, pointInTimeDemands), ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandDatetimes,ArrayType(TimestampType,false),true),StructField(demandValues,ArrayType(DoubleType,false),true),StructField(demandVariances,ArrayType(DoubleType,true),true),StructField(horizonStartDatetime,TimestampType,true),StructField(horizonEndDatetime,TimestampType,true)),false), ObjectType(class java.lang.Object)), None) AS pointInTimeDemands#1140403]
(2133) Exchange
Input [4]: [product#1140400, plant#1140401, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Arguments: hashpartitioning(coalesce(plant#1140401, ), isnull(plant#1140401), coalesce(product#1140400, ), isnull(product#1140400), 37), ENSURE_REQUIREMENTS, [plan_id=1718493]
(2134) Sort
Input [4]: [product#1140400, plant#1140401, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Arguments: [coalesce(plant#1140401, ) ASC NULLS FIRST, isnull(plant#1140401) ASC NULLS FIRST, coalesce(product#1140400, ) ASC NULLS FIRST, isnull(product#1140400) ASC NULLS FIRST], false, 0
(2135) SortMergeJoin
Left keys [4]: [coalesce(plant#1139740, ), isnull(plant#1139740), coalesce(product#1139739, ), isnull(product#1139739)]
Right keys [4]: [coalesce(plant#1140401, ), isnull(plant#1140401), coalesce(product#1140400, ), isnull(product#1140400)]
Join type: LeftOuter
Join condition: None
(2136) Project
Output [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Input [12]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, product#1140400, plant#1140401, dayBucketDemands#1140402, pointInTimeDemands#1140403]
(2137) Exchange
Input [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Arguments: hashpartitioning(product#1139739, plant#1139740, 37), ENSURE_REQUIREMENTS, [plan_id=1718822]
(2138) Sort
Input [10]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403]
Arguments: [product#1139739 ASC NULLS FIRST, plant#1139740 ASC NULLS FIRST], false, 0
(2139) InMemoryTableScan
Output [3]: [product#1141154, plant#1141153, openGoodsMovements#1141168]
Arguments: [product#1141154, plant#1141153, openGoodsMovements#1141168], [isnotnull(product#1141154), isnotnull(plant#1141153)]
(2140) InMemoryRelation
Arguments: [product#1141154, plant#1141153, openGoodsMovements#1141168], StorageLevel(disk, memory, 2 replicas)
(2141) Filter
Input [3]: [product#1141154, plant#1141153, openGoodsMovements#1141168]
Condition : (isnotnull(product#1141154) AND isnotnull(plant#1141153))
(2142) Scan parquet
Output [3]: [product#1141169, plant#1141170, orderDateTime#1141171]
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,orderDateTime:timestamp>
(2143) Filter
Input [3]: [product#1141169, plant#1141170, orderDateTime#1141171]
Condition : isnotnull(plant#1141170)
(2144) Exchange
Input [3]: [product#1141169, plant#1141170, orderDateTime#1141171]
Arguments: hashpartitioning(product#1141169, plant#1141170, 37), REPARTITION_BY_NUM, [plan_id=1717357]
(2145) Scan parquet
Output [4]: [plant#1141175, product#1141176, productionAspect#1141178, systemId#1141173]
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>>>>
(2146) Project
Output [4]: [plant#1141175.internalRefUUID AS _extract_internalRefUUID#1142993, product#1141176.internalRefUUID AS _extract_internalRefUUID#1142992, productionAspect#1141178.productMovementPlants.unitOfIssue.code AS _extract_code#1142994, productionAspect#1141178.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142995]
Input [4]: [plant#1141175, product#1141176, productionAspect#1141178, systemId#1141173]
(2147) Exchange
Input [4]: [_extract_internalRefUUID#1142993, _extract_internalRefUUID#1142992, _extract_code#1142994, _extract_internalRefUUID#1142995]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716425]
(2148) Project
Output [4]: [_extract_code#1142994, _extract_internalRefUUID#1142995, _extract_internalRefUUID#1142992, _extract_internalRefUUID#1142993]
Input [4]: [_extract_internalRefUUID#1142993, _extract_internalRefUUID#1142992, _extract_code#1142994, _extract_internalRefUUID#1142995]
(2149) BroadcastExchange
Input [4]: [_extract_code#1142994, _extract_internalRefUUID#1142995, _extract_internalRefUUID#1142992, _extract_internalRefUUID#1142993]
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=1718498]
(2150) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141169, ), isnull(product#1141169), coalesce(plant#1141170, ), isnull(plant#1141170)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142992, ), isnull(_extract_internalRefUUID#1142992), coalesce(_extract_internalRefUUID#1142993, ), isnull(_extract_internalRefUUID#1142993)]
Join type: LeftOuter
Join condition: None
(2151) Project
Output [5]: [product#1141169, plant#1141170, orderDateTime#1141171, _extract_code#1142994, _extract_internalRefUUID#1142995]
Input [7]: [product#1141169, plant#1141170, orderDateTime#1141171, _extract_code#1142994, _extract_internalRefUUID#1142995, _extract_internalRefUUID#1142992, _extract_internalRefUUID#1142993]
(2152) Scan parquet
Output [2]: [internalUUID#1141183, systemId#1141182]
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>
(2153) Project
Output [1]: [internalUUID#1141183]
Input [2]: [internalUUID#1141183, systemId#1141182]
(2154) Exchange
Input [1]: [internalUUID#1141183]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716431]
(2155) BroadcastExchange
Input [1]: [internalUUID#1141183]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718502]
(2156) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141170, ), isnull(plant#1141170)]
Right keys [2]: [coalesce(internalUUID#1141183, ), isnull(internalUUID#1141183)]
Join type: LeftOuter
Join condition: None
(2157) Project
Output [5]: [product#1141169, plant#1141170, orderDateTime#1141171, _extract_code#1142994, _extract_internalRefUUID#1142995]
Input [6]: [product#1141169, plant#1141170, orderDateTime#1141171, _extract_code#1142994, _extract_internalRefUUID#1142995, internalUUID#1141183]
(2158) Scan parquet
Output [4]: [internalUUID#1141197, baseUnitOfMeasure#1141201, unitOfMeasureConversions#1141203, systemId#1141196]
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>>>
(2159) Filter
Input [4]: [internalUUID#1141197, baseUnitOfMeasure#1141201, unitOfMeasureConversions#1141203, systemId#1141196]
Condition : isnotnull(internalUUID#1141197)
(2160) Project
Output [3]: [internalUUID#1141197, baseUnitOfMeasure#1141201, unitOfMeasureConversions#1141203]
Input [4]: [internalUUID#1141197, baseUnitOfMeasure#1141201, unitOfMeasureConversions#1141203, systemId#1141196]
(2161) Exchange
Input [3]: [internalUUID#1141197, baseUnitOfMeasure#1141201, unitOfMeasureConversions#1141203]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716437]
(2162) BroadcastExchange
Input [3]: [internalUUID#1141197, baseUnitOfMeasure#1141201, unitOfMeasureConversions#1141203]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718506]
(2163) BroadcastHashJoin
Left keys [1]: [product#1141169]
Right keys [1]: [internalUUID#1141197]
Join type: LeftOuter
Join condition: None
(2164) Project
Output [4]: [product#1141169, plant#1141170, orderDateTime#1141171, filter(unitOfMeasureConversions#1141203, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142994) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142995)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141201.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141201.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141208]
Input [8]: [product#1141169, plant#1141170, orderDateTime#1141171, _extract_code#1142994, _extract_internalRefUUID#1142995, internalUUID#1141197, baseUnitOfMeasure#1141201, unitOfMeasureConversions#1141203]
(2165) Generate
Input [4]: [product#1141169, plant#1141170, orderDateTime#1141171, filteredUnitOfMeasureConversions#1141208]
Arguments: explode(filteredUnitOfMeasureConversions#1141208.quantityNumerator), [product#1141169, plant#1141170, orderDateTime#1141171, filteredUnitOfMeasureConversions#1141208], true, [quantityNumerator#1141209]
(2166) Project
Output [4]: [product#1141169, plant#1141170, orderDateTime#1141171, filteredUnitOfMeasureConversions#1141208.quantityDenominator AS _extract_quantityDenominator#1142334]
Input [5]: [product#1141169, plant#1141170, orderDateTime#1141171, filteredUnitOfMeasureConversions#1141208, quantityNumerator#1141209]
(2167) Generate
Input [4]: [product#1141169, plant#1141170, orderDateTime#1141171, _extract_quantityDenominator#1142334]
Arguments: explode(_extract_quantityDenominator#1142334), [product#1141169, plant#1141170, orderDateTime#1141171], true, [quantityDenominator#1141210]
(2168) Project
Output [3]: [product#1141169, plant#1141170, orderDateTime#1141171]
Input [4]: [product#1141169, plant#1141170, orderDateTime#1141171, quantityDenominator#1141210]
(2169) Sort
Input [3]: [product#1141169, plant#1141170, orderDateTime#1141171]
Arguments: [product#1141169 ASC NULLS FIRST, plant#1141170 ASC NULLS FIRST], false, 0
(2170) Scan parquet
Output [6]: [internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218, systemId#1141213]
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>>>>>
(2171) Filter
Input [6]: [internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218, systemId#1141213]
Condition : (isnotnull(plant#1141216.internalRefUUID) AND isnotnull(product#1141215.internalRefUUID))
(2172) Project
Output [6]: [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218]
Input [6]: [internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218, systemId#1141213]
(2173) Exchange
Input [6]: [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716447]
(2174) BroadcastExchange
Input [6]: [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218]
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=1718537]
(2175) Scan parquet
Output [2]: [marketUnit#1141219, distributionCenters#1141225]
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>>>>>
(2176) Filter
Input [2]: [marketUnit#1141219, distributionCenters#1141225]
Condition : (((marketUnit#1141219 <=> Alert_Test1) AND (size(distributionCenters#1141225, true) > 0)) AND isnotnull(distributionCenters#1141225))
(2177) Project
Output [1]: [distributionCenters#1141225]
Input [2]: [marketUnit#1141219, distributionCenters#1141225]
(2178) Exchange
Input [1]: [distributionCenters#1141225]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716451]
(2179) Generate
Input [1]: [distributionCenters#1141225]
Arguments: explode(distributionCenters#1141225), false, [distributionCenters#1141241]
(2180) Filter
Input [1]: [distributionCenters#1141241]
Condition : (((size(distributionCenters#1141241.storageLocations, true) > 0) AND isnotnull(distributionCenters#1141241.storageLocations)) AND isnotnull(distributionCenters#1141241.internalRefUUID))
(2181) Project
Output [2]: [distributionCenters#1141241.internalRefUUID AS _extract_internalRefUUID#1142338, distributionCenters#1141241.storageLocations AS _extract_storageLocations#1142339]
Input [1]: [distributionCenters#1141241]
(2182) Generate
Input [2]: [_extract_internalRefUUID#1142338, _extract_storageLocations#1142339]
Arguments: explode(_extract_storageLocations#1142339), [_extract_internalRefUUID#1142338], false, [storageLocations#1141242]
(2183) Project
Output [3]: [_extract_internalRefUUID#1142338 AS plantUuid#1141244, storageLocations#1141242.id AS storageLocId#1141245, storageLocations#1141242.internalRefUUID AS storageLocUuid#1141246]
Input [2]: [_extract_internalRefUUID#1142338, storageLocations#1141242]
(2184) BroadcastExchange
Input [3]: [plantUuid#1141244, storageLocId#1141245, storageLocUuid#1141246]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718533]
(2185) Scan parquet
Output [2]: [product#1141247, plant#1141248]
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>
(2186) Filter
Input [2]: [product#1141247, plant#1141248]
Condition : isnotnull(plant#1141248)
(2187) Exchange
Input [2]: [product#1141247, plant#1141248]
Arguments: hashpartitioning(product#1141247, plant#1141248, 37), REPARTITION_BY_NUM, [plan_id=1717368]
(2188) Scan parquet
Output [4]: [plant#1141253, product#1141254, productionAspect#1141256, systemId#1141251]
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>>>>
(2189) Project
Output [4]: [plant#1141253.internalRefUUID AS _extract_internalRefUUID#1142999, product#1141254.internalRefUUID AS _extract_internalRefUUID#1142996, productionAspect#1141256.productMovementPlants.unitOfIssue.code AS _extract_code#1142997, productionAspect#1141256.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1142998]
Input [4]: [plant#1141253, product#1141254, productionAspect#1141256, systemId#1141251]
(2190) Exchange
Input [4]: [_extract_internalRefUUID#1142999, _extract_internalRefUUID#1142996, _extract_code#1142997, _extract_internalRefUUID#1142998]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716463]
(2191) Project
Output [4]: [_extract_code#1142997, _extract_internalRefUUID#1142998, _extract_internalRefUUID#1142996, _extract_internalRefUUID#1142999]
Input [4]: [_extract_internalRefUUID#1142999, _extract_internalRefUUID#1142996, _extract_code#1142997, _extract_internalRefUUID#1142998]
(2192) BroadcastExchange
Input [4]: [_extract_code#1142997, _extract_internalRefUUID#1142998, _extract_internalRefUUID#1142996, _extract_internalRefUUID#1142999]
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=1718513]
(2193) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141247, ), isnull(product#1141247), coalesce(plant#1141248, ), isnull(plant#1141248)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1142996, ), isnull(_extract_internalRefUUID#1142996), coalesce(_extract_internalRefUUID#1142999, ), isnull(_extract_internalRefUUID#1142999)]
Join type: LeftOuter
Join condition: None
(2194) Project
Output [4]: [product#1141247, plant#1141248, _extract_code#1142997, _extract_internalRefUUID#1142998]
Input [6]: [product#1141247, plant#1141248, _extract_code#1142997, _extract_internalRefUUID#1142998, _extract_internalRefUUID#1142996, _extract_internalRefUUID#1142999]
(2195) Scan parquet
Output [2]: [internalUUID#1141261, systemId#1141260]
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>
(2196) Project
Output [1]: [internalUUID#1141261]
Input [2]: [internalUUID#1141261, systemId#1141260]
(2197) Exchange
Input [1]: [internalUUID#1141261]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716469]
(2198) BroadcastExchange
Input [1]: [internalUUID#1141261]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718517]
(2199) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141248, ), isnull(plant#1141248)]
Right keys [2]: [coalesce(internalUUID#1141261, ), isnull(internalUUID#1141261)]
Join type: LeftOuter
Join condition: None
(2200) Project
Output [4]: [product#1141247, plant#1141248, _extract_code#1142997, _extract_internalRefUUID#1142998]
Input [5]: [product#1141247, plant#1141248, _extract_code#1142997, _extract_internalRefUUID#1142998, internalUUID#1141261]
(2201) Scan parquet
Output [4]: [internalUUID#1141275, baseUnitOfMeasure#1141279, unitOfMeasureConversions#1141281, systemId#1141274]
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>>>
(2202) Filter
Input [4]: [internalUUID#1141275, baseUnitOfMeasure#1141279, unitOfMeasureConversions#1141281, systemId#1141274]
Condition : isnotnull(internalUUID#1141275)
(2203) Project
Output [3]: [internalUUID#1141275, baseUnitOfMeasure#1141279, unitOfMeasureConversions#1141281]
Input [4]: [internalUUID#1141275, baseUnitOfMeasure#1141279, unitOfMeasureConversions#1141281, systemId#1141274]
(2204) Exchange
Input [3]: [internalUUID#1141275, baseUnitOfMeasure#1141279, unitOfMeasureConversions#1141281]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716475]
(2205) BroadcastExchange
Input [3]: [internalUUID#1141275, baseUnitOfMeasure#1141279, unitOfMeasureConversions#1141281]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718521]
(2206) BroadcastHashJoin
Left keys [1]: [product#1141247]
Right keys [1]: [internalUUID#1141275]
Join type: LeftOuter
Join condition: None
(2207) Project
Output [2]: [plant#1141248, filter(unitOfMeasureConversions#1141281, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1142997) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1142998)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141279.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141279.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141286]
Input [7]: [product#1141247, plant#1141248, _extract_code#1142997, _extract_internalRefUUID#1142998, internalUUID#1141275, baseUnitOfMeasure#1141279, unitOfMeasureConversions#1141281]
(2208) Generate
Input [2]: [plant#1141248, filteredUnitOfMeasureConversions#1141286]
Arguments: explode(filteredUnitOfMeasureConversions#1141286.quantityNumerator), [plant#1141248, filteredUnitOfMeasureConversions#1141286], true, [quantityNumerator#1141287]
(2209) Project
Output [2]: [plant#1141248, filteredUnitOfMeasureConversions#1141286.quantityDenominator AS _extract_quantityDenominator#1142340]
Input [3]: [plant#1141248, filteredUnitOfMeasureConversions#1141286, quantityNumerator#1141287]
(2210) Generate
Input [2]: [plant#1141248, _extract_quantityDenominator#1142340]
Arguments: explode(_extract_quantityDenominator#1142340), [plant#1141248], true, [quantityDenominator#1141288]
(2211) Project
Output [1]: [plant#1141248]
Input [2]: [plant#1141248, quantityDenominator#1141288]
(2212) HashAggregate
Input [1]: [plant#1141248]
Keys [1]: [plant#1141248]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1141248]
(2213) Exchange
Input [1]: [plant#1141248]
Arguments: hashpartitioning(plant#1141248, 37), ENSURE_REQUIREMENTS, [plan_id=1718530]
(2214) HashAggregate
Input [1]: [plant#1141248]
Keys [1]: [plant#1141248]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1141248]
(2215) BroadcastHashJoin
Left keys [1]: [plantUuid#1141244]
Right keys [1]: [plant#1141248]
Join type: Inner
Join condition: None
(2216) Project
Output [3]: [plantUuid#1141244, storageLocId#1141245, storageLocUuid#1141246]
Input [4]: [plantUuid#1141244, storageLocId#1141245, storageLocUuid#1141246, plant#1141248]
(2217) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141216.internalRefUUID, ), isnull(plant#1141216.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1141244, ), isnull(plantUuid#1141244)]
Join type: Inner
Join condition: None
(2218) Generate
Input [9]: [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, stockQuantities#1141218, plantUuid#1141244, storageLocId#1141245, storageLocUuid#1141246]
Arguments: explode(filter(stockQuantities#1141218, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1141246) AND (lambda x#1135796.storageLocation.Id = storageLocId#1141245)), lambda x#1135796, false))), [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, plantUuid#1141244], false, [stockQuantity#1141291]
(2219) ObjectHashAggregate
Input [7]: [systemId#1141213, internalUUID#1141214, product#1141215, plant#1141216, calculationDateTime#1141217, plantUuid#1141244, stockQuantity#1141291]
Keys [5]: [plantUuid#1141244, internalUUID#1141214, plant#1141216, product#1141215, systemId#1141213]
Functions [2]: [partial_first(calculationDateTime#1141217, false), partial_collect_list(stockQuantity#1141291, 0, 0)]
Aggregate Attributes [3]: [first#1144026, valueSet#1144027, buf#1144028]
Results [8]: [plantUuid#1141244, internalUUID#1141214, plant#1141216, product#1141215, systemId#1141213, first#1144029, valueSet#1144030, buf#1144031]
(2220) ObjectHashAggregate
Input [8]: [plantUuid#1141244, internalUUID#1141214, plant#1141216, product#1141215, systemId#1141213, first#1144029, valueSet#1144030, buf#1144031]
Keys [5]: [plantUuid#1141244, internalUUID#1141214, plant#1141216, product#1141215, systemId#1141213]
Functions [2]: [first(calculationDateTime#1141217, false), collect_list(stockQuantity#1141291, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1141217)()#1135811, collect_list(stockQuantity#1141291, 0, 0)#1135812]
Results [4]: [product#1141215, plant#1141216, first(calculationDateTime#1141217)()#1135811 AS calculationDateTime#1141292, collect_list(stockQuantity#1141291, 0, 0)#1135812 AS stockQuantities#1141293]
(2221) Filter
Input [4]: [product#1141215, plant#1141216, calculationDateTime#1141292, stockQuantities#1141293]
Condition : ((size(stockQuantities#1141293, true) > 0) AND isnotnull(calculationDateTime#1141292))
(2222) Generate
Input [4]: [product#1141215, plant#1141216, calculationDateTime#1141292, stockQuantities#1141293]
Arguments: explode(stockQuantities#1141293), [product#1141215, plant#1141216, calculationDateTime#1141292], false, [stockQuantity#1141294]
(2223) Filter
Input [4]: [product#1141215, plant#1141216, calculationDateTime#1141292, stockQuantity#1141294]
Condition : (((isnotnull(stockQuantity#1141294.specialStockIndicator.code) AND isnotnull(stockQuantity#1141294.stockType.code)) AND (stockQuantity#1141294.specialStockIndicator.code = )) AND (stockQuantity#1141294.stockType.code = 01))
(2224) Project
Output [4]: [plant#1141216.internalRefUUID AS plantUuid#1141296, product#1141215.internalRefUUID AS productUuid#1141298, calculationDateTime#1141292, stockQuantity#1141294.storagelocation.id AS storageLocId#1141299]
Input [4]: [product#1141215, plant#1141216, calculationDateTime#1141292, stockQuantity#1141294]
(2225) Exchange
Input [4]: [plantUuid#1141296, productUuid#1141298, calculationDateTime#1141292, storageLocId#1141299]
Arguments: hashpartitioning(productUuid#1141298, plantUuid#1141296, 37), ENSURE_REQUIREMENTS, [plan_id=1718563]
(2226) Sort
Input [4]: [plantUuid#1141296, productUuid#1141298, calculationDateTime#1141292, storageLocId#1141299]
Arguments: [productUuid#1141298 ASC NULLS FIRST, plantUuid#1141296 ASC NULLS FIRST], false, 0
(2227) Scan parquet
Output [3]: [product#1141304, plant#1141305, orderDateTime#1141306]
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>
(2228) Filter
Input [3]: [product#1141304, plant#1141305, orderDateTime#1141306]
Condition : ((isnotnull(orderDateTime#1141306) AND isnotnull(plant#1141305)) AND isnotnull(product#1141304))
(2229) Exchange
Input [3]: [product#1141304, plant#1141305, orderDateTime#1141306]
Arguments: hashpartitioning(product#1141304, plant#1141305, 37), REPARTITION_BY_NUM, [plan_id=1717391]
(2230) Scan parquet
Output [4]: [plant#1141310, product#1141311, productionAspect#1141313, systemId#1141308]
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>>>>
(2231) Project
Output [4]: [plant#1141310.internalRefUUID AS _extract_internalRefUUID#1143003, product#1141311.internalRefUUID AS _extract_internalRefUUID#1143002, productionAspect#1141313.productMovementPlants.unitOfIssue.code AS _extract_code#1143000, productionAspect#1141313.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1143001]
Input [4]: [plant#1141310, product#1141311, productionAspect#1141313, systemId#1141308]
(2232) Exchange
Input [4]: [_extract_internalRefUUID#1143003, _extract_internalRefUUID#1143002, _extract_code#1143000, _extract_internalRefUUID#1143001]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716500]
(2233) Project
Output [4]: [_extract_code#1143000, _extract_internalRefUUID#1143001, _extract_internalRefUUID#1143002, _extract_internalRefUUID#1143003]
Input [4]: [_extract_internalRefUUID#1143003, _extract_internalRefUUID#1143002, _extract_code#1143000, _extract_internalRefUUID#1143001]
(2234) BroadcastExchange
Input [4]: [_extract_code#1143000, _extract_internalRefUUID#1143001, _extract_internalRefUUID#1143002, _extract_internalRefUUID#1143003]
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=1718546]
(2235) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141304, ), isnull(product#1141304), coalesce(plant#1141305, ), isnull(plant#1141305)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1143002, ), isnull(_extract_internalRefUUID#1143002), coalesce(_extract_internalRefUUID#1143003, ), isnull(_extract_internalRefUUID#1143003)]
Join type: LeftOuter
Join condition: None
(2236) Project
Output [5]: [product#1141304, plant#1141305, orderDateTime#1141306, _extract_code#1143000, _extract_internalRefUUID#1143001]
Input [7]: [product#1141304, plant#1141305, orderDateTime#1141306, _extract_code#1143000, _extract_internalRefUUID#1143001, _extract_internalRefUUID#1143002, _extract_internalRefUUID#1143003]
(2237) Scan parquet
Output [2]: [internalUUID#1141318, systemId#1141317]
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>
(2238) Project
Output [1]: [internalUUID#1141318]
Input [2]: [internalUUID#1141318, systemId#1141317]
(2239) Exchange
Input [1]: [internalUUID#1141318]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716506]
(2240) BroadcastExchange
Input [1]: [internalUUID#1141318]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718550]
(2241) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141305, ), isnull(plant#1141305)]
Right keys [2]: [coalesce(internalUUID#1141318, ), isnull(internalUUID#1141318)]
Join type: LeftOuter
Join condition: None
(2242) Project
Output [5]: [product#1141304, plant#1141305, orderDateTime#1141306, _extract_code#1143000, _extract_internalRefUUID#1143001]
Input [6]: [product#1141304, plant#1141305, orderDateTime#1141306, _extract_code#1143000, _extract_internalRefUUID#1143001, internalUUID#1141318]
(2243) Scan parquet
Output [4]: [internalUUID#1141332, baseUnitOfMeasure#1141336, unitOfMeasureConversions#1141338, systemId#1141331]
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>>>
(2244) Filter
Input [4]: [internalUUID#1141332, baseUnitOfMeasure#1141336, unitOfMeasureConversions#1141338, systemId#1141331]
Condition : isnotnull(internalUUID#1141332)
(2245) Project
Output [3]: [internalUUID#1141332, baseUnitOfMeasure#1141336, unitOfMeasureConversions#1141338]
Input [4]: [internalUUID#1141332, baseUnitOfMeasure#1141336, unitOfMeasureConversions#1141338, systemId#1141331]
(2246) Exchange
Input [3]: [internalUUID#1141332, baseUnitOfMeasure#1141336, unitOfMeasureConversions#1141338]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716512]
(2247) BroadcastExchange
Input [3]: [internalUUID#1141332, baseUnitOfMeasure#1141336, unitOfMeasureConversions#1141338]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718554]
(2248) BroadcastHashJoin
Left keys [1]: [product#1141304]
Right keys [1]: [internalUUID#1141332]
Join type: LeftOuter
Join condition: None
(2249) Project
Output [4]: [product#1141304, plant#1141305, orderDateTime#1141306, filter(unitOfMeasureConversions#1141338, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1143000) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1143001)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141336.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141336.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141343]
Input [8]: [product#1141304, plant#1141305, orderDateTime#1141306, _extract_code#1143000, _extract_internalRefUUID#1143001, internalUUID#1141332, baseUnitOfMeasure#1141336, unitOfMeasureConversions#1141338]
(2250) Generate
Input [4]: [product#1141304, plant#1141305, orderDateTime#1141306, filteredUnitOfMeasureConversions#1141343]
Arguments: explode(filteredUnitOfMeasureConversions#1141343.quantityNumerator), [product#1141304, plant#1141305, orderDateTime#1141306, filteredUnitOfMeasureConversions#1141343], true, [quantityNumerator#1141344]
(2251) Project
Output [4]: [product#1141304, plant#1141305, orderDateTime#1141306, filteredUnitOfMeasureConversions#1141343.quantityDenominator AS _extract_quantityDenominator#1142344]
Input [5]: [product#1141304, plant#1141305, orderDateTime#1141306, filteredUnitOfMeasureConversions#1141343, quantityNumerator#1141344]
(2252) Generate
Input [4]: [product#1141304, plant#1141305, orderDateTime#1141306, _extract_quantityDenominator#1142344]
Arguments: explode(_extract_quantityDenominator#1142344), [product#1141304, plant#1141305, orderDateTime#1141306], true, [quantityDenominator#1141345]
(2253) Project
Output [3]: [product#1141304, plant#1141305, orderDateTime#1141306]
Input [4]: [product#1141304, plant#1141305, orderDateTime#1141306, quantityDenominator#1141345]
(2254) Sort
Input [3]: [product#1141304, plant#1141305, orderDateTime#1141306]
Arguments: [product#1141304 ASC NULLS FIRST, plant#1141305 ASC NULLS FIRST], false, 0
(2255) SortMergeJoin
Left keys [2]: [productUuid#1141298, plantUuid#1141296]
Right keys [2]: [product#1141304, plant#1141305]
Join type: Inner
Join condition: (calculationDateTime#1141292 <= orderDateTime#1141306)
(2256) Project
Output [4]: [plantUuid#1141296 AS plant#1141348, productUuid#1141298 AS product#1141349, storageLocId#1141299, calculationDateTime#1141292]
Input [7]: [plantUuid#1141296, productUuid#1141298, calculationDateTime#1141292, storageLocId#1141299, product#1141304, plant#1141305, orderDateTime#1141306]
(2257) Exchange
Input [4]: [plant#1141348, product#1141349, storageLocId#1141299, calculationDateTime#1141292]
Arguments: hashpartitioning(coalesce(plant#1141348, ), isnull(plant#1141348), coalesce(product#1141349, ), isnull(product#1141349), coalesce(storageLocId#1141299, ), isnull(storageLocId#1141299), coalesce(calculationDateTime#1141292, 1970-01-01 00:00:00), isnull(calculationDateTime#1141292), 37), ENSURE_REQUIREMENTS, [plan_id=1718627]
(2258) Sort
Input [4]: [plant#1141348, product#1141349, storageLocId#1141299, calculationDateTime#1141292]
Arguments: [coalesce(plant#1141348, ) ASC NULLS FIRST, isnull(plant#1141348) ASC NULLS FIRST, coalesce(product#1141349, ) ASC NULLS FIRST, isnull(product#1141349) ASC NULLS FIRST, coalesce(storageLocId#1141299, ) ASC NULLS FIRST, isnull(storageLocId#1141299) ASC NULLS FIRST, coalesce(calculationDateTime#1141292, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1141292) ASC NULLS FIRST], false, 0
(2259) Scan parquet
Output [6]: [internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355, systemId#1141350]
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>>>>>
(2260) Filter
Input [6]: [internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355, systemId#1141350]
Condition : (isnotnull(plant#1141353.internalRefUUID) AND isnotnull(product#1141352.internalRefUUID))
(2261) Project
Output [6]: [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355]
Input [6]: [internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355, systemId#1141350]
(2262) Exchange
Input [6]: [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716524]
(2263) BroadcastExchange
Input [6]: [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355]
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=1718592]
(2264) Scan parquet
Output [2]: [marketUnit#1141356, distributionCenters#1141362]
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>>>>>
(2265) Filter
Input [2]: [marketUnit#1141356, distributionCenters#1141362]
Condition : (((marketUnit#1141356 <=> Alert_Test1) AND (size(distributionCenters#1141362, true) > 0)) AND isnotnull(distributionCenters#1141362))
(2266) Project
Output [1]: [distributionCenters#1141362]
Input [2]: [marketUnit#1141356, distributionCenters#1141362]
(2267) Exchange
Input [1]: [distributionCenters#1141362]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716528]
(2268) Generate
Input [1]: [distributionCenters#1141362]
Arguments: explode(distributionCenters#1141362), false, [distributionCenters#1141378]
(2269) Filter
Input [1]: [distributionCenters#1141378]
Condition : (((size(distributionCenters#1141378.storageLocations, true) > 0) AND isnotnull(distributionCenters#1141378.storageLocations)) AND isnotnull(distributionCenters#1141378.internalRefUUID))
(2270) Project
Output [2]: [distributionCenters#1141378.internalRefUUID AS _extract_internalRefUUID#1142348, distributionCenters#1141378.storageLocations AS _extract_storageLocations#1142349]
Input [1]: [distributionCenters#1141378]
(2271) Generate
Input [2]: [_extract_internalRefUUID#1142348, _extract_storageLocations#1142349]
Arguments: explode(_extract_storageLocations#1142349), [_extract_internalRefUUID#1142348], false, [storageLocations#1141379]
(2272) Project
Output [3]: [_extract_internalRefUUID#1142348 AS plantUuid#1141381, storageLocations#1141379.id AS storageLocId#1141382, storageLocations#1141379.internalRefUUID AS storageLocUuid#1141383]
Input [2]: [_extract_internalRefUUID#1142348, storageLocations#1141379]
(2273) BroadcastExchange
Input [3]: [plantUuid#1141381, storageLocId#1141382, storageLocUuid#1141383]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718588]
(2274) Scan parquet
Output [2]: [product#1141384, plant#1141385]
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>
(2275) Filter
Input [2]: [product#1141384, plant#1141385]
Condition : isnotnull(plant#1141385)
(2276) Exchange
Input [2]: [product#1141384, plant#1141385]
Arguments: hashpartitioning(product#1141384, plant#1141385, 37), REPARTITION_BY_NUM, [plan_id=1717404]
(2277) Scan parquet
Output [4]: [plant#1141390, product#1141391, productionAspect#1141393, systemId#1141388]
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>>>>
(2278) Project
Output [4]: [plant#1141390.internalRefUUID AS _extract_internalRefUUID#1143004, product#1141391.internalRefUUID AS _extract_internalRefUUID#1143007, productionAspect#1141393.productMovementPlants.unitOfIssue.code AS _extract_code#1143005, productionAspect#1141393.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1143006]
Input [4]: [plant#1141390, product#1141391, productionAspect#1141393, systemId#1141388]
(2279) Exchange
Input [4]: [_extract_internalRefUUID#1143004, _extract_internalRefUUID#1143007, _extract_code#1143005, _extract_internalRefUUID#1143006]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716540]
(2280) Project
Output [4]: [_extract_code#1143005, _extract_internalRefUUID#1143006, _extract_internalRefUUID#1143007, _extract_internalRefUUID#1143004]
Input [4]: [_extract_internalRefUUID#1143004, _extract_internalRefUUID#1143007, _extract_code#1143005, _extract_internalRefUUID#1143006]
(2281) BroadcastExchange
Input [4]: [_extract_code#1143005, _extract_internalRefUUID#1143006, _extract_internalRefUUID#1143007, _extract_internalRefUUID#1143004]
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=1718568]
(2282) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141384, ), isnull(product#1141384), coalesce(plant#1141385, ), isnull(plant#1141385)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1143007, ), isnull(_extract_internalRefUUID#1143007), coalesce(_extract_internalRefUUID#1143004, ), isnull(_extract_internalRefUUID#1143004)]
Join type: LeftOuter
Join condition: None
(2283) Project
Output [4]: [product#1141384, plant#1141385, _extract_code#1143005, _extract_internalRefUUID#1143006]
Input [6]: [product#1141384, plant#1141385, _extract_code#1143005, _extract_internalRefUUID#1143006, _extract_internalRefUUID#1143007, _extract_internalRefUUID#1143004]
(2284) Scan parquet
Output [2]: [internalUUID#1141398, systemId#1141397]
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>
(2285) Project
Output [1]: [internalUUID#1141398]
Input [2]: [internalUUID#1141398, systemId#1141397]
(2286) Exchange
Input [1]: [internalUUID#1141398]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716546]
(2287) BroadcastExchange
Input [1]: [internalUUID#1141398]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718572]
(2288) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141385, ), isnull(plant#1141385)]
Right keys [2]: [coalesce(internalUUID#1141398, ), isnull(internalUUID#1141398)]
Join type: LeftOuter
Join condition: None
(2289) Project
Output [4]: [product#1141384, plant#1141385, _extract_code#1143005, _extract_internalRefUUID#1143006]
Input [5]: [product#1141384, plant#1141385, _extract_code#1143005, _extract_internalRefUUID#1143006, internalUUID#1141398]
(2290) Scan parquet
Output [4]: [internalUUID#1141412, baseUnitOfMeasure#1141416, unitOfMeasureConversions#1141418, systemId#1141411]
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>>>
(2291) Filter
Input [4]: [internalUUID#1141412, baseUnitOfMeasure#1141416, unitOfMeasureConversions#1141418, systemId#1141411]
Condition : isnotnull(internalUUID#1141412)
(2292) Project
Output [3]: [internalUUID#1141412, baseUnitOfMeasure#1141416, unitOfMeasureConversions#1141418]
Input [4]: [internalUUID#1141412, baseUnitOfMeasure#1141416, unitOfMeasureConversions#1141418, systemId#1141411]
(2293) Exchange
Input [3]: [internalUUID#1141412, baseUnitOfMeasure#1141416, unitOfMeasureConversions#1141418]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716552]
(2294) BroadcastExchange
Input [3]: [internalUUID#1141412, baseUnitOfMeasure#1141416, unitOfMeasureConversions#1141418]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718576]
(2295) BroadcastHashJoin
Left keys [1]: [product#1141384]
Right keys [1]: [internalUUID#1141412]
Join type: LeftOuter
Join condition: None
(2296) Project
Output [2]: [plant#1141385, filter(unitOfMeasureConversions#1141418, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1143005) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1143006)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141416.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141416.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141423]
Input [7]: [product#1141384, plant#1141385, _extract_code#1143005, _extract_internalRefUUID#1143006, internalUUID#1141412, baseUnitOfMeasure#1141416, unitOfMeasureConversions#1141418]
(2297) Generate
Input [2]: [plant#1141385, filteredUnitOfMeasureConversions#1141423]
Arguments: explode(filteredUnitOfMeasureConversions#1141423.quantityNumerator), [plant#1141385, filteredUnitOfMeasureConversions#1141423], true, [quantityNumerator#1141424]
(2298) Project
Output [2]: [plant#1141385, filteredUnitOfMeasureConversions#1141423.quantityDenominator AS _extract_quantityDenominator#1142350]
Input [3]: [plant#1141385, filteredUnitOfMeasureConversions#1141423, quantityNumerator#1141424]
(2299) Generate
Input [2]: [plant#1141385, _extract_quantityDenominator#1142350]
Arguments: explode(_extract_quantityDenominator#1142350), [plant#1141385], true, [quantityDenominator#1141425]
(2300) Project
Output [1]: [plant#1141385]
Input [2]: [plant#1141385, quantityDenominator#1141425]
(2301) HashAggregate
Input [1]: [plant#1141385]
Keys [1]: [plant#1141385]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1141385]
(2302) Exchange
Input [1]: [plant#1141385]
Arguments: hashpartitioning(plant#1141385, 37), ENSURE_REQUIREMENTS, [plan_id=1718585]
(2303) HashAggregate
Input [1]: [plant#1141385]
Keys [1]: [plant#1141385]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1141385]
(2304) BroadcastHashJoin
Left keys [1]: [plantUuid#1141381]
Right keys [1]: [plant#1141385]
Join type: Inner
Join condition: None
(2305) Project
Output [3]: [plantUuid#1141381, storageLocId#1141382, storageLocUuid#1141383]
Input [4]: [plantUuid#1141381, storageLocId#1141382, storageLocUuid#1141383, plant#1141385]
(2306) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141353.internalRefUUID, ), isnull(plant#1141353.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1141381, ), isnull(plantUuid#1141381)]
Join type: Inner
Join condition: None
(2307) Generate
Input [9]: [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, stockQuantities#1141355, plantUuid#1141381, storageLocId#1141382, storageLocUuid#1141383]
Arguments: explode(filter(stockQuantities#1141355, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1141383) AND (lambda x#1135796.storageLocation.Id = storageLocId#1141382)), lambda x#1135796, false))), [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, plantUuid#1141381], false, [stockQuantity#1141428]
(2308) ObjectHashAggregate
Input [7]: [systemId#1141350, internalUUID#1141351, product#1141352, plant#1141353, calculationDateTime#1141354, plantUuid#1141381, stockQuantity#1141428]
Keys [5]: [plantUuid#1141381, internalUUID#1141351, plant#1141353, product#1141352, systemId#1141350]
Functions [2]: [partial_first(calculationDateTime#1141354, false), partial_collect_list(stockQuantity#1141428, 0, 0)]
Aggregate Attributes [3]: [first#1144034, valueSet#1144035, buf#1144036]
Results [8]: [plantUuid#1141381, internalUUID#1141351, plant#1141353, product#1141352, systemId#1141350, first#1144037, valueSet#1144038, buf#1144039]
(2309) ObjectHashAggregate
Input [8]: [plantUuid#1141381, internalUUID#1141351, plant#1141353, product#1141352, systemId#1141350, first#1144037, valueSet#1144038, buf#1144039]
Keys [5]: [plantUuid#1141381, internalUUID#1141351, plant#1141353, product#1141352, systemId#1141350]
Functions [2]: [first(calculationDateTime#1141354, false), collect_list(stockQuantity#1141428, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1141354)()#1135811, collect_list(stockQuantity#1141428, 0, 0)#1135812]
Results [4]: [product#1141352, plant#1141353, first(calculationDateTime#1141354)()#1135811 AS calculationDateTime#1141429, collect_list(stockQuantity#1141428, 0, 0)#1135812 AS stockQuantities#1141430]
(2310) Filter
Input [4]: [product#1141352, plant#1141353, calculationDateTime#1141429, stockQuantities#1141430]
Condition : ((size(stockQuantities#1141430, true) > 0) AND isnotnull(calculationDateTime#1141429))
(2311) Generate
Input [4]: [product#1141352, plant#1141353, calculationDateTime#1141429, stockQuantities#1141430]
Arguments: explode(stockQuantities#1141430), [product#1141352, plant#1141353, calculationDateTime#1141429], false, [stockQuantity#1141431]
(2312) Filter
Input [4]: [product#1141352, plant#1141353, calculationDateTime#1141429, stockQuantity#1141431]
Condition : (((isnotnull(stockQuantity#1141431.specialStockIndicator.code) AND isnotnull(stockQuantity#1141431.stockType.code)) AND (stockQuantity#1141431.specialStockIndicator.code = )) AND (stockQuantity#1141431.stockType.code = 01))
(2313) Project
Output [4]: [plant#1141353.internalRefUUID AS plantUuid#1141433, product#1141352.internalRefUUID AS productUuid#1141435, calculationDateTime#1141429, stockQuantity#1141431.storagelocation.id AS storageLocId#1141436]
Input [4]: [product#1141352, plant#1141353, calculationDateTime#1141429, stockQuantity#1141431]
(2314) Exchange
Input [4]: [plantUuid#1141433, productUuid#1141435, calculationDateTime#1141429, storageLocId#1141436]
Arguments: hashpartitioning(productUuid#1141435, plantUuid#1141433, 37), ENSURE_REQUIREMENTS, [plan_id=1718618]
(2315) Sort
Input [4]: [plantUuid#1141433, productUuid#1141435, calculationDateTime#1141429, storageLocId#1141436]
Arguments: [productUuid#1141435 ASC NULLS FIRST, plantUuid#1141433 ASC NULLS FIRST], false, 0
(2316) Scan parquet
Output [3]: [product#1141441, plant#1141442, orderDateTime#1141443]
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>
(2317) Filter
Input [3]: [product#1141441, plant#1141442, orderDateTime#1141443]
Condition : ((isnotnull(orderDateTime#1141443) AND isnotnull(plant#1141442)) AND isnotnull(product#1141441))
(2318) Exchange
Input [3]: [product#1141441, plant#1141442, orderDateTime#1141443]
Arguments: hashpartitioning(product#1141441, plant#1141442, 37), REPARTITION_BY_NUM, [plan_id=1717427]
(2319) Scan parquet
Output [4]: [plant#1141447, product#1141448, productionAspect#1141450, systemId#1141445]
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>>>>
(2320) Project
Output [4]: [plant#1141447.internalRefUUID AS _extract_internalRefUUID#1143009, product#1141448.internalRefUUID AS _extract_internalRefUUID#1143008, productionAspect#1141450.productMovementPlants.unitOfIssue.code AS _extract_code#1143010, productionAspect#1141450.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1143011]
Input [4]: [plant#1141447, product#1141448, productionAspect#1141450, systemId#1141445]
(2321) Exchange
Input [4]: [_extract_internalRefUUID#1143009, _extract_internalRefUUID#1143008, _extract_code#1143010, _extract_internalRefUUID#1143011]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716577]
(2322) Project
Output [4]: [_extract_code#1143010, _extract_internalRefUUID#1143011, _extract_internalRefUUID#1143008, _extract_internalRefUUID#1143009]
Input [4]: [_extract_internalRefUUID#1143009, _extract_internalRefUUID#1143008, _extract_code#1143010, _extract_internalRefUUID#1143011]
(2323) BroadcastExchange
Input [4]: [_extract_code#1143010, _extract_internalRefUUID#1143011, _extract_internalRefUUID#1143008, _extract_internalRefUUID#1143009]
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=1718601]
(2324) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141441, ), isnull(product#1141441), coalesce(plant#1141442, ), isnull(plant#1141442)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1143008, ), isnull(_extract_internalRefUUID#1143008), coalesce(_extract_internalRefUUID#1143009, ), isnull(_extract_internalRefUUID#1143009)]
Join type: LeftOuter
Join condition: None
(2325) Project
Output [5]: [product#1141441, plant#1141442, orderDateTime#1141443, _extract_code#1143010, _extract_internalRefUUID#1143011]
Input [7]: [product#1141441, plant#1141442, orderDateTime#1141443, _extract_code#1143010, _extract_internalRefUUID#1143011, _extract_internalRefUUID#1143008, _extract_internalRefUUID#1143009]
(2326) Scan parquet
Output [2]: [internalUUID#1141455, systemId#1141454]
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>
(2327) Project
Output [1]: [internalUUID#1141455]
Input [2]: [internalUUID#1141455, systemId#1141454]
(2328) Exchange
Input [1]: [internalUUID#1141455]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716583]
(2329) BroadcastExchange
Input [1]: [internalUUID#1141455]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718605]
(2330) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141442, ), isnull(plant#1141442)]
Right keys [2]: [coalesce(internalUUID#1141455, ), isnull(internalUUID#1141455)]
Join type: LeftOuter
Join condition: None
(2331) Project
Output [5]: [product#1141441, plant#1141442, orderDateTime#1141443, _extract_code#1143010, _extract_internalRefUUID#1143011]
Input [6]: [product#1141441, plant#1141442, orderDateTime#1141443, _extract_code#1143010, _extract_internalRefUUID#1143011, internalUUID#1141455]
(2332) Scan parquet
Output [4]: [internalUUID#1141469, baseUnitOfMeasure#1141473, unitOfMeasureConversions#1141475, systemId#1141468]
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>>>
(2333) Filter
Input [4]: [internalUUID#1141469, baseUnitOfMeasure#1141473, unitOfMeasureConversions#1141475, systemId#1141468]
Condition : isnotnull(internalUUID#1141469)
(2334) Project
Output [3]: [internalUUID#1141469, baseUnitOfMeasure#1141473, unitOfMeasureConversions#1141475]
Input [4]: [internalUUID#1141469, baseUnitOfMeasure#1141473, unitOfMeasureConversions#1141475, systemId#1141468]
(2335) Exchange
Input [3]: [internalUUID#1141469, baseUnitOfMeasure#1141473, unitOfMeasureConversions#1141475]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716589]
(2336) BroadcastExchange
Input [3]: [internalUUID#1141469, baseUnitOfMeasure#1141473, unitOfMeasureConversions#1141475]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718609]
(2337) BroadcastHashJoin
Left keys [1]: [product#1141441]
Right keys [1]: [internalUUID#1141469]
Join type: LeftOuter
Join condition: None
(2338) Project
Output [4]: [product#1141441, plant#1141442, orderDateTime#1141443, filter(unitOfMeasureConversions#1141475, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1143010) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1143011)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141473.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141473.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141480]
Input [8]: [product#1141441, plant#1141442, orderDateTime#1141443, _extract_code#1143010, _extract_internalRefUUID#1143011, internalUUID#1141469, baseUnitOfMeasure#1141473, unitOfMeasureConversions#1141475]
(2339) Generate
Input [4]: [product#1141441, plant#1141442, orderDateTime#1141443, filteredUnitOfMeasureConversions#1141480]
Arguments: explode(filteredUnitOfMeasureConversions#1141480.quantityNumerator), [product#1141441, plant#1141442, orderDateTime#1141443, filteredUnitOfMeasureConversions#1141480], true, [quantityNumerator#1141481]
(2340) Project
Output [4]: [product#1141441, plant#1141442, orderDateTime#1141443, filteredUnitOfMeasureConversions#1141480.quantityDenominator AS _extract_quantityDenominator#1142354]
Input [5]: [product#1141441, plant#1141442, orderDateTime#1141443, filteredUnitOfMeasureConversions#1141480, quantityNumerator#1141481]
(2341) Generate
Input [4]: [product#1141441, plant#1141442, orderDateTime#1141443, _extract_quantityDenominator#1142354]
Arguments: explode(_extract_quantityDenominator#1142354), [product#1141441, plant#1141442, orderDateTime#1141443], true, [quantityDenominator#1141482]
(2342) Project
Output [3]: [product#1141441, plant#1141442, orderDateTime#1141443]
Input [4]: [product#1141441, plant#1141442, orderDateTime#1141443, quantityDenominator#1141482]
(2343) Sort
Input [3]: [product#1141441, plant#1141442, orderDateTime#1141443]
Arguments: [product#1141441 ASC NULLS FIRST, plant#1141442 ASC NULLS FIRST], false, 0
(2344) SortMergeJoin
Left keys [2]: [productUuid#1141435, plantUuid#1141433]
Right keys [2]: [product#1141441, plant#1141442]
Join type: Inner
Join condition: (calculationDateTime#1141429 <= orderDateTime#1141443)
(2345) Project
Output [4]: [plantUuid#1141433 AS plant#1141485, productUuid#1141435 AS product#1141486, storageLocId#1141436, calculationDateTime#1141429]
Input [7]: [plantUuid#1141433, productUuid#1141435, calculationDateTime#1141429, storageLocId#1141436, product#1141441, plant#1141442, orderDateTime#1141443]
(2346) HashAggregate
Input [4]: [plant#1141485, product#1141486, storageLocId#1141436, calculationDateTime#1141429]
Keys [3]: [plant#1141485, product#1141486, storageLocId#1141436]
Functions [1]: [partial_max(calculationDateTime#1141429)]
Aggregate Attributes [1]: [max#1144032]
Results [4]: [plant#1141485, product#1141486, storageLocId#1141436, max#1144033]
(2347) HashAggregate
Input [4]: [plant#1141485, product#1141486, storageLocId#1141436, max#1144033]
Keys [3]: [plant#1141485, product#1141486, storageLocId#1141436]
Functions [1]: [max(calculationDateTime#1141429)]
Aggregate Attributes [1]: [max(calculationDateTime#1141429)#1135889]
Results [4]: [plant#1141485, product#1141486, storageLocId#1141436, max(calculationDateTime#1141429)#1135889 AS max_calc_datetime#1141487]
(2348) Exchange
Input [4]: [plant#1141485, product#1141486, storageLocId#1141436, max_calc_datetime#1141487]
Arguments: hashpartitioning(coalesce(plant#1141485, ), isnull(plant#1141485), coalesce(product#1141486, ), isnull(product#1141486), coalesce(storageLocId#1141436, ), isnull(storageLocId#1141436), coalesce(max_calc_datetime#1141487, 1970-01-01 00:00:00), isnull(max_calc_datetime#1141487), 37), ENSURE_REQUIREMENTS, [plan_id=1718628]
(2349) Sort
Input [4]: [plant#1141485, product#1141486, storageLocId#1141436, max_calc_datetime#1141487]
Arguments: [coalesce(plant#1141485, ) ASC NULLS FIRST, isnull(plant#1141485) ASC NULLS FIRST, coalesce(product#1141486, ) ASC NULLS FIRST, isnull(product#1141486) ASC NULLS FIRST, coalesce(storageLocId#1141436, ) ASC NULLS FIRST, isnull(storageLocId#1141436) ASC NULLS FIRST, coalesce(max_calc_datetime#1141487, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1141487) ASC NULLS FIRST], false, 0
(2350) SortMergeJoin
Left keys [8]: [coalesce(plant#1141348, ), isnull(plant#1141348), coalesce(product#1141349, ), isnull(product#1141349), coalesce(storageLocId#1141299, ), isnull(storageLocId#1141299), coalesce(calculationDateTime#1141292, 1970-01-01 00:00:00), isnull(calculationDateTime#1141292)]
Right keys [8]: [coalesce(plant#1141485, ), isnull(plant#1141485), coalesce(product#1141486, ), isnull(product#1141486), coalesce(storageLocId#1141436, ), isnull(storageLocId#1141436), coalesce(max_calc_datetime#1141487, 1970-01-01 00:00:00), isnull(max_calc_datetime#1141487)]
Join type: Inner
Join condition: None
(2351) Project
Output [3]: [plant#1141348, product#1141349, calculationDateTime#1141292]
Input [8]: [plant#1141348, product#1141349, storageLocId#1141299, calculationDateTime#1141292, plant#1141485, product#1141486, storageLocId#1141436, max_calc_datetime#1141487]
(2352) HashAggregate
Input [3]: [plant#1141348, product#1141349, calculationDateTime#1141292]
Keys [2]: [product#1141349, plant#1141348]
Functions [1]: [partial_min(calculationDateTime#1141292)]
Aggregate Attributes [1]: [min#1144024]
Results [3]: [product#1141349, plant#1141348, min#1144025]
(2353) Exchange
Input [3]: [product#1141349, plant#1141348, min#1144025]
Arguments: hashpartitioning(product#1141349, plant#1141348, 37), ENSURE_REQUIREMENTS, [plan_id=1718635]
(2354) HashAggregate
Input [3]: [product#1141349, plant#1141348, min#1144025]
Keys [2]: [product#1141349, plant#1141348]
Functions [1]: [min(calculationDateTime#1141292)]
Aggregate Attributes [1]: [min(calculationDateTime#1141292)#1136045]
Results [3]: [product#1141349, plant#1141348, min(calculationDateTime#1141292)#1136045 AS minCalculationDateTime#1141489]
(2355) Sort
Input [3]: [product#1141349, plant#1141348, minCalculationDateTime#1141489]
Arguments: [product#1141349 ASC NULLS FIRST, plant#1141348 ASC NULLS FIRST], false, 0
(2356) SortMergeJoin
Left keys [2]: [product#1141169, plant#1141170]
Right keys [2]: [product#1141349, plant#1141348]
Join type: LeftOuter
Join condition: None
(2357) Project
Output [3]: [product#1141169, plant#1141170, CASE WHEN isnotnull(minCalculationDateTime#1141489) THEN minCalculationDateTime#1141489 ELSE orderDateTime#1141171 END AS stockDatetime#1141491]
Input [6]: [product#1141169, plant#1141170, orderDateTime#1141171, product#1141349, plant#1141348, minCalculationDateTime#1141489]
(2358) Exchange
Input [3]: [product#1141169, plant#1141170, stockDatetime#1141491]
Arguments: hashpartitioning(coalesce(plant#1141170, ), isnull(plant#1141170), coalesce(product#1141169, ), isnull(product#1141169), 37), ENSURE_REQUIREMENTS, [plan_id=1718799]
(2359) Sort
Input [3]: [product#1141169, plant#1141170, stockDatetime#1141491]
Arguments: [coalesce(plant#1141170, ) ASC NULLS FIRST, isnull(plant#1141170) ASC NULLS FIRST, coalesce(product#1141169, ) ASC NULLS FIRST, isnull(product#1141169) ASC NULLS FIRST], false, 0
(2360) Scan parquet
Output [3]: [product#1141494, plant#1141495, orderDateTime#1141496]
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>
(2361) Exchange
Input [3]: [product#1141494, plant#1141495, orderDateTime#1141496]
Arguments: hashpartitioning(product#1141494, plant#1141495, 37), REPARTITION_BY_NUM, [plan_id=1716607]
(2362) Scan parquet
Output [8]: [internalUUID#1141499, plant#1141500, product#1141501, blockedForReplenishmentStartingFrom#1141502, productionAspect#1141503, salesPlant#1141504, listing#1141505, systemId#1141498]
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>>>
(2363) Project
Output [8]: [systemId#1141498, internalUUID#1141499, plant#1141500, product#1141501, blockedForReplenishmentStartingFrom#1141502, productionAspect#1141503, salesPlant#1141504, listing#1141505]
Input [8]: [internalUUID#1141499, plant#1141500, product#1141501, blockedForReplenishmentStartingFrom#1141502, productionAspect#1141503, salesPlant#1141504, listing#1141505, systemId#1141498]
(2364) Exchange
Input [8]: [systemId#1141498, internalUUID#1141499, plant#1141500, product#1141501, blockedForReplenishmentStartingFrom#1141502, productionAspect#1141503, salesPlant#1141504, listing#1141505]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716610]
(2365) Project
Output [1]: [struct(systemId, systemId#1141498, internalUUID, internalUUID#1141499, plant, plant#1141500, product, product#1141501, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1141502, productionAspect, productionAspect#1141503, salesPlant, salesPlant#1141504, listing, listing#1141505) AS productPlant#1141506]
Input [8]: [systemId#1141498, internalUUID#1141499, plant#1141500, product#1141501, blockedForReplenishmentStartingFrom#1141502, productionAspect#1141503, salesPlant#1141504, listing#1141505]
(2366) BroadcastExchange
Input [1]: [productPlant#1141506]
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=1718643]
(2367) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141494, ), isnull(product#1141494), coalesce(plant#1141495, ), isnull(plant#1141495)]
Right keys [4]: [coalesce(productPlant#1141506.product.internalRefUUID, ), isnull(productPlant#1141506.product.internalRefUUID), coalesce(productPlant#1141506.plant.internalRefUUID, ), isnull(productPlant#1141506.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(2368) Scan parquet
Output [3]: [internalUUID#1141508, address#1141514, systemId#1141507]
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>>>
(2369) Project
Output [2]: [internalUUID#1141508, address#1141514.timeZone.code AS timezonecode#1141519]
Input [3]: [internalUUID#1141508, address#1141514, systemId#1141507]
(2370) Exchange
Input [2]: [internalUUID#1141508, timezonecode#1141519]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716615]
(2371) BroadcastExchange
Input [2]: [internalUUID#1141508, timezonecode#1141519]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718646]
(2372) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141495, ), isnull(plant#1141495)]
Right keys [2]: [coalesce(internalUUID#1141508, ), isnull(internalUUID#1141508)]
Join type: LeftOuter
Join condition: None
(2373) Project
Output [5]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, CASE WHEN isnotnull(timezonecode#1141519) THEN timezonecode#1141519 ELSE UTC END AS timezonecode#1141520]
Input [6]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, internalUUID#1141508, timezonecode#1141519]
(2374) Scan parquet
Output [4]: [internalUUID#1141522, baseUnitOfMeasure#1141526, unitOfMeasureConversions#1141528, systemId#1141521]
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>>>
(2375) Filter
Input [4]: [internalUUID#1141522, baseUnitOfMeasure#1141526, unitOfMeasureConversions#1141528, systemId#1141521]
Condition : isnotnull(internalUUID#1141522)
(2376) Project
Output [3]: [internalUUID#1141522, baseUnitOfMeasure#1141526, unitOfMeasureConversions#1141528]
Input [4]: [internalUUID#1141522, baseUnitOfMeasure#1141526, unitOfMeasureConversions#1141528, systemId#1141521]
(2377) Exchange
Input [3]: [internalUUID#1141522, baseUnitOfMeasure#1141526, unitOfMeasureConversions#1141528]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716621]
(2378) BroadcastExchange
Input [3]: [internalUUID#1141522, baseUnitOfMeasure#1141526, unitOfMeasureConversions#1141528]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718650]
(2379) BroadcastHashJoin
Left keys [1]: [product#1141494]
Right keys [1]: [internalUUID#1141522]
Join type: LeftOuter
Join condition: None
(2380) Project
Output [6]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, filter(unitOfMeasureConversions#1141528, lambdafunction((((lambda u#1135738.measurementUnit1.code = productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1135738.measurementUnit1.internalRefUUID = productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141526.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141526.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141533]
Input [8]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, internalUUID#1141522, baseUnitOfMeasure#1141526, unitOfMeasureConversions#1141528]
(2381) Project
Output [7]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, filteredUnitOfMeasureConversions#1141533.quantityDenominator AS _extract_quantityDenominator#1142582, filteredUnitOfMeasureConversions#1141533.quantityNumerator AS _extract_quantityNumerator#1142583]
Input [6]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, filteredUnitOfMeasureConversions#1141533]
(2382) Generate
Input [7]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, _extract_quantityDenominator#1142582, _extract_quantityNumerator#1142583]
Arguments: explode(_extract_quantityNumerator#1142583), [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, _extract_quantityDenominator#1142582], true, [quantityNumerator#1141534]
(2383) Generate
Input [7]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, _extract_quantityDenominator#1142582, quantityNumerator#1141534]
Arguments: explode(_extract_quantityDenominator#1142582), [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, quantityNumerator#1141534], true, [quantityDenominator#1141535]
(2384) Project
Output [6]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, (cast(quantityNumerator#1141534 as double) / cast(quantityDenominator#1141535 as double)) AS outboundUnit#1141536]
Input [7]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, quantityNumerator#1141534, quantityDenominator#1141535]
(2385) Project
Output [6]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, CASE WHEN (isnull(outboundUnit#1141536) OR (outboundUnit#1141536 <= 0.0)) THEN 1.0 ELSE outboundUnit#1141536 END AS outboundUnit#1141537]
Input [6]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141536]
(2386) Sort
Input [6]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537]
Arguments: [product#1141494 ASC NULLS FIRST, plant#1141495 ASC NULLS FIRST], false, 0
(2387) Scan parquet
Output [6]: [internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543, systemId#1141538]
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>>>>>
(2388) Filter
Input [6]: [internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543, systemId#1141538]
Condition : (isnotnull(plant#1141541.internalRefUUID) AND isnotnull(product#1141540.internalRefUUID))
(2389) Project
Output [6]: [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543]
Input [6]: [internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543, systemId#1141538]
(2390) Exchange
Input [6]: [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716632]
(2391) BroadcastExchange
Input [6]: [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543]
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=1718682]
(2392) Scan parquet
Output [2]: [marketUnit#1141544, distributionCenters#1141550]
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>>>>>
(2393) Filter
Input [2]: [marketUnit#1141544, distributionCenters#1141550]
Condition : (((marketUnit#1141544 <=> Alert_Test1) AND (size(distributionCenters#1141550, true) > 0)) AND isnotnull(distributionCenters#1141550))
(2394) Project
Output [1]: [distributionCenters#1141550]
Input [2]: [marketUnit#1141544, distributionCenters#1141550]
(2395) Exchange
Input [1]: [distributionCenters#1141550]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716636]
(2396) Generate
Input [1]: [distributionCenters#1141550]
Arguments: explode(distributionCenters#1141550), false, [distributionCenters#1141566]
(2397) Filter
Input [1]: [distributionCenters#1141566]
Condition : (((size(distributionCenters#1141566.storageLocations, true) > 0) AND isnotnull(distributionCenters#1141566.storageLocations)) AND isnotnull(distributionCenters#1141566.internalRefUUID))
(2398) Project
Output [2]: [distributionCenters#1141566.internalRefUUID AS _extract_internalRefUUID#1142360, distributionCenters#1141566.storageLocations AS _extract_storageLocations#1142361]
Input [1]: [distributionCenters#1141566]
(2399) Generate
Input [2]: [_extract_internalRefUUID#1142360, _extract_storageLocations#1142361]
Arguments: explode(_extract_storageLocations#1142361), [_extract_internalRefUUID#1142360], false, [storageLocations#1141567]
(2400) Project
Output [3]: [_extract_internalRefUUID#1142360 AS plantUuid#1141569, storageLocations#1141567.id AS storageLocId#1141570, storageLocations#1141567.internalRefUUID AS storageLocUuid#1141571]
Input [2]: [_extract_internalRefUUID#1142360, storageLocations#1141567]
(2401) BroadcastExchange
Input [3]: [plantUuid#1141569, storageLocId#1141570, storageLocUuid#1141571]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718678]
(2402) Scan parquet
Output [2]: [product#1141572, plant#1141573]
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>
(2403) Filter
Input [2]: [product#1141572, plant#1141573]
Condition : isnotnull(plant#1141573)
(2404) Exchange
Input [2]: [product#1141572, plant#1141573]
Arguments: hashpartitioning(product#1141572, plant#1141573, 37), REPARTITION_BY_NUM, [plan_id=1717448]
(2405) Scan parquet
Output [4]: [plant#1141578, product#1141579, productionAspect#1141581, systemId#1141576]
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>>>>
(2406) Project
Output [4]: [plant#1141578.internalRefUUID AS _extract_internalRefUUID#1143012, product#1141579.internalRefUUID AS _extract_internalRefUUID#1143015, productionAspect#1141581.productMovementPlants.unitOfIssue.code AS _extract_code#1143013, productionAspect#1141581.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1143014]
Input [4]: [plant#1141578, product#1141579, productionAspect#1141581, systemId#1141576]
(2407) Exchange
Input [4]: [_extract_internalRefUUID#1143012, _extract_internalRefUUID#1143015, _extract_code#1143013, _extract_internalRefUUID#1143014]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716648]
(2408) Project
Output [4]: [_extract_code#1143013, _extract_internalRefUUID#1143014, _extract_internalRefUUID#1143015, _extract_internalRefUUID#1143012]
Input [4]: [_extract_internalRefUUID#1143012, _extract_internalRefUUID#1143015, _extract_code#1143013, _extract_internalRefUUID#1143014]
(2409) BroadcastExchange
Input [4]: [_extract_code#1143013, _extract_internalRefUUID#1143014, _extract_internalRefUUID#1143015, _extract_internalRefUUID#1143012]
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=1718658]
(2410) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141572, ), isnull(product#1141572), coalesce(plant#1141573, ), isnull(plant#1141573)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1143015, ), isnull(_extract_internalRefUUID#1143015), coalesce(_extract_internalRefUUID#1143012, ), isnull(_extract_internalRefUUID#1143012)]
Join type: LeftOuter
Join condition: None
(2411) Project
Output [4]: [product#1141572, plant#1141573, _extract_code#1143013, _extract_internalRefUUID#1143014]
Input [6]: [product#1141572, plant#1141573, _extract_code#1143013, _extract_internalRefUUID#1143014, _extract_internalRefUUID#1143015, _extract_internalRefUUID#1143012]
(2412) Scan parquet
Output [2]: [internalUUID#1141586, systemId#1141585]
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>
(2413) Project
Output [1]: [internalUUID#1141586]
Input [2]: [internalUUID#1141586, systemId#1141585]
(2414) Exchange
Input [1]: [internalUUID#1141586]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716654]
(2415) BroadcastExchange
Input [1]: [internalUUID#1141586]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718662]
(2416) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141573, ), isnull(plant#1141573)]
Right keys [2]: [coalesce(internalUUID#1141586, ), isnull(internalUUID#1141586)]
Join type: LeftOuter
Join condition: None
(2417) Project
Output [4]: [product#1141572, plant#1141573, _extract_code#1143013, _extract_internalRefUUID#1143014]
Input [5]: [product#1141572, plant#1141573, _extract_code#1143013, _extract_internalRefUUID#1143014, internalUUID#1141586]
(2418) Scan parquet
Output [4]: [internalUUID#1141600, baseUnitOfMeasure#1141604, unitOfMeasureConversions#1141606, systemId#1141599]
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>>>
(2419) Filter
Input [4]: [internalUUID#1141600, baseUnitOfMeasure#1141604, unitOfMeasureConversions#1141606, systemId#1141599]
Condition : isnotnull(internalUUID#1141600)
(2420) Project
Output [3]: [internalUUID#1141600, baseUnitOfMeasure#1141604, unitOfMeasureConversions#1141606]
Input [4]: [internalUUID#1141600, baseUnitOfMeasure#1141604, unitOfMeasureConversions#1141606, systemId#1141599]
(2421) Exchange
Input [3]: [internalUUID#1141600, baseUnitOfMeasure#1141604, unitOfMeasureConversions#1141606]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716660]
(2422) BroadcastExchange
Input [3]: [internalUUID#1141600, baseUnitOfMeasure#1141604, unitOfMeasureConversions#1141606]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718666]
(2423) BroadcastHashJoin
Left keys [1]: [product#1141572]
Right keys [1]: [internalUUID#1141600]
Join type: LeftOuter
Join condition: None
(2424) Project
Output [2]: [plant#1141573, filter(unitOfMeasureConversions#1141606, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1143013) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1143014)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141604.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141604.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141611]
Input [7]: [product#1141572, plant#1141573, _extract_code#1143013, _extract_internalRefUUID#1143014, internalUUID#1141600, baseUnitOfMeasure#1141604, unitOfMeasureConversions#1141606]
(2425) Generate
Input [2]: [plant#1141573, filteredUnitOfMeasureConversions#1141611]
Arguments: explode(filteredUnitOfMeasureConversions#1141611.quantityNumerator), [plant#1141573, filteredUnitOfMeasureConversions#1141611], true, [quantityNumerator#1141612]
(2426) Project
Output [2]: [plant#1141573, filteredUnitOfMeasureConversions#1141611.quantityDenominator AS _extract_quantityDenominator#1142362]
Input [3]: [plant#1141573, filteredUnitOfMeasureConversions#1141611, quantityNumerator#1141612]
(2427) Generate
Input [2]: [plant#1141573, _extract_quantityDenominator#1142362]
Arguments: explode(_extract_quantityDenominator#1142362), [plant#1141573], true, [quantityDenominator#1141613]
(2428) Project
Output [1]: [plant#1141573]
Input [2]: [plant#1141573, quantityDenominator#1141613]
(2429) HashAggregate
Input [1]: [plant#1141573]
Keys [1]: [plant#1141573]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1141573]
(2430) Exchange
Input [1]: [plant#1141573]
Arguments: hashpartitioning(plant#1141573, 37), ENSURE_REQUIREMENTS, [plan_id=1718675]
(2431) HashAggregate
Input [1]: [plant#1141573]
Keys [1]: [plant#1141573]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1141573]
(2432) BroadcastHashJoin
Left keys [1]: [plantUuid#1141569]
Right keys [1]: [plant#1141573]
Join type: Inner
Join condition: None
(2433) Project
Output [3]: [plantUuid#1141569, storageLocId#1141570, storageLocUuid#1141571]
Input [4]: [plantUuid#1141569, storageLocId#1141570, storageLocUuid#1141571, plant#1141573]
(2434) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141541.internalRefUUID, ), isnull(plant#1141541.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1141569, ), isnull(plantUuid#1141569)]
Join type: Inner
Join condition: None
(2435) Generate
Input [9]: [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, stockQuantities#1141543, plantUuid#1141569, storageLocId#1141570, storageLocUuid#1141571]
Arguments: explode(filter(stockQuantities#1141543, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1141571) AND (lambda x#1135796.storageLocation.Id = storageLocId#1141570)), lambda x#1135796, false))), [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, plantUuid#1141569], false, [stockQuantity#1141616]
(2436) ObjectHashAggregate
Input [7]: [systemId#1141538, internalUUID#1141539, product#1141540, plant#1141541, calculationDateTime#1141542, plantUuid#1141569, stockQuantity#1141616]
Keys [5]: [plantUuid#1141569, internalUUID#1141539, plant#1141541, product#1141540, systemId#1141538]
Functions [2]: [partial_first(calculationDateTime#1141542, false), partial_collect_list(stockQuantity#1141616, 0, 0)]
Aggregate Attributes [3]: [first#1144048, valueSet#1144049, buf#1144050]
Results [8]: [plantUuid#1141569, internalUUID#1141539, plant#1141541, product#1141540, systemId#1141538, first#1144051, valueSet#1144052, buf#1144053]
(2437) ObjectHashAggregate
Input [8]: [plantUuid#1141569, internalUUID#1141539, plant#1141541, product#1141540, systemId#1141538, first#1144051, valueSet#1144052, buf#1144053]
Keys [5]: [plantUuid#1141569, internalUUID#1141539, plant#1141541, product#1141540, systemId#1141538]
Functions [2]: [first(calculationDateTime#1141542, false), collect_list(stockQuantity#1141616, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1141542)()#1135811, collect_list(stockQuantity#1141616, 0, 0)#1135812]
Results [4]: [product#1141540, plant#1141541, first(calculationDateTime#1141542)()#1135811 AS calculationDateTime#1141617, collect_list(stockQuantity#1141616, 0, 0)#1135812 AS stockQuantities#1141618]
(2438) Filter
Input [4]: [product#1141540, plant#1141541, calculationDateTime#1141617, stockQuantities#1141618]
Condition : ((size(stockQuantities#1141618, true) > 0) AND isnotnull(calculationDateTime#1141617))
(2439) Generate
Input [4]: [product#1141540, plant#1141541, calculationDateTime#1141617, stockQuantities#1141618]
Arguments: explode(stockQuantities#1141618), [product#1141540, plant#1141541, calculationDateTime#1141617], false, [stockQuantity#1141619]
(2440) Filter
Input [4]: [product#1141540, plant#1141541, calculationDateTime#1141617, stockQuantity#1141619]
Condition : (((isnotnull(stockQuantity#1141619.specialStockIndicator.code) AND isnotnull(stockQuantity#1141619.stockType.code)) AND (stockQuantity#1141619.specialStockIndicator.code = )) AND (stockQuantity#1141619.stockType.code = 01))
(2441) Project
Output [5]: [plant#1141541.internalRefUUID AS plantUuid#1141621, product#1141540.internalRefUUID AS productUuid#1141623, calculationDateTime#1141617, stockQuantity#1141619.storagelocation.id AS storageLocId#1141624, stockQuantity#1141619.quantity.measure AS quantity#1141626]
Input [4]: [product#1141540, plant#1141541, calculationDateTime#1141617, stockQuantity#1141619]
(2442) Exchange
Input [5]: [plantUuid#1141621, productUuid#1141623, calculationDateTime#1141617, storageLocId#1141624, quantity#1141626]
Arguments: hashpartitioning(productUuid#1141623, plantUuid#1141621, 37), ENSURE_REQUIREMENTS, [plan_id=1718708]
(2443) Sort
Input [5]: [plantUuid#1141621, productUuid#1141623, calculationDateTime#1141617, storageLocId#1141624, quantity#1141626]
Arguments: [productUuid#1141623 ASC NULLS FIRST, plantUuid#1141621 ASC NULLS FIRST], false, 0
(2444) Scan parquet
Output [3]: [product#1141629, plant#1141630, orderDateTime#1141631]
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>
(2445) Filter
Input [3]: [product#1141629, plant#1141630, orderDateTime#1141631]
Condition : ((isnotnull(orderDateTime#1141631) AND isnotnull(plant#1141630)) AND isnotnull(product#1141629))
(2446) Exchange
Input [3]: [product#1141629, plant#1141630, orderDateTime#1141631]
Arguments: hashpartitioning(product#1141629, plant#1141630, 37), REPARTITION_BY_NUM, [plan_id=1717471]
(2447) Scan parquet
Output [4]: [plant#1141635, product#1141636, productionAspect#1141638, systemId#1141633]
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>>>>
(2448) Project
Output [4]: [plant#1141635.internalRefUUID AS _extract_internalRefUUID#1143017, product#1141636.internalRefUUID AS _extract_internalRefUUID#1143016, productionAspect#1141638.productMovementPlants.unitOfIssue.code AS _extract_code#1143018, productionAspect#1141638.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1143019]
Input [4]: [plant#1141635, product#1141636, productionAspect#1141638, systemId#1141633]
(2449) Exchange
Input [4]: [_extract_internalRefUUID#1143017, _extract_internalRefUUID#1143016, _extract_code#1143018, _extract_internalRefUUID#1143019]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716685]
(2450) Project
Output [4]: [_extract_code#1143018, _extract_internalRefUUID#1143019, _extract_internalRefUUID#1143016, _extract_internalRefUUID#1143017]
Input [4]: [_extract_internalRefUUID#1143017, _extract_internalRefUUID#1143016, _extract_code#1143018, _extract_internalRefUUID#1143019]
(2451) BroadcastExchange
Input [4]: [_extract_code#1143018, _extract_internalRefUUID#1143019, _extract_internalRefUUID#1143016, _extract_internalRefUUID#1143017]
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=1718691]
(2452) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141629, ), isnull(product#1141629), coalesce(plant#1141630, ), isnull(plant#1141630)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1143016, ), isnull(_extract_internalRefUUID#1143016), coalesce(_extract_internalRefUUID#1143017, ), isnull(_extract_internalRefUUID#1143017)]
Join type: LeftOuter
Join condition: None
(2453) Project
Output [5]: [product#1141629, plant#1141630, orderDateTime#1141631, _extract_code#1143018, _extract_internalRefUUID#1143019]
Input [7]: [product#1141629, plant#1141630, orderDateTime#1141631, _extract_code#1143018, _extract_internalRefUUID#1143019, _extract_internalRefUUID#1143016, _extract_internalRefUUID#1143017]
(2454) Scan parquet
Output [2]: [internalUUID#1141643, systemId#1141642]
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>
(2455) Project
Output [1]: [internalUUID#1141643]
Input [2]: [internalUUID#1141643, systemId#1141642]
(2456) Exchange
Input [1]: [internalUUID#1141643]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716691]
(2457) BroadcastExchange
Input [1]: [internalUUID#1141643]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718695]
(2458) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141630, ), isnull(plant#1141630)]
Right keys [2]: [coalesce(internalUUID#1141643, ), isnull(internalUUID#1141643)]
Join type: LeftOuter
Join condition: None
(2459) Project
Output [5]: [product#1141629, plant#1141630, orderDateTime#1141631, _extract_code#1143018, _extract_internalRefUUID#1143019]
Input [6]: [product#1141629, plant#1141630, orderDateTime#1141631, _extract_code#1143018, _extract_internalRefUUID#1143019, internalUUID#1141643]
(2460) Scan parquet
Output [4]: [internalUUID#1141657, baseUnitOfMeasure#1141661, unitOfMeasureConversions#1141663, systemId#1141656]
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>>>
(2461) Filter
Input [4]: [internalUUID#1141657, baseUnitOfMeasure#1141661, unitOfMeasureConversions#1141663, systemId#1141656]
Condition : isnotnull(internalUUID#1141657)
(2462) Project
Output [3]: [internalUUID#1141657, baseUnitOfMeasure#1141661, unitOfMeasureConversions#1141663]
Input [4]: [internalUUID#1141657, baseUnitOfMeasure#1141661, unitOfMeasureConversions#1141663, systemId#1141656]
(2463) Exchange
Input [3]: [internalUUID#1141657, baseUnitOfMeasure#1141661, unitOfMeasureConversions#1141663]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716697]
(2464) BroadcastExchange
Input [3]: [internalUUID#1141657, baseUnitOfMeasure#1141661, unitOfMeasureConversions#1141663]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718699]
(2465) BroadcastHashJoin
Left keys [1]: [product#1141629]
Right keys [1]: [internalUUID#1141657]
Join type: LeftOuter
Join condition: None
(2466) Project
Output [4]: [product#1141629, plant#1141630, orderDateTime#1141631, filter(unitOfMeasureConversions#1141663, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1143018) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1143019)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141661.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141661.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141668]
Input [8]: [product#1141629, plant#1141630, orderDateTime#1141631, _extract_code#1143018, _extract_internalRefUUID#1143019, internalUUID#1141657, baseUnitOfMeasure#1141661, unitOfMeasureConversions#1141663]
(2467) Generate
Input [4]: [product#1141629, plant#1141630, orderDateTime#1141631, filteredUnitOfMeasureConversions#1141668]
Arguments: explode(filteredUnitOfMeasureConversions#1141668.quantityNumerator), [product#1141629, plant#1141630, orderDateTime#1141631, filteredUnitOfMeasureConversions#1141668], true, [quantityNumerator#1141669]
(2468) Project
Output [4]: [product#1141629, plant#1141630, orderDateTime#1141631, filteredUnitOfMeasureConversions#1141668.quantityDenominator AS _extract_quantityDenominator#1142366]
Input [5]: [product#1141629, plant#1141630, orderDateTime#1141631, filteredUnitOfMeasureConversions#1141668, quantityNumerator#1141669]
(2469) Generate
Input [4]: [product#1141629, plant#1141630, orderDateTime#1141631, _extract_quantityDenominator#1142366]
Arguments: explode(_extract_quantityDenominator#1142366), [product#1141629, plant#1141630, orderDateTime#1141631], true, [quantityDenominator#1141670]
(2470) Project
Output [3]: [product#1141629, plant#1141630, orderDateTime#1141631]
Input [4]: [product#1141629, plant#1141630, orderDateTime#1141631, quantityDenominator#1141670]
(2471) Sort
Input [3]: [product#1141629, plant#1141630, orderDateTime#1141631]
Arguments: [product#1141629 ASC NULLS FIRST, plant#1141630 ASC NULLS FIRST], false, 0
(2472) SortMergeJoin
Left keys [2]: [productUuid#1141623, plantUuid#1141621]
Right keys [2]: [product#1141629, plant#1141630]
Join type: Inner
Join condition: (calculationDateTime#1141617 <= orderDateTime#1141631)
(2473) Project
Output [5]: [plantUuid#1141621 AS plant#1141673, productUuid#1141623 AS product#1141674, storageLocId#1141624, calculationDateTime#1141617, quantity#1141626]
Input [8]: [plantUuid#1141621, productUuid#1141623, calculationDateTime#1141617, storageLocId#1141624, quantity#1141626, product#1141629, plant#1141630, orderDateTime#1141631]
(2474) Exchange
Input [5]: [plant#1141673, product#1141674, storageLocId#1141624, calculationDateTime#1141617, quantity#1141626]
Arguments: hashpartitioning(coalesce(plant#1141673, ), isnull(plant#1141673), coalesce(product#1141674, ), isnull(product#1141674), coalesce(storageLocId#1141624, ), isnull(storageLocId#1141624), coalesce(calculationDateTime#1141617, 1970-01-01 00:00:00), isnull(calculationDateTime#1141617), 37), ENSURE_REQUIREMENTS, [plan_id=1718772]
(2475) Sort
Input [5]: [plant#1141673, product#1141674, storageLocId#1141624, calculationDateTime#1141617, quantity#1141626]
Arguments: [coalesce(plant#1141673, ) ASC NULLS FIRST, isnull(plant#1141673) ASC NULLS FIRST, coalesce(product#1141674, ) ASC NULLS FIRST, isnull(product#1141674) ASC NULLS FIRST, coalesce(storageLocId#1141624, ) ASC NULLS FIRST, isnull(storageLocId#1141624) ASC NULLS FIRST, coalesce(calculationDateTime#1141617, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1141617) ASC NULLS FIRST], false, 0
(2476) Scan parquet
Output [6]: [internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680, systemId#1141675]
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>>>>>
(2477) Filter
Input [6]: [internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680, systemId#1141675]
Condition : (isnotnull(plant#1141678.internalRefUUID) AND isnotnull(product#1141677.internalRefUUID))
(2478) Project
Output [6]: [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680]
Input [6]: [internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680, systemId#1141675]
(2479) Exchange
Input [6]: [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716709]
(2480) BroadcastExchange
Input [6]: [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680]
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=1718737]
(2481) Scan parquet
Output [2]: [marketUnit#1141681, distributionCenters#1141687]
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>>>>>
(2482) Filter
Input [2]: [marketUnit#1141681, distributionCenters#1141687]
Condition : (((marketUnit#1141681 <=> Alert_Test1) AND (size(distributionCenters#1141687, true) > 0)) AND isnotnull(distributionCenters#1141687))
(2483) Project
Output [1]: [distributionCenters#1141687]
Input [2]: [marketUnit#1141681, distributionCenters#1141687]
(2484) Exchange
Input [1]: [distributionCenters#1141687]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716713]
(2485) Generate
Input [1]: [distributionCenters#1141687]
Arguments: explode(distributionCenters#1141687), false, [distributionCenters#1141703]
(2486) Filter
Input [1]: [distributionCenters#1141703]
Condition : (((size(distributionCenters#1141703.storageLocations, true) > 0) AND isnotnull(distributionCenters#1141703.storageLocations)) AND isnotnull(distributionCenters#1141703.internalRefUUID))
(2487) Project
Output [2]: [distributionCenters#1141703.internalRefUUID AS _extract_internalRefUUID#1142370, distributionCenters#1141703.storageLocations AS _extract_storageLocations#1142371]
Input [1]: [distributionCenters#1141703]
(2488) Generate
Input [2]: [_extract_internalRefUUID#1142370, _extract_storageLocations#1142371]
Arguments: explode(_extract_storageLocations#1142371), [_extract_internalRefUUID#1142370], false, [storageLocations#1141704]
(2489) Project
Output [3]: [_extract_internalRefUUID#1142370 AS plantUuid#1141706, storageLocations#1141704.id AS storageLocId#1141707, storageLocations#1141704.internalRefUUID AS storageLocUuid#1141708]
Input [2]: [_extract_internalRefUUID#1142370, storageLocations#1141704]
(2490) BroadcastExchange
Input [3]: [plantUuid#1141706, storageLocId#1141707, storageLocUuid#1141708]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718733]
(2491) Scan parquet
Output [2]: [product#1141709, plant#1141710]
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>
(2492) Filter
Input [2]: [product#1141709, plant#1141710]
Condition : isnotnull(plant#1141710)
(2493) Exchange
Input [2]: [product#1141709, plant#1141710]
Arguments: hashpartitioning(product#1141709, plant#1141710, 37), REPARTITION_BY_NUM, [plan_id=1717484]
(2494) Scan parquet
Output [4]: [plant#1141715, product#1141716, productionAspect#1141718, systemId#1141713]
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>>>>
(2495) Project
Output [4]: [plant#1141715.internalRefUUID AS _extract_internalRefUUID#1143023, product#1141716.internalRefUUID AS _extract_internalRefUUID#1143022, productionAspect#1141718.productMovementPlants.unitOfIssue.code AS _extract_code#1143020, productionAspect#1141718.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1143021]
Input [4]: [plant#1141715, product#1141716, productionAspect#1141718, systemId#1141713]
(2496) Exchange
Input [4]: [_extract_internalRefUUID#1143023, _extract_internalRefUUID#1143022, _extract_code#1143020, _extract_internalRefUUID#1143021]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716725]
(2497) Project
Output [4]: [_extract_code#1143020, _extract_internalRefUUID#1143021, _extract_internalRefUUID#1143022, _extract_internalRefUUID#1143023]
Input [4]: [_extract_internalRefUUID#1143023, _extract_internalRefUUID#1143022, _extract_code#1143020, _extract_internalRefUUID#1143021]
(2498) BroadcastExchange
Input [4]: [_extract_code#1143020, _extract_internalRefUUID#1143021, _extract_internalRefUUID#1143022, _extract_internalRefUUID#1143023]
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=1718713]
(2499) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141709, ), isnull(product#1141709), coalesce(plant#1141710, ), isnull(plant#1141710)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1143022, ), isnull(_extract_internalRefUUID#1143022), coalesce(_extract_internalRefUUID#1143023, ), isnull(_extract_internalRefUUID#1143023)]
Join type: LeftOuter
Join condition: None
(2500) Project
Output [4]: [product#1141709, plant#1141710, _extract_code#1143020, _extract_internalRefUUID#1143021]
Input [6]: [product#1141709, plant#1141710, _extract_code#1143020, _extract_internalRefUUID#1143021, _extract_internalRefUUID#1143022, _extract_internalRefUUID#1143023]
(2501) Scan parquet
Output [2]: [internalUUID#1141723, systemId#1141722]
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>
(2502) Project
Output [1]: [internalUUID#1141723]
Input [2]: [internalUUID#1141723, systemId#1141722]
(2503) Exchange
Input [1]: [internalUUID#1141723]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716731]
(2504) BroadcastExchange
Input [1]: [internalUUID#1141723]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718717]
(2505) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141710, ), isnull(plant#1141710)]
Right keys [2]: [coalesce(internalUUID#1141723, ), isnull(internalUUID#1141723)]
Join type: LeftOuter
Join condition: None
(2506) Project
Output [4]: [product#1141709, plant#1141710, _extract_code#1143020, _extract_internalRefUUID#1143021]
Input [5]: [product#1141709, plant#1141710, _extract_code#1143020, _extract_internalRefUUID#1143021, internalUUID#1141723]
(2507) Scan parquet
Output [4]: [internalUUID#1141737, baseUnitOfMeasure#1141741, unitOfMeasureConversions#1141743, systemId#1141736]
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>>>
(2508) Filter
Input [4]: [internalUUID#1141737, baseUnitOfMeasure#1141741, unitOfMeasureConversions#1141743, systemId#1141736]
Condition : isnotnull(internalUUID#1141737)
(2509) Project
Output [3]: [internalUUID#1141737, baseUnitOfMeasure#1141741, unitOfMeasureConversions#1141743]
Input [4]: [internalUUID#1141737, baseUnitOfMeasure#1141741, unitOfMeasureConversions#1141743, systemId#1141736]
(2510) Exchange
Input [3]: [internalUUID#1141737, baseUnitOfMeasure#1141741, unitOfMeasureConversions#1141743]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716737]
(2511) BroadcastExchange
Input [3]: [internalUUID#1141737, baseUnitOfMeasure#1141741, unitOfMeasureConversions#1141743]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718721]
(2512) BroadcastHashJoin
Left keys [1]: [product#1141709]
Right keys [1]: [internalUUID#1141737]
Join type: LeftOuter
Join condition: None
(2513) Project
Output [2]: [plant#1141710, filter(unitOfMeasureConversions#1141743, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1143020) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1143021)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141741.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141741.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141748]
Input [7]: [product#1141709, plant#1141710, _extract_code#1143020, _extract_internalRefUUID#1143021, internalUUID#1141737, baseUnitOfMeasure#1141741, unitOfMeasureConversions#1141743]
(2514) Generate
Input [2]: [plant#1141710, filteredUnitOfMeasureConversions#1141748]
Arguments: explode(filteredUnitOfMeasureConversions#1141748.quantityNumerator), [plant#1141710, filteredUnitOfMeasureConversions#1141748], true, [quantityNumerator#1141749]
(2515) Project
Output [2]: [plant#1141710, filteredUnitOfMeasureConversions#1141748.quantityDenominator AS _extract_quantityDenominator#1142372]
Input [3]: [plant#1141710, filteredUnitOfMeasureConversions#1141748, quantityNumerator#1141749]
(2516) Generate
Input [2]: [plant#1141710, _extract_quantityDenominator#1142372]
Arguments: explode(_extract_quantityDenominator#1142372), [plant#1141710], true, [quantityDenominator#1141750]
(2517) Project
Output [1]: [plant#1141710]
Input [2]: [plant#1141710, quantityDenominator#1141750]
(2518) HashAggregate
Input [1]: [plant#1141710]
Keys [1]: [plant#1141710]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1141710]
(2519) Exchange
Input [1]: [plant#1141710]
Arguments: hashpartitioning(plant#1141710, 37), ENSURE_REQUIREMENTS, [plan_id=1718730]
(2520) HashAggregate
Input [1]: [plant#1141710]
Keys [1]: [plant#1141710]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1141710]
(2521) BroadcastHashJoin
Left keys [1]: [plantUuid#1141706]
Right keys [1]: [plant#1141710]
Join type: Inner
Join condition: None
(2522) Project
Output [3]: [plantUuid#1141706, storageLocId#1141707, storageLocUuid#1141708]
Input [4]: [plantUuid#1141706, storageLocId#1141707, storageLocUuid#1141708, plant#1141710]
(2523) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141678.internalRefUUID, ), isnull(plant#1141678.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1141706, ), isnull(plantUuid#1141706)]
Join type: Inner
Join condition: None
(2524) Generate
Input [9]: [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, stockQuantities#1141680, plantUuid#1141706, storageLocId#1141707, storageLocUuid#1141708]
Arguments: explode(filter(stockQuantities#1141680, lambdafunction(((lambda x#1135796.storageLocation.internalRefUuid = storageLocUuid#1141708) AND (lambda x#1135796.storageLocation.Id = storageLocId#1141707)), lambda x#1135796, false))), [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, plantUuid#1141706], false, [stockQuantity#1141753]
(2525) ObjectHashAggregate
Input [7]: [systemId#1141675, internalUUID#1141676, product#1141677, plant#1141678, calculationDateTime#1141679, plantUuid#1141706, stockQuantity#1141753]
Keys [5]: [plantUuid#1141706, internalUUID#1141676, plant#1141678, product#1141677, systemId#1141675]
Functions [2]: [partial_first(calculationDateTime#1141679, false), partial_collect_list(stockQuantity#1141753, 0, 0)]
Aggregate Attributes [3]: [first#1144056, valueSet#1144057, buf#1144058]
Results [8]: [plantUuid#1141706, internalUUID#1141676, plant#1141678, product#1141677, systemId#1141675, first#1144059, valueSet#1144060, buf#1144061]
(2526) ObjectHashAggregate
Input [8]: [plantUuid#1141706, internalUUID#1141676, plant#1141678, product#1141677, systemId#1141675, first#1144059, valueSet#1144060, buf#1144061]
Keys [5]: [plantUuid#1141706, internalUUID#1141676, plant#1141678, product#1141677, systemId#1141675]
Functions [2]: [first(calculationDateTime#1141679, false), collect_list(stockQuantity#1141753, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1141679)()#1135811, collect_list(stockQuantity#1141753, 0, 0)#1135812]
Results [4]: [product#1141677, plant#1141678, first(calculationDateTime#1141679)()#1135811 AS calculationDateTime#1141754, collect_list(stockQuantity#1141753, 0, 0)#1135812 AS stockQuantities#1141755]
(2527) Filter
Input [4]: [product#1141677, plant#1141678, calculationDateTime#1141754, stockQuantities#1141755]
Condition : ((size(stockQuantities#1141755, true) > 0) AND isnotnull(calculationDateTime#1141754))
(2528) Generate
Input [4]: [product#1141677, plant#1141678, calculationDateTime#1141754, stockQuantities#1141755]
Arguments: explode(stockQuantities#1141755), [product#1141677, plant#1141678, calculationDateTime#1141754], false, [stockQuantity#1141756]
(2529) Filter
Input [4]: [product#1141677, plant#1141678, calculationDateTime#1141754, stockQuantity#1141756]
Condition : (((isnotnull(stockQuantity#1141756.specialStockIndicator.code) AND isnotnull(stockQuantity#1141756.stockType.code)) AND (stockQuantity#1141756.specialStockIndicator.code = )) AND (stockQuantity#1141756.stockType.code = 01))
(2530) Project
Output [4]: [plant#1141678.internalRefUUID AS plantUuid#1141758, product#1141677.internalRefUUID AS productUuid#1141760, calculationDateTime#1141754, stockQuantity#1141756.storagelocation.id AS storageLocId#1141761]
Input [4]: [product#1141677, plant#1141678, calculationDateTime#1141754, stockQuantity#1141756]
(2531) Exchange
Input [4]: [plantUuid#1141758, productUuid#1141760, calculationDateTime#1141754, storageLocId#1141761]
Arguments: hashpartitioning(productUuid#1141760, plantUuid#1141758, 37), ENSURE_REQUIREMENTS, [plan_id=1718763]
(2532) Sort
Input [4]: [plantUuid#1141758, productUuid#1141760, calculationDateTime#1141754, storageLocId#1141761]
Arguments: [productUuid#1141760 ASC NULLS FIRST, plantUuid#1141758 ASC NULLS FIRST], false, 0
(2533) Scan parquet
Output [3]: [product#1141766, plant#1141767, orderDateTime#1141768]
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>
(2534) Filter
Input [3]: [product#1141766, plant#1141767, orderDateTime#1141768]
Condition : ((isnotnull(orderDateTime#1141768) AND isnotnull(plant#1141767)) AND isnotnull(product#1141766))
(2535) Exchange
Input [3]: [product#1141766, plant#1141767, orderDateTime#1141768]
Arguments: hashpartitioning(product#1141766, plant#1141767, 37), REPARTITION_BY_NUM, [plan_id=1717507]
(2536) Scan parquet
Output [4]: [plant#1141772, product#1141773, productionAspect#1141775, systemId#1141770]
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>>>>
(2537) Project
Output [4]: [plant#1141772.internalRefUUID AS _extract_internalRefUUID#1143025, product#1141773.internalRefUUID AS _extract_internalRefUUID#1143024, productionAspect#1141775.productMovementPlants.unitOfIssue.code AS _extract_code#1143026, productionAspect#1141775.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1143027]
Input [4]: [plant#1141772, product#1141773, productionAspect#1141775, systemId#1141770]
(2538) Exchange
Input [4]: [_extract_internalRefUUID#1143025, _extract_internalRefUUID#1143024, _extract_code#1143026, _extract_internalRefUUID#1143027]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716762]
(2539) Project
Output [4]: [_extract_code#1143026, _extract_internalRefUUID#1143027, _extract_internalRefUUID#1143024, _extract_internalRefUUID#1143025]
Input [4]: [_extract_internalRefUUID#1143025, _extract_internalRefUUID#1143024, _extract_code#1143026, _extract_internalRefUUID#1143027]
(2540) BroadcastExchange
Input [4]: [_extract_code#1143026, _extract_internalRefUUID#1143027, _extract_internalRefUUID#1143024, _extract_internalRefUUID#1143025]
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=1718746]
(2541) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141766, ), isnull(product#1141766), coalesce(plant#1141767, ), isnull(plant#1141767)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1143024, ), isnull(_extract_internalRefUUID#1143024), coalesce(_extract_internalRefUUID#1143025, ), isnull(_extract_internalRefUUID#1143025)]
Join type: LeftOuter
Join condition: None
(2542) Project
Output [5]: [product#1141766, plant#1141767, orderDateTime#1141768, _extract_code#1143026, _extract_internalRefUUID#1143027]
Input [7]: [product#1141766, plant#1141767, orderDateTime#1141768, _extract_code#1143026, _extract_internalRefUUID#1143027, _extract_internalRefUUID#1143024, _extract_internalRefUUID#1143025]
(2543) Scan parquet
Output [2]: [internalUUID#1141780, systemId#1141779]
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>
(2544) Project
Output [1]: [internalUUID#1141780]
Input [2]: [internalUUID#1141780, systemId#1141779]
(2545) Exchange
Input [1]: [internalUUID#1141780]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716768]
(2546) BroadcastExchange
Input [1]: [internalUUID#1141780]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1718750]
(2547) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1141767, ), isnull(plant#1141767)]
Right keys [2]: [coalesce(internalUUID#1141780, ), isnull(internalUUID#1141780)]
Join type: LeftOuter
Join condition: None
(2548) Project
Output [5]: [product#1141766, plant#1141767, orderDateTime#1141768, _extract_code#1143026, _extract_internalRefUUID#1143027]
Input [6]: [product#1141766, plant#1141767, orderDateTime#1141768, _extract_code#1143026, _extract_internalRefUUID#1143027, internalUUID#1141780]
(2549) Scan parquet
Output [4]: [internalUUID#1141794, baseUnitOfMeasure#1141798, unitOfMeasureConversions#1141800, systemId#1141793]
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>>>
(2550) Filter
Input [4]: [internalUUID#1141794, baseUnitOfMeasure#1141798, unitOfMeasureConversions#1141800, systemId#1141793]
Condition : isnotnull(internalUUID#1141794)
(2551) Project
Output [3]: [internalUUID#1141794, baseUnitOfMeasure#1141798, unitOfMeasureConversions#1141800]
Input [4]: [internalUUID#1141794, baseUnitOfMeasure#1141798, unitOfMeasureConversions#1141800, systemId#1141793]
(2552) Exchange
Input [3]: [internalUUID#1141794, baseUnitOfMeasure#1141798, unitOfMeasureConversions#1141800]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716774]
(2553) BroadcastExchange
Input [3]: [internalUUID#1141794, baseUnitOfMeasure#1141798, unitOfMeasureConversions#1141800]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1718754]
(2554) BroadcastHashJoin
Left keys [1]: [product#1141766]
Right keys [1]: [internalUUID#1141794]
Join type: LeftOuter
Join condition: None
(2555) Project
Output [4]: [product#1141766, plant#1141767, orderDateTime#1141768, filter(unitOfMeasureConversions#1141800, lambdafunction((((lambda u#1135738.measurementUnit1.code = _extract_code#1143026) AND (lambda u#1135738.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1143027)) AND ((lambda u#1135738.measurementUnit2.code = baseUnitOfMeasure#1141798.code) AND (lambda u#1135738.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1141798.internalRefUUID))), lambda u#1135738, false)) AS filteredUnitOfMeasureConversions#1141805]
Input [8]: [product#1141766, plant#1141767, orderDateTime#1141768, _extract_code#1143026, _extract_internalRefUUID#1143027, internalUUID#1141794, baseUnitOfMeasure#1141798, unitOfMeasureConversions#1141800]
(2556) Generate
Input [4]: [product#1141766, plant#1141767, orderDateTime#1141768, filteredUnitOfMeasureConversions#1141805]
Arguments: explode(filteredUnitOfMeasureConversions#1141805.quantityNumerator), [product#1141766, plant#1141767, orderDateTime#1141768, filteredUnitOfMeasureConversions#1141805], true, [quantityNumerator#1141806]
(2557) Project
Output [4]: [product#1141766, plant#1141767, orderDateTime#1141768, filteredUnitOfMeasureConversions#1141805.quantityDenominator AS _extract_quantityDenominator#1142376]
Input [5]: [product#1141766, plant#1141767, orderDateTime#1141768, filteredUnitOfMeasureConversions#1141805, quantityNumerator#1141806]
(2558) Generate
Input [4]: [product#1141766, plant#1141767, orderDateTime#1141768, _extract_quantityDenominator#1142376]
Arguments: explode(_extract_quantityDenominator#1142376), [product#1141766, plant#1141767, orderDateTime#1141768], true, [quantityDenominator#1141807]
(2559) Project
Output [3]: [product#1141766, plant#1141767, orderDateTime#1141768]
Input [4]: [product#1141766, plant#1141767, orderDateTime#1141768, quantityDenominator#1141807]
(2560) Sort
Input [3]: [product#1141766, plant#1141767, orderDateTime#1141768]
Arguments: [product#1141766 ASC NULLS FIRST, plant#1141767 ASC NULLS FIRST], false, 0
(2561) SortMergeJoin
Left keys [2]: [productUuid#1141760, plantUuid#1141758]
Right keys [2]: [product#1141766, plant#1141767]
Join type: Inner
Join condition: (calculationDateTime#1141754 <= orderDateTime#1141768)
(2562) Project
Output [4]: [plantUuid#1141758 AS plant#1141810, productUuid#1141760 AS product#1141811, storageLocId#1141761, calculationDateTime#1141754]
Input [7]: [plantUuid#1141758, productUuid#1141760, calculationDateTime#1141754, storageLocId#1141761, product#1141766, plant#1141767, orderDateTime#1141768]
(2563) HashAggregate
Input [4]: [plant#1141810, product#1141811, storageLocId#1141761, calculationDateTime#1141754]
Keys [3]: [plant#1141810, product#1141811, storageLocId#1141761]
Functions [1]: [partial_max(calculationDateTime#1141754)]
Aggregate Attributes [1]: [max#1144054]
Results [4]: [plant#1141810, product#1141811, storageLocId#1141761, max#1144055]
(2564) HashAggregate
Input [4]: [plant#1141810, product#1141811, storageLocId#1141761, max#1144055]
Keys [3]: [plant#1141810, product#1141811, storageLocId#1141761]
Functions [1]: [max(calculationDateTime#1141754)]
Aggregate Attributes [1]: [max(calculationDateTime#1141754)#1135889]
Results [4]: [plant#1141810, product#1141811, storageLocId#1141761, max(calculationDateTime#1141754)#1135889 AS max_calc_datetime#1141812]
(2565) Exchange
Input [4]: [plant#1141810, product#1141811, storageLocId#1141761, max_calc_datetime#1141812]
Arguments: hashpartitioning(coalesce(plant#1141810, ), isnull(plant#1141810), coalesce(product#1141811, ), isnull(product#1141811), coalesce(storageLocId#1141761, ), isnull(storageLocId#1141761), coalesce(max_calc_datetime#1141812, 1970-01-01 00:00:00), isnull(max_calc_datetime#1141812), 37), ENSURE_REQUIREMENTS, [plan_id=1718773]
(2566) Sort
Input [4]: [plant#1141810, product#1141811, storageLocId#1141761, max_calc_datetime#1141812]
Arguments: [coalesce(plant#1141810, ) ASC NULLS FIRST, isnull(plant#1141810) ASC NULLS FIRST, coalesce(product#1141811, ) ASC NULLS FIRST, isnull(product#1141811) ASC NULLS FIRST, coalesce(storageLocId#1141761, ) ASC NULLS FIRST, isnull(storageLocId#1141761) ASC NULLS FIRST, coalesce(max_calc_datetime#1141812, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1141812) ASC NULLS FIRST], false, 0
(2567) SortMergeJoin
Left keys [8]: [coalesce(plant#1141673, ), isnull(plant#1141673), coalesce(product#1141674, ), isnull(product#1141674), coalesce(storageLocId#1141624, ), isnull(storageLocId#1141624), coalesce(calculationDateTime#1141617, 1970-01-01 00:00:00), isnull(calculationDateTime#1141617)]
Right keys [8]: [coalesce(plant#1141810, ), isnull(plant#1141810), coalesce(product#1141811, ), isnull(product#1141811), coalesce(storageLocId#1141761, ), isnull(storageLocId#1141761), coalesce(max_calc_datetime#1141812, 1970-01-01 00:00:00), isnull(max_calc_datetime#1141812)]
Join type: Inner
Join condition: None
(2568) Project
Output [4]: [plant#1141673, product#1141674, calculationDateTime#1141617, quantity#1141626]
Input [9]: [plant#1141673, product#1141674, storageLocId#1141624, calculationDateTime#1141617, quantity#1141626, plant#1141810, product#1141811, storageLocId#1141761, max_calc_datetime#1141812]
(2569) HashAggregate
Input [4]: [plant#1141673, product#1141674, calculationDateTime#1141617, quantity#1141626]
Keys [2]: [product#1141674, plant#1141673]
Functions [2]: [partial_min(calculationDateTime#1141617), partial_sum(quantity#1141626)]
Aggregate Attributes [2]: [min#1144044, sum#1144045]
Results [4]: [product#1141674, plant#1141673, min#1144046, sum#1144047]
(2570) Exchange
Input [4]: [product#1141674, plant#1141673, min#1144046, sum#1144047]
Arguments: hashpartitioning(product#1141674, plant#1141673, 37), ENSURE_REQUIREMENTS, [plan_id=1718780]
(2571) HashAggregate
Input [4]: [product#1141674, plant#1141673, min#1144046, sum#1144047]
Keys [2]: [product#1141674, plant#1141673]
Functions [2]: [min(calculationDateTime#1141617), sum(quantity#1141626)]
Aggregate Attributes [2]: [min(calculationDateTime#1141617)#1136045, sum(quantity#1141626)#1136044]
Results [4]: [product#1141674, plant#1141673, min(calculationDateTime#1141617)#1136045 AS minCalculationDateTime#1141814, round(sum(quantity#1141626)#1136044, 0) AS roundedQuantitySum#1141815]
(2572) Sort
Input [4]: [product#1141674, plant#1141673, minCalculationDateTime#1141814, roundedQuantitySum#1141815]
Arguments: [product#1141674 ASC NULLS FIRST, plant#1141673 ASC NULLS FIRST], false, 0
(2573) SortMergeJoin
Left keys [2]: [product#1141494, plant#1141495]
Right keys [2]: [product#1141674, plant#1141673]
Join type: LeftOuter
Join condition: None
(2574) Project
Output [8]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, CASE WHEN isnotnull(minCalculationDateTime#1141814) THEN minCalculationDateTime#1141814 ELSE orderDateTime#1141496 END AS stockDatetime#1141816, CASE WHEN isnotnull(roundedQuantitySum#1141815) THEN array(roundedQuantitySum#1141815) ELSE [0.0] END AS stockBatchQuantities#1141817]
Input [10]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, product#1141674, plant#1141673, minCalculationDateTime#1141814, roundedQuantitySum#1141815]
(2575) Scan parquet
Output [9]: [product#1141819, plant#1141820, demandChannel#1141821, demandStream#1141822, considerVariance#1141823, demandTimeBuckets#1141824, demandPointInTimeStart#1141825, demandPointInTimeEnd#1141826, demandPointInTime#1141827]
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>>>
(2576) Filter
Input [9]: [product#1141819, plant#1141820, demandChannel#1141821, demandStream#1141822, considerVariance#1141823, demandTimeBuckets#1141824, demandPointInTimeStart#1141825, demandPointInTimeEnd#1141826, demandPointInTime#1141827]
Condition : (isnotnull(product#1141819) AND isnotnull(plant#1141820))
(2577) BroadcastExchange
Input [9]: [product#1141819, plant#1141820, demandChannel#1141821, demandStream#1141822, considerVariance#1141823, demandTimeBuckets#1141824, demandPointInTimeStart#1141825, demandPointInTimeEnd#1141826, demandPointInTime#1141827]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1718789]
(2578) BroadcastHashJoin
Left keys [2]: [product#1141494, plant#1141495]
Right keys [2]: [product#1141819, plant#1141820]
Join type: LeftOuter
Join condition: None
(2579) Project
Output [9]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, CASE WHEN isnotnull(product#1141819) THEN struct(demandChannel, demandChannel#1141821, demandStream, demandStream#1141822, considerVariance, considerVariance#1141823, demandTimeBuckets, demandTimeBuckets#1141824, demandPointInTimeStart, demandPointInTimeStart#1141825, demandPointInTimeEnd, demandPointInTimeEnd#1141826, demandPointInTime, demandPointInTime#1141827) END AS rawDemands#1141828]
Input [17]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, product#1141819, plant#1141820, demandChannel#1141821, demandStream#1141822, considerVariance#1141823, demandTimeBuckets#1141824, demandPointInTimeStart#1141825, demandPointInTimeEnd#1141826, demandPointInTime#1141827]
(2580) ObjectHashAggregate
Input [9]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, rawDemands#1141828]
Keys [9]: [product#1141494, plant#1141495, orderDateTime#1141496, knownfloatingpointnormalized(if (isnull(productPlant#1141506)) null else named_struct(systemId, productPlant#1141506.systemId, internalUUID, productPlant#1141506.internalUUID, plant, productPlant#1141506.plant, product, productPlant#1141506.product, blockedForReplenishmentStartingFrom, productPlant#1141506.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1141506.productionAspect)) null else named_struct(productMovementPlants, productPlant#1141506.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1141506.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1141506.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1141506.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1141506.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1141506.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1141506.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1141506.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1141506.salesPlant, listing, productPlant#1141506.listing)) AS productPlant#1141506, timezonecode#1141520, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1141537)) AS outboundUnit#1141537, stockDatetime#1141816, knownfloatingpointnormalized(transform(stockBatchQuantities#1141817, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1144041)), lambda arg#1144041, false))) AS stockBatchQuantities#1141817, [7226582400000000] AS [7226582400000000]#1144040]
Functions [1]: [partial_collect_list(rawDemands#1141828, 0, 0)]
Aggregate Attributes [1]: [buf#1144042]
Results [10]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, [7226582400000000]#1144040, buf#1144043]
(2581) ObjectHashAggregate
Input [10]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, [7226582400000000]#1144040, buf#1144043]
Keys [9]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, [7226582400000000]#1144040]
Functions [1]: [collect_list(rawDemands#1141828, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1141828, 0, 0)#1136138]
Results [10]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1141818, collect_list(rawDemands#1141828, 0, 0)#1136138 AS rawDemands#1141829]
(2582) DeserializeToObject
Input [10]: [product#1141494, plant#1141495, orderDateTime#1141496, productPlant#1141506, timezonecode#1141520, outboundUnit#1141537, stockDatetime#1141816, stockBatchQuantities#1141817, stockBatchShelfLifeEndDatetimes#1141818, rawDemands#1141829]
Arguments: createexternalrow(invoke(product#1141494.toString()), invoke(plant#1141495.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1141496)), if (isnull(productPlant#1141506)) null else createexternalrow(invoke(productPlant#1141506.systemId.toString()), invoke(productPlant#1141506.internalUUID.toString()), if (isnull(productPlant#1141506.plant)) null else createexternalrow(invoke(productPlant#1141506.plant.internalRefUUID.toString()), invoke(productPlant#1141506.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1141506.product)) null else createexternalrow(invoke(productPlant#1141506.product.internalRefUUID.toString()), invoke(productPlant#1141506.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1141506.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1141506.productionAspect)) null else createexternalrow(if (isnull(productPlant#1141506.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1141506.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#1141506.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1141506.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1141506.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1141506.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1141506.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1141506.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#1141506.salesPlant)) null else createexternalrow(if (isnull(productPlant#1141506.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1141506.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1141506.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -11).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1141506.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#1141520.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1141537)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1141816)), mapobjects(lambdavariable(MapObject, DoubleType, true, -12), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -12))), stockBatchQuantities#1141817, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -13), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -13))), stockBatchShelfLifeEndDatetimes#1141818, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -15).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -16).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -14).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1141829, 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
(2583) 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
(2584) 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#1141830, 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#1141831]
(2585) Exchange
Input [2]: [product#1141830, plant#1141831]
Arguments: hashpartitioning(coalesce(plant#1141831, ), isnull(plant#1141831), coalesce(product#1141830, ), isnull(product#1141830), 37), ENSURE_REQUIREMENTS, [plan_id=1718800]
(2586) Sort
Input [2]: [product#1141830, plant#1141831]
Arguments: [coalesce(plant#1141831, ) ASC NULLS FIRST, isnull(plant#1141831) ASC NULLS FIRST, coalesce(product#1141830, ) ASC NULLS FIRST, isnull(product#1141830) ASC NULLS FIRST], false, 0
(2587) SortMergeJoin
Left keys [4]: [coalesce(plant#1141170, ), isnull(plant#1141170), coalesce(product#1141169, ), isnull(product#1141169)]
Right keys [4]: [coalesce(plant#1141831, ), isnull(plant#1141831), coalesce(product#1141830, ), isnull(product#1141830)]
Join type: LeftOuter
Join condition: None
(2588) Project
Output [3]: [product#1141169, plant#1141170, stockDatetime#1141491]
Input [5]: [product#1141169, plant#1141170, stockDatetime#1141491, product#1141830, plant#1141831]
(2589) Scan parquet
Output [6]: [internalUUID#1141835, id#1141836, supplier#1141838, isMarkedForDeletion#1141841, items#1141842, systemId#1141834]
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>>>>>
(2590) Filter
Input [6]: [internalUUID#1141835, id#1141836, supplier#1141838, isMarkedForDeletion#1141841, items#1141842, systemId#1141834]
Condition : (((isnotnull(isMarkedForDeletion#1141841) AND NOT isMarkedForDeletion#1141841) AND (size(items#1141842, true) > 0)) AND isnotnull(items#1141842))
(2591) Project
Output [4]: [internalUUID#1141835, id#1141836, supplier#1141838, items#1141842]
Input [6]: [internalUUID#1141835, id#1141836, supplier#1141838, isMarkedForDeletion#1141841, items#1141842, systemId#1141834]
(2592) Exchange
Input [4]: [internalUUID#1141835, id#1141836, supplier#1141838, items#1141842]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1716806]
(2593) Generate
Input [4]: [internalUUID#1141835, id#1141836, supplier#1141838, items#1141842]
Arguments: explode(items#1141842), [internalUUID#1141835, id#1141836, supplier#1141838], false, [item#1141843]
(2594) Filter
Input [4]: [internalUUID#1141835, id#1141836, supplier#1141838, item#1141843]
Condition : ((((isnotnull(item#1141843.deletionIndicator) AND isnotnull(item#1141843.completeIndicator)) AND isnotnull(item#1141843.returnIndicator)) AND ((NOT item#1141843.deletionIndicator AND NOT item#1141843.completeIndicator) AND NOT item#1141843.returnIndicator)) AND isnotnull(item#1141843.product.internalRefUUID))
(2595) Project
Output [9]: [id#1141836, internalUUID#1141835, supplier#1141838.internalRefUUID AS supplierUuid#1141844, item#1141843.product.internalRefUUID AS product#1141846, item#1141843.quantityUnit.code AS quantityUom#1141850, item#1141843.quantityUnit.internalRefUUID AS quantityUomUuid#1141851, item#1141843.quantityNumerator AS quantityNumerator#1141852, item#1141843.quantityDenominator AS quantityDenominator#1141853, item#1141843.scheduleLines AS scheduleLines#1141854]
Input [4]: [internalUUID#1141835, id#1141836, supplier#1141838, item#1141843]
(2596) BroadcastExchange
Input [9]: [id#1141836, internalUUID#1141835, supplierUuid#1141844, product#1141846, quantityUom#1141850, quantityUomUuid#1141851, quantityNumerator#1141852, quantityDenominator#1141853, scheduleLines#1141854]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, string, true], ), isnull(input[3, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true])),false), [plan_id=1718806]
(2597) BroadcastHashJoin
Left keys [4]: [coalesce(product#1141169, ), isnull(product#1141169), coalesce(plant#1141170, ), isnull(plant#1141170)]
Right keys [4]: [coalesce(product#1141846, ), isnull(product#1141846), coalesce(supplierUuid#1141844, ), isnull(supplierUuid#1141844)]
Join type: Inner
Join condition: None
(2598) Project
Output [3]: [product#1141846, plant#1141170, filter(transform(filter(transform(scheduleLines#1141854, lambdafunction(struct(openQty, (greatest((lambda x_134#1137959.quantity - coalesce(lambda x_134#1137959.deliveredQuantity, 0.0)), 0.0) * -1.0), availabilityDatetime, coalesce(lambda x_134#1137959.productAvailabilityDateTime, lambda x_134#1137959.deliveryAt)), lambda x_134#1137959, false)), lambdafunction((lambda x_135#1137960.availabilityDatetime < stockDatetime#1141491), lambda x_135#1137960, false)), lambdafunction(struct(documentId, id#1141836, documentUuid, internalUUID#1141835, openQty, lambda x_136#1137961.openQty, openQtyInBaseUnit, ((lambda x_136#1137961.openQty * quantityNumerator#1141852) / quantityDenominator#1141853), qtyUom, quantityUom#1141850, qtyUomUuid, quantityUomUuid#1141851, availabilityDatetime, lambda x_136#1137961.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_136#1137961, false)), lambdafunction(NOT (lambda x_137#1137962.openQty = 0.0), lambda x_137#1137962, false)) AS openGoodsMovements#1141856]
Input [12]: [product#1141169, plant#1141170, stockDatetime#1141491, id#1141836, internalUUID#1141835, supplierUuid#1141844, product#1141846, quantityUom#1141850, quantityUomUuid#1141851, quantityNumerator#1141852, quantityDenominator#1141853, scheduleLines#1141854]
(2599) ObjectHashAggregate
Input [3]: [product#1141846, plant#1141170, openGoodsMovements#1141856]
Keys [2]: [product#1141846, plant#1141170]
Functions [1]: [partial_collect_list(openGoodsMovements#1141856, 0, 0)]
Aggregate Attributes [1]: [buf#1144022]
Results [3]: [product#1141846, plant#1141170, buf#1144023]
(2600) Exchange
Input [3]: [product#1141846, plant#1141170, buf#1144023]
Arguments: hashpartitioning(product#1141846, plant#1141170, 37), ENSURE_REQUIREMENTS, [plan_id=1718811]
(2601) ObjectHashAggregate
Input [3]: [product#1141846, plant#1141170, buf#1144023]
Keys [2]: [product#1141846, plant#1141170]
Functions [1]: [collect_list(openGoodsMovements#1141856, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1141856, 0, 0)#1137980]
Results [3]: [product#1141846, plant#1141170, flatten(collect_list(openGoodsMovements#1141856, 0, 0)#1137980) AS openGoodsMovements#1141857]
(2602) Filter
Input [3]: [product#1141846, plant#1141170, openGoodsMovements#1141857]
Condition : (size(openGoodsMovements#1141857, false) > 0)
(2603) Union
(2604) ObjectHashAggregate
Input [3]: [product#1141154, plant#1141153, openGoodsMovements#1141168]
Keys [2]: [product#1141154, plant#1141153]
Functions [1]: [partial_collect_list(openGoodsMovements#1141168, 0, 0)]
Aggregate Attributes [1]: [buf#1144020]
Results [3]: [product#1141154, plant#1141153, buf#1144021]
(2605) Exchange
Input [3]: [product#1141154, plant#1141153, buf#1144021]
Arguments: hashpartitioning(product#1141154, plant#1141153, 37), ENSURE_REQUIREMENTS, [plan_id=1718817]
(2606) ObjectHashAggregate
Input [3]: [product#1141154, plant#1141153, buf#1144021]
Keys [2]: [product#1141154, plant#1141153]
Functions [1]: [collect_list(openGoodsMovements#1141168, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1141168, 0, 0)#1138722]
Results [3]: [product#1141154, plant#1141153, flatten(collect_list(openGoodsMovements#1141168, 0, 0)#1138722) AS openGoodsMovements#1141858]
(2607) Project
Output [5]: [product#1141154, plant#1141153, openGoodsMovements#1141858.openQtyInBaseUnit AS _extract_openQtyInBaseUnit#1142497, openGoodsMovements#1141858.availabilityDatetime AS _extract_availabilityDatetime#1142498, openGoodsMovements#1141858.shelfLifeEndDatetime AS _extract_shelfLifeEndDatetime#1142499]
Input [3]: [product#1141154, plant#1141153, openGoodsMovements#1141858]
(2608) Sort
Input [5]: [product#1141154, plant#1141153, _extract_openQtyInBaseUnit#1142497, _extract_availabilityDatetime#1142498, _extract_shelfLifeEndDatetime#1142499]
Arguments: [product#1141154 ASC NULLS FIRST, plant#1141153 ASC NULLS FIRST], false, 0
(2609) SortMergeJoin
Left keys [2]: [product#1139739, plant#1139740]
Right keys [2]: [product#1141154, plant#1141153]
Join type: LeftOuter
Join condition: None
(2610) Project
Output [16]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, coalesce(_extract_openQtyInBaseUnit#1142497, []) AS openGoodsMovementQuantities#1141859, coalesce(_extract_availabilityDatetime#1142498, []) AS openGoodsMovementAvailabilityDatetimes#1141860, coalesce(_extract_shelfLifeEndDatetime#1142499, []) AS openGoodsMovementShelfLifeEndDatetimes#1141861, [[0,ShelfLife.LIFOPreference,0.42],[0,StockExtrapolation.ConsiderUnfulfilledDemands,1]] AS configuration#1141862, array_sort(filter(CASE WHEN isnotnull(productPlant#1139751.listing) THEN productPlant#1139751.listing ELSE [] END, lambdafunction(lambda listing#1139683.isListed, lambda listing#1139683, false)), lambdafunction(if ((isnull(lambda left#1139685) AND isnull(lambda right#1139686))) 0 else if (isnull(lambda left#1139685)) 1 else if (isnull(lambda right#1139686)) -1 else if ((lambda left#1139685 < lambda right#1139686)) -1 else if ((lambda left#1139685 > lambda right#1139686)) 1 else 0, lambda left#1139685, lambda right#1139686, false), false) AS listing#1139684]
Input [15]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, dayBucketDemands#1140402, pointInTimeDemands#1140403, product#1141154, plant#1141153, _extract_openQtyInBaseUnit#1142497, _extract_availabilityDatetime#1142498, _extract_shelfLifeEndDatetime#1142499]
(2611) DeserializeToObject
Input [16]: [product#1139739, plant#1139740, orderDateTime#1139741, productPlant#1139751, timezonecode#1139765, outboundUnit#1139782, stockDatetime#1140061, stockBatchQuantities#1140062, stockBatchShelfLifeEndDatetimes#1140063, dayBucketDemands#1140402, pointInTimeDemands#1140403, openGoodsMovementQuantities#1141859, openGoodsMovementAvailabilityDatetimes#1141860, openGoodsMovementShelfLifeEndDatetimes#1141861, configuration#1141862, listing#1139684]
Arguments: createexternalrow(invoke(product#1139739.toString()), invoke(plant#1139740.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1139741)), if (isnull(productPlant#1139751)) null else createexternalrow(invoke(productPlant#1139751.systemId.toString()), invoke(productPlant#1139751.internalUUID.toString()), if (isnull(productPlant#1139751.plant)) null else createexternalrow(invoke(productPlant#1139751.plant.internalRefUUID.toString()), invoke(productPlant#1139751.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1139751.product)) null else createexternalrow(invoke(productPlant#1139751.product.internalRefUUID.toString()), invoke(productPlant#1139751.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1139751.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1139751.productionAspect)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1139751.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#1139751.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1139751.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1139751.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1139751.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1139751.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1139751.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#1139751.salesPlant)) null else createexternalrow(if (isnull(productPlant#1139751.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1139751.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1139751.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -21).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1139751.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#1139765.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1139782)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1140061)), mapobjects(lambdavariable(MapObject, DoubleType, true, -22), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -22))), stockBatchQuantities#1140062, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -23), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -23))), stockBatchShelfLifeEndDatetimes#1140063, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).considerVariance)), mapobjects(lambdavariable(MapObject, DoubleType, false, -25), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, false, -25))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -26), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -26))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).demandVariances, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -27), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -27))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StringType, false, -28), invoke(lambdavariable(MapObject, StringType, false, -28).toString()), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorWeekdays, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, IntegerType, false, -29), static_invoke(java.lang.Integer.valueOf(lambdavariable(MapObject, IntegerType, false, -29))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true), false, -24).anchorIndices, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(anchorDatetimes,ArrayType(TimestampType,false),true), StructField(anchorWeekdays,ArrayType(StringType,false),true), StructField(anchorIndices,ArrayType(IntegerType,false),true)), dayBucketDemands#1140402, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).considerVariance)), mapobjects(lambdavariable(MapObject, TimestampType, false, -31), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -31))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandDatetimes, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, false, -32), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, false, -32))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandValues, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -33), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -33))), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).demandVariances, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).horizonStartDatetime)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true), false, -30).horizonEndDatetime)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandDatetimes,ArrayType(TimestampType,false),true), StructField(demandValues,ArrayType(DoubleType,false),true), StructField(demandVariances,ArrayType(DoubleType,true),true), StructField(horizonStartDatetime,TimestampType,true), StructField(horizonEndDatetime,TimestampType,true)), pointInTimeDemands#1140403, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, DoubleType, true, -34), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -34))), openGoodsMovementQuantities#1141859, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, true, -35), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, true, -35))), openGoodsMovementAvailabilityDatetimes#1141860, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -36), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -36))), openGoodsMovementShelfLifeEndDatetimes#1141861, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37), createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationValidityDatetime)), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationName.toString()), invoke(lambdavariable(MapObject, StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false), false, -37).configurationValue.toString()), StructField(configurationValidityDatetime,TimestampType,false), StructField(configurationName,StringType,false), StructField(configurationValue,StringType,false)), configuration#1141862, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -38).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), listing#1139684, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), ... 7 more fields), obj#1139719: org.apache.spark.sql.Row
(2612) MapElements
Input [1]: [obj#1139719]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.ListingSnapshotEnhancementImpl$$Lambda/0x000000080249e4c8@75d0fa77, obj#1139726: org.apache.spark.sql.Row
(2613) SerializeFromObject
Input [1]: [obj#1139726]
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#1139733, 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#1139734, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -17), static_invoke(UTF8String.fromString(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -17), StringType, ObjectType(class java.lang.String)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 2, timeDependentSettingsName), ArrayType(StringType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsName#1139735, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -18), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -18), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 3, timeDependentSettingsStartDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsStartDatetime#1139736, mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -19), static_invoke(DateTimeUtils.fromJavaTimestamp(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -19), TimestampType, ObjectType(class java.sql.Timestamp)))), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 4, timeDependentSettingsEndDatetime), ArrayType(TimestampType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsEndDatetime#1139737, if (invoke(class [D.isInstance(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object))))) static_invoke(ArrayData.toArrayData(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)))) else mapobjects(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -20), invoke(validateexternaltype(lambdavariable(MapObject, ObjectType(class java.lang.Object), true, -20), DoubleType, ObjectType(class java.lang.Double)).doubleValue()), validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 5, timeDependentSettingsValue), ArrayType(DoubleType,true), ObjectType(class java.lang.Object)), None) AS timeDependentSettingsValue#1139738]
(2614) Filter
Input [6]: [product#1139733, plant#1139734, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
Condition : (isnotnull(product#1139733) AND isnotnull(plant#1139734))
(2615) Exchange
Input [6]: [product#1139733, plant#1139734, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
Arguments: hashpartitioning(product#1139733, plant#1139734, 37), ENSURE_REQUIREMENTS, [plan_id=1718833]
(2616) Sort
Input [6]: [product#1139733, plant#1139734, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
Arguments: [product#1139733 ASC NULLS FIRST, plant#1139734 ASC NULLS FIRST], false, 0
(2617) SortMergeJoin
Left keys [2]: [product#1135691, plant#1135692]
Right keys [2]: [product#1139733, plant#1139734]
Join type: LeftOuter
Join condition: None
(2618) Project
Output [16]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, [[0,ShelfLife.LIFOPreference,0.42],[0,StockExtrapolation.ConsiderUnfulfilledDemands,1]] AS configuration#1139540, CASE WHEN isnotnull(timeDependentSettingsName#1139735) THEN timeDependentSettingsName#1139735 ELSE [] END AS timeDependentSettingsName#1142017, CASE WHEN isnotnull(timeDependentSettingsStartDatetime#1139736) THEN timeDependentSettingsStartDatetime#1139736 ELSE [] END AS timeDependentSettingsStartDatetime#1142018, CASE WHEN isnotnull(timeDependentSettingsEndDatetime#1139737) THEN timeDependentSettingsEndDatetime#1139737 ELSE [] END AS timeDependentSettingsEndDatetime#1142019, CASE WHEN isnotnull(timeDependentSettingsValue#1139738) THEN timeDependentSettingsValue#1139738 ELSE [] END AS timeDependentSettingsValue#1142020]
Input [16]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, product#1139733, plant#1139734, timeDependentSettingsName#1139735, timeDependentSettingsStartDatetime#1139736, timeDependentSettingsEndDatetime#1139737, timeDependentSettingsValue#1139738]
(2619) AdaptiveSparkPlan
Output [16]: [product#1135691, plant#1135692, outboundUnit#1135750, stockDatetime#1136095, stockBatchQuantities#1136096, stockBatchShelfLifeEndDatetimes#1136097, dayBucketDemands#1136171, pointInTimeDemands#1136172, openGoodsMovementQuantities#1139437, openGoodsMovementAvailabilityDatetimes#1139438, openGoodsMovementShelfLifeEndDatetimes#1139439, configuration#1139540, timeDependentSettingsName#1142017, timeDependentSettingsStartDatetime#1142018, timeDependentSettingsEndDatetime#1142019, timeDependentSettingsValue#1142020]
Arguments: isFinalPlan=false
===== Adaptively Optimized Out Exchanges =====
Subplan:1
Exchange (2623)
+- * Project (2622)
+- * Filter (2621)
+- * ColumnarToRow (2620)
+- Scan parquet (742)
(2620) ColumnarToRow [codegen id : 6]
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
(2621) 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))
(2622) Project [codegen id : 6]
Output [1]: [distributionCenters#1135757]
Input [2]: [marketUnit#1135751, distributionCenters#1135757]
(2623) Exchange
Input [1]: [distributionCenters#1135757]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727741]
Subplan:2
Exchange (2649)
+- * HashAggregate (2648)
+- * Project (2647)
+- * Generate (2646)
+- * Project (2645)
+- * Generate (2644)
+- Project (2643)
+- * BroadcastHashJoin LeftOuter BuildRight (2642)
:- * Project (2639)
: +- * BroadcastHashJoin LeftOuter BuildRight (2638)
: :- * Project (2631)
: : +- * BroadcastHashJoin LeftOuter BuildRight (2630)
: : :- ShuffleQueryStage (2627), Statistics(sizeInBytes=6.5 KiB, rowCount=76)
: : : +- Exchange (2626)
: : : +- * Filter (2625)
: : : +- * ColumnarToRow (2624)
: : : +- Scan parquet (752)
: : +- BroadcastQueryStage (2629), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : +- ReusedExchange (2628)
: +- BroadcastQueryStage (2637), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: +- BroadcastExchange (2636)
: +- ShuffleQueryStage (2635), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: +- Exchange (2634)
: +- * Project (2633)
: +- * ColumnarToRow (2632)
: +- Scan parquet (762)
+- BroadcastQueryStage (2641), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
+- ReusedExchange (2640)
(2624) ColumnarToRow [codegen id : 7]
Input [2]: [product#1136047, plant#1136048]
(2625) Filter [codegen id : 7]
Input [2]: [product#1136047, plant#1136048]
Condition : isnotnull(plant#1136048)
(2626) Exchange
Input [2]: [product#1136047, plant#1136048]
Arguments: hashpartitioning(product#1136047, plant#1136048, 37), REPARTITION_BY_NUM, [plan_id=1727764]
(2627) ShuffleQueryStage
Output [2]: [product#1136047, plant#1136048]
Arguments: 6
(2628) ReusedExchange [Reuses operator id: 599]
Output [4]: [_extract_code#1136839, _extract_internalRefUUID#1136840, _extract_internalRefUUID#1136842, _extract_internalRefUUID#1136841]
(2629) BroadcastQueryStage
Output [4]: [_extract_code#1136839, _extract_internalRefUUID#1136840, _extract_internalRefUUID#1136842, _extract_internalRefUUID#1136841]
Arguments: 120
(2630) 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
(2631) 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]
(2632) ColumnarToRow [codegen id : 9]
Input [2]: [internalUUID#1136061, systemId#1136060]
(2633) Project [codegen id : 9]
Output [1]: [internalUUID#1136061]
Input [2]: [internalUUID#1136061, systemId#1136060]
(2634) Exchange
Input [1]: [internalUUID#1136061]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1727801]
(2635) ShuffleQueryStage
Output [1]: [internalUUID#1136061]
Arguments: 9
(2636) BroadcastExchange
Input [1]: [internalUUID#1136061]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1738646]
(2637) BroadcastQueryStage
Output [1]: [internalUUID#1136061]
Arguments: 137
(2638) 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
(2639) 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]
(2640) ReusedExchange [Reuses operator id: 618]
Output [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
(2641) BroadcastQueryStage
Output [3]: [internalUUID#1136075, baseUnitOfMeasure#1136079, unitOfMeasureConversions#1136081]
Arguments: 108
(2642) BroadcastHashJoin [codegen id : 73]
Left keys [1]: [product#1136047]
Right keys [1]: [internalUUID#1136075]
Join type: LeftOuter
Join condition: None
(2643) 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]
(2644) Generate [codegen id : 74]
Input [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086]
Arguments: explode(filteredUnitOfMeasureConversions#1136086.quantityNumerator), [plant#1136048, filteredUnitOfMeasureConversions#1136086], true, [quantityNumerator#1136087]
(2645) Project [codegen id : 74]
Output [2]: [plant#1136048, filteredUnitOfMeasureConversions#1136086.quantityDenominator AS _extract_quantityDenominator#1136647]
Input [3]: [plant#1136048, filteredUnitOfMeasureConversions#1136086, quantityNumerator#1136087]
(2646) Generate [codegen id : 74]
Input [2]: [plant#1136048, _extract_quantityDenominator#1136647]
Arguments: explode(_extract_quantityDenominator#1136647), [plant#1136048], true, [quantityDenominator#1136088]
(2647) Project [codegen id : 74]
Output [1]: [plant#1136048]
Input [2]: [plant#1136048, quantityDenominator#1136088]
(2648) HashAggregate [codegen id : 74]
Input [1]: [plant#1136048]
Keys [1]: [plant#1136048]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1136048]
(2649) Exchange
Input [1]: [plant#1136048]
Arguments: hashpartitioning(plant#1136048, 37), ENSURE_REQUIREMENTS, [plan_id=1755334]