== Physical Plan ==
AdaptiveSparkPlan (836)
+- == Final Plan ==
ResultQueryStage (831), Statistics(sizeInBytes=8.0 EiB)
+- Execute InsertIntoHadoopFsRelationCommand (830)
+- WriteFiles (829)
+- Project (828)
+- Filter (827)
+- TableCacheQueryStage (826), Statistics(sizeInBytes=0.0 B, rowCount=0)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (825)
+- == Final Plan ==
ResultQueryStage (4)
+- EmptyRelation (3)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (824)
+- ObjectHashAggregate (823)
+- Exchange (822)
+- ObjectHashAggregate (821)
+- Project (820)
+- Window (819)
+- Sort (818)
+- Exchange (817)
+- Project (816)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- AdaptiveSparkPlan (815)
+- == Final Plan ==
ResultQueryStage (322)
+- Project (321)
+- * BroadcastHashJoin Inner BuildRight (320)
:- * Project (308)
: +- * SortMergeJoin Inner (307)
: :- * Sort (290)
: : +- ShuffleQueryStage (289), Statistics(sizeInBytes=11.7 KiB, rowCount=100)
: : +- Exchange (288)
: : +- * Project (287)
: : +- * BroadcastHashJoin LeftOuter BuildRight (286)
: : :- AQEShuffleRead (180)
: : : +- ShuffleQueryStage (179), Statistics(sizeInBytes=11.7 KiB, rowCount=100)
: : : +- Exchange (178)
: : : +- * Project (177)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (176)
: : : :- * Project (44)
: : : : +- * Generate (43)
: : : : +- * Project (42)
: : : : +- * Generate (41)
: : : : +- Project (40)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (39)
: : : : :- * Project (30)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (29)
: : : : : :- * Project (21)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (20)
: : : : : : :- ShuffleQueryStage (11), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (10)
: : : : : : : +- * Filter (9)
: : : : : : : +- * ColumnarToRow (8)
: : : : : : : +- Scan parquet (7)
: : : : : : +- BroadcastQueryStage (19), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- BroadcastExchange (18)
: : : : : : +- * Project (17)
: : : : : : +- ShuffleQueryStage (16), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : : +- Exchange (15)
: : : : : : +- * Project (14)
: : : : : : +- * ColumnarToRow (13)
: : : : : : +- Scan parquet (12)
: : : : : +- BroadcastQueryStage (28), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- BroadcastExchange (27)
: : : : : +- ShuffleQueryStage (26), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : : +- Exchange (25)
: : : : : +- * Project (24)
: : : : : +- * ColumnarToRow (23)
: : : : : +- Scan parquet (22)
: : : : +- BroadcastQueryStage (38), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- BroadcastExchange (37)
: : : : +- ShuffleQueryStage (36), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : : +- Exchange (35)
: : : : +- * Project (34)
: : : : +- * Filter (33)
: : : : +- * ColumnarToRow (32)
: : : : +- Scan parquet (31)
: : : +- BroadcastQueryStage (175), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (174)
: : : +- * HashAggregate (173)
: : : +- AQEShuffleRead (172)
: : : +- ShuffleQueryStage (171), Statistics(sizeInBytes=3.2 KiB, rowCount=34)
: : : +- Exchange (170)
: : : +- * HashAggregate (169)
: : : +- * Project (168)
: : : +- * BroadcastHashJoin Inner BuildLeft (167)
: : : :- BroadcastQueryStage (139), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : : +- BroadcastExchange (138)
: : : : +- AQEShuffleRead (137)
: : : : +- ShuffleQueryStage (136), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : : +- Exchange (135)
: : : : +- * Project (134)
: : : : +- * BroadcastHashJoin Inner BuildLeft (133)
: : : : :- BroadcastQueryStage (111), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : : +- BroadcastExchange (110)
: : : : : +- AQEShuffleRead (109)
: : : : : +- ShuffleQueryStage (108), Statistics(sizeInBytes=7.0 KiB, rowCount=64)
: : : : : +- Exchange (107)
: : : : : +- * Project (106)
: : : : : +- * Filter (105)
: : : : : +- * Generate (104)
: : : : : +- * Filter (103)
: : : : : +- ObjectHashAggregate (102)
: : : : : +- ObjectHashAggregate (101)
: : : : : +- Generate (100)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (99)
: : : : : :- BroadcastQueryStage (52), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : : +- BroadcastExchange (51)
: : : : : : +- ShuffleQueryStage (50), Statistics(sizeInBytes=252.4 KiB, rowCount=419)
: : : : : : +- Exchange (49)
: : : : : : +- * Project (48)
: : : : : : +- * Filter (47)
: : : : : : +- * ColumnarToRow (46)
: : : : : : +- Scan parquet (45)
: : : : : +- * Project (98)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (97)
: : : : : :- BroadcastQueryStage (65), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : : +- BroadcastExchange (64)
: : : : : : +- * Project (63)
: : : : : : +- * Generate (62)
: : : : : : +- * Project (61)
: : : : : : +- * Filter (60)
: : : : : : +- * Generate (59)
: : : : : : +- ShuffleQueryStage (58), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : : : : : +- Exchange (57)
: : : : : : +- * Project (56)
: : : : : : +- * Filter (55)
: : : : : : +- * ColumnarToRow (54)
: : : : : : +- Scan parquet (53)
: : : : : +- * HashAggregate (96)
: : : : : +- AQEShuffleRead (95)
: : : : : +- ShuffleQueryStage (94), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : : +- Exchange (93)
: : : : : +- * HashAggregate (92)
: : : : : +- * Project (91)
: : : : : +- * Generate (90)
: : : : : +- * Project (89)
: : : : : +- * Generate (88)
: : : : : +- Project (87)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (86)
: : : : : :- * Project (83)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (82)
: : : : : : :- * Project (74)
: : : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (73)
: : : : : : : :- ShuffleQueryStage (70), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : : : : : : : +- Exchange (69)
: : : : : : : : +- * Filter (68)
: : : : : : : : +- * ColumnarToRow (67)
: : : : : : : : +- Scan parquet (66)
: : : : : : : +- BroadcastQueryStage (72), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : : +- ReusedExchange (71)
: : : : : : +- BroadcastQueryStage (81), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : : +- BroadcastExchange (80)
: : : : : : +- ShuffleQueryStage (79), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: : : : : : +- Exchange (78)
: : : : : : +- * Project (77)
: : : : : : +- * ColumnarToRow (76)
: : : : : : +- Scan parquet (75)
: : : : : +- BroadcastQueryStage (85), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : : +- ReusedExchange (84)
: : : : +- * Project (132)
: : : : +- * Generate (131)
: : : : +- * Project (130)
: : : : +- * Generate (129)
: : : : +- Project (128)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (127)
: : : : :- * Project (124)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (123)
: : : : : :- * Project (120)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (119)
: : : : : : :- ShuffleQueryStage (116), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (115)
: : : : : : : +- * Filter (114)
: : : : : : : +- * ColumnarToRow (113)
: : : : : : : +- Scan parquet (112)
: : : : : : +- BroadcastQueryStage (118), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (117)
: : : : : +- BroadcastQueryStage (122), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (121)
: : : : +- BroadcastQueryStage (126), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (125)
: : : +- AQEShuffleRead (166)
: : : +- ShuffleQueryStage (165), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : +- Exchange (164)
: : : +- * HashAggregate (163)
: : : +- * HashAggregate (162)
: : : +- * Project (161)
: : : +- * BroadcastHashJoin Inner BuildLeft (160)
: : : :- BroadcastQueryStage (141), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : +- ReusedExchange (140)
: : : +- * Project (159)
: : : +- * Generate (158)
: : : +- * Project (157)
: : : +- * Generate (156)
: : : +- Project (155)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (154)
: : : :- * Project (151)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (150)
: : : : :- * Project (147)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (146)
: : : : : :- ShuffleQueryStage (143), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : +- ReusedExchange (142)
: : : : : +- BroadcastQueryStage (145), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- ReusedExchange (144)
: : : : +- BroadcastQueryStage (149), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (148)
: : : +- BroadcastQueryStage (153), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (152)
: : +- BroadcastQueryStage (285), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: : +- BroadcastExchange (284)
: : +- AQEShuffleRead (283)
: : +- ShuffleQueryStage (282), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : +- Exchange (281)
: : +- * SerializeFromObject (280)
: : +- * MapElements (279)
: : +- * DeserializeToObject (278)
: : +- ObjectHashAggregate (277)
: : +- ObjectHashAggregate (276)
: : +- * Project (275)
: : +- * BroadcastHashJoin LeftOuter BuildRight (274)
: : :- * Project (268)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (267)
: : : :- * Project (206)
: : : : +- * Project (205)
: : : : +- * Generate (204)
: : : : +- * Generate (203)
: : : : +- * Project (202)
: : : : +- Project (201)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (200)
: : : : :- * Project (197)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (196)
: : : : : :- * BroadcastHashJoin LeftOuter BuildRight (193)
: : : : : : :- ShuffleQueryStage (184), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (183)
: : : : : : : +- * ColumnarToRow (182)
: : : : : : : +- Scan parquet (181)
: : : : : : +- BroadcastQueryStage (192), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- BroadcastExchange (191)
: : : : : : +- * Project (190)
: : : : : : +- ShuffleQueryStage (189), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : : +- Exchange (188)
: : : : : : +- * Project (187)
: : : : : : +- * ColumnarToRow (186)
: : : : : : +- Scan parquet (185)
: : : : : +- BroadcastQueryStage (195), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (194)
: : : : +- BroadcastQueryStage (199), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (198)
: : : +- BroadcastQueryStage (266), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (265)
: : : +- * HashAggregate (264)
: : : +- AQEShuffleRead (263)
: : : +- ShuffleQueryStage (262), Statistics(sizeInBytes=3.5 KiB, rowCount=34)
: : : +- Exchange (261)
: : : +- * HashAggregate (260)
: : : +- * Project (259)
: : : +- * BroadcastHashJoin Inner BuildLeft (258)
: : : :- BroadcastQueryStage (254), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : : +- BroadcastExchange (253)
: : : : +- AQEShuffleRead (252)
: : : : +- ShuffleQueryStage (251), Statistics(sizeInBytes=4.0 KiB, rowCount=34)
: : : : +- Exchange (250)
: : : : +- * Project (249)
: : : : +- * BroadcastHashJoin Inner BuildLeft (248)
: : : : :- BroadcastQueryStage (229), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : : +- BroadcastExchange (228)
: : : : : +- AQEShuffleRead (227)
: : : : : +- ShuffleQueryStage (226), Statistics(sizeInBytes=7.5 KiB, rowCount=64)
: : : : : +- Exchange (225)
: : : : : +- * Project (224)
: : : : : +- * Filter (223)
: : : : : +- * Generate (222)
: : : : : +- * Filter (221)
: : : : : +- ObjectHashAggregate (220)
: : : : : +- ObjectHashAggregate (219)
: : : : : +- Generate (218)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (217)
: : : : : :- BroadcastQueryStage (208), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : : +- ReusedExchange (207)
: : : : : +- * Project (216)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (215)
: : : : : :- BroadcastQueryStage (210), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : : +- ReusedExchange (209)
: : : : : +- * HashAggregate (214)
: : : : : +- AQEShuffleRead (213)
: : : : : +- ShuffleQueryStage (212), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : : +- ReusedExchange (211)
: : : : +- * Project (247)
: : : : +- * Generate (246)
: : : : +- * Project (245)
: : : : +- * Generate (244)
: : : : +- Project (243)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (242)
: : : : :- * Project (239)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (238)
: : : : : :- * Project (235)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (234)
: : : : : : :- ShuffleQueryStage (231), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- ReusedExchange (230)
: : : : : : +- BroadcastQueryStage (233), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (232)
: : : : : +- BroadcastQueryStage (237), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (236)
: : : : +- BroadcastQueryStage (241), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (240)
: : : +- AQEShuffleRead (257)
: : : +- ShuffleQueryStage (256), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : +- ReusedExchange (255)
: : +- BroadcastQueryStage (273), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: : +- BroadcastExchange (272)
: : +- * Filter (271)
: : +- * ColumnarToRow (270)
: : +- Scan parquet (269)
: +- * Sort (306)
: +- * Project (305)
: +- * BroadcastHashJoin Inner BuildLeft (304)
: :- BroadcastQueryStage (300), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : +- BroadcastExchange (299)
: : +- * Project (298)
: : +- * Filter (297)
: : +- * Generate (296)
: : +- * Project (295)
: : +- * Filter (294)
: : +- * Generate (293)
: : +- ShuffleQueryStage (292), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : +- ReusedExchange (291)
: +- * HashAggregate (303)
: +- ShuffleQueryStage (302), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: +- ReusedExchange (301)
+- BroadcastQueryStage (319), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (318)
+- * Project (317)
+- * Filter (316)
+- * Generate (315)
+- ShuffleQueryStage (314), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (313)
+- * Project (312)
+- * Filter (311)
+- * ColumnarToRow (310)
+- Scan parquet (309)
+- == Initial Plan ==
Project (814)
+- BroadcastHashJoin Inner BuildRight (813)
:- Project (805)
: +- SortMergeJoin Inner (804)
: :- Sort (759)
: : +- Exchange (758)
: : +- Project (757)
: : +- SortMergeJoin LeftOuter (756)
: : :- Sort (531)
: : : +- Exchange (530)
: : : +- Project (529)
: : : +- SortMergeJoin LeftOuter (528)
: : : :- Sort (346)
: : : : +- Project (345)
: : : : +- Generate (344)
: : : : +- Project (343)
: : : : +- Generate (342)
: : : : +- Project (341)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (340)
: : : : :- Project (335)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (334)
: : : : : :- Project (330)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (329)
: : : : : : :- Exchange (324)
: : : : : : : +- Filter (323)
: : : : : : : +- Scan parquet (7)
: : : : : : +- BroadcastExchange (328)
: : : : : : +- Project (327)
: : : : : : +- Exchange (326)
: : : : : : +- Project (325)
: : : : : : +- Scan parquet (12)
: : : : : +- BroadcastExchange (333)
: : : : : +- Exchange (332)
: : : : : +- Project (331)
: : : : : +- Scan parquet (22)
: : : : +- BroadcastExchange (339)
: : : : +- Exchange (338)
: : : : +- Project (337)
: : : : +- Filter (336)
: : : : +- Scan parquet (31)
: : : +- Sort (527)
: : : +- HashAggregate (526)
: : : +- Exchange (525)
: : : +- HashAggregate (524)
: : : +- Project (523)
: : : +- SortMergeJoin Inner (522)
: : : :- Sort (430)
: : : : +- Exchange (429)
: : : : +- Project (428)
: : : : +- SortMergeJoin Inner (427)
: : : : :- Sort (399)
: : : : : +- Exchange (398)
: : : : : +- Project (397)
: : : : : +- Filter (396)
: : : : : +- Generate (395)
: : : : : +- Filter (394)
: : : : : +- ObjectHashAggregate (393)
: : : : : +- ObjectHashAggregate (392)
: : : : : +- Generate (391)
: : : : : +- BroadcastHashJoin Inner BuildLeft (390)
: : : : : :- BroadcastExchange (350)
: : : : : : +- Exchange (349)
: : : : : : +- Project (348)
: : : : : : +- Filter (347)
: : : : : : +- Scan parquet (45)
: : : : : +- Project (389)
: : : : : +- BroadcastHashJoin Inner BuildLeft (388)
: : : : : :- BroadcastExchange (359)
: : : : : : +- Project (358)
: : : : : : +- Generate (357)
: : : : : : +- Project (356)
: : : : : : +- Filter (355)
: : : : : : +- Generate (354)
: : : : : : +- Exchange (353)
: : : : : : +- Project (352)
: : : : : : +- Filter (351)
: : : : : : +- Scan parquet (53)
: : : : : +- HashAggregate (387)
: : : : : +- Exchange (386)
: : : : : +- HashAggregate (385)
: : : : : +- Project (384)
: : : : : +- Generate (383)
: : : : : +- Project (382)
: : : : : +- Generate (381)
: : : : : +- Project (380)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (379)
: : : : : :- Project (373)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (372)
: : : : : : :- Project (368)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (367)
: : : : : : : :- Exchange (361)
: : : : : : : : +- Filter (360)
: : : : : : : : +- Scan parquet (66)
: : : : : : : +- BroadcastExchange (366)
: : : : : : : +- Project (365)
: : : : : : : +- Exchange (364)
: : : : : : : +- Project (363)
: : : : : : : +- Scan parquet (362)
: : : : : : +- BroadcastExchange (371)
: : : : : : +- Exchange (370)
: : : : : : +- Project (369)
: : : : : : +- Scan parquet (75)
: : : : : +- BroadcastExchange (378)
: : : : : +- Exchange (377)
: : : : : +- Project (376)
: : : : : +- Filter (375)
: : : : : +- Scan parquet (374)
: : : : +- Sort (426)
: : : : +- Project (425)
: : : : +- Generate (424)
: : : : +- Project (423)
: : : : +- Generate (422)
: : : : +- Project (421)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (420)
: : : : :- Project (414)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (413)
: : : : : :- Project (408)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (407)
: : : : : : :- Exchange (401)
: : : : : : : +- Filter (400)
: : : : : : : +- Scan parquet (112)
: : : : : : +- BroadcastExchange (406)
: : : : : : +- Project (405)
: : : : : : +- Exchange (404)
: : : : : : +- Project (403)
: : : : : : +- Scan parquet (402)
: : : : : +- BroadcastExchange (412)
: : : : : +- Exchange (411)
: : : : : +- Project (410)
: : : : : +- Scan parquet (409)
: : : : +- BroadcastExchange (419)
: : : : +- Exchange (418)
: : : : +- Project (417)
: : : : +- Filter (416)
: : : : +- Scan parquet (415)
: : : +- Sort (521)
: : : +- Exchange (520)
: : : +- HashAggregate (519)
: : : +- HashAggregate (518)
: : : +- Project (517)
: : : +- SortMergeJoin Inner (516)
: : : :- Sort (487)
: : : : +- Exchange (486)
: : : : +- Project (485)
: : : : +- Filter (484)
: : : : +- Generate (483)
: : : : +- Filter (482)
: : : : +- ObjectHashAggregate (481)
: : : : +- ObjectHashAggregate (480)
: : : : +- Generate (479)
: : : : +- BroadcastHashJoin Inner BuildLeft (478)
: : : : :- BroadcastExchange (435)
: : : : : +- Exchange (434)
: : : : : +- Project (433)
: : : : : +- Filter (432)
: : : : : +- Scan parquet (431)
: : : : +- Project (477)
: : : : +- BroadcastHashJoin Inner BuildLeft (476)
: : : : :- BroadcastExchange (445)
: : : : : +- Project (444)
: : : : : +- Generate (443)
: : : : : +- Project (442)
: : : : : +- Filter (441)
: : : : : +- Generate (440)
: : : : : +- Exchange (439)
: : : : : +- Project (438)
: : : : : +- Filter (437)
: : : : : +- Scan parquet (436)
: : : : +- HashAggregate (475)
: : : : +- Exchange (474)
: : : : +- HashAggregate (473)
: : : : +- Project (472)
: : : : +- Generate (471)
: : : : +- Project (470)
: : : : +- Generate (469)
: : : : +- Project (468)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (467)
: : : : :- Project (461)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (460)
: : : : : :- Project (455)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (454)
: : : : : : :- Exchange (448)
: : : : : : : +- Filter (447)
: : : : : : : +- Scan parquet (446)
: : : : : : +- BroadcastExchange (453)
: : : : : : +- Project (452)
: : : : : : +- Exchange (451)
: : : : : : +- Project (450)
: : : : : : +- Scan parquet (449)
: : : : : +- BroadcastExchange (459)
: : : : : +- Exchange (458)
: : : : : +- Project (457)
: : : : : +- Scan parquet (456)
: : : : +- BroadcastExchange (466)
: : : : +- Exchange (465)
: : : : +- Project (464)
: : : : +- Filter (463)
: : : : +- Scan parquet (462)
: : : +- Sort (515)
: : : +- Project (514)
: : : +- Generate (513)
: : : +- Project (512)
: : : +- Generate (511)
: : : +- Project (510)
: : : +- BroadcastHashJoin LeftOuter BuildRight (509)
: : : :- Project (503)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (502)
: : : : :- Project (497)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (496)
: : : : : :- Exchange (490)
: : : : : : +- Filter (489)
: : : : : : +- Scan parquet (488)
: : : : : +- BroadcastExchange (495)
: : : : : +- Project (494)
: : : : : +- Exchange (493)
: : : : : +- Project (492)
: : : : : +- Scan parquet (491)
: : : : +- BroadcastExchange (501)
: : : : +- Exchange (500)
: : : : +- Project (499)
: : : : +- Scan parquet (498)
: : : +- BroadcastExchange (508)
: : : +- Exchange (507)
: : : +- Project (506)
: : : +- Filter (505)
: : : +- Scan parquet (504)
: : +- Sort (755)
: : +- Exchange (754)
: : +- SerializeFromObject (753)
: : +- MapElements (752)
: : +- DeserializeToObject (751)
: : +- ObjectHashAggregate (750)
: : +- ObjectHashAggregate (749)
: : +- Project (748)
: : +- BroadcastHashJoin LeftOuter BuildRight (747)
: : :- Project (744)
: : : +- SortMergeJoin LeftOuter (743)
: : : :- Sort (556)
: : : : +- Project (555)
: : : : +- Project (554)
: : : : +- Generate (553)
: : : : +- Generate (552)
: : : : +- Project (551)
: : : : +- Project (550)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (549)
: : : : :- Project (543)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (542)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (537)
: : : : : : :- Exchange (532)
: : : : : : : +- Scan parquet (181)
: : : : : : +- BroadcastExchange (536)
: : : : : : +- Project (535)
: : : : : : +- Exchange (534)
: : : : : : +- Project (533)
: : : : : : +- Scan parquet (185)
: : : : : +- BroadcastExchange (541)
: : : : : +- Exchange (540)
: : : : : +- Project (539)
: : : : : +- Scan parquet (538)
: : : : +- BroadcastExchange (548)
: : : : +- Exchange (547)
: : : : +- Project (546)
: : : : +- Filter (545)
: : : : +- Scan parquet (544)
: : : +- Sort (742)
: : : +- HashAggregate (741)
: : : +- Exchange (740)
: : : +- HashAggregate (739)
: : : +- Project (738)
: : : +- SortMergeJoin Inner (737)
: : : :- Sort (645)
: : : : +- Exchange (644)
: : : : +- Project (643)
: : : : +- SortMergeJoin Inner (642)
: : : : :- Sort (613)
: : : : : +- Exchange (612)
: : : : : +- Project (611)
: : : : : +- Filter (610)
: : : : : +- Generate (609)
: : : : : +- Filter (608)
: : : : : +- ObjectHashAggregate (607)
: : : : : +- ObjectHashAggregate (606)
: : : : : +- Generate (605)
: : : : : +- BroadcastHashJoin Inner BuildLeft (604)
: : : : : :- BroadcastExchange (561)
: : : : : : +- Exchange (560)
: : : : : : +- Project (559)
: : : : : : +- Filter (558)
: : : : : : +- Scan parquet (557)
: : : : : +- Project (603)
: : : : : +- BroadcastHashJoin Inner BuildLeft (602)
: : : : : :- BroadcastExchange (571)
: : : : : : +- Project (570)
: : : : : : +- Generate (569)
: : : : : : +- Project (568)
: : : : : : +- Filter (567)
: : : : : : +- Generate (566)
: : : : : : +- Exchange (565)
: : : : : : +- Project (564)
: : : : : : +- Filter (563)
: : : : : : +- Scan parquet (562)
: : : : : +- HashAggregate (601)
: : : : : +- Exchange (600)
: : : : : +- HashAggregate (599)
: : : : : +- Project (598)
: : : : : +- Generate (597)
: : : : : +- Project (596)
: : : : : +- Generate (595)
: : : : : +- Project (594)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (593)
: : : : : :- Project (587)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (586)
: : : : : : :- Project (581)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (580)
: : : : : : : :- Exchange (574)
: : : : : : : : +- Filter (573)
: : : : : : : : +- Scan parquet (572)
: : : : : : : +- BroadcastExchange (579)
: : : : : : : +- Project (578)
: : : : : : : +- Exchange (577)
: : : : : : : +- Project (576)
: : : : : : : +- Scan parquet (575)
: : : : : : +- BroadcastExchange (585)
: : : : : : +- Exchange (584)
: : : : : : +- Project (583)
: : : : : : +- Scan parquet (582)
: : : : : +- BroadcastExchange (592)
: : : : : +- Exchange (591)
: : : : : +- Project (590)
: : : : : +- Filter (589)
: : : : : +- Scan parquet (588)
: : : : +- Sort (641)
: : : : +- Project (640)
: : : : +- Generate (639)
: : : : +- Project (638)
: : : : +- Generate (637)
: : : : +- Project (636)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (635)
: : : : :- Project (629)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (628)
: : : : : :- Project (623)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (622)
: : : : : : :- Exchange (616)
: : : : : : : +- Filter (615)
: : : : : : : +- Scan parquet (614)
: : : : : : +- BroadcastExchange (621)
: : : : : : +- Project (620)
: : : : : : +- Exchange (619)
: : : : : : +- Project (618)
: : : : : : +- Scan parquet (617)
: : : : : +- BroadcastExchange (627)
: : : : : +- Exchange (626)
: : : : : +- Project (625)
: : : : : +- Scan parquet (624)
: : : : +- BroadcastExchange (634)
: : : : +- Exchange (633)
: : : : +- Project (632)
: : : : +- Filter (631)
: : : : +- Scan parquet (630)
: : : +- Sort (736)
: : : +- Exchange (735)
: : : +- HashAggregate (734)
: : : +- HashAggregate (733)
: : : +- Project (732)
: : : +- SortMergeJoin Inner (731)
: : : :- Sort (702)
: : : : +- Exchange (701)
: : : : +- Project (700)
: : : : +- Filter (699)
: : : : +- Generate (698)
: : : : +- Filter (697)
: : : : +- ObjectHashAggregate (696)
: : : : +- ObjectHashAggregate (695)
: : : : +- Generate (694)
: : : : +- BroadcastHashJoin Inner BuildLeft (693)
: : : : :- BroadcastExchange (650)
: : : : : +- Exchange (649)
: : : : : +- Project (648)
: : : : : +- Filter (647)
: : : : : +- Scan parquet (646)
: : : : +- Project (692)
: : : : +- BroadcastHashJoin Inner BuildLeft (691)
: : : : :- BroadcastExchange (660)
: : : : : +- Project (659)
: : : : : +- Generate (658)
: : : : : +- Project (657)
: : : : : +- Filter (656)
: : : : : +- Generate (655)
: : : : : +- Exchange (654)
: : : : : +- Project (653)
: : : : : +- Filter (652)
: : : : : +- Scan parquet (651)
: : : : +- HashAggregate (690)
: : : : +- Exchange (689)
: : : : +- HashAggregate (688)
: : : : +- Project (687)
: : : : +- Generate (686)
: : : : +- Project (685)
: : : : +- Generate (684)
: : : : +- Project (683)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (682)
: : : : :- Project (676)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (675)
: : : : : :- Project (670)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (669)
: : : : : : :- Exchange (663)
: : : : : : : +- Filter (662)
: : : : : : : +- Scan parquet (661)
: : : : : : +- BroadcastExchange (668)
: : : : : : +- Project (667)
: : : : : : +- Exchange (666)
: : : : : : +- Project (665)
: : : : : : +- Scan parquet (664)
: : : : : +- BroadcastExchange (674)
: : : : : +- Exchange (673)
: : : : : +- Project (672)
: : : : : +- Scan parquet (671)
: : : : +- BroadcastExchange (681)
: : : : +- Exchange (680)
: : : : +- Project (679)
: : : : +- Filter (678)
: : : : +- Scan parquet (677)
: : : +- Sort (730)
: : : +- Project (729)
: : : +- Generate (728)
: : : +- Project (727)
: : : +- Generate (726)
: : : +- Project (725)
: : : +- BroadcastHashJoin LeftOuter BuildRight (724)
: : : :- Project (718)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (717)
: : : : :- Project (712)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (711)
: : : : : :- Exchange (705)
: : : : : : +- Filter (704)
: : : : : : +- Scan parquet (703)
: : : : : +- BroadcastExchange (710)
: : : : : +- Project (709)
: : : : : +- Exchange (708)
: : : : : +- Project (707)
: : : : : +- Scan parquet (706)
: : : : +- BroadcastExchange (716)
: : : : +- Exchange (715)
: : : : +- Project (714)
: : : : +- Scan parquet (713)
: : : +- BroadcastExchange (723)
: : : +- Exchange (722)
: : : +- Project (721)
: : : +- Filter (720)
: : : +- Scan parquet (719)
: : +- BroadcastExchange (746)
: : +- Filter (745)
: : +- Scan parquet (269)
: +- Sort (803)
: +- Project (802)
: +- BroadcastHashJoin Inner BuildLeft (801)
: :- BroadcastExchange (770)
: : +- Project (769)
: : +- Filter (768)
: : +- Generate (767)
: : +- Project (766)
: : +- Filter (765)
: : +- Generate (764)
: : +- Exchange (763)
: : +- Project (762)
: : +- Filter (761)
: : +- Scan parquet (760)
: +- HashAggregate (800)
: +- Exchange (799)
: +- HashAggregate (798)
: +- Project (797)
: +- Generate (796)
: +- Project (795)
: +- Generate (794)
: +- Project (793)
: +- BroadcastHashJoin LeftOuter BuildRight (792)
: :- Project (786)
: : +- BroadcastHashJoin LeftOuter BuildRight (785)
: : :- Project (780)
: : : +- BroadcastHashJoin LeftOuter BuildRight (779)
: : : :- Exchange (773)
: : : : +- Filter (772)
: : : : +- Scan parquet (771)
: : : +- BroadcastExchange (778)
: : : +- Project (777)
: : : +- Exchange (776)
: : : +- Project (775)
: : : +- Scan parquet (774)
: : +- BroadcastExchange (784)
: : +- Exchange (783)
: : +- Project (782)
: : +- Scan parquet (781)
: +- BroadcastExchange (791)
: +- Exchange (790)
: +- Project (789)
: +- Filter (788)
: +- Scan parquet (787)
+- BroadcastExchange (812)
+- Project (811)
+- Filter (810)
+- Generate (809)
+- Exchange (808)
+- Project (807)
+- Filter (806)
+- Scan parquet (309)
+- == Initial Plan ==
Execute InsertIntoHadoopFsRelationCommand (835)
+- WriteFiles (834)
+- Project (833)
+- Filter (832)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (825)
+- == Final Plan ==
ResultQueryStage (4)
+- EmptyRelation (3)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (824)
+- ObjectHashAggregate (823)
+- Exchange (822)
+- ObjectHashAggregate (821)
+- Project (820)
+- Window (819)
+- Sort (818)
+- Exchange (817)
+- Project (816)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- AdaptiveSparkPlan (815)
+- == Final Plan ==
ResultQueryStage (322)
+- Project (321)
+- * BroadcastHashJoin Inner BuildRight (320)
:- * Project (308)
: +- * SortMergeJoin Inner (307)
: :- * Sort (290)
: : +- ShuffleQueryStage (289), Statistics(sizeInBytes=11.7 KiB, rowCount=100)
: : +- Exchange (288)
: : +- * Project (287)
: : +- * BroadcastHashJoin LeftOuter BuildRight (286)
: : :- AQEShuffleRead (180)
: : : +- ShuffleQueryStage (179), Statistics(sizeInBytes=11.7 KiB, rowCount=100)
: : : +- Exchange (178)
: : : +- * Project (177)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (176)
: : : :- * Project (44)
: : : : +- * Generate (43)
: : : : +- * Project (42)
: : : : +- * Generate (41)
: : : : +- Project (40)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (39)
: : : : :- * Project (30)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (29)
: : : : : :- * Project (21)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (20)
: : : : : : :- ShuffleQueryStage (11), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (10)
: : : : : : : +- * Filter (9)
: : : : : : : +- * ColumnarToRow (8)
: : : : : : : +- Scan parquet (7)
: : : : : : +- BroadcastQueryStage (19), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- BroadcastExchange (18)
: : : : : : +- * Project (17)
: : : : : : +- ShuffleQueryStage (16), Statistics(sizeInBytes=197.7 KiB, rowCount=1.43E+3)
: : : : : : +- Exchange (15)
: : : : : : +- * Project (14)
: : : : : : +- * ColumnarToRow (13)
: : : : : : +- Scan parquet (12)
: : : : : +- BroadcastQueryStage (28), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- BroadcastExchange (27)
: : : : : +- ShuffleQueryStage (26), Statistics(sizeInBytes=1728.0 B, rowCount=24)
: : : : : +- Exchange (25)
: : : : : +- * Project (24)
: : : : : +- * ColumnarToRow (23)
: : : : : +- Scan parquet (22)
: : : : +- BroadcastQueryStage (38), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- BroadcastExchange (37)
: : : : +- ShuffleQueryStage (36), Statistics(sizeInBytes=87.9 KiB, rowCount=145)
: : : : +- Exchange (35)
: : : : +- * Project (34)
: : : : +- * Filter (33)
: : : : +- * ColumnarToRow (32)
: : : : +- Scan parquet (31)
: : : +- BroadcastQueryStage (175), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (174)
: : : +- * HashAggregate (173)
: : : +- AQEShuffleRead (172)
: : : +- ShuffleQueryStage (171), Statistics(sizeInBytes=3.2 KiB, rowCount=34)
: : : +- Exchange (170)
: : : +- * HashAggregate (169)
: : : +- * Project (168)
: : : +- * BroadcastHashJoin Inner BuildLeft (167)
: : : :- BroadcastQueryStage (139), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : : +- BroadcastExchange (138)
: : : : +- AQEShuffleRead (137)
: : : : +- ShuffleQueryStage (136), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : : +- Exchange (135)
: : : : +- * Project (134)
: : : : +- * BroadcastHashJoin Inner BuildLeft (133)
: : : : :- BroadcastQueryStage (111), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : : +- BroadcastExchange (110)
: : : : : +- AQEShuffleRead (109)
: : : : : +- ShuffleQueryStage (108), Statistics(sizeInBytes=7.0 KiB, rowCount=64)
: : : : : +- Exchange (107)
: : : : : +- * Project (106)
: : : : : +- * Filter (105)
: : : : : +- * Generate (104)
: : : : : +- * Filter (103)
: : : : : +- ObjectHashAggregate (102)
: : : : : +- ObjectHashAggregate (101)
: : : : : +- Generate (100)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (99)
: : : : : :- BroadcastQueryStage (52), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : : +- BroadcastExchange (51)
: : : : : : +- ShuffleQueryStage (50), Statistics(sizeInBytes=252.4 KiB, rowCount=419)
: : : : : : +- Exchange (49)
: : : : : : +- * Project (48)
: : : : : : +- * Filter (47)
: : : : : : +- * ColumnarToRow (46)
: : : : : : +- Scan parquet (45)
: : : : : +- * Project (98)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (97)
: : : : : :- BroadcastQueryStage (65), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : : +- BroadcastExchange (64)
: : : : : : +- * Project (63)
: : : : : : +- * Generate (62)
: : : : : : +- * Project (61)
: : : : : : +- * Filter (60)
: : : : : : +- * Generate (59)
: : : : : : +- ShuffleQueryStage (58), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : : : : : +- Exchange (57)
: : : : : : +- * Project (56)
: : : : : : +- * Filter (55)
: : : : : : +- * ColumnarToRow (54)
: : : : : : +- Scan parquet (53)
: : : : : +- * HashAggregate (96)
: : : : : +- AQEShuffleRead (95)
: : : : : +- ShuffleQueryStage (94), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : : +- Exchange (93)
: : : : : +- * HashAggregate (92)
: : : : : +- * Project (91)
: : : : : +- * Generate (90)
: : : : : +- * Project (89)
: : : : : +- * Generate (88)
: : : : : +- Project (87)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (86)
: : : : : :- * Project (83)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (82)
: : : : : : :- * Project (74)
: : : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (73)
: : : : : : : :- ShuffleQueryStage (70), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : : : : : : : +- Exchange (69)
: : : : : : : : +- * Filter (68)
: : : : : : : : +- * ColumnarToRow (67)
: : : : : : : : +- Scan parquet (66)
: : : : : : : +- BroadcastQueryStage (72), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : : +- ReusedExchange (71)
: : : : : : +- BroadcastQueryStage (81), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : : +- BroadcastExchange (80)
: : : : : : +- ShuffleQueryStage (79), Statistics(sizeInBytes=1152.0 B, rowCount=24)
: : : : : : +- Exchange (78)
: : : : : : +- * Project (77)
: : : : : : +- * ColumnarToRow (76)
: : : : : : +- Scan parquet (75)
: : : : : +- BroadcastQueryStage (85), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : : +- ReusedExchange (84)
: : : : +- * Project (132)
: : : : +- * Generate (131)
: : : : +- * Project (130)
: : : : +- * Generate (129)
: : : : +- Project (128)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (127)
: : : : :- * Project (124)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (123)
: : : : : :- * Project (120)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (119)
: : : : : : :- ShuffleQueryStage (116), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (115)
: : : : : : : +- * Filter (114)
: : : : : : : +- * ColumnarToRow (113)
: : : : : : : +- Scan parquet (112)
: : : : : : +- BroadcastQueryStage (118), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (117)
: : : : : +- BroadcastQueryStage (122), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (121)
: : : : +- BroadcastQueryStage (126), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (125)
: : : +- AQEShuffleRead (166)
: : : +- ShuffleQueryStage (165), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : +- Exchange (164)
: : : +- * HashAggregate (163)
: : : +- * HashAggregate (162)
: : : +- * Project (161)
: : : +- * BroadcastHashJoin Inner BuildLeft (160)
: : : :- BroadcastQueryStage (141), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : +- ReusedExchange (140)
: : : +- * Project (159)
: : : +- * Generate (158)
: : : +- * Project (157)
: : : +- * Generate (156)
: : : +- Project (155)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (154)
: : : :- * Project (151)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (150)
: : : : :- * Project (147)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (146)
: : : : : :- ShuffleQueryStage (143), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : +- ReusedExchange (142)
: : : : : +- BroadcastQueryStage (145), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : +- ReusedExchange (144)
: : : : +- BroadcastQueryStage (149), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : +- ReusedExchange (148)
: : : +- BroadcastQueryStage (153), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : +- ReusedExchange (152)
: : +- BroadcastQueryStage (285), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: : +- BroadcastExchange (284)
: : +- AQEShuffleRead (283)
: : +- ShuffleQueryStage (282), Statistics(sizeInBytes=8.6 KiB, rowCount=100)
: : +- Exchange (281)
: : +- * SerializeFromObject (280)
: : +- * MapElements (279)
: : +- * DeserializeToObject (278)
: : +- ObjectHashAggregate (277)
: : +- ObjectHashAggregate (276)
: : +- * Project (275)
: : +- * BroadcastHashJoin LeftOuter BuildRight (274)
: : :- * Project (268)
: : : +- * BroadcastHashJoin LeftOuter BuildRight (267)
: : : :- * Project (206)
: : : : +- * Project (205)
: : : : +- * Generate (204)
: : : : +- * Generate (203)
: : : : +- * Project (202)
: : : : +- Project (201)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (200)
: : : : :- * Project (197)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (196)
: : : : : :- * BroadcastHashJoin LeftOuter BuildRight (193)
: : : : : : :- ShuffleQueryStage (184), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- Exchange (183)
: : : : : : : +- * ColumnarToRow (182)
: : : : : : : +- Scan parquet (181)
: : : : : : +- BroadcastQueryStage (192), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- BroadcastExchange (191)
: : : : : : +- * Project (190)
: : : : : : +- ShuffleQueryStage (189), Statistics(sizeInBytes=1115.4 KiB, rowCount=1.43E+3)
: : : : : : +- Exchange (188)
: : : : : : +- * Project (187)
: : : : : : +- * ColumnarToRow (186)
: : : : : : +- Scan parquet (185)
: : : : : +- BroadcastQueryStage (195), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (194)
: : : : +- BroadcastQueryStage (199), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (198)
: : : +- BroadcastQueryStage (266), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : +- BroadcastExchange (265)
: : : +- * HashAggregate (264)
: : : +- AQEShuffleRead (263)
: : : +- ShuffleQueryStage (262), Statistics(sizeInBytes=3.5 KiB, rowCount=34)
: : : +- Exchange (261)
: : : +- * HashAggregate (260)
: : : +- * Project (259)
: : : +- * BroadcastHashJoin Inner BuildLeft (258)
: : : :- BroadcastQueryStage (254), Statistics(sizeInBytes=2.0 MiB, rowCount=34)
: : : : +- BroadcastExchange (253)
: : : : +- AQEShuffleRead (252)
: : : : +- ShuffleQueryStage (251), Statistics(sizeInBytes=4.0 KiB, rowCount=34)
: : : : +- Exchange (250)
: : : : +- * Project (249)
: : : : +- * BroadcastHashJoin Inner BuildLeft (248)
: : : : :- BroadcastQueryStage (229), Statistics(sizeInBytes=2.0 MiB, rowCount=64)
: : : : : +- BroadcastExchange (228)
: : : : : +- AQEShuffleRead (227)
: : : : : +- ShuffleQueryStage (226), Statistics(sizeInBytes=7.5 KiB, rowCount=64)
: : : : : +- Exchange (225)
: : : : : +- * Project (224)
: : : : : +- * Filter (223)
: : : : : +- * Generate (222)
: : : : : +- * Filter (221)
: : : : : +- ObjectHashAggregate (220)
: : : : : +- ObjectHashAggregate (219)
: : : : : +- Generate (218)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (217)
: : : : : :- BroadcastQueryStage (208), Statistics(sizeInBytes=2.0 MiB, rowCount=419)
: : : : : : +- ReusedExchange (207)
: : : : : +- * Project (216)
: : : : : +- * BroadcastHashJoin Inner BuildLeft (215)
: : : : : :- BroadcastQueryStage (210), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : : : : : +- ReusedExchange (209)
: : : : : +- * HashAggregate (214)
: : : : : +- AQEShuffleRead (213)
: : : : : +- ShuffleQueryStage (212), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: : : : : +- ReusedExchange (211)
: : : : +- * Project (247)
: : : : +- * Generate (246)
: : : : +- * Project (245)
: : : : +- * Generate (244)
: : : : +- Project (243)
: : : : +- * BroadcastHashJoin LeftOuter BuildRight (242)
: : : : :- * Project (239)
: : : : : +- * BroadcastHashJoin LeftOuter BuildRight (238)
: : : : : :- * Project (235)
: : : : : : +- * BroadcastHashJoin LeftOuter BuildRight (234)
: : : : : : :- ShuffleQueryStage (231), Statistics(sizeInBytes=9.4 KiB, rowCount=100)
: : : : : : : +- ReusedExchange (230)
: : : : : : +- BroadcastQueryStage (233), Statistics(sizeInBytes=2.1 MiB, rowCount=1.43E+3)
: : : : : : +- ReusedExchange (232)
: : : : : +- BroadcastQueryStage (237), Statistics(sizeInBytes=2.0 MiB, rowCount=24)
: : : : : +- ReusedExchange (236)
: : : : +- BroadcastQueryStage (241), Statistics(sizeInBytes=2.0 MiB, rowCount=145)
: : : : +- ReusedExchange (240)
: : : +- AQEShuffleRead (257)
: : : +- ShuffleQueryStage (256), Statistics(sizeInBytes=3.7 KiB, rowCount=34)
: : : +- ReusedExchange (255)
: : +- BroadcastQueryStage (273), Statistics(sizeInBytes=2.0 MiB, rowCount=100)
: : +- BroadcastExchange (272)
: : +- * Filter (271)
: : +- * ColumnarToRow (270)
: : +- Scan parquet (269)
: +- * Sort (306)
: +- * Project (305)
: +- * BroadcastHashJoin Inner BuildLeft (304)
: :- BroadcastQueryStage (300), Statistics(sizeInBytes=2.0 MiB, rowCount=7)
: : +- BroadcastExchange (299)
: : +- * Project (298)
: : +- * Filter (297)
: : +- * Generate (296)
: : +- * Project (295)
: : +- * Filter (294)
: : +- * Generate (293)
: : +- ShuffleQueryStage (292), Statistics(sizeInBytes=1208.0 B, rowCount=1)
: : +- ReusedExchange (291)
: +- * HashAggregate (303)
: +- ShuffleQueryStage (302), Statistics(sizeInBytes=1632.0 B, rowCount=34)
: +- ReusedExchange (301)
+- BroadcastQueryStage (319), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (318)
+- * Project (317)
+- * Filter (316)
+- * Generate (315)
+- ShuffleQueryStage (314), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (313)
+- * Project (312)
+- * Filter (311)
+- * ColumnarToRow (310)
+- Scan parquet (309)
+- == Initial Plan ==
Project (814)
+- BroadcastHashJoin Inner BuildRight (813)
:- Project (805)
: +- SortMergeJoin Inner (804)
: :- Sort (759)
: : +- Exchange (758)
: : +- Project (757)
: : +- SortMergeJoin LeftOuter (756)
: : :- Sort (531)
: : : +- Exchange (530)
: : : +- Project (529)
: : : +- SortMergeJoin LeftOuter (528)
: : : :- Sort (346)
: : : : +- Project (345)
: : : : +- Generate (344)
: : : : +- Project (343)
: : : : +- Generate (342)
: : : : +- Project (341)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (340)
: : : : :- Project (335)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (334)
: : : : : :- Project (330)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (329)
: : : : : : :- Exchange (324)
: : : : : : : +- Filter (323)
: : : : : : : +- Scan parquet (7)
: : : : : : +- BroadcastExchange (328)
: : : : : : +- Project (327)
: : : : : : +- Exchange (326)
: : : : : : +- Project (325)
: : : : : : +- Scan parquet (12)
: : : : : +- BroadcastExchange (333)
: : : : : +- Exchange (332)
: : : : : +- Project (331)
: : : : : +- Scan parquet (22)
: : : : +- BroadcastExchange (339)
: : : : +- Exchange (338)
: : : : +- Project (337)
: : : : +- Filter (336)
: : : : +- Scan parquet (31)
: : : +- Sort (527)
: : : +- HashAggregate (526)
: : : +- Exchange (525)
: : : +- HashAggregate (524)
: : : +- Project (523)
: : : +- SortMergeJoin Inner (522)
: : : :- Sort (430)
: : : : +- Exchange (429)
: : : : +- Project (428)
: : : : +- SortMergeJoin Inner (427)
: : : : :- Sort (399)
: : : : : +- Exchange (398)
: : : : : +- Project (397)
: : : : : +- Filter (396)
: : : : : +- Generate (395)
: : : : : +- Filter (394)
: : : : : +- ObjectHashAggregate (393)
: : : : : +- ObjectHashAggregate (392)
: : : : : +- Generate (391)
: : : : : +- BroadcastHashJoin Inner BuildLeft (390)
: : : : : :- BroadcastExchange (350)
: : : : : : +- Exchange (349)
: : : : : : +- Project (348)
: : : : : : +- Filter (347)
: : : : : : +- Scan parquet (45)
: : : : : +- Project (389)
: : : : : +- BroadcastHashJoin Inner BuildLeft (388)
: : : : : :- BroadcastExchange (359)
: : : : : : +- Project (358)
: : : : : : +- Generate (357)
: : : : : : +- Project (356)
: : : : : : +- Filter (355)
: : : : : : +- Generate (354)
: : : : : : +- Exchange (353)
: : : : : : +- Project (352)
: : : : : : +- Filter (351)
: : : : : : +- Scan parquet (53)
: : : : : +- HashAggregate (387)
: : : : : +- Exchange (386)
: : : : : +- HashAggregate (385)
: : : : : +- Project (384)
: : : : : +- Generate (383)
: : : : : +- Project (382)
: : : : : +- Generate (381)
: : : : : +- Project (380)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (379)
: : : : : :- Project (373)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (372)
: : : : : : :- Project (368)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (367)
: : : : : : : :- Exchange (361)
: : : : : : : : +- Filter (360)
: : : : : : : : +- Scan parquet (66)
: : : : : : : +- BroadcastExchange (366)
: : : : : : : +- Project (365)
: : : : : : : +- Exchange (364)
: : : : : : : +- Project (363)
: : : : : : : +- Scan parquet (362)
: : : : : : +- BroadcastExchange (371)
: : : : : : +- Exchange (370)
: : : : : : +- Project (369)
: : : : : : +- Scan parquet (75)
: : : : : +- BroadcastExchange (378)
: : : : : +- Exchange (377)
: : : : : +- Project (376)
: : : : : +- Filter (375)
: : : : : +- Scan parquet (374)
: : : : +- Sort (426)
: : : : +- Project (425)
: : : : +- Generate (424)
: : : : +- Project (423)
: : : : +- Generate (422)
: : : : +- Project (421)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (420)
: : : : :- Project (414)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (413)
: : : : : :- Project (408)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (407)
: : : : : : :- Exchange (401)
: : : : : : : +- Filter (400)
: : : : : : : +- Scan parquet (112)
: : : : : : +- BroadcastExchange (406)
: : : : : : +- Project (405)
: : : : : : +- Exchange (404)
: : : : : : +- Project (403)
: : : : : : +- Scan parquet (402)
: : : : : +- BroadcastExchange (412)
: : : : : +- Exchange (411)
: : : : : +- Project (410)
: : : : : +- Scan parquet (409)
: : : : +- BroadcastExchange (419)
: : : : +- Exchange (418)
: : : : +- Project (417)
: : : : +- Filter (416)
: : : : +- Scan parquet (415)
: : : +- Sort (521)
: : : +- Exchange (520)
: : : +- HashAggregate (519)
: : : +- HashAggregate (518)
: : : +- Project (517)
: : : +- SortMergeJoin Inner (516)
: : : :- Sort (487)
: : : : +- Exchange (486)
: : : : +- Project (485)
: : : : +- Filter (484)
: : : : +- Generate (483)
: : : : +- Filter (482)
: : : : +- ObjectHashAggregate (481)
: : : : +- ObjectHashAggregate (480)
: : : : +- Generate (479)
: : : : +- BroadcastHashJoin Inner BuildLeft (478)
: : : : :- BroadcastExchange (435)
: : : : : +- Exchange (434)
: : : : : +- Project (433)
: : : : : +- Filter (432)
: : : : : +- Scan parquet (431)
: : : : +- Project (477)
: : : : +- BroadcastHashJoin Inner BuildLeft (476)
: : : : :- BroadcastExchange (445)
: : : : : +- Project (444)
: : : : : +- Generate (443)
: : : : : +- Project (442)
: : : : : +- Filter (441)
: : : : : +- Generate (440)
: : : : : +- Exchange (439)
: : : : : +- Project (438)
: : : : : +- Filter (437)
: : : : : +- Scan parquet (436)
: : : : +- HashAggregate (475)
: : : : +- Exchange (474)
: : : : +- HashAggregate (473)
: : : : +- Project (472)
: : : : +- Generate (471)
: : : : +- Project (470)
: : : : +- Generate (469)
: : : : +- Project (468)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (467)
: : : : :- Project (461)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (460)
: : : : : :- Project (455)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (454)
: : : : : : :- Exchange (448)
: : : : : : : +- Filter (447)
: : : : : : : +- Scan parquet (446)
: : : : : : +- BroadcastExchange (453)
: : : : : : +- Project (452)
: : : : : : +- Exchange (451)
: : : : : : +- Project (450)
: : : : : : +- Scan parquet (449)
: : : : : +- BroadcastExchange (459)
: : : : : +- Exchange (458)
: : : : : +- Project (457)
: : : : : +- Scan parquet (456)
: : : : +- BroadcastExchange (466)
: : : : +- Exchange (465)
: : : : +- Project (464)
: : : : +- Filter (463)
: : : : +- Scan parquet (462)
: : : +- Sort (515)
: : : +- Project (514)
: : : +- Generate (513)
: : : +- Project (512)
: : : +- Generate (511)
: : : +- Project (510)
: : : +- BroadcastHashJoin LeftOuter BuildRight (509)
: : : :- Project (503)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (502)
: : : : :- Project (497)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (496)
: : : : : :- Exchange (490)
: : : : : : +- Filter (489)
: : : : : : +- Scan parquet (488)
: : : : : +- BroadcastExchange (495)
: : : : : +- Project (494)
: : : : : +- Exchange (493)
: : : : : +- Project (492)
: : : : : +- Scan parquet (491)
: : : : +- BroadcastExchange (501)
: : : : +- Exchange (500)
: : : : +- Project (499)
: : : : +- Scan parquet (498)
: : : +- BroadcastExchange (508)
: : : +- Exchange (507)
: : : +- Project (506)
: : : +- Filter (505)
: : : +- Scan parquet (504)
: : +- Sort (755)
: : +- Exchange (754)
: : +- SerializeFromObject (753)
: : +- MapElements (752)
: : +- DeserializeToObject (751)
: : +- ObjectHashAggregate (750)
: : +- ObjectHashAggregate (749)
: : +- Project (748)
: : +- BroadcastHashJoin LeftOuter BuildRight (747)
: : :- Project (744)
: : : +- SortMergeJoin LeftOuter (743)
: : : :- Sort (556)
: : : : +- Project (555)
: : : : +- Project (554)
: : : : +- Generate (553)
: : : : +- Generate (552)
: : : : +- Project (551)
: : : : +- Project (550)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (549)
: : : : :- Project (543)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (542)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (537)
: : : : : : :- Exchange (532)
: : : : : : : +- Scan parquet (181)
: : : : : : +- BroadcastExchange (536)
: : : : : : +- Project (535)
: : : : : : +- Exchange (534)
: : : : : : +- Project (533)
: : : : : : +- Scan parquet (185)
: : : : : +- BroadcastExchange (541)
: : : : : +- Exchange (540)
: : : : : +- Project (539)
: : : : : +- Scan parquet (538)
: : : : +- BroadcastExchange (548)
: : : : +- Exchange (547)
: : : : +- Project (546)
: : : : +- Filter (545)
: : : : +- Scan parquet (544)
: : : +- Sort (742)
: : : +- HashAggregate (741)
: : : +- Exchange (740)
: : : +- HashAggregate (739)
: : : +- Project (738)
: : : +- SortMergeJoin Inner (737)
: : : :- Sort (645)
: : : : +- Exchange (644)
: : : : +- Project (643)
: : : : +- SortMergeJoin Inner (642)
: : : : :- Sort (613)
: : : : : +- Exchange (612)
: : : : : +- Project (611)
: : : : : +- Filter (610)
: : : : : +- Generate (609)
: : : : : +- Filter (608)
: : : : : +- ObjectHashAggregate (607)
: : : : : +- ObjectHashAggregate (606)
: : : : : +- Generate (605)
: : : : : +- BroadcastHashJoin Inner BuildLeft (604)
: : : : : :- BroadcastExchange (561)
: : : : : : +- Exchange (560)
: : : : : : +- Project (559)
: : : : : : +- Filter (558)
: : : : : : +- Scan parquet (557)
: : : : : +- Project (603)
: : : : : +- BroadcastHashJoin Inner BuildLeft (602)
: : : : : :- BroadcastExchange (571)
: : : : : : +- Project (570)
: : : : : : +- Generate (569)
: : : : : : +- Project (568)
: : : : : : +- Filter (567)
: : : : : : +- Generate (566)
: : : : : : +- Exchange (565)
: : : : : : +- Project (564)
: : : : : : +- Filter (563)
: : : : : : +- Scan parquet (562)
: : : : : +- HashAggregate (601)
: : : : : +- Exchange (600)
: : : : : +- HashAggregate (599)
: : : : : +- Project (598)
: : : : : +- Generate (597)
: : : : : +- Project (596)
: : : : : +- Generate (595)
: : : : : +- Project (594)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (593)
: : : : : :- Project (587)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (586)
: : : : : : :- Project (581)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (580)
: : : : : : : :- Exchange (574)
: : : : : : : : +- Filter (573)
: : : : : : : : +- Scan parquet (572)
: : : : : : : +- BroadcastExchange (579)
: : : : : : : +- Project (578)
: : : : : : : +- Exchange (577)
: : : : : : : +- Project (576)
: : : : : : : +- Scan parquet (575)
: : : : : : +- BroadcastExchange (585)
: : : : : : +- Exchange (584)
: : : : : : +- Project (583)
: : : : : : +- Scan parquet (582)
: : : : : +- BroadcastExchange (592)
: : : : : +- Exchange (591)
: : : : : +- Project (590)
: : : : : +- Filter (589)
: : : : : +- Scan parquet (588)
: : : : +- Sort (641)
: : : : +- Project (640)
: : : : +- Generate (639)
: : : : +- Project (638)
: : : : +- Generate (637)
: : : : +- Project (636)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (635)
: : : : :- Project (629)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (628)
: : : : : :- Project (623)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (622)
: : : : : : :- Exchange (616)
: : : : : : : +- Filter (615)
: : : : : : : +- Scan parquet (614)
: : : : : : +- BroadcastExchange (621)
: : : : : : +- Project (620)
: : : : : : +- Exchange (619)
: : : : : : +- Project (618)
: : : : : : +- Scan parquet (617)
: : : : : +- BroadcastExchange (627)
: : : : : +- Exchange (626)
: : : : : +- Project (625)
: : : : : +- Scan parquet (624)
: : : : +- BroadcastExchange (634)
: : : : +- Exchange (633)
: : : : +- Project (632)
: : : : +- Filter (631)
: : : : +- Scan parquet (630)
: : : +- Sort (736)
: : : +- Exchange (735)
: : : +- HashAggregate (734)
: : : +- HashAggregate (733)
: : : +- Project (732)
: : : +- SortMergeJoin Inner (731)
: : : :- Sort (702)
: : : : +- Exchange (701)
: : : : +- Project (700)
: : : : +- Filter (699)
: : : : +- Generate (698)
: : : : +- Filter (697)
: : : : +- ObjectHashAggregate (696)
: : : : +- ObjectHashAggregate (695)
: : : : +- Generate (694)
: : : : +- BroadcastHashJoin Inner BuildLeft (693)
: : : : :- BroadcastExchange (650)
: : : : : +- Exchange (649)
: : : : : +- Project (648)
: : : : : +- Filter (647)
: : : : : +- Scan parquet (646)
: : : : +- Project (692)
: : : : +- BroadcastHashJoin Inner BuildLeft (691)
: : : : :- BroadcastExchange (660)
: : : : : +- Project (659)
: : : : : +- Generate (658)
: : : : : +- Project (657)
: : : : : +- Filter (656)
: : : : : +- Generate (655)
: : : : : +- Exchange (654)
: : : : : +- Project (653)
: : : : : +- Filter (652)
: : : : : +- Scan parquet (651)
: : : : +- HashAggregate (690)
: : : : +- Exchange (689)
: : : : +- HashAggregate (688)
: : : : +- Project (687)
: : : : +- Generate (686)
: : : : +- Project (685)
: : : : +- Generate (684)
: : : : +- Project (683)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (682)
: : : : :- Project (676)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (675)
: : : : : :- Project (670)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (669)
: : : : : : :- Exchange (663)
: : : : : : : +- Filter (662)
: : : : : : : +- Scan parquet (661)
: : : : : : +- BroadcastExchange (668)
: : : : : : +- Project (667)
: : : : : : +- Exchange (666)
: : : : : : +- Project (665)
: : : : : : +- Scan parquet (664)
: : : : : +- BroadcastExchange (674)
: : : : : +- Exchange (673)
: : : : : +- Project (672)
: : : : : +- Scan parquet (671)
: : : : +- BroadcastExchange (681)
: : : : +- Exchange (680)
: : : : +- Project (679)
: : : : +- Filter (678)
: : : : +- Scan parquet (677)
: : : +- Sort (730)
: : : +- Project (729)
: : : +- Generate (728)
: : : +- Project (727)
: : : +- Generate (726)
: : : +- Project (725)
: : : +- BroadcastHashJoin LeftOuter BuildRight (724)
: : : :- Project (718)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (717)
: : : : :- Project (712)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (711)
: : : : : :- Exchange (705)
: : : : : : +- Filter (704)
: : : : : : +- Scan parquet (703)
: : : : : +- BroadcastExchange (710)
: : : : : +- Project (709)
: : : : : +- Exchange (708)
: : : : : +- Project (707)
: : : : : +- Scan parquet (706)
: : : : +- BroadcastExchange (716)
: : : : +- Exchange (715)
: : : : +- Project (714)
: : : : +- Scan parquet (713)
: : : +- BroadcastExchange (723)
: : : +- Exchange (722)
: : : +- Project (721)
: : : +- Filter (720)
: : : +- Scan parquet (719)
: : +- BroadcastExchange (746)
: : +- Filter (745)
: : +- Scan parquet (269)
: +- Sort (803)
: +- Project (802)
: +- BroadcastHashJoin Inner BuildLeft (801)
: :- BroadcastExchange (770)
: : +- Project (769)
: : +- Filter (768)
: : +- Generate (767)
: : +- Project (766)
: : +- Filter (765)
: : +- Generate (764)
: : +- Exchange (763)
: : +- Project (762)
: : +- Filter (761)
: : +- Scan parquet (760)
: +- HashAggregate (800)
: +- Exchange (799)
: +- HashAggregate (798)
: +- Project (797)
: +- Generate (796)
: +- Project (795)
: +- Generate (794)
: +- Project (793)
: +- BroadcastHashJoin LeftOuter BuildRight (792)
: :- Project (786)
: : +- BroadcastHashJoin LeftOuter BuildRight (785)
: : :- Project (780)
: : : +- BroadcastHashJoin LeftOuter BuildRight (779)
: : : :- Exchange (773)
: : : : +- Filter (772)
: : : : +- Scan parquet (771)
: : : +- BroadcastExchange (778)
: : : +- Project (777)
: : : +- Exchange (776)
: : : +- Project (775)
: : : +- Scan parquet (774)
: : +- BroadcastExchange (784)
: : +- Exchange (783)
: : +- Project (782)
: : +- Scan parquet (781)
: +- BroadcastExchange (791)
: +- Exchange (790)
: +- Project (789)
: +- Filter (788)
: +- Scan parquet (787)
+- BroadcastExchange (812)
+- Project (811)
+- Filter (810)
+- Generate (809)
+- Exchange (808)
+- Project (807)
+- Filter (806)
+- Scan parquet (309)
(1) InMemoryTableScan
Output [3]: [openGoodsMovements#1228787, plant#1226470, product#1226471]
Arguments: [openGoodsMovements#1228787, plant#1226470, product#1226471], [(size(transform(openGoodsMovements#1228787, lambdafunction(struct(documentType, PO, documentId, lambda x_158#1239780.documentId, documentUuid, lambda x_158#1239780.documentUuid, openQty, lambda x_158#1239780.openQty, qtyUomUuid, lambda x_158#1239780.qtyUomUuid, qtyUom, lambda x_158#1239780.qtyUom, plannedDeliveryDatetime, lambda x_158#1239780.availabilityDatetime), lambda x_158#1239780, false)), false) > 0)]
(2) InMemoryRelation
Arguments: [product#1226471, plant#1226470, openGoodsMovements#1228787], StorageLevel(disk, memory, 2 replicas)
(3) EmptyRelation
Output [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Arguments: [plan_id=1977281]
(4) ResultQueryStage
Output [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Arguments: 2
(5) InMemoryTableScan
Output [10]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityDenominator#1226478, quantityNumerator#1226477, quantityUom#1226475, quantityUomUuid#1226476, scheduleLines#1226479, validConfirmations#1226570]
Arguments: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityDenominator#1226478, quantityNumerator#1226477, quantityUom#1226475, quantityUomUuid#1226476, scheduleLines#1226479, validConfirmations#1226570]
(6) InMemoryRelation
Arguments: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, validConfirmations#1226570], StorageLevel(disk, memory, deserialized, 1 replicas)
(7) Scan parquet
Output [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(8) ColumnarToRow
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
(9) Filter
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Condition : (isnotnull(plant#1225623) AND isnotnull(product#1225622))
(10) Exchange
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: hashpartitioning(product#1225622, plant#1225623, 37), REPARTITION_BY_NUM, [plan_id=1941422]
(11) ShuffleQueryStage
Output [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: 0
(12) Scan parquet
Output [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(13) ColumnarToRow
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(14) Project
Output [4]: [plant#1225629.internalRefUUID AS _extract_internalRefUUID#1226767, product#1225630.internalRefUUID AS _extract_internalRefUUID#1226766, productionAspect#1225632.productMovementPlants.unitOfIssue.code AS _extract_code#1226768, productionAspect#1225632.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226769]
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(15) Exchange
Input [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941438]
(16) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
Arguments: 1
(17) Project
Output [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Input [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
(18) BroadcastExchange
Input [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1946229]
(19) BroadcastQueryStage
Output [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Arguments: 97
(20) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225622, ), isnull(product#1225622), coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226766, ), isnull(_extract_internalRefUUID#1226766), coalesce(_extract_internalRefUUID#1226767, ), isnull(_extract_internalRefUUID#1226767)]
Join type: LeftOuter
Join condition: None
(21) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
(22) Scan parquet
Output [3]: [internalUUID#1225640, address#1225646, systemId#1225639]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(23) ColumnarToRow
Input [3]: [internalUUID#1225640, address#1225646, systemId#1225639]
(24) Project
Output [2]: [internalUUID#1225640, address#1225646.timeZone.code AS timezonecode#1225651]
Input [3]: [internalUUID#1225640, address#1225646, systemId#1225639]
(25) Exchange
Input [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941457]
(26) ShuffleQueryStage
Output [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: 2
(27) BroadcastExchange
Input [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1947430]
(28) BroadcastQueryStage
Output [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: 127
(29) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [2]: [coalesce(internalUUID#1225640, ), isnull(internalUUID#1225640)]
Join type: LeftOuter
Join condition: None
(30) Project
Output [6]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, CASE WHEN isnotnull(timezonecode#1225651) THEN timezonecode#1225651 ELSE UTC END AS timezonecode#1225654]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, internalUUID#1225640, timezonecode#1225651]
(31) Scan parquet
Output [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(32) ColumnarToRow
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(33) Filter
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Condition : isnotnull(internalUUID#1225656)
(34) Project
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(35) Exchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941477]
(36) ShuffleQueryStage
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: 3
(37) BroadcastExchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1945365]
(38) BroadcastQueryStage
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: 98
(39) BroadcastHashJoin
Left keys [1]: [product#1225622]
Right keys [1]: [internalUUID#1225656]
Join type: LeftOuter
Join condition: None
(40) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filter(unitOfMeasureConversions#1225662, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226768) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226769)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225660.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225660.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225668]
Input [9]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, timezonecode#1225654, internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
(41) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668]
Arguments: explode(filteredUnitOfMeasureConversions#1225668.quantityNumerator), [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668], true, [quantityNumerator#1225676]
(42) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668.quantityDenominator AS _extract_quantityDenominator#1226572]
Input [6]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668, quantityNumerator#1225676]
(43) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, _extract_quantityDenominator#1226572]
Arguments: explode(_extract_quantityDenominator#1226572), [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654], true, [quantityDenominator#1225679]
(44) Project
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654]
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, quantityDenominator#1225679]
(45) Scan parquet
Output [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(46) ColumnarToRow
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(47) Filter
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Condition : (isnotnull(plant#1225721.internalRefUUID) AND isnotnull(product#1225720.internalRefUUID))
(48) Project
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(49) Exchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941504]
(50) ShuffleQueryStage
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: 4
(51) BroadcastExchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1952506]
(52) BroadcastQueryStage
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: 147
(53) Scan parquet
Output [2]: [marketUnit#1225682, distributionCenters#1225688]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(54) ColumnarToRow
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(55) Filter
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
Condition : (((marketUnit#1225682 <=> AUTO_MUV2) AND (size(distributionCenters#1225688, true) > 0)) AND isnotnull(distributionCenters#1225688))
(56) Project
Output [1]: [distributionCenters#1225688]
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(57) Exchange
Input [1]: [distributionCenters#1225688]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941524]
(58) ShuffleQueryStage
Output [1]: [distributionCenters#1225688]
Arguments: 5
(59) Generate
Input [1]: [distributionCenters#1225688]
Arguments: explode(distributionCenters#1225688), false, [distributionCenters#1225706]
(60) Filter
Input [1]: [distributionCenters#1225706]
Condition : (((size(distributionCenters#1225706.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225706.storageLocations)) AND isnotnull(distributionCenters#1225706.internalRefUUID))
(61) Project
Output [2]: [distributionCenters#1225706.internalRefUUID AS _extract_internalRefUUID#1226576, distributionCenters#1225706.storageLocations AS _extract_storageLocations#1226577]
Input [1]: [distributionCenters#1225706]
(62) Generate
Input [2]: [_extract_internalRefUUID#1226576, _extract_storageLocations#1226577]
Arguments: explode(_extract_storageLocations#1226577), [_extract_internalRefUUID#1226576], false, [storageLocations#1225713]
(63) Project
Output [3]: [_extract_internalRefUUID#1226576 AS plantUuid#1225708, storageLocations#1225713.id AS storageLocId#1225714, storageLocations#1225713.internalRefUUID AS storageLocUuid#1225715]
Input [2]: [_extract_internalRefUUID#1226576, storageLocations#1225713]
(64) BroadcastExchange
Input [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1951535]
(65) BroadcastQueryStage
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: 138
(66) Scan parquet
Output [2]: [product#1225978, plant#1225979]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(67) ColumnarToRow
Input [2]: [product#1225978, plant#1225979]
(68) Filter
Input [2]: [product#1225978, plant#1225979]
Condition : isnotnull(plant#1225979)
(69) Exchange
Input [2]: [product#1225978, plant#1225979]
Arguments: hashpartitioning(product#1225978, plant#1225979, 37), REPARTITION_BY_NUM, [plan_id=1941547]
(70) ShuffleQueryStage
Output [2]: [product#1225978, plant#1225979]
Arguments: 6
(71) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
(72) BroadcastQueryStage
Output [4]: [_extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
Arguments: 100
(73) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225978, ), isnull(product#1225978), coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226770, ), isnull(_extract_internalRefUUID#1226770), coalesce(_extract_internalRefUUID#1226771, ), isnull(_extract_internalRefUUID#1226771)]
Join type: LeftOuter
Join condition: None
(74) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773]
Input [6]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
(75) Scan parquet
Output [2]: [internalUUID#1225992, systemId#1225991]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(76) ColumnarToRow
Input [2]: [internalUUID#1225992, systemId#1225991]
(77) Project
Output [1]: [internalUUID#1225992]
Input [2]: [internalUUID#1225992, systemId#1225991]
(78) Exchange
Input [1]: [internalUUID#1225992]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1941584]
(79) ShuffleQueryStage
Output [1]: [internalUUID#1225992]
Arguments: 9
(80) BroadcastExchange
Input [1]: [internalUUID#1225992]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1949072]
(81) BroadcastQueryStage
Output [1]: [internalUUID#1225992]
Arguments: 129
(82) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [2]: [coalesce(internalUUID#1225992, ), isnull(internalUUID#1225992)]
Join type: LeftOuter
Join condition: None
(83) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773]
Input [5]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, internalUUID#1225992]
(84) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(85) BroadcastQueryStage
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: 101
(86) BroadcastHashJoin
Left keys [1]: [product#1225978]
Right keys [1]: [internalUUID#1226006]
Join type: LeftOuter
Join condition: None
(87) Project
Output [2]: [plant#1225979, filter(unitOfMeasureConversions#1226012, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226772) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226773)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226010.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226010.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226017]
Input [7]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(88) Generate
Input [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017]
Arguments: explode(filteredUnitOfMeasureConversions#1226017.quantityNumerator), [plant#1225979, filteredUnitOfMeasureConversions#1226017], true, [quantityNumerator#1226018]
(89) Project
Output [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017.quantityDenominator AS _extract_quantityDenominator#1226578]
Input [3]: [plant#1225979, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018]
(90) Generate
Input [2]: [plant#1225979, _extract_quantityDenominator#1226578]
Arguments: explode(_extract_quantityDenominator#1226578), [plant#1225979], true, [quantityDenominator#1226019]
(91) Project
Output [1]: [plant#1225979]
Input [2]: [plant#1225979, quantityDenominator#1226019]
(92) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(93) Exchange
Input [1]: [plant#1225979]
Arguments: hashpartitioning(plant#1225979, 37), ENSURE_REQUIREMENTS, [plan_id=1968346]
(94) ShuffleQueryStage
Output [1]: [plant#1225979]
Arguments: 152
(95) AQEShuffleRead
Input [1]: [plant#1225979]
Arguments: coalesced
(96) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(97) BroadcastHashJoin
Left keys [1]: [plantUuid#1225708]
Right keys [1]: [plant#1225979]
Join type: Inner
Join condition: None
(98) Project
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Input [4]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715, plant#1225979]
(99) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225721.internalRefUUID, ), isnull(plant#1225721.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225708, ), isnull(plantUuid#1225708)]
Join type: Inner
Join condition: None
(100) Generate
Input [9]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: explode(filter(stockQuantities#1225723, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225715) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225714)), lambda x#1225727, false))), [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708], false, [stockQuantity#1225728]
(101) ObjectHashAggregate
Input [7]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708, stockQuantity#1225728]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [partial_first(calculationDateTime#1225722, false), partial_collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [3]: [first#1228648, valueSet#1228649, buf#1228650]
Results [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
(102) ObjectHashAggregate
Input [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [first(calculationDateTime#1225722, false), collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225722)()#1225742, collect_list(stockQuantity#1225728, 0, 0)#1225743]
Results [4]: [product#1225720, plant#1225721, first(calculationDateTime#1225722)()#1225742 AS calculationDateTime#1225729, collect_list(stockQuantity#1225728, 0, 0)#1225743 AS stockQuantities#1225730]
(103) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Condition : ((size(stockQuantities#1225730, true) > 0) AND isnotnull(calculationDateTime#1225729))
(104) Generate
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Arguments: explode(stockQuantities#1225730), [product#1225720, plant#1225721, calculationDateTime#1225729], false, [stockQuantity#1225745]
(105) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
Condition : (((isnotnull(stockQuantity#1225745.specialStockIndicator.code) AND isnotnull(stockQuantity#1225745.stockType.code)) AND (stockQuantity#1225745.specialStockIndicator.code = )) AND (stockQuantity#1225745.stockType.code = 01))
(106) Project
Output [4]: [plant#1225721.internalRefUUID AS plantUuid#1225747, product#1225720.internalRefUUID AS productUuid#1225749, calculationDateTime#1225729, stockQuantity#1225745.storagelocation.id AS storageLocId#1225750]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
(107) Exchange
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: hashpartitioning(productUuid#1225749, plantUuid#1225747, 37), ENSURE_REQUIREMENTS, [plan_id=1970570]
(108) ShuffleQueryStage
Output [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: 161
(109) AQEShuffleRead
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: local
(110) BroadcastExchange
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1972200]
(111) BroadcastQueryStage
Output [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: 167
(112) Scan parquet
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(113) ColumnarToRow
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
(114) Filter
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Condition : ((isnotnull(orderDateTime#1225766) AND isnotnull(plant#1225765)) AND isnotnull(product#1225764))
(115) Exchange
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: hashpartitioning(product#1225764, plant#1225765, 37), REPARTITION_BY_NUM, [plan_id=1941645]
(116) ShuffleQueryStage
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: 12
(117) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
(118) BroadcastQueryStage
Output [4]: [_extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
Arguments: 103
(119) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225764, ), isnull(product#1225764), coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226777, ), isnull(_extract_internalRefUUID#1226777), coalesce(_extract_internalRefUUID#1226776, ), isnull(_extract_internalRefUUID#1226776)]
Join type: LeftOuter
Join condition: None
(120) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775]
Input [7]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
(121) ReusedExchange [Reuses operator id: 80]
Output [1]: [internalUUID#1225778]
(122) BroadcastQueryStage
Output [1]: [internalUUID#1225778]
Arguments: 130
(123) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [2]: [coalesce(internalUUID#1225778, ), isnull(internalUUID#1225778)]
Join type: LeftOuter
Join condition: None
(124) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775]
Input [6]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, internalUUID#1225778]
(125) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(126) BroadcastQueryStage
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: 104
(127) BroadcastHashJoin
Left keys [1]: [product#1225764]
Right keys [1]: [internalUUID#1225792]
Join type: LeftOuter
Join condition: None
(128) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filter(unitOfMeasureConversions#1225798, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226774) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226775)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225796.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225796.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225803]
Input [8]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(129) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803]
Arguments: explode(filteredUnitOfMeasureConversions#1225803.quantityNumerator), [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803], true, [quantityNumerator#1225804]
(130) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803.quantityDenominator AS _extract_quantityDenominator#1226582]
Input [5]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804]
(131) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_quantityDenominator#1226582]
Arguments: explode(_extract_quantityDenominator#1226582), [product#1225764, plant#1225765, orderDateTime#1225766], true, [quantityDenominator#1225805]
(132) Project
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, quantityDenominator#1225805]
(133) BroadcastHashJoin
Left keys [2]: [plantUuid#1225747, productUuid#1225749]
Right keys [2]: [plant#1225765, product#1225764]
Join type: Inner
Join condition: (calculationDateTime#1225729 <= orderDateTime#1225766)
(134) Project
Output [4]: [plantUuid#1225747 AS plant#1225812, productUuid#1225749 AS product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Input [7]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, product#1225764, plant#1225765, orderDateTime#1225766]
(135) Exchange
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: hashpartitioning(coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729), 37), ENSURE_REQUIREMENTS, [plan_id=1973605]
(136) ShuffleQueryStage
Output [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: 173
(137) AQEShuffleRead
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: local
(138) BroadcastExchange
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, timestamp, true], 1970-01-01 00:00:00), isnull(input[3, timestamp, true])),false), [plan_id=1974625]
(139) BroadcastQueryStage
Output [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: 178
(140) ReusedExchange [Reuses operator id: 110]
Output [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
(141) BroadcastQueryStage
Output [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: 169
(142) ReusedExchange [Reuses operator id: 115]
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
(143) ShuffleQueryStage
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: 32
(144) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
(145) BroadcastQueryStage
Output [4]: [_extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
Arguments: 109
(146) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225912, ), isnull(product#1225912), coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226784, ), isnull(_extract_internalRefUUID#1226784), coalesce(_extract_internalRefUUID#1226785, ), isnull(_extract_internalRefUUID#1226785)]
Join type: LeftOuter
Join condition: None
(147) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783]
Input [7]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
(148) ReusedExchange [Reuses operator id: 80]
Output [1]: [internalUUID#1225926]
(149) BroadcastQueryStage
Output [1]: [internalUUID#1225926]
Arguments: 132
(150) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [2]: [coalesce(internalUUID#1225926, ), isnull(internalUUID#1225926)]
Join type: LeftOuter
Join condition: None
(151) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783]
Input [6]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, internalUUID#1225926]
(152) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(153) BroadcastQueryStage
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: 110
(154) BroadcastHashJoin
Left keys [1]: [product#1225912]
Right keys [1]: [internalUUID#1225940]
Join type: LeftOuter
Join condition: None
(155) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filter(unitOfMeasureConversions#1225946, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226782) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226783)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225944.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225944.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225951]
Input [8]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(156) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951]
Arguments: explode(filteredUnitOfMeasureConversions#1225951.quantityNumerator), [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951], true, [quantityNumerator#1225952]
(157) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951.quantityDenominator AS _extract_quantityDenominator#1226592]
Input [5]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952]
(158) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_quantityDenominator#1226592]
Arguments: explode(_extract_quantityDenominator#1226592), [product#1225912, plant#1225913, orderDateTime#1225914], true, [quantityDenominator#1225953]
(159) Project
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, quantityDenominator#1225953]
(160) BroadcastHashJoin
Left keys [2]: [plantUuid#1225904, productUuid#1225906]
Right keys [2]: [plant#1225913, product#1225912]
Join type: Inner
Join condition: (calculationDateTime#1225900 <= orderDateTime#1225914)
(161) Project
Output [4]: [plantUuid#1225904 AS plant#1225956, productUuid#1225906 AS product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Input [7]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907, product#1225912, plant#1225913, orderDateTime#1225914]
(162) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [partial_max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max#1228654]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
(163) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max(calculationDateTime#1225900)#1225820]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max(calculationDateTime#1225900)#1225820 AS max_calc_datetime#1225814]
(164) Exchange
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: hashpartitioning(coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814), 37), ENSURE_REQUIREMENTS, [plan_id=1973664]
(165) ShuffleQueryStage
Output [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: 174
(166) AQEShuffleRead
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: local
(167) BroadcastHashJoin
Left keys [8]: [coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729)]
Right keys [8]: [coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814)]
Join type: Inner
Join condition: None
(168) Project
Output [3]: [plant#1225812, product#1225813, calculationDateTime#1225729]
Input [8]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
(169) HashAggregate
Input [3]: [plant#1225812, product#1225813, calculationDateTime#1225729]
Keys [2]: [product#1225813, plant#1225812]
Functions [1]: [partial_min(calculationDateTime#1225729)]
Aggregate Attributes [1]: [min#1228646]
Results [3]: [product#1225813, plant#1225812, min#1228647]
(170) Exchange
Input [3]: [product#1225813, plant#1225812, min#1228647]
Arguments: hashpartitioning(product#1225813, plant#1225812, 37), ENSURE_REQUIREMENTS, [plan_id=1975962]
(171) ShuffleQueryStage
Output [3]: [product#1225813, plant#1225812, min#1228647]
Arguments: 180
(172) AQEShuffleRead
Input [3]: [product#1225813, plant#1225812, min#1228647]
Arguments: coalesced
(173) HashAggregate
Input [3]: [product#1225813, plant#1225812, min#1228647]
Keys [2]: [product#1225813, plant#1225812]
Functions [1]: [min(calculationDateTime#1225729)]
Aggregate Attributes [1]: [min(calculationDateTime#1225729)#1225976]
Results [3]: [product#1225813, plant#1225812, min(calculationDateTime#1225729)#1225976 AS minCalculationDateTime#1225969]
(174) BroadcastExchange
Input [3]: [product#1225813, plant#1225812, minCalculationDateTime#1225969]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=1976571]
(175) BroadcastQueryStage
Output [3]: [product#1225813, plant#1225812, minCalculationDateTime#1225969]
Arguments: 183
(176) BroadcastHashJoin
Left keys [2]: [plant#1225623, product#1225622]
Right keys [2]: [plant#1225812, product#1225813]
Join type: LeftOuter
Join condition: None
(177) Project
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, CASE WHEN isnotnull(minCalculationDateTime#1225969) THEN minCalculationDateTime#1225969 ELSE orderDateTime#1225624 END AS stockDatetime#1226026]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, product#1225813, plant#1225812, minCalculationDateTime#1225969]
(178) Exchange
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: hashpartitioning(coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622), 37), ENSURE_REQUIREMENTS, [plan_id=1976846]
(179) ShuffleQueryStage
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: 184
(180) AQEShuffleRead
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: local
(181) Scan parquet
Output [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(182) ColumnarToRow
Input [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
(183) Exchange
Input [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Arguments: hashpartitioning(product#1226104, plant#1226105, 37), REPARTITION_BY_NUM, [plan_id=1941988]
(184) ShuffleQueryStage
Output [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Arguments: 39
(185) Scan parquet
Output [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>
(186) ColumnarToRow
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(187) Project
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(188) Exchange
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1942002]
(189) ShuffleQueryStage
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: 40
(190) Project
Output [1]: [struct(systemId, systemId#1226108, internalUUID, internalUUID#1226109, plant, plant#1226110, product, product#1226111, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226112, productionAspect, productionAspect#1226113, salesPlant, salesPlant#1226114, listing, listing#1226115) AS productPlant#1226116]
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
(191) BroadcastExchange
Input [1]: [productPlant#1226116]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1954063]
(192) BroadcastQueryStage
Output [1]: [productPlant#1226116]
Arguments: 149
(193) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226104, ), isnull(product#1226104), coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [4]: [coalesce(productPlant#1226116.product.internalRefUUID, ), isnull(productPlant#1226116.product.internalRefUUID), coalesce(productPlant#1226116.plant.internalRefUUID, ), isnull(productPlant#1226116.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(194) ReusedExchange [Reuses operator id: 27]
Output [2]: [internalUUID#1226118, timezonecode#1226129]
(195) BroadcastQueryStage
Output [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: 128
(196) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [2]: [coalesce(internalUUID#1226118, ), isnull(internalUUID#1226118)]
Join type: LeftOuter
Join condition: None
(197) Project
Output [5]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, CASE WHEN isnotnull(timezonecode#1226129) THEN timezonecode#1226129 ELSE UTC END AS timezonecode#1226130]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, internalUUID#1226118, timezonecode#1226129]
(198) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(199) BroadcastQueryStage
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: 111
(200) BroadcastHashJoin
Left keys [1]: [product#1226104]
Right keys [1]: [internalUUID#1226132]
Join type: LeftOuter
Join condition: None
(201) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filter(unitOfMeasureConversions#1226138, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226136.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226136.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226143]
Input [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(202) Project
Output [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143.quantityDenominator AS _extract_quantityDenominator#1226654, filteredUnitOfMeasureConversions#1226143.quantityNumerator AS _extract_quantityNumerator#1226655]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143]
(203) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654, _extract_quantityNumerator#1226655]
Arguments: explode(_extract_quantityNumerator#1226655), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654], true, [quantityNumerator#1226144]
(204) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654, quantityNumerator#1226144]
Arguments: explode(_extract_quantityDenominator#1226654), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144], true, [quantityDenominator#1226145]
(205) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, (cast(quantityNumerator#1226144 as double) / cast(quantityDenominator#1226145 as double)) AS outboundUnit#1226146]
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144, quantityDenominator#1226145]
(206) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, CASE WHEN (isnull(outboundUnit#1226146) OR (outboundUnit#1226146 <= 0.0)) THEN 1.0 ELSE outboundUnit#1226146 END AS outboundUnit#1226147]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226146]
(207) ReusedExchange [Reuses operator id: 51]
Output [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
(208) BroadcastQueryStage
Output [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Arguments: 150
(209) ReusedExchange [Reuses operator id: 64]
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
(210) BroadcastQueryStage
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: 142
(211) ReusedExchange [Reuses operator id: 93]
Output [1]: [plant#1226183]
(212) ShuffleQueryStage
Output [1]: [plant#1226183]
Arguments: 156
(213) AQEShuffleRead
Input [1]: [plant#1226183]
Arguments: coalesced
(214) HashAggregate
Input [1]: [plant#1226183]
Keys [1]: [plant#1226183]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226183]
(215) BroadcastHashJoin
Left keys [1]: [plantUuid#1226179]
Right keys [1]: [plant#1226183]
Join type: Inner
Join condition: None
(216) Project
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Input [4]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181, plant#1226183]
(217) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226151.internalRefUUID, ), isnull(plant#1226151.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1226179, ), isnull(plantUuid#1226179)]
Join type: Inner
Join condition: None
(218) Generate
Input [9]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: explode(filter(stockQuantities#1226153, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226181) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226180)), lambda x#1225727, false))), [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179], false, [stockQuantity#1226226]
(219) ObjectHashAggregate
Input [7]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179, stockQuantity#1226226]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [partial_first(calculationDateTime#1226152, false), partial_collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [3]: [first#1228670, valueSet#1228671, buf#1228672]
Results [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
(220) ObjectHashAggregate
Input [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [first(calculationDateTime#1226152, false), collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1226152)()#1225742, collect_list(stockQuantity#1226226, 0, 0)#1225743]
Results [4]: [product#1226150, plant#1226151, first(calculationDateTime#1226152)()#1225742 AS calculationDateTime#1226227, collect_list(stockQuantity#1226226, 0, 0)#1225743 AS stockQuantities#1226228]
(221) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Condition : ((size(stockQuantities#1226228, true) > 0) AND isnotnull(calculationDateTime#1226227))
(222) Generate
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Arguments: explode(stockQuantities#1226228), [product#1226150, plant#1226151, calculationDateTime#1226227], false, [stockQuantity#1226229]
(223) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
Condition : (((isnotnull(stockQuantity#1226229.specialStockIndicator.code) AND isnotnull(stockQuantity#1226229.stockType.code)) AND (stockQuantity#1226229.specialStockIndicator.code = )) AND (stockQuantity#1226229.stockType.code = 01))
(224) Project
Output [5]: [plant#1226151.internalRefUUID AS plantUuid#1226231, product#1226150.internalRefUUID AS productUuid#1226233, calculationDateTime#1226227, stockQuantity#1226229.storagelocation.id AS storageLocId#1226234, stockQuantity#1226229.quantity.measure AS quantity#1226236]
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
(225) Exchange
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: hashpartitioning(productUuid#1226233, plantUuid#1226231, 37), ENSURE_REQUIREMENTS, [plan_id=1970720]
(226) ShuffleQueryStage
Output [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: 164
(227) AQEShuffleRead
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: local
(228) BroadcastExchange
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1972915]
(229) BroadcastQueryStage
Output [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: 172
(230) ReusedExchange [Reuses operator id: 115]
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
(231) ShuffleQueryStage
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Arguments: 58
(232) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
(233) BroadcastQueryStage
Output [4]: [_extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
Arguments: 116
(234) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226239, ), isnull(product#1226239), coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226790, ), isnull(_extract_internalRefUUID#1226790), coalesce(_extract_internalRefUUID#1226793, ), isnull(_extract_internalRefUUID#1226793)]
Join type: LeftOuter
Join condition: None
(235) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792]
Input [7]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
(236) ReusedExchange [Reuses operator id: 80]
Output [1]: [internalUUID#1226253]
(237) BroadcastQueryStage
Output [1]: [internalUUID#1226253]
Arguments: 134
(238) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [2]: [coalesce(internalUUID#1226253, ), isnull(internalUUID#1226253)]
Join type: LeftOuter
Join condition: None
(239) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792]
Input [6]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, internalUUID#1226253]
(240) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
(241) BroadcastQueryStage
Output [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Arguments: 117
(242) BroadcastHashJoin
Left keys [1]: [product#1226239]
Right keys [1]: [internalUUID#1226267]
Join type: LeftOuter
Join condition: None
(243) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filter(unitOfMeasureConversions#1226273, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226791) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226792)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226271.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226271.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226278]
Input [8]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
(244) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278]
Arguments: explode(filteredUnitOfMeasureConversions#1226278.quantityNumerator), [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278], true, [quantityNumerator#1226279]
(245) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278.quantityDenominator AS _extract_quantityDenominator#1226604]
Input [5]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279]
(246) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_quantityDenominator#1226604]
Arguments: explode(_extract_quantityDenominator#1226604), [product#1226239, plant#1226240, orderDateTime#1226241], true, [quantityDenominator#1226280]
(247) Project
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, quantityDenominator#1226280]
(248) BroadcastHashJoin
Left keys [2]: [plantUuid#1226231, productUuid#1226233]
Right keys [2]: [plant#1226240, product#1226239]
Join type: Inner
Join condition: (calculationDateTime#1226227 <= orderDateTime#1226241)
(249) Project
Output [5]: [plantUuid#1226231 AS plant#1226283, productUuid#1226233 AS product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Input [8]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236, product#1226239, plant#1226240, orderDateTime#1226241]
(250) Exchange
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: hashpartitioning(coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227), 37), ENSURE_REQUIREMENTS, [plan_id=1974231]
(251) ShuffleQueryStage
Output [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: 177
(252) AQEShuffleRead
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: local
(253) BroadcastExchange
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true]), coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, timestamp, true], 1970-01-01 00:00:00), isnull(input[3, timestamp, true])),false), [plan_id=1975292]
(254) BroadcastQueryStage
Output [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: 179
(255) ReusedExchange [Reuses operator id: 164]
Output [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
(256) ShuffleQueryStage
Output [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: 176
(257) AQEShuffleRead
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: local
(258) BroadcastHashJoin
Left keys [8]: [coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227)]
Right keys [8]: [coalesce(plant#1226420, ), isnull(plant#1226420), coalesce(product#1226421, ), isnull(product#1226421), coalesce(storageLocId#1226371, ), isnull(storageLocId#1226371), coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00), isnull(max_calc_datetime#1226422)]
Join type: Inner
Join condition: None
(259) Project
Output [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Input [9]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236, plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
(260) HashAggregate
Input [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [partial_min(calculationDateTime#1226227), partial_sum(quantity#1226236)]
Aggregate Attributes [2]: [min#1228666, sum#1228667]
Results [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
(261) Exchange
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: hashpartitioning(product#1226284, plant#1226283, 37), ENSURE_REQUIREMENTS, [plan_id=1975997]
(262) ShuffleQueryStage
Output [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: 181
(263) AQEShuffleRead
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: coalesced
(264) HashAggregate
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [min(calculationDateTime#1226227), sum(quantity#1226236)]
Aggregate Attributes [2]: [min(calculationDateTime#1226227)#1225976, sum(quantity#1226236)#1225975]
Results [4]: [product#1226284, plant#1226283, min(calculationDateTime#1226227)#1225976 AS minCalculationDateTime#1226424, round(sum(quantity#1226236)#1225975, 0) AS roundedQuantitySum#1226425]
(265) BroadcastExchange
Input [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=1976298]
(266) BroadcastQueryStage
Output [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
Arguments: 182
(267) BroadcastHashJoin
Left keys [2]: [plant#1226105, product#1226104]
Right keys [2]: [plant#1226283, product#1226284]
Join type: LeftOuter
Join condition: None
(268) Project
Output [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, CASE WHEN isnotnull(minCalculationDateTime#1226424) THEN minCalculationDateTime#1226424 ELSE orderDateTime#1226106 END AS stockDatetime#1226426, CASE WHEN isnotnull(roundedQuantitySum#1226425) THEN array(roundedQuantitySum#1226425) ELSE [0.0] END AS stockBatchQuantities#1226427]
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
(269) Scan parquet
Output [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001356/0_1_10000001356]
PushedFilters: [IsNotNull(product), IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string,demandChannel:string,demandStream:string,considerVariance:boolean,demandTimeBuckets:array<struct<demandStartDateTime:timestamp,demandQuantity:double,demandVariance:double>>,demandPointInTimeStart:timestamp,demandPointInTimeEnd:timestamp,demandPointInTime:array<struct<demandDateTime:timestamp,demandQuantity:double,demandVariance:double>>>
(270) ColumnarToRow
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(271) Filter
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Condition : (isnotnull(product#1226029) AND isnotnull(plant#1226030))
(272) BroadcastExchange
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1942566]
(273) BroadcastQueryStage
Output [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: 85
(274) BroadcastHashJoin
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226029, plant#1226030]
Join type: LeftOuter
Join condition: None
(275) Project
Output [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, CASE WHEN isnotnull(product#1226029) THEN struct(demandChannel, demandChannel#1226031, demandStream, demandStream#1226032, considerVariance, considerVariance#1226033, demandTimeBuckets, demandTimeBuckets#1226034, demandPointInTimeStart, demandPointInTimeStart#1226035, demandPointInTimeEnd, demandPointInTimeEnd#1226036, demandPointInTime, demandPointInTime#1226037) END AS rawDemands#1226050]
Input [17]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(276) ObjectHashAggregate
Input [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, rawDemands#1226050]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, knownfloatingpointnormalized(if (isnull(productPlant#1226116)) null else named_struct(systemId, productPlant#1226116.systemId, internalUUID, productPlant#1226116.internalUUID, plant, productPlant#1226116.plant, product, productPlant#1226116.product, blockedForReplenishmentStartingFrom, productPlant#1226116.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect)) null else named_struct(productMovementPlants, productPlant#1226116.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1226116.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1226116.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1226116.salesPlant, listing, productPlant#1226116.listing)) AS productPlant#1226116, timezonecode#1226130, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1226147)) AS outboundUnit#1226147, stockDatetime#1226426, knownfloatingpointnormalized(transform(stockBatchQuantities#1226427, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1236851)), lambda arg#1236851, false))) AS stockBatchQuantities#1226427, [7226582400000000] AS [7226582400000000]#1236850]
Functions [1]: [partial_collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [buf#1228664]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1236850, buf#1228665]
(277) ObjectHashAggregate
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1236850, buf#1228665]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1236850]
Functions [1]: [collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1226050, 0, 0)#1226069]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1226428, collect_list(rawDemands#1226050, 0, 0)#1226069 AS rawDemands#1226051]
(278) DeserializeToObject
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, rawDemands#1226051]
Arguments: createexternalrow(invoke(product#1226104.toString()), invoke(plant#1226105.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1226106)), if (isnull(productPlant#1226116)) null else createexternalrow(invoke(productPlant#1226116.systemId.toString()), invoke(productPlant#1226116.internalUUID.toString()), if (isnull(productPlant#1226116.plant)) null else createexternalrow(invoke(productPlant#1226116.plant.internalRefUUID.toString()), invoke(productPlant#1226116.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1226116.product)) null else createexternalrow(invoke(productPlant#1226116.product.internalRefUUID.toString()), invoke(productPlant#1226116.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1226116.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1226116.productionAspect)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1226116.salesPlant)) null else createexternalrow(if (isnull(productPlant#1226116.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1226116.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1226116.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1226116.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1226130.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1226147)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1226426)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#1226427, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#1226428, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1226051, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(279) MapElements
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(280) SerializeFromObject
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1226100, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1226101]
(281) Exchange
Input [2]: [product#1226100, plant#1226101]
Arguments: hashpartitioning(coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100), 37), ENSURE_REQUIREMENTS, [plan_id=1976913]
(282) ShuffleQueryStage
Output [2]: [product#1226100, plant#1226101]
Arguments: 185
(283) AQEShuffleRead
Input [2]: [product#1226100, plant#1226101]
Arguments: local
(284) BroadcastExchange
Input [2]: [product#1226100, plant#1226101]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[1, string, true], ), isnull(input[1, string, true]), coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1977086]
(285) BroadcastQueryStage
Output [2]: [product#1226100, plant#1226101]
Arguments: 186
(286) BroadcastHashJoin
Left keys [4]: [coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622)]
Right keys [4]: [coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100)]
Join type: LeftOuter
Join condition: None
(287) Project
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Input [6]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026, product#1226100, plant#1226101]
(288) Exchange
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: hashpartitioning(plant#1225623, 37), ENSURE_REQUIREMENTS, [plan_id=1977157]
(289) ShuffleQueryStage
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: 187
(290) Sort
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: [plant#1225623 ASC NULLS FIRST], false, 0
(291) ReusedExchange [Reuses operator id: 57]
Output [1]: [distributionCenters#1226499]
(292) ShuffleQueryStage
Output [1]: [distributionCenters#1226499]
Arguments: 87
(293) Generate
Input [1]: [distributionCenters#1226499]
Arguments: explode(distributionCenters#1226499), false, [distributionCenters#1226515]
(294) Filter
Input [1]: [distributionCenters#1226515]
Condition : (((size(distributionCenters#1226515.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1226515.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1226515.internalRefUUID))
(295) Project
Output [2]: [distributionCenters#1226515.internalRefUUID AS _extract_internalRefUUID#1226618, distributionCenters#1226515.storageLocations.internalRefUUID AS _extract_internalRefUUID#1226803]
Input [1]: [distributionCenters#1226515]
(296) Generate
Input [2]: [_extract_internalRefUUID#1226618, _extract_internalRefUUID#1226803]
Arguments: explode(_extract_internalRefUUID#1226803), [_extract_internalRefUUID#1226618], false, [storageLocations#1226516]
(297) Filter
Input [2]: [_extract_internalRefUUID#1226618, storageLocations#1226516]
Condition : isnotnull(storageLocations#1226516)
(298) Project
Output [2]: [_extract_internalRefUUID#1226618 AS plantUuid#1226518, storageLocations#1226516 AS storageLocUuid#1226520]
Input [2]: [_extract_internalRefUUID#1226618, storageLocations#1226516]
(299) BroadcastExchange
Input [2]: [plantUuid#1226518, storageLocUuid#1226520]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1951742]
(300) BroadcastQueryStage
Output [2]: [plantUuid#1226518, storageLocUuid#1226520]
Arguments: 145
(301) ReusedExchange [Reuses operator id: 93]
Output [1]: [plant#1226522]
(302) ShuffleQueryStage
Output [1]: [plant#1226522]
Arguments: 160
(303) HashAggregate
Input [1]: [plant#1226522]
Keys [1]: [plant#1226522]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226522]
(304) BroadcastHashJoin
Left keys [1]: [plantUuid#1226518]
Right keys [1]: [plant#1226522]
Join type: Inner
Join condition: None
(305) Project
Output [2]: [plantUuid#1226518 AS plant#1226492, storageLocUuid#1226520]
Input [3]: [plantUuid#1226518, storageLocUuid#1226520, plant#1226522]
(306) Sort
Input [2]: [plant#1226492, storageLocUuid#1226520]
Arguments: [plant#1226492 ASC NULLS FIRST], false, 0
(307) SortMergeJoin
Left keys [1]: [plant#1225623]
Right keys [1]: [plant#1226492]
Join type: Inner
Join condition: None
(308) Project
Output [5]: [plant#1225623, product#1225622, timezonecode#1225654, stockDatetime#1226026, storageLocUuid#1226520]
Input [6]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026, plant#1226492, storageLocUuid#1226520]
(309) Scan parquet
Output [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-procurement-purchaseorder]
PushedFilters: [IsNotNull(isMarkedForDeletion), Not(EqualTo(isMarkedForDeletion,true)), IsNotNull(items)]
ReadSchema: struct<internalUUID:string,id:string,supplier:struct<internalRefUUID:string,id:string>,isMarkedForDeletion:boolean,items:array<struct<number:string,completeIndicator:boolean,returnIndicator:boolean,deletionIndicator:boolean,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,quantityNumerator:double,quantityDenominator:double,scheduleLines:array<struct<number:string,deliveryAt:timestamp,quantity:double,quantityUnit:struct<internalRefUUID:string,code:string>,receivedQuantity:double,deliveredQuantity:double,productAvailabilityDateTime:timestamp>>,confirmations:array<struct<number:string,confirmationCategory:struct<internalRefUUID:string,code:string>,confirmationDeliveryDate:date,confirmedDeliveryAt:timestamp,confirmedQuantity:double,mrpRelevantQuantity:double,confirmationCreationCategory:string,deletionIndicator:boolean,isRelevantForConfirmation:boolean,delivery:struct<internalRefUUID:string,id:string>,deliveryItemNumber:string>>>>>
(310) ColumnarToRow
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
(311) Filter
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
Condition : (((isnotnull(isMarkedForDeletion#1226460) AND NOT isMarkedForDeletion#1226460) AND (size(items#1226461, true) > 0)) AND isnotnull(items#1226461))
(312) Project
Output [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
(313) Exchange
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1942799]
(314) ShuffleQueryStage
Output [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: 96
(315) Generate
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: explode(items#1226461), [internalUUID#1226454, id#1226455, supplier#1226457], false, [item#1226465]
(316) Filter
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, item#1226465]
Condition : ((((isnotnull(item#1226465.deletionIndicator) AND isnotnull(item#1226465.completeIndicator)) AND isnotnull(item#1226465.returnIndicator)) AND ((NOT item#1226465.deletionIndicator AND NOT item#1226465.completeIndicator) AND NOT item#1226465.returnIndicator)) AND ((isnotnull(item#1226465.product.internalRefUUID) AND isnotnull(item#1226465.plant.internalRefUUID)) AND isnotnull(item#1226465.storageLocation.internalRefUUID)))
(317) Project
Output [14]: [id#1226455, internalUUID#1226454, supplier#1226457.internalRefUUID AS supplierUuid#1226462, item#1226465.plant.internalRefUUID AS plant#1226470, item#1226465.product.internalRefUUID AS product#1226471, item#1226465.plant.id AS externalPlantId#1226472, item#1226465.product.id AS externalProductId#1226473, item#1226465.storageLocation.internalRefUUID AS storageLocUuid#1226474, item#1226465.quantityUnit.code AS quantityUom#1226475, item#1226465.quantityUnit.internalRefUUID AS quantityUomUuid#1226476, item#1226465.quantityNumerator AS quantityNumerator#1226477, item#1226465.quantityDenominator AS quantityDenominator#1226478, item#1226465.scheduleLines AS scheduleLines#1226479, item#1226465.confirmations AS confirmations#1226480]
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, item#1226465]
(318) BroadcastExchange
Input [14]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
Arguments: HashedRelationBroadcastMode(List(input[4, string, true], input[3, string, true], input[7, string, true]),false), [plan_id=1953141]
(319) BroadcastQueryStage
Output [14]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
Arguments: 146
(320) BroadcastHashJoin
Left keys [3]: [product#1225622, plant#1225623, storageLocUuid#1226520]
Right keys [3]: [product#1226471, plant#1226470, storageLocUuid#1226474]
Join type: Inner
Join condition: None
(321) Project
Output [17]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, filter(confirmations#1226480, lambdafunction(((NOT lambda x_149#1226571.deletionIndicator AND lambda x_149#1226571.isRelevantForConfirmation) AND isnotnull(lambda x_149#1226571.confirmedDeliveryAt)), lambda x_149#1226571, false)) AS validConfirmations#1226570]
Input [19]: [plant#1225623, product#1225622, timezonecode#1225654, stockDatetime#1226026, storageLocUuid#1226520, id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
(322) ResultQueryStage
Output [17]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, validConfirmations#1226570]
Arguments: 188
(323) Filter
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Condition : (isnotnull(plant#1225623) AND isnotnull(product#1225622))
(324) Exchange
Input [3]: [product#1225622, plant#1225623, orderDateTime#1225624]
Arguments: hashpartitioning(product#1225622, plant#1225623, 37), REPARTITION_BY_NUM, [plan_id=1924116]
(325) Project
Output [4]: [plant#1225629.internalRefUUID AS _extract_internalRefUUID#1226767, product#1225630.internalRefUUID AS _extract_internalRefUUID#1226766, productionAspect#1225632.productMovementPlants.unitOfIssue.code AS _extract_code#1226768, productionAspect#1225632.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226769]
Input [4]: [plant#1225629, product#1225630, productionAspect#1225632, systemId#1225627]
(326) Exchange
Input [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923687]
(327) Project
Output [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Input [4]: [_extract_internalRefUUID#1226767, _extract_internalRefUUID#1226766, _extract_code#1226768, _extract_internalRefUUID#1226769]
(328) BroadcastExchange
Input [4]: [_extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924315]
(329) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225622, ), isnull(product#1225622), coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226766, ), isnull(_extract_internalRefUUID#1226766), coalesce(_extract_internalRefUUID#1226767, ), isnull(_extract_internalRefUUID#1226767)]
Join type: LeftOuter
Join condition: None
(330) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, _extract_internalRefUUID#1226766, _extract_internalRefUUID#1226767]
(331) Project
Output [2]: [internalUUID#1225640, address#1225646.timeZone.code AS timezonecode#1225651]
Input [3]: [internalUUID#1225640, address#1225646, systemId#1225639]
(332) Exchange
Input [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923693]
(333) BroadcastExchange
Input [2]: [internalUUID#1225640, timezonecode#1225651]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924319]
(334) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225623, ), isnull(plant#1225623)]
Right keys [2]: [coalesce(internalUUID#1225640, ), isnull(internalUUID#1225640)]
Join type: LeftOuter
Join condition: None
(335) Project
Output [6]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, CASE WHEN isnotnull(timezonecode#1225651) THEN timezonecode#1225651 ELSE UTC END AS timezonecode#1225654]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, internalUUID#1225640, timezonecode#1225651]
(336) Filter
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
Condition : isnotnull(internalUUID#1225656)
(337) Project
Output [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Input [4]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662, systemId#1225655]
(338) Exchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923699]
(339) BroadcastExchange
Input [3]: [internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924323]
(340) BroadcastHashJoin
Left keys [1]: [product#1225622]
Right keys [1]: [internalUUID#1225656]
Join type: LeftOuter
Join condition: None
(341) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filter(unitOfMeasureConversions#1225662, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226768) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226769)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225660.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225660.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225668]
Input [9]: [product#1225622, plant#1225623, orderDateTime#1225624, _extract_code#1226768, _extract_internalRefUUID#1226769, timezonecode#1225654, internalUUID#1225656, baseUnitOfMeasure#1225660, unitOfMeasureConversions#1225662]
(342) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668]
Arguments: explode(filteredUnitOfMeasureConversions#1225668.quantityNumerator), [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668], true, [quantityNumerator#1225676]
(343) Project
Output [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668.quantityDenominator AS _extract_quantityDenominator#1226572]
Input [6]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, filteredUnitOfMeasureConversions#1225668, quantityNumerator#1225676]
(344) Generate
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, _extract_quantityDenominator#1226572]
Arguments: explode(_extract_quantityDenominator#1226572), [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654], true, [quantityDenominator#1225679]
(345) Project
Output [4]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654]
Input [5]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, quantityDenominator#1225679]
(346) Sort
Input [4]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654]
Arguments: [product#1225622 ASC NULLS FIRST, plant#1225623 ASC NULLS FIRST], false, 0
(347) Filter
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
Condition : (isnotnull(plant#1225721.internalRefUUID) AND isnotnull(product#1225720.internalRefUUID))
(348) Project
Output [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Input [6]: [internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, systemId#1225718]
(349) Exchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923709]
(350) BroadcastExchange
Input [6]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1924354]
(351) Filter
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
Condition : (((marketUnit#1225682 <=> AUTO_MUV2) AND (size(distributionCenters#1225688, true) > 0)) AND isnotnull(distributionCenters#1225688))
(352) Project
Output [1]: [distributionCenters#1225688]
Input [2]: [marketUnit#1225682, distributionCenters#1225688]
(353) Exchange
Input [1]: [distributionCenters#1225688]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923713]
(354) Generate
Input [1]: [distributionCenters#1225688]
Arguments: explode(distributionCenters#1225688), false, [distributionCenters#1225706]
(355) Filter
Input [1]: [distributionCenters#1225706]
Condition : (((size(distributionCenters#1225706.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225706.storageLocations)) AND isnotnull(distributionCenters#1225706.internalRefUUID))
(356) Project
Output [2]: [distributionCenters#1225706.internalRefUUID AS _extract_internalRefUUID#1226576, distributionCenters#1225706.storageLocations AS _extract_storageLocations#1226577]
Input [1]: [distributionCenters#1225706]
(357) Generate
Input [2]: [_extract_internalRefUUID#1226576, _extract_storageLocations#1226577]
Arguments: explode(_extract_storageLocations#1226577), [_extract_internalRefUUID#1226576], false, [storageLocations#1225713]
(358) Project
Output [3]: [_extract_internalRefUUID#1226576 AS plantUuid#1225708, storageLocations#1225713.id AS storageLocId#1225714, storageLocations#1225713.internalRefUUID AS storageLocUuid#1225715]
Input [2]: [_extract_internalRefUUID#1226576, storageLocations#1225713]
(359) BroadcastExchange
Input [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924350]
(360) Filter
Input [2]: [product#1225978, plant#1225979]
Condition : isnotnull(plant#1225979)
(361) Exchange
Input [2]: [product#1225978, plant#1225979]
Arguments: hashpartitioning(product#1225978, plant#1225979, 37), REPARTITION_BY_NUM, [plan_id=1924127]
(362) Scan parquet
Output [4]: [plant#1225984, product#1225985, productionAspect#1225987, systemId#1225982]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(363) Project
Output [4]: [plant#1225984.internalRefUUID AS _extract_internalRefUUID#1226771, product#1225985.internalRefUUID AS _extract_internalRefUUID#1226770, productionAspect#1225987.productMovementPlants.unitOfIssue.code AS _extract_code#1226772, productionAspect#1225987.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226773]
Input [4]: [plant#1225984, product#1225985, productionAspect#1225987, systemId#1225982]
(364) Exchange
Input [4]: [_extract_internalRefUUID#1226771, _extract_internalRefUUID#1226770, _extract_code#1226772, _extract_internalRefUUID#1226773]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923725]
(365) Project
Output [4]: [_extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
Input [4]: [_extract_internalRefUUID#1226771, _extract_internalRefUUID#1226770, _extract_code#1226772, _extract_internalRefUUID#1226773]
(366) BroadcastExchange
Input [4]: [_extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924330]
(367) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225978, ), isnull(product#1225978), coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226770, ), isnull(_extract_internalRefUUID#1226770), coalesce(_extract_internalRefUUID#1226771, ), isnull(_extract_internalRefUUID#1226771)]
Join type: LeftOuter
Join condition: None
(368) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773]
Input [6]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, _extract_internalRefUUID#1226770, _extract_internalRefUUID#1226771]
(369) Project
Output [1]: [internalUUID#1225992]
Input [2]: [internalUUID#1225992, systemId#1225991]
(370) Exchange
Input [1]: [internalUUID#1225992]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923731]
(371) BroadcastExchange
Input [1]: [internalUUID#1225992]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924334]
(372) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225979, ), isnull(plant#1225979)]
Right keys [2]: [coalesce(internalUUID#1225992, ), isnull(internalUUID#1225992)]
Join type: LeftOuter
Join condition: None
(373) Project
Output [4]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773]
Input [5]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, internalUUID#1225992]
(374) Scan parquet
Output [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(375) Filter
Input [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
Condition : isnotnull(internalUUID#1226006)
(376) Project
Output [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Input [4]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012, systemId#1226005]
(377) Exchange
Input [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923737]
(378) BroadcastExchange
Input [3]: [internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924338]
(379) BroadcastHashJoin
Left keys [1]: [product#1225978]
Right keys [1]: [internalUUID#1226006]
Join type: LeftOuter
Join condition: None
(380) Project
Output [2]: [plant#1225979, filter(unitOfMeasureConversions#1226012, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226772) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226773)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226010.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226010.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226017]
Input [7]: [product#1225978, plant#1225979, _extract_code#1226772, _extract_internalRefUUID#1226773, internalUUID#1226006, baseUnitOfMeasure#1226010, unitOfMeasureConversions#1226012]
(381) Generate
Input [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017]
Arguments: explode(filteredUnitOfMeasureConversions#1226017.quantityNumerator), [plant#1225979, filteredUnitOfMeasureConversions#1226017], true, [quantityNumerator#1226018]
(382) Project
Output [2]: [plant#1225979, filteredUnitOfMeasureConversions#1226017.quantityDenominator AS _extract_quantityDenominator#1226578]
Input [3]: [plant#1225979, filteredUnitOfMeasureConversions#1226017, quantityNumerator#1226018]
(383) Generate
Input [2]: [plant#1225979, _extract_quantityDenominator#1226578]
Arguments: explode(_extract_quantityDenominator#1226578), [plant#1225979], true, [quantityDenominator#1226019]
(384) Project
Output [1]: [plant#1225979]
Input [2]: [plant#1225979, quantityDenominator#1226019]
(385) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(386) Exchange
Input [1]: [plant#1225979]
Arguments: hashpartitioning(plant#1225979, 37), ENSURE_REQUIREMENTS, [plan_id=1924347]
(387) HashAggregate
Input [1]: [plant#1225979]
Keys [1]: [plant#1225979]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225979]
(388) BroadcastHashJoin
Left keys [1]: [plantUuid#1225708]
Right keys [1]: [plant#1225979]
Join type: Inner
Join condition: None
(389) Project
Output [3]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Input [4]: [plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715, plant#1225979]
(390) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225721.internalRefUUID, ), isnull(plant#1225721.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225708, ), isnull(plantUuid#1225708)]
Join type: Inner
Join condition: None
(391) Generate
Input [9]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, stockQuantities#1225723, plantUuid#1225708, storageLocId#1225714, storageLocUuid#1225715]
Arguments: explode(filter(stockQuantities#1225723, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225715) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225714)), lambda x#1225727, false))), [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708], false, [stockQuantity#1225728]
(392) ObjectHashAggregate
Input [7]: [systemId#1225718, internalUUID#1225719, product#1225720, plant#1225721, calculationDateTime#1225722, plantUuid#1225708, stockQuantity#1225728]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [partial_first(calculationDateTime#1225722, false), partial_collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [3]: [first#1228648, valueSet#1228649, buf#1228650]
Results [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
(393) ObjectHashAggregate
Input [8]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718, first#1228651, valueSet#1228652, buf#1228653]
Keys [5]: [plantUuid#1225708, internalUUID#1225719, plant#1225721, product#1225720, systemId#1225718]
Functions [2]: [first(calculationDateTime#1225722, false), collect_list(stockQuantity#1225728, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225722)()#1225742, collect_list(stockQuantity#1225728, 0, 0)#1225743]
Results [4]: [product#1225720, plant#1225721, first(calculationDateTime#1225722)()#1225742 AS calculationDateTime#1225729, collect_list(stockQuantity#1225728, 0, 0)#1225743 AS stockQuantities#1225730]
(394) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Condition : ((size(stockQuantities#1225730, true) > 0) AND isnotnull(calculationDateTime#1225729))
(395) Generate
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantities#1225730]
Arguments: explode(stockQuantities#1225730), [product#1225720, plant#1225721, calculationDateTime#1225729], false, [stockQuantity#1225745]
(396) Filter
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
Condition : (((isnotnull(stockQuantity#1225745.specialStockIndicator.code) AND isnotnull(stockQuantity#1225745.stockType.code)) AND (stockQuantity#1225745.specialStockIndicator.code = )) AND (stockQuantity#1225745.stockType.code = 01))
(397) Project
Output [4]: [plant#1225721.internalRefUUID AS plantUuid#1225747, product#1225720.internalRefUUID AS productUuid#1225749, calculationDateTime#1225729, stockQuantity#1225745.storagelocation.id AS storageLocId#1225750]
Input [4]: [product#1225720, plant#1225721, calculationDateTime#1225729, stockQuantity#1225745]
(398) Exchange
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: hashpartitioning(productUuid#1225749, plantUuid#1225747, 37), ENSURE_REQUIREMENTS, [plan_id=1924380]
(399) Sort
Input [4]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750]
Arguments: [productUuid#1225749 ASC NULLS FIRST, plantUuid#1225747 ASC NULLS FIRST], false, 0
(400) Filter
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Condition : ((isnotnull(orderDateTime#1225766) AND isnotnull(plant#1225765)) AND isnotnull(product#1225764))
(401) Exchange
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: hashpartitioning(product#1225764, plant#1225765, 37), REPARTITION_BY_NUM, [plan_id=1924150]
(402) Scan parquet
Output [4]: [plant#1225770, product#1225771, productionAspect#1225773, systemId#1225768]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(403) Project
Output [4]: [plant#1225770.internalRefUUID AS _extract_internalRefUUID#1226776, product#1225771.internalRefUUID AS _extract_internalRefUUID#1226777, productionAspect#1225773.productMovementPlants.unitOfIssue.code AS _extract_code#1226774, productionAspect#1225773.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226775]
Input [4]: [plant#1225770, product#1225771, productionAspect#1225773, systemId#1225768]
(404) Exchange
Input [4]: [_extract_internalRefUUID#1226776, _extract_internalRefUUID#1226777, _extract_code#1226774, _extract_internalRefUUID#1226775]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923762]
(405) Project
Output [4]: [_extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
Input [4]: [_extract_internalRefUUID#1226776, _extract_internalRefUUID#1226777, _extract_code#1226774, _extract_internalRefUUID#1226775]
(406) BroadcastExchange
Input [4]: [_extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924363]
(407) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225764, ), isnull(product#1225764), coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226777, ), isnull(_extract_internalRefUUID#1226777), coalesce(_extract_internalRefUUID#1226776, ), isnull(_extract_internalRefUUID#1226776)]
Join type: LeftOuter
Join condition: None
(408) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775]
Input [7]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, _extract_internalRefUUID#1226777, _extract_internalRefUUID#1226776]
(409) Scan parquet
Output [2]: [internalUUID#1225778, systemId#1225777]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(410) Project
Output [1]: [internalUUID#1225778]
Input [2]: [internalUUID#1225778, systemId#1225777]
(411) Exchange
Input [1]: [internalUUID#1225778]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923768]
(412) BroadcastExchange
Input [1]: [internalUUID#1225778]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924367]
(413) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225765, ), isnull(plant#1225765)]
Right keys [2]: [coalesce(internalUUID#1225778, ), isnull(internalUUID#1225778)]
Join type: LeftOuter
Join condition: None
(414) Project
Output [5]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775]
Input [6]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, internalUUID#1225778]
(415) Scan parquet
Output [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(416) Filter
Input [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
Condition : isnotnull(internalUUID#1225792)
(417) Project
Output [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Input [4]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798, systemId#1225791]
(418) Exchange
Input [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923774]
(419) BroadcastExchange
Input [3]: [internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924371]
(420) BroadcastHashJoin
Left keys [1]: [product#1225764]
Right keys [1]: [internalUUID#1225792]
Join type: LeftOuter
Join condition: None
(421) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filter(unitOfMeasureConversions#1225798, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226774) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226775)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225796.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225796.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225803]
Input [8]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_code#1226774, _extract_internalRefUUID#1226775, internalUUID#1225792, baseUnitOfMeasure#1225796, unitOfMeasureConversions#1225798]
(422) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803]
Arguments: explode(filteredUnitOfMeasureConversions#1225803.quantityNumerator), [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803], true, [quantityNumerator#1225804]
(423) Project
Output [4]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803.quantityDenominator AS _extract_quantityDenominator#1226582]
Input [5]: [product#1225764, plant#1225765, orderDateTime#1225766, filteredUnitOfMeasureConversions#1225803, quantityNumerator#1225804]
(424) Generate
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, _extract_quantityDenominator#1226582]
Arguments: explode(_extract_quantityDenominator#1226582), [product#1225764, plant#1225765, orderDateTime#1225766], true, [quantityDenominator#1225805]
(425) Project
Output [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Input [4]: [product#1225764, plant#1225765, orderDateTime#1225766, quantityDenominator#1225805]
(426) Sort
Input [3]: [product#1225764, plant#1225765, orderDateTime#1225766]
Arguments: [product#1225764 ASC NULLS FIRST, plant#1225765 ASC NULLS FIRST], false, 0
(427) SortMergeJoin
Left keys [2]: [productUuid#1225749, plantUuid#1225747]
Right keys [2]: [product#1225764, plant#1225765]
Join type: Inner
Join condition: (calculationDateTime#1225729 <= orderDateTime#1225766)
(428) Project
Output [4]: [plantUuid#1225747 AS plant#1225812, productUuid#1225749 AS product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Input [7]: [plantUuid#1225747, productUuid#1225749, calculationDateTime#1225729, storageLocId#1225750, product#1225764, plant#1225765, orderDateTime#1225766]
(429) Exchange
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: hashpartitioning(coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729), 37), ENSURE_REQUIREMENTS, [plan_id=1924444]
(430) Sort
Input [4]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729]
Arguments: [coalesce(plant#1225812, ) ASC NULLS FIRST, isnull(plant#1225812) ASC NULLS FIRST, coalesce(product#1225813, ) ASC NULLS FIRST, isnull(product#1225813) ASC NULLS FIRST, coalesce(storageLocId#1225750, ) ASC NULLS FIRST, isnull(storageLocId#1225750) ASC NULLS FIRST, coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1225729) ASC NULLS FIRST], false, 0
(431) Scan parquet
Output [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(432) Filter
Input [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
Condition : (isnotnull(plant#1225824.internalRefUUID) AND isnotnull(product#1225823.internalRefUUID))
(433) Project
Output [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Input [6]: [internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, systemId#1225821]
(434) Exchange
Input [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923786]
(435) BroadcastExchange
Input [6]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1924409]
(436) Scan parquet
Output [2]: [marketUnit#1225827, distributionCenters#1225833]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(437) Filter
Input [2]: [marketUnit#1225827, distributionCenters#1225833]
Condition : (((marketUnit#1225827 <=> AUTO_MUV2) AND (size(distributionCenters#1225833, true) > 0)) AND isnotnull(distributionCenters#1225833))
(438) Project
Output [1]: [distributionCenters#1225833]
Input [2]: [marketUnit#1225827, distributionCenters#1225833]
(439) Exchange
Input [1]: [distributionCenters#1225833]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923790]
(440) Generate
Input [1]: [distributionCenters#1225833]
Arguments: explode(distributionCenters#1225833), false, [distributionCenters#1225849]
(441) Filter
Input [1]: [distributionCenters#1225849]
Condition : (((size(distributionCenters#1225849.storageLocations, true) > 0) AND isnotnull(distributionCenters#1225849.storageLocations)) AND isnotnull(distributionCenters#1225849.internalRefUUID))
(442) Project
Output [2]: [distributionCenters#1225849.internalRefUUID AS _extract_internalRefUUID#1226586, distributionCenters#1225849.storageLocations AS _extract_storageLocations#1226587]
Input [1]: [distributionCenters#1225849]
(443) Generate
Input [2]: [_extract_internalRefUUID#1226586, _extract_storageLocations#1226587]
Arguments: explode(_extract_storageLocations#1226587), [_extract_internalRefUUID#1226586], false, [storageLocations#1225850]
(444) Project
Output [3]: [_extract_internalRefUUID#1226586 AS plantUuid#1225852, storageLocations#1225850.id AS storageLocId#1225853, storageLocations#1225850.internalRefUUID AS storageLocUuid#1225854]
Input [2]: [_extract_internalRefUUID#1226586, storageLocations#1225850]
(445) BroadcastExchange
Input [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924405]
(446) Scan parquet
Output [2]: [product#1225855, plant#1225856]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(447) Filter
Input [2]: [product#1225855, plant#1225856]
Condition : isnotnull(plant#1225856)
(448) Exchange
Input [2]: [product#1225855, plant#1225856]
Arguments: hashpartitioning(product#1225855, plant#1225856, 37), REPARTITION_BY_NUM, [plan_id=1924163]
(449) Scan parquet
Output [4]: [plant#1225861, product#1225862, productionAspect#1225864, systemId#1225859]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(450) Project
Output [4]: [plant#1225861.internalRefUUID AS _extract_internalRefUUID#1226778, product#1225862.internalRefUUID AS _extract_internalRefUUID#1226779, productionAspect#1225864.productMovementPlants.unitOfIssue.code AS _extract_code#1226780, productionAspect#1225864.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226781]
Input [4]: [plant#1225861, product#1225862, productionAspect#1225864, systemId#1225859]
(451) Exchange
Input [4]: [_extract_internalRefUUID#1226778, _extract_internalRefUUID#1226779, _extract_code#1226780, _extract_internalRefUUID#1226781]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923802]
(452) Project
Output [4]: [_extract_code#1226780, _extract_internalRefUUID#1226781, _extract_internalRefUUID#1226779, _extract_internalRefUUID#1226778]
Input [4]: [_extract_internalRefUUID#1226778, _extract_internalRefUUID#1226779, _extract_code#1226780, _extract_internalRefUUID#1226781]
(453) BroadcastExchange
Input [4]: [_extract_code#1226780, _extract_internalRefUUID#1226781, _extract_internalRefUUID#1226779, _extract_internalRefUUID#1226778]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924385]
(454) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225855, ), isnull(product#1225855), coalesce(plant#1225856, ), isnull(plant#1225856)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226779, ), isnull(_extract_internalRefUUID#1226779), coalesce(_extract_internalRefUUID#1226778, ), isnull(_extract_internalRefUUID#1226778)]
Join type: LeftOuter
Join condition: None
(455) Project
Output [4]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781]
Input [6]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781, _extract_internalRefUUID#1226779, _extract_internalRefUUID#1226778]
(456) Scan parquet
Output [2]: [internalUUID#1225869, systemId#1225868]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(457) Project
Output [1]: [internalUUID#1225869]
Input [2]: [internalUUID#1225869, systemId#1225868]
(458) Exchange
Input [1]: [internalUUID#1225869]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923808]
(459) BroadcastExchange
Input [1]: [internalUUID#1225869]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924389]
(460) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225856, ), isnull(plant#1225856)]
Right keys [2]: [coalesce(internalUUID#1225869, ), isnull(internalUUID#1225869)]
Join type: LeftOuter
Join condition: None
(461) Project
Output [4]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781]
Input [5]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781, internalUUID#1225869]
(462) Scan parquet
Output [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(463) Filter
Input [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
Condition : isnotnull(internalUUID#1225883)
(464) Project
Output [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Input [4]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889, systemId#1225882]
(465) Exchange
Input [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923814]
(466) BroadcastExchange
Input [3]: [internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924393]
(467) BroadcastHashJoin
Left keys [1]: [product#1225855]
Right keys [1]: [internalUUID#1225883]
Join type: LeftOuter
Join condition: None
(468) Project
Output [2]: [plant#1225856, filter(unitOfMeasureConversions#1225889, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226780) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226781)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225887.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225887.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225894]
Input [7]: [product#1225855, plant#1225856, _extract_code#1226780, _extract_internalRefUUID#1226781, internalUUID#1225883, baseUnitOfMeasure#1225887, unitOfMeasureConversions#1225889]
(469) Generate
Input [2]: [plant#1225856, filteredUnitOfMeasureConversions#1225894]
Arguments: explode(filteredUnitOfMeasureConversions#1225894.quantityNumerator), [plant#1225856, filteredUnitOfMeasureConversions#1225894], true, [quantityNumerator#1225895]
(470) Project
Output [2]: [plant#1225856, filteredUnitOfMeasureConversions#1225894.quantityDenominator AS _extract_quantityDenominator#1226588]
Input [3]: [plant#1225856, filteredUnitOfMeasureConversions#1225894, quantityNumerator#1225895]
(471) Generate
Input [2]: [plant#1225856, _extract_quantityDenominator#1226588]
Arguments: explode(_extract_quantityDenominator#1226588), [plant#1225856], true, [quantityDenominator#1225896]
(472) Project
Output [1]: [plant#1225856]
Input [2]: [plant#1225856, quantityDenominator#1225896]
(473) HashAggregate
Input [1]: [plant#1225856]
Keys [1]: [plant#1225856]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225856]
(474) Exchange
Input [1]: [plant#1225856]
Arguments: hashpartitioning(plant#1225856, 37), ENSURE_REQUIREMENTS, [plan_id=1924402]
(475) HashAggregate
Input [1]: [plant#1225856]
Keys [1]: [plant#1225856]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1225856]
(476) BroadcastHashJoin
Left keys [1]: [plantUuid#1225852]
Right keys [1]: [plant#1225856]
Join type: Inner
Join condition: None
(477) Project
Output [3]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Input [4]: [plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854, plant#1225856]
(478) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225824.internalRefUUID, ), isnull(plant#1225824.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1225852, ), isnull(plantUuid#1225852)]
Join type: Inner
Join condition: None
(479) Generate
Input [9]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, stockQuantities#1225826, plantUuid#1225852, storageLocId#1225853, storageLocUuid#1225854]
Arguments: explode(filter(stockQuantities#1225826, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1225854) AND (lambda x#1225727.storageLocation.Id = storageLocId#1225853)), lambda x#1225727, false))), [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, plantUuid#1225852], false, [stockQuantity#1225899]
(480) ObjectHashAggregate
Input [7]: [systemId#1225821, internalUUID#1225822, product#1225823, plant#1225824, calculationDateTime#1225825, plantUuid#1225852, stockQuantity#1225899]
Keys [5]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821]
Functions [2]: [partial_first(calculationDateTime#1225825, false), partial_collect_list(stockQuantity#1225899, 0, 0)]
Aggregate Attributes [3]: [first#1228656, valueSet#1228657, buf#1228658]
Results [8]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first#1228659, valueSet#1228660, buf#1228661]
(481) ObjectHashAggregate
Input [8]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821, first#1228659, valueSet#1228660, buf#1228661]
Keys [5]: [plantUuid#1225852, internalUUID#1225822, plant#1225824, product#1225823, systemId#1225821]
Functions [2]: [first(calculationDateTime#1225825, false), collect_list(stockQuantity#1225899, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1225825)()#1225742, collect_list(stockQuantity#1225899, 0, 0)#1225743]
Results [4]: [product#1225823, plant#1225824, first(calculationDateTime#1225825)()#1225742 AS calculationDateTime#1225900, collect_list(stockQuantity#1225899, 0, 0)#1225743 AS stockQuantities#1225901]
(482) Filter
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
Condition : ((size(stockQuantities#1225901, true) > 0) AND isnotnull(calculationDateTime#1225900))
(483) Generate
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantities#1225901]
Arguments: explode(stockQuantities#1225901), [product#1225823, plant#1225824, calculationDateTime#1225900], false, [stockQuantity#1225902]
(484) Filter
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantity#1225902]
Condition : (((isnotnull(stockQuantity#1225902.specialStockIndicator.code) AND isnotnull(stockQuantity#1225902.stockType.code)) AND (stockQuantity#1225902.specialStockIndicator.code = )) AND (stockQuantity#1225902.stockType.code = 01))
(485) Project
Output [4]: [plant#1225824.internalRefUUID AS plantUuid#1225904, product#1225823.internalRefUUID AS productUuid#1225906, calculationDateTime#1225900, stockQuantity#1225902.storagelocation.id AS storageLocId#1225907]
Input [4]: [product#1225823, plant#1225824, calculationDateTime#1225900, stockQuantity#1225902]
(486) Exchange
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: hashpartitioning(productUuid#1225906, plantUuid#1225904, 37), ENSURE_REQUIREMENTS, [plan_id=1924435]
(487) Sort
Input [4]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907]
Arguments: [productUuid#1225906 ASC NULLS FIRST, plantUuid#1225904 ASC NULLS FIRST], false, 0
(488) Scan parquet
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(489) Filter
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Condition : ((isnotnull(orderDateTime#1225914) AND isnotnull(plant#1225913)) AND isnotnull(product#1225912))
(490) Exchange
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: hashpartitioning(product#1225912, plant#1225913, 37), REPARTITION_BY_NUM, [plan_id=1924186]
(491) Scan parquet
Output [4]: [plant#1225918, product#1225919, productionAspect#1225921, systemId#1225916]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(492) Project
Output [4]: [plant#1225918.internalRefUUID AS _extract_internalRefUUID#1226785, product#1225919.internalRefUUID AS _extract_internalRefUUID#1226784, productionAspect#1225921.productMovementPlants.unitOfIssue.code AS _extract_code#1226782, productionAspect#1225921.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226783]
Input [4]: [plant#1225918, product#1225919, productionAspect#1225921, systemId#1225916]
(493) Exchange
Input [4]: [_extract_internalRefUUID#1226785, _extract_internalRefUUID#1226784, _extract_code#1226782, _extract_internalRefUUID#1226783]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923839]
(494) Project
Output [4]: [_extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
Input [4]: [_extract_internalRefUUID#1226785, _extract_internalRefUUID#1226784, _extract_code#1226782, _extract_internalRefUUID#1226783]
(495) BroadcastExchange
Input [4]: [_extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924418]
(496) BroadcastHashJoin
Left keys [4]: [coalesce(product#1225912, ), isnull(product#1225912), coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226784, ), isnull(_extract_internalRefUUID#1226784), coalesce(_extract_internalRefUUID#1226785, ), isnull(_extract_internalRefUUID#1226785)]
Join type: LeftOuter
Join condition: None
(497) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783]
Input [7]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, _extract_internalRefUUID#1226784, _extract_internalRefUUID#1226785]
(498) Scan parquet
Output [2]: [internalUUID#1225926, systemId#1225925]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(499) Project
Output [1]: [internalUUID#1225926]
Input [2]: [internalUUID#1225926, systemId#1225925]
(500) Exchange
Input [1]: [internalUUID#1225926]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923845]
(501) BroadcastExchange
Input [1]: [internalUUID#1225926]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924422]
(502) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1225913, ), isnull(plant#1225913)]
Right keys [2]: [coalesce(internalUUID#1225926, ), isnull(internalUUID#1225926)]
Join type: LeftOuter
Join condition: None
(503) Project
Output [5]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783]
Input [6]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, internalUUID#1225926]
(504) Scan parquet
Output [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(505) Filter
Input [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
Condition : isnotnull(internalUUID#1225940)
(506) Project
Output [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Input [4]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946, systemId#1225939]
(507) Exchange
Input [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923851]
(508) BroadcastExchange
Input [3]: [internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924426]
(509) BroadcastHashJoin
Left keys [1]: [product#1225912]
Right keys [1]: [internalUUID#1225940]
Join type: LeftOuter
Join condition: None
(510) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filter(unitOfMeasureConversions#1225946, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226782) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226783)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1225944.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1225944.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1225951]
Input [8]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_code#1226782, _extract_internalRefUUID#1226783, internalUUID#1225940, baseUnitOfMeasure#1225944, unitOfMeasureConversions#1225946]
(511) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951]
Arguments: explode(filteredUnitOfMeasureConversions#1225951.quantityNumerator), [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951], true, [quantityNumerator#1225952]
(512) Project
Output [4]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951.quantityDenominator AS _extract_quantityDenominator#1226592]
Input [5]: [product#1225912, plant#1225913, orderDateTime#1225914, filteredUnitOfMeasureConversions#1225951, quantityNumerator#1225952]
(513) Generate
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, _extract_quantityDenominator#1226592]
Arguments: explode(_extract_quantityDenominator#1226592), [product#1225912, plant#1225913, orderDateTime#1225914], true, [quantityDenominator#1225953]
(514) Project
Output [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Input [4]: [product#1225912, plant#1225913, orderDateTime#1225914, quantityDenominator#1225953]
(515) Sort
Input [3]: [product#1225912, plant#1225913, orderDateTime#1225914]
Arguments: [product#1225912 ASC NULLS FIRST, plant#1225913 ASC NULLS FIRST], false, 0
(516) SortMergeJoin
Left keys [2]: [productUuid#1225906, plantUuid#1225904]
Right keys [2]: [product#1225912, plant#1225913]
Join type: Inner
Join condition: (calculationDateTime#1225900 <= orderDateTime#1225914)
(517) Project
Output [4]: [plantUuid#1225904 AS plant#1225956, productUuid#1225906 AS product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Input [7]: [plantUuid#1225904, productUuid#1225906, calculationDateTime#1225900, storageLocId#1225907, product#1225912, plant#1225913, orderDateTime#1225914]
(518) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, calculationDateTime#1225900]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [partial_max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max#1228654]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
(519) HashAggregate
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max#1228655]
Keys [3]: [plant#1225956, product#1225957, storageLocId#1225907]
Functions [1]: [max(calculationDateTime#1225900)]
Aggregate Attributes [1]: [max(calculationDateTime#1225900)#1225820]
Results [4]: [plant#1225956, product#1225957, storageLocId#1225907, max(calculationDateTime#1225900)#1225820 AS max_calc_datetime#1225814]
(520) Exchange
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: hashpartitioning(coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814), 37), ENSURE_REQUIREMENTS, [plan_id=1924445]
(521) Sort
Input [4]: [plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
Arguments: [coalesce(plant#1225956, ) ASC NULLS FIRST, isnull(plant#1225956) ASC NULLS FIRST, coalesce(product#1225957, ) ASC NULLS FIRST, isnull(product#1225957) ASC NULLS FIRST, coalesce(storageLocId#1225907, ) ASC NULLS FIRST, isnull(storageLocId#1225907) ASC NULLS FIRST, coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1225814) ASC NULLS FIRST], false, 0
(522) SortMergeJoin
Left keys [8]: [coalesce(plant#1225812, ), isnull(plant#1225812), coalesce(product#1225813, ), isnull(product#1225813), coalesce(storageLocId#1225750, ), isnull(storageLocId#1225750), coalesce(calculationDateTime#1225729, 1970-01-01 00:00:00), isnull(calculationDateTime#1225729)]
Right keys [8]: [coalesce(plant#1225956, ), isnull(plant#1225956), coalesce(product#1225957, ), isnull(product#1225957), coalesce(storageLocId#1225907, ), isnull(storageLocId#1225907), coalesce(max_calc_datetime#1225814, 1970-01-01 00:00:00), isnull(max_calc_datetime#1225814)]
Join type: Inner
Join condition: None
(523) Project
Output [3]: [plant#1225812, product#1225813, calculationDateTime#1225729]
Input [8]: [plant#1225812, product#1225813, storageLocId#1225750, calculationDateTime#1225729, plant#1225956, product#1225957, storageLocId#1225907, max_calc_datetime#1225814]
(524) HashAggregate
Input [3]: [plant#1225812, product#1225813, calculationDateTime#1225729]
Keys [2]: [product#1225813, plant#1225812]
Functions [1]: [partial_min(calculationDateTime#1225729)]
Aggregate Attributes [1]: [min#1228646]
Results [3]: [product#1225813, plant#1225812, min#1228647]
(525) Exchange
Input [3]: [product#1225813, plant#1225812, min#1228647]
Arguments: hashpartitioning(product#1225813, plant#1225812, 37), ENSURE_REQUIREMENTS, [plan_id=1924452]
(526) HashAggregate
Input [3]: [product#1225813, plant#1225812, min#1228647]
Keys [2]: [product#1225813, plant#1225812]
Functions [1]: [min(calculationDateTime#1225729)]
Aggregate Attributes [1]: [min(calculationDateTime#1225729)#1225976]
Results [3]: [product#1225813, plant#1225812, min(calculationDateTime#1225729)#1225976 AS minCalculationDateTime#1225969]
(527) Sort
Input [3]: [product#1225813, plant#1225812, minCalculationDateTime#1225969]
Arguments: [product#1225813 ASC NULLS FIRST, plant#1225812 ASC NULLS FIRST], false, 0
(528) SortMergeJoin
Left keys [2]: [product#1225622, plant#1225623]
Right keys [2]: [product#1225813, plant#1225812]
Join type: LeftOuter
Join condition: None
(529) Project
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, CASE WHEN isnotnull(minCalculationDateTime#1225969) THEN minCalculationDateTime#1225969 ELSE orderDateTime#1225624 END AS stockDatetime#1226026]
Input [7]: [product#1225622, plant#1225623, orderDateTime#1225624, timezonecode#1225654, product#1225813, plant#1225812, minCalculationDateTime#1225969]
(530) Exchange
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: hashpartitioning(coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622), 37), ENSURE_REQUIREMENTS, [plan_id=1924616]
(531) Sort
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: [coalesce(plant#1225623, ) ASC NULLS FIRST, isnull(plant#1225623) ASC NULLS FIRST, coalesce(product#1225622, ) ASC NULLS FIRST, isnull(product#1225622) ASC NULLS FIRST], false, 0
(532) Exchange
Input [3]: [product#1226104, plant#1226105, orderDateTime#1226106]
Arguments: hashpartitioning(product#1226104, plant#1226105, 37), REPARTITION_BY_NUM, [plan_id=1923869]
(533) Project
Output [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Input [8]: [internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115, systemId#1226108]
(534) Exchange
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923872]
(535) Project
Output [1]: [struct(systemId, systemId#1226108, internalUUID, internalUUID#1226109, plant, plant#1226110, product, product#1226111, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1226112, productionAspect, productionAspect#1226113, salesPlant, salesPlant#1226114, listing, listing#1226115) AS productPlant#1226116]
Input [8]: [systemId#1226108, internalUUID#1226109, plant#1226110, product#1226111, blockedForReplenishmentStartingFrom#1226112, productionAspect#1226113, salesPlant#1226114, listing#1226115]
(536) BroadcastExchange
Input [1]: [productPlant#1226116]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].product.internalRefUUID), coalesce(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID, ), isnull(input[0, struct<systemId:string,internalUUID:string,plant:struct<internalRefUUID:string,id:string>,product:struct<internalRefUUID:string,id:string>,blockedForReplenishmentStartingFrom:date,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>,productPlanningPlants:struct<mrpType:struct<internalRefUUID:string,code:string>,abcIndicator:struct<internalRefUUID:string,code:string>,mrpController:struct<internalRefUUID:string,id:string>,minimumLotSize:double,logisticalRoundingProfile:struct<internalRefUUID:string,logisticalRoundingProfile:string>,sourceOfSupplyCategory:struct<internalRefUUID:string,code:string>>>,salesPlant:struct<loadingGroup:struct<internalRefUUID:string,code:string>>,listing:array<struct<validFrom:timestamp,validTo:timestamp,isListed:boolean>>>, false].plant.internalRefUUID)),false), [plan_id=1924460]
(537) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226104, ), isnull(product#1226104), coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [4]: [coalesce(productPlant#1226116.product.internalRefUUID, ), isnull(productPlant#1226116.product.internalRefUUID), coalesce(productPlant#1226116.plant.internalRefUUID, ), isnull(productPlant#1226116.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(538) Scan parquet
Output [3]: [internalUUID#1226118, address#1226124, systemId#1226117]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string,address:struct<timeZone:struct<code:string>>>
(539) Project
Output [2]: [internalUUID#1226118, address#1226124.timeZone.code AS timezonecode#1226129]
Input [3]: [internalUUID#1226118, address#1226124, systemId#1226117]
(540) Exchange
Input [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923877]
(541) BroadcastExchange
Input [2]: [internalUUID#1226118, timezonecode#1226129]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924463]
(542) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226105, ), isnull(plant#1226105)]
Right keys [2]: [coalesce(internalUUID#1226118, ), isnull(internalUUID#1226118)]
Join type: LeftOuter
Join condition: None
(543) Project
Output [5]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, CASE WHEN isnotnull(timezonecode#1226129) THEN timezonecode#1226129 ELSE UTC END AS timezonecode#1226130]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, internalUUID#1226118, timezonecode#1226129]
(544) Scan parquet
Output [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(545) Filter
Input [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
Condition : isnotnull(internalUUID#1226132)
(546) Project
Output [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Input [4]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138, systemId#1226131]
(547) Exchange
Input [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923883]
(548) BroadcastExchange
Input [3]: [internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924467]
(549) BroadcastHashJoin
Left keys [1]: [product#1226104]
Right keys [1]: [internalUUID#1226132]
Join type: LeftOuter
Join condition: None
(550) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filter(unitOfMeasureConversions#1226138, lambdafunction((((lambda u#1225669.measurementUnit1.code = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1225669.measurementUnit1.internalRefUUID = productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226136.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226136.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226143]
Input [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, internalUUID#1226132, baseUnitOfMeasure#1226136, unitOfMeasureConversions#1226138]
(551) Project
Output [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143.quantityDenominator AS _extract_quantityDenominator#1226654, filteredUnitOfMeasureConversions#1226143.quantityNumerator AS _extract_quantityNumerator#1226655]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, filteredUnitOfMeasureConversions#1226143]
(552) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654, _extract_quantityNumerator#1226655]
Arguments: explode(_extract_quantityNumerator#1226655), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654], true, [quantityNumerator#1226144]
(553) Generate
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, _extract_quantityDenominator#1226654, quantityNumerator#1226144]
Arguments: explode(_extract_quantityDenominator#1226654), [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144], true, [quantityDenominator#1226145]
(554) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, (cast(quantityNumerator#1226144 as double) / cast(quantityDenominator#1226145 as double)) AS outboundUnit#1226146]
Input [7]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, quantityNumerator#1226144, quantityDenominator#1226145]
(555) Project
Output [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, CASE WHEN (isnull(outboundUnit#1226146) OR (outboundUnit#1226146 <= 0.0)) THEN 1.0 ELSE outboundUnit#1226146 END AS outboundUnit#1226147]
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226146]
(556) Sort
Input [6]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147]
Arguments: [product#1226104 ASC NULLS FIRST, plant#1226105 ASC NULLS FIRST], false, 0
(557) Scan parquet
Output [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(558) Filter
Input [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
Condition : (isnotnull(plant#1226151.internalRefUUID) AND isnotnull(product#1226150.internalRefUUID))
(559) Project
Output [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Input [6]: [internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, systemId#1226148]
(560) Exchange
Input [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923894]
(561) BroadcastExchange
Input [6]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1924499]
(562) Scan parquet
Output [2]: [marketUnit#1226154, distributionCenters#1226160]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(563) Filter
Input [2]: [marketUnit#1226154, distributionCenters#1226160]
Condition : (((marketUnit#1226154 <=> AUTO_MUV2) AND (size(distributionCenters#1226160, true) > 0)) AND isnotnull(distributionCenters#1226160))
(564) Project
Output [1]: [distributionCenters#1226160]
Input [2]: [marketUnit#1226154, distributionCenters#1226160]
(565) Exchange
Input [1]: [distributionCenters#1226160]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923898]
(566) Generate
Input [1]: [distributionCenters#1226160]
Arguments: explode(distributionCenters#1226160), false, [distributionCenters#1226176]
(567) Filter
Input [1]: [distributionCenters#1226176]
Condition : (((size(distributionCenters#1226176.storageLocations, true) > 0) AND isnotnull(distributionCenters#1226176.storageLocations)) AND isnotnull(distributionCenters#1226176.internalRefUUID))
(568) Project
Output [2]: [distributionCenters#1226176.internalRefUUID AS _extract_internalRefUUID#1226598, distributionCenters#1226176.storageLocations AS _extract_storageLocations#1226599]
Input [1]: [distributionCenters#1226176]
(569) Generate
Input [2]: [_extract_internalRefUUID#1226598, _extract_storageLocations#1226599]
Arguments: explode(_extract_storageLocations#1226599), [_extract_internalRefUUID#1226598], false, [storageLocations#1226177]
(570) Project
Output [3]: [_extract_internalRefUUID#1226598 AS plantUuid#1226179, storageLocations#1226177.id AS storageLocId#1226180, storageLocations#1226177.internalRefUUID AS storageLocUuid#1226181]
Input [2]: [_extract_internalRefUUID#1226598, storageLocations#1226177]
(571) BroadcastExchange
Input [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924495]
(572) Scan parquet
Output [2]: [product#1226182, plant#1226183]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(573) Filter
Input [2]: [product#1226182, plant#1226183]
Condition : isnotnull(plant#1226183)
(574) Exchange
Input [2]: [product#1226182, plant#1226183]
Arguments: hashpartitioning(product#1226182, plant#1226183, 37), REPARTITION_BY_NUM, [plan_id=1924207]
(575) Scan parquet
Output [4]: [plant#1226188, product#1226189, productionAspect#1226191, systemId#1226186]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(576) Project
Output [4]: [plant#1226188.internalRefUUID AS _extract_internalRefUUID#1226786, product#1226189.internalRefUUID AS _extract_internalRefUUID#1226787, productionAspect#1226191.productMovementPlants.unitOfIssue.code AS _extract_code#1226788, productionAspect#1226191.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226789]
Input [4]: [plant#1226188, product#1226189, productionAspect#1226191, systemId#1226186]
(577) Exchange
Input [4]: [_extract_internalRefUUID#1226786, _extract_internalRefUUID#1226787, _extract_code#1226788, _extract_internalRefUUID#1226789]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923910]
(578) Project
Output [4]: [_extract_code#1226788, _extract_internalRefUUID#1226789, _extract_internalRefUUID#1226787, _extract_internalRefUUID#1226786]
Input [4]: [_extract_internalRefUUID#1226786, _extract_internalRefUUID#1226787, _extract_code#1226788, _extract_internalRefUUID#1226789]
(579) BroadcastExchange
Input [4]: [_extract_code#1226788, _extract_internalRefUUID#1226789, _extract_internalRefUUID#1226787, _extract_internalRefUUID#1226786]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924475]
(580) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226182, ), isnull(product#1226182), coalesce(plant#1226183, ), isnull(plant#1226183)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226787, ), isnull(_extract_internalRefUUID#1226787), coalesce(_extract_internalRefUUID#1226786, ), isnull(_extract_internalRefUUID#1226786)]
Join type: LeftOuter
Join condition: None
(581) Project
Output [4]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789]
Input [6]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789, _extract_internalRefUUID#1226787, _extract_internalRefUUID#1226786]
(582) Scan parquet
Output [2]: [internalUUID#1226196, systemId#1226195]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(583) Project
Output [1]: [internalUUID#1226196]
Input [2]: [internalUUID#1226196, systemId#1226195]
(584) Exchange
Input [1]: [internalUUID#1226196]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923916]
(585) BroadcastExchange
Input [1]: [internalUUID#1226196]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924479]
(586) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226183, ), isnull(plant#1226183)]
Right keys [2]: [coalesce(internalUUID#1226196, ), isnull(internalUUID#1226196)]
Join type: LeftOuter
Join condition: None
(587) Project
Output [4]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789]
Input [5]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789, internalUUID#1226196]
(588) Scan parquet
Output [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(589) Filter
Input [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
Condition : isnotnull(internalUUID#1226210)
(590) Project
Output [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Input [4]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216, systemId#1226209]
(591) Exchange
Input [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923922]
(592) BroadcastExchange
Input [3]: [internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924483]
(593) BroadcastHashJoin
Left keys [1]: [product#1226182]
Right keys [1]: [internalUUID#1226210]
Join type: LeftOuter
Join condition: None
(594) Project
Output [2]: [plant#1226183, filter(unitOfMeasureConversions#1226216, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226788) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226789)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226214.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226214.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226221]
Input [7]: [product#1226182, plant#1226183, _extract_code#1226788, _extract_internalRefUUID#1226789, internalUUID#1226210, baseUnitOfMeasure#1226214, unitOfMeasureConversions#1226216]
(595) Generate
Input [2]: [plant#1226183, filteredUnitOfMeasureConversions#1226221]
Arguments: explode(filteredUnitOfMeasureConversions#1226221.quantityNumerator), [plant#1226183, filteredUnitOfMeasureConversions#1226221], true, [quantityNumerator#1226222]
(596) Project
Output [2]: [plant#1226183, filteredUnitOfMeasureConversions#1226221.quantityDenominator AS _extract_quantityDenominator#1226600]
Input [3]: [plant#1226183, filteredUnitOfMeasureConversions#1226221, quantityNumerator#1226222]
(597) Generate
Input [2]: [plant#1226183, _extract_quantityDenominator#1226600]
Arguments: explode(_extract_quantityDenominator#1226600), [plant#1226183], true, [quantityDenominator#1226223]
(598) Project
Output [1]: [plant#1226183]
Input [2]: [plant#1226183, quantityDenominator#1226223]
(599) HashAggregate
Input [1]: [plant#1226183]
Keys [1]: [plant#1226183]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226183]
(600) Exchange
Input [1]: [plant#1226183]
Arguments: hashpartitioning(plant#1226183, 37), ENSURE_REQUIREMENTS, [plan_id=1924492]
(601) HashAggregate
Input [1]: [plant#1226183]
Keys [1]: [plant#1226183]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226183]
(602) BroadcastHashJoin
Left keys [1]: [plantUuid#1226179]
Right keys [1]: [plant#1226183]
Join type: Inner
Join condition: None
(603) Project
Output [3]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Input [4]: [plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181, plant#1226183]
(604) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226151.internalRefUUID, ), isnull(plant#1226151.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1226179, ), isnull(plantUuid#1226179)]
Join type: Inner
Join condition: None
(605) Generate
Input [9]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, stockQuantities#1226153, plantUuid#1226179, storageLocId#1226180, storageLocUuid#1226181]
Arguments: explode(filter(stockQuantities#1226153, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226181) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226180)), lambda x#1225727, false))), [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179], false, [stockQuantity#1226226]
(606) ObjectHashAggregate
Input [7]: [systemId#1226148, internalUUID#1226149, product#1226150, plant#1226151, calculationDateTime#1226152, plantUuid#1226179, stockQuantity#1226226]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [partial_first(calculationDateTime#1226152, false), partial_collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [3]: [first#1228670, valueSet#1228671, buf#1228672]
Results [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
(607) ObjectHashAggregate
Input [8]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148, first#1228673, valueSet#1228674, buf#1228675]
Keys [5]: [plantUuid#1226179, internalUUID#1226149, plant#1226151, product#1226150, systemId#1226148]
Functions [2]: [first(calculationDateTime#1226152, false), collect_list(stockQuantity#1226226, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1226152)()#1225742, collect_list(stockQuantity#1226226, 0, 0)#1225743]
Results [4]: [product#1226150, plant#1226151, first(calculationDateTime#1226152)()#1225742 AS calculationDateTime#1226227, collect_list(stockQuantity#1226226, 0, 0)#1225743 AS stockQuantities#1226228]
(608) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Condition : ((size(stockQuantities#1226228, true) > 0) AND isnotnull(calculationDateTime#1226227))
(609) Generate
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantities#1226228]
Arguments: explode(stockQuantities#1226228), [product#1226150, plant#1226151, calculationDateTime#1226227], false, [stockQuantity#1226229]
(610) Filter
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
Condition : (((isnotnull(stockQuantity#1226229.specialStockIndicator.code) AND isnotnull(stockQuantity#1226229.stockType.code)) AND (stockQuantity#1226229.specialStockIndicator.code = )) AND (stockQuantity#1226229.stockType.code = 01))
(611) Project
Output [5]: [plant#1226151.internalRefUUID AS plantUuid#1226231, product#1226150.internalRefUUID AS productUuid#1226233, calculationDateTime#1226227, stockQuantity#1226229.storagelocation.id AS storageLocId#1226234, stockQuantity#1226229.quantity.measure AS quantity#1226236]
Input [4]: [product#1226150, plant#1226151, calculationDateTime#1226227, stockQuantity#1226229]
(612) Exchange
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: hashpartitioning(productUuid#1226233, plantUuid#1226231, 37), ENSURE_REQUIREMENTS, [plan_id=1924525]
(613) Sort
Input [5]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236]
Arguments: [productUuid#1226233 ASC NULLS FIRST, plantUuid#1226231 ASC NULLS FIRST], false, 0
(614) Scan parquet
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(615) Filter
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Condition : ((isnotnull(orderDateTime#1226241) AND isnotnull(plant#1226240)) AND isnotnull(product#1226239))
(616) Exchange
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Arguments: hashpartitioning(product#1226239, plant#1226240, 37), REPARTITION_BY_NUM, [plan_id=1924230]
(617) Scan parquet
Output [4]: [plant#1226245, product#1226246, productionAspect#1226248, systemId#1226243]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(618) Project
Output [4]: [plant#1226245.internalRefUUID AS _extract_internalRefUUID#1226793, product#1226246.internalRefUUID AS _extract_internalRefUUID#1226790, productionAspect#1226248.productMovementPlants.unitOfIssue.code AS _extract_code#1226791, productionAspect#1226248.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226792]
Input [4]: [plant#1226245, product#1226246, productionAspect#1226248, systemId#1226243]
(619) Exchange
Input [4]: [_extract_internalRefUUID#1226793, _extract_internalRefUUID#1226790, _extract_code#1226791, _extract_internalRefUUID#1226792]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923947]
(620) Project
Output [4]: [_extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
Input [4]: [_extract_internalRefUUID#1226793, _extract_internalRefUUID#1226790, _extract_code#1226791, _extract_internalRefUUID#1226792]
(621) BroadcastExchange
Input [4]: [_extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924508]
(622) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226239, ), isnull(product#1226239), coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226790, ), isnull(_extract_internalRefUUID#1226790), coalesce(_extract_internalRefUUID#1226793, ), isnull(_extract_internalRefUUID#1226793)]
Join type: LeftOuter
Join condition: None
(623) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792]
Input [7]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, _extract_internalRefUUID#1226790, _extract_internalRefUUID#1226793]
(624) Scan parquet
Output [2]: [internalUUID#1226253, systemId#1226252]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(625) Project
Output [1]: [internalUUID#1226253]
Input [2]: [internalUUID#1226253, systemId#1226252]
(626) Exchange
Input [1]: [internalUUID#1226253]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923953]
(627) BroadcastExchange
Input [1]: [internalUUID#1226253]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924512]
(628) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226240, ), isnull(plant#1226240)]
Right keys [2]: [coalesce(internalUUID#1226253, ), isnull(internalUUID#1226253)]
Join type: LeftOuter
Join condition: None
(629) Project
Output [5]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792]
Input [6]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, internalUUID#1226253]
(630) Scan parquet
Output [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(631) Filter
Input [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
Condition : isnotnull(internalUUID#1226267)
(632) Project
Output [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Input [4]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273, systemId#1226266]
(633) Exchange
Input [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923959]
(634) BroadcastExchange
Input [3]: [internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924516]
(635) BroadcastHashJoin
Left keys [1]: [product#1226239]
Right keys [1]: [internalUUID#1226267]
Join type: LeftOuter
Join condition: None
(636) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filter(unitOfMeasureConversions#1226273, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226791) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226792)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226271.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226271.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226278]
Input [8]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_code#1226791, _extract_internalRefUUID#1226792, internalUUID#1226267, baseUnitOfMeasure#1226271, unitOfMeasureConversions#1226273]
(637) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278]
Arguments: explode(filteredUnitOfMeasureConversions#1226278.quantityNumerator), [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278], true, [quantityNumerator#1226279]
(638) Project
Output [4]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278.quantityDenominator AS _extract_quantityDenominator#1226604]
Input [5]: [product#1226239, plant#1226240, orderDateTime#1226241, filteredUnitOfMeasureConversions#1226278, quantityNumerator#1226279]
(639) Generate
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, _extract_quantityDenominator#1226604]
Arguments: explode(_extract_quantityDenominator#1226604), [product#1226239, plant#1226240, orderDateTime#1226241], true, [quantityDenominator#1226280]
(640) Project
Output [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Input [4]: [product#1226239, plant#1226240, orderDateTime#1226241, quantityDenominator#1226280]
(641) Sort
Input [3]: [product#1226239, plant#1226240, orderDateTime#1226241]
Arguments: [product#1226239 ASC NULLS FIRST, plant#1226240 ASC NULLS FIRST], false, 0
(642) SortMergeJoin
Left keys [2]: [productUuid#1226233, plantUuid#1226231]
Right keys [2]: [product#1226239, plant#1226240]
Join type: Inner
Join condition: (calculationDateTime#1226227 <= orderDateTime#1226241)
(643) Project
Output [5]: [plantUuid#1226231 AS plant#1226283, productUuid#1226233 AS product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Input [8]: [plantUuid#1226231, productUuid#1226233, calculationDateTime#1226227, storageLocId#1226234, quantity#1226236, product#1226239, plant#1226240, orderDateTime#1226241]
(644) Exchange
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: hashpartitioning(coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227), 37), ENSURE_REQUIREMENTS, [plan_id=1924589]
(645) Sort
Input [5]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236]
Arguments: [coalesce(plant#1226283, ) ASC NULLS FIRST, isnull(plant#1226283) ASC NULLS FIRST, coalesce(product#1226284, ) ASC NULLS FIRST, isnull(product#1226284) ASC NULLS FIRST, coalesce(storageLocId#1226234, ) ASC NULLS FIRST, isnull(storageLocId#1226234) ASC NULLS FIRST, coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1226227) ASC NULLS FIRST], false, 0
(646) Scan parquet
Output [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-inventory-inventorysnapshot-v2]
PushedFilters: [IsNotNull(plant.internalRefUUID), IsNotNull(product.internalRefUUID)]
ReadSchema: struct<internalUUID:string,product:struct<internalRefUUID:string,id:string>,plant:struct<internalRefUUID:string,id:string>,calculationDateTime:timestamp,stockQuantities:array<struct<stockType:struct<internalRefUUID:string,code:string>,specialStockIndicator:struct<internalRefUUID:string,code:string>,storageLocation:struct<internalRefUUID:string,id:string,plant:struct<internalRefUUID:string,id:string>>,quantity:struct<measure:double,unitCode:struct<internalRefUUID:string,code:string>>>>>
(647) Filter
Input [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
Condition : (isnotnull(plant#1226288.internalRefUUID) AND isnotnull(product#1226287.internalRefUUID))
(648) Project
Output [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Input [6]: [internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, systemId#1226285]
(649) Exchange
Input [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923971]
(650) BroadcastExchange
Input [6]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID, ), isnull(input[3, struct<internalRefUUID:string,id:string>, true].internalRefUUID)),false), [plan_id=1924554]
(651) Scan parquet
Output [2]: [marketUnit#1226291, distributionCenters#1226297]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(652) Filter
Input [2]: [marketUnit#1226291, distributionCenters#1226297]
Condition : (((marketUnit#1226291 <=> AUTO_MUV2) AND (size(distributionCenters#1226297, true) > 0)) AND isnotnull(distributionCenters#1226297))
(653) Project
Output [1]: [distributionCenters#1226297]
Input [2]: [marketUnit#1226291, distributionCenters#1226297]
(654) Exchange
Input [1]: [distributionCenters#1226297]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923975]
(655) Generate
Input [1]: [distributionCenters#1226297]
Arguments: explode(distributionCenters#1226297), false, [distributionCenters#1226313]
(656) Filter
Input [1]: [distributionCenters#1226313]
Condition : (((size(distributionCenters#1226313.storageLocations, true) > 0) AND isnotnull(distributionCenters#1226313.storageLocations)) AND isnotnull(distributionCenters#1226313.internalRefUUID))
(657) Project
Output [2]: [distributionCenters#1226313.internalRefUUID AS _extract_internalRefUUID#1226608, distributionCenters#1226313.storageLocations AS _extract_storageLocations#1226609]
Input [1]: [distributionCenters#1226313]
(658) Generate
Input [2]: [_extract_internalRefUUID#1226608, _extract_storageLocations#1226609]
Arguments: explode(_extract_storageLocations#1226609), [_extract_internalRefUUID#1226608], false, [storageLocations#1226314]
(659) Project
Output [3]: [_extract_internalRefUUID#1226608 AS plantUuid#1226316, storageLocations#1226314.id AS storageLocId#1226317, storageLocations#1226314.internalRefUUID AS storageLocUuid#1226318]
Input [2]: [_extract_internalRefUUID#1226608, storageLocations#1226314]
(660) BroadcastExchange
Input [3]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924550]
(661) Scan parquet
Output [2]: [product#1226319, plant#1226320]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(662) Filter
Input [2]: [product#1226319, plant#1226320]
Condition : isnotnull(plant#1226320)
(663) Exchange
Input [2]: [product#1226319, plant#1226320]
Arguments: hashpartitioning(product#1226319, plant#1226320, 37), REPARTITION_BY_NUM, [plan_id=1924243]
(664) Scan parquet
Output [4]: [plant#1226325, product#1226326, productionAspect#1226328, systemId#1226323]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(665) Project
Output [4]: [plant#1226325.internalRefUUID AS _extract_internalRefUUID#1226797, product#1226326.internalRefUUID AS _extract_internalRefUUID#1226796, productionAspect#1226328.productMovementPlants.unitOfIssue.code AS _extract_code#1226794, productionAspect#1226328.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226795]
Input [4]: [plant#1226325, product#1226326, productionAspect#1226328, systemId#1226323]
(666) Exchange
Input [4]: [_extract_internalRefUUID#1226797, _extract_internalRefUUID#1226796, _extract_code#1226794, _extract_internalRefUUID#1226795]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923987]
(667) Project
Output [4]: [_extract_code#1226794, _extract_internalRefUUID#1226795, _extract_internalRefUUID#1226796, _extract_internalRefUUID#1226797]
Input [4]: [_extract_internalRefUUID#1226797, _extract_internalRefUUID#1226796, _extract_code#1226794, _extract_internalRefUUID#1226795]
(668) BroadcastExchange
Input [4]: [_extract_code#1226794, _extract_internalRefUUID#1226795, _extract_internalRefUUID#1226796, _extract_internalRefUUID#1226797]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924530]
(669) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226319, ), isnull(product#1226319), coalesce(plant#1226320, ), isnull(plant#1226320)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226796, ), isnull(_extract_internalRefUUID#1226796), coalesce(_extract_internalRefUUID#1226797, ), isnull(_extract_internalRefUUID#1226797)]
Join type: LeftOuter
Join condition: None
(670) Project
Output [4]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795]
Input [6]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795, _extract_internalRefUUID#1226796, _extract_internalRefUUID#1226797]
(671) Scan parquet
Output [2]: [internalUUID#1226333, systemId#1226332]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(672) Project
Output [1]: [internalUUID#1226333]
Input [2]: [internalUUID#1226333, systemId#1226332]
(673) Exchange
Input [1]: [internalUUID#1226333]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923993]
(674) BroadcastExchange
Input [1]: [internalUUID#1226333]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924534]
(675) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226320, ), isnull(plant#1226320)]
Right keys [2]: [coalesce(internalUUID#1226333, ), isnull(internalUUID#1226333)]
Join type: LeftOuter
Join condition: None
(676) Project
Output [4]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795]
Input [5]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795, internalUUID#1226333]
(677) Scan parquet
Output [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(678) Filter
Input [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
Condition : isnotnull(internalUUID#1226347)
(679) Project
Output [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Input [4]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353, systemId#1226346]
(680) Exchange
Input [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1923999]
(681) BroadcastExchange
Input [3]: [internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924538]
(682) BroadcastHashJoin
Left keys [1]: [product#1226319]
Right keys [1]: [internalUUID#1226347]
Join type: LeftOuter
Join condition: None
(683) Project
Output [2]: [plant#1226320, filter(unitOfMeasureConversions#1226353, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226794) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226795)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226351.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226351.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226358]
Input [7]: [product#1226319, plant#1226320, _extract_code#1226794, _extract_internalRefUUID#1226795, internalUUID#1226347, baseUnitOfMeasure#1226351, unitOfMeasureConversions#1226353]
(684) Generate
Input [2]: [plant#1226320, filteredUnitOfMeasureConversions#1226358]
Arguments: explode(filteredUnitOfMeasureConversions#1226358.quantityNumerator), [plant#1226320, filteredUnitOfMeasureConversions#1226358], true, [quantityNumerator#1226359]
(685) Project
Output [2]: [plant#1226320, filteredUnitOfMeasureConversions#1226358.quantityDenominator AS _extract_quantityDenominator#1226610]
Input [3]: [plant#1226320, filteredUnitOfMeasureConversions#1226358, quantityNumerator#1226359]
(686) Generate
Input [2]: [plant#1226320, _extract_quantityDenominator#1226610]
Arguments: explode(_extract_quantityDenominator#1226610), [plant#1226320], true, [quantityDenominator#1226360]
(687) Project
Output [1]: [plant#1226320]
Input [2]: [plant#1226320, quantityDenominator#1226360]
(688) HashAggregate
Input [1]: [plant#1226320]
Keys [1]: [plant#1226320]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226320]
(689) Exchange
Input [1]: [plant#1226320]
Arguments: hashpartitioning(plant#1226320, 37), ENSURE_REQUIREMENTS, [plan_id=1924547]
(690) HashAggregate
Input [1]: [plant#1226320]
Keys [1]: [plant#1226320]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226320]
(691) BroadcastHashJoin
Left keys [1]: [plantUuid#1226316]
Right keys [1]: [plant#1226320]
Join type: Inner
Join condition: None
(692) Project
Output [3]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Input [4]: [plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318, plant#1226320]
(693) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226288.internalRefUUID, ), isnull(plant#1226288.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1226316, ), isnull(plantUuid#1226316)]
Join type: Inner
Join condition: None
(694) Generate
Input [9]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, stockQuantities#1226290, plantUuid#1226316, storageLocId#1226317, storageLocUuid#1226318]
Arguments: explode(filter(stockQuantities#1226290, lambdafunction(((lambda x#1225727.storageLocation.internalRefUuid = storageLocUuid#1226318) AND (lambda x#1225727.storageLocation.Id = storageLocId#1226317)), lambda x#1225727, false))), [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, plantUuid#1226316], false, [stockQuantity#1226363]
(695) ObjectHashAggregate
Input [7]: [systemId#1226285, internalUUID#1226286, product#1226287, plant#1226288, calculationDateTime#1226289, plantUuid#1226316, stockQuantity#1226363]
Keys [5]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285]
Functions [2]: [partial_first(calculationDateTime#1226289, false), partial_collect_list(stockQuantity#1226363, 0, 0)]
Aggregate Attributes [3]: [first#1228678, valueSet#1228679, buf#1228680]
Results [8]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285, first#1228681, valueSet#1228682, buf#1228683]
(696) ObjectHashAggregate
Input [8]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285, first#1228681, valueSet#1228682, buf#1228683]
Keys [5]: [plantUuid#1226316, internalUUID#1226286, plant#1226288, product#1226287, systemId#1226285]
Functions [2]: [first(calculationDateTime#1226289, false), collect_list(stockQuantity#1226363, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1226289)()#1225742, collect_list(stockQuantity#1226363, 0, 0)#1225743]
Results [4]: [product#1226287, plant#1226288, first(calculationDateTime#1226289)()#1225742 AS calculationDateTime#1226364, collect_list(stockQuantity#1226363, 0, 0)#1225743 AS stockQuantities#1226365]
(697) Filter
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantities#1226365]
Condition : ((size(stockQuantities#1226365, true) > 0) AND isnotnull(calculationDateTime#1226364))
(698) Generate
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantities#1226365]
Arguments: explode(stockQuantities#1226365), [product#1226287, plant#1226288, calculationDateTime#1226364], false, [stockQuantity#1226366]
(699) Filter
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantity#1226366]
Condition : (((isnotnull(stockQuantity#1226366.specialStockIndicator.code) AND isnotnull(stockQuantity#1226366.stockType.code)) AND (stockQuantity#1226366.specialStockIndicator.code = )) AND (stockQuantity#1226366.stockType.code = 01))
(700) Project
Output [4]: [plant#1226288.internalRefUUID AS plantUuid#1226368, product#1226287.internalRefUUID AS productUuid#1226370, calculationDateTime#1226364, stockQuantity#1226366.storagelocation.id AS storageLocId#1226371]
Input [4]: [product#1226287, plant#1226288, calculationDateTime#1226364, stockQuantity#1226366]
(701) Exchange
Input [4]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371]
Arguments: hashpartitioning(productUuid#1226370, plantUuid#1226368, 37), ENSURE_REQUIREMENTS, [plan_id=1924580]
(702) Sort
Input [4]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371]
Arguments: [productUuid#1226370 ASC NULLS FIRST, plantUuid#1226368 ASC NULLS FIRST], false, 0
(703) Scan parquet
Output [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(704) Filter
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Condition : ((isnotnull(orderDateTime#1226378) AND isnotnull(plant#1226377)) AND isnotnull(product#1226376))
(705) Exchange
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Arguments: hashpartitioning(product#1226376, plant#1226377, 37), REPARTITION_BY_NUM, [plan_id=1924266]
(706) Scan parquet
Output [4]: [plant#1226382, product#1226383, productionAspect#1226385, systemId#1226380]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(707) Project
Output [4]: [plant#1226382.internalRefUUID AS _extract_internalRefUUID#1226801, product#1226383.internalRefUUID AS _extract_internalRefUUID#1226798, productionAspect#1226385.productMovementPlants.unitOfIssue.code AS _extract_code#1226799, productionAspect#1226385.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226800]
Input [4]: [plant#1226382, product#1226383, productionAspect#1226385, systemId#1226380]
(708) Exchange
Input [4]: [_extract_internalRefUUID#1226801, _extract_internalRefUUID#1226798, _extract_code#1226799, _extract_internalRefUUID#1226800]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924024]
(709) Project
Output [4]: [_extract_code#1226799, _extract_internalRefUUID#1226800, _extract_internalRefUUID#1226798, _extract_internalRefUUID#1226801]
Input [4]: [_extract_internalRefUUID#1226801, _extract_internalRefUUID#1226798, _extract_code#1226799, _extract_internalRefUUID#1226800]
(710) BroadcastExchange
Input [4]: [_extract_code#1226799, _extract_internalRefUUID#1226800, _extract_internalRefUUID#1226798, _extract_internalRefUUID#1226801]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924563]
(711) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226376, ), isnull(product#1226376), coalesce(plant#1226377, ), isnull(plant#1226377)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226798, ), isnull(_extract_internalRefUUID#1226798), coalesce(_extract_internalRefUUID#1226801, ), isnull(_extract_internalRefUUID#1226801)]
Join type: LeftOuter
Join condition: None
(712) Project
Output [5]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800]
Input [7]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800, _extract_internalRefUUID#1226798, _extract_internalRefUUID#1226801]
(713) Scan parquet
Output [2]: [internalUUID#1226390, systemId#1226389]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(714) Project
Output [1]: [internalUUID#1226390]
Input [2]: [internalUUID#1226390, systemId#1226389]
(715) Exchange
Input [1]: [internalUUID#1226390]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924030]
(716) BroadcastExchange
Input [1]: [internalUUID#1226390]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924567]
(717) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226377, ), isnull(plant#1226377)]
Right keys [2]: [coalesce(internalUUID#1226390, ), isnull(internalUUID#1226390)]
Join type: LeftOuter
Join condition: None
(718) Project
Output [5]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800]
Input [6]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800, internalUUID#1226390]
(719) Scan parquet
Output [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(720) Filter
Input [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
Condition : isnotnull(internalUUID#1226404)
(721) Project
Output [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Input [4]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410, systemId#1226403]
(722) Exchange
Input [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924036]
(723) BroadcastExchange
Input [3]: [internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924571]
(724) BroadcastHashJoin
Left keys [1]: [product#1226376]
Right keys [1]: [internalUUID#1226404]
Join type: LeftOuter
Join condition: None
(725) Project
Output [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filter(unitOfMeasureConversions#1226410, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226799) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226800)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226408.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226408.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226415]
Input [8]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_code#1226799, _extract_internalRefUUID#1226800, internalUUID#1226404, baseUnitOfMeasure#1226408, unitOfMeasureConversions#1226410]
(726) Generate
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415]
Arguments: explode(filteredUnitOfMeasureConversions#1226415.quantityNumerator), [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415], true, [quantityNumerator#1226416]
(727) Project
Output [4]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415.quantityDenominator AS _extract_quantityDenominator#1226614]
Input [5]: [product#1226376, plant#1226377, orderDateTime#1226378, filteredUnitOfMeasureConversions#1226415, quantityNumerator#1226416]
(728) Generate
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, _extract_quantityDenominator#1226614]
Arguments: explode(_extract_quantityDenominator#1226614), [product#1226376, plant#1226377, orderDateTime#1226378], true, [quantityDenominator#1226417]
(729) Project
Output [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Input [4]: [product#1226376, plant#1226377, orderDateTime#1226378, quantityDenominator#1226417]
(730) Sort
Input [3]: [product#1226376, plant#1226377, orderDateTime#1226378]
Arguments: [product#1226376 ASC NULLS FIRST, plant#1226377 ASC NULLS FIRST], false, 0
(731) SortMergeJoin
Left keys [2]: [productUuid#1226370, plantUuid#1226368]
Right keys [2]: [product#1226376, plant#1226377]
Join type: Inner
Join condition: (calculationDateTime#1226364 <= orderDateTime#1226378)
(732) Project
Output [4]: [plantUuid#1226368 AS plant#1226420, productUuid#1226370 AS product#1226421, storageLocId#1226371, calculationDateTime#1226364]
Input [7]: [plantUuid#1226368, productUuid#1226370, calculationDateTime#1226364, storageLocId#1226371, product#1226376, plant#1226377, orderDateTime#1226378]
(733) HashAggregate
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, calculationDateTime#1226364]
Keys [3]: [plant#1226420, product#1226421, storageLocId#1226371]
Functions [1]: [partial_max(calculationDateTime#1226364)]
Aggregate Attributes [1]: [max#1228676]
Results [4]: [plant#1226420, product#1226421, storageLocId#1226371, max#1228677]
(734) HashAggregate
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max#1228677]
Keys [3]: [plant#1226420, product#1226421, storageLocId#1226371]
Functions [1]: [max(calculationDateTime#1226364)]
Aggregate Attributes [1]: [max(calculationDateTime#1226364)#1225820]
Results [4]: [plant#1226420, product#1226421, storageLocId#1226371, max(calculationDateTime#1226364)#1225820 AS max_calc_datetime#1226422]
(735) Exchange
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: hashpartitioning(coalesce(plant#1226420, ), isnull(plant#1226420), coalesce(product#1226421, ), isnull(product#1226421), coalesce(storageLocId#1226371, ), isnull(storageLocId#1226371), coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00), isnull(max_calc_datetime#1226422), 37), ENSURE_REQUIREMENTS, [plan_id=1924590]
(736) Sort
Input [4]: [plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
Arguments: [coalesce(plant#1226420, ) ASC NULLS FIRST, isnull(plant#1226420) ASC NULLS FIRST, coalesce(product#1226421, ) ASC NULLS FIRST, isnull(product#1226421) ASC NULLS FIRST, coalesce(storageLocId#1226371, ) ASC NULLS FIRST, isnull(storageLocId#1226371) ASC NULLS FIRST, coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1226422) ASC NULLS FIRST], false, 0
(737) SortMergeJoin
Left keys [8]: [coalesce(plant#1226283, ), isnull(plant#1226283), coalesce(product#1226284, ), isnull(product#1226284), coalesce(storageLocId#1226234, ), isnull(storageLocId#1226234), coalesce(calculationDateTime#1226227, 1970-01-01 00:00:00), isnull(calculationDateTime#1226227)]
Right keys [8]: [coalesce(plant#1226420, ), isnull(plant#1226420), coalesce(product#1226421, ), isnull(product#1226421), coalesce(storageLocId#1226371, ), isnull(storageLocId#1226371), coalesce(max_calc_datetime#1226422, 1970-01-01 00:00:00), isnull(max_calc_datetime#1226422)]
Join type: Inner
Join condition: None
(738) Project
Output [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Input [9]: [plant#1226283, product#1226284, storageLocId#1226234, calculationDateTime#1226227, quantity#1226236, plant#1226420, product#1226421, storageLocId#1226371, max_calc_datetime#1226422]
(739) HashAggregate
Input [4]: [plant#1226283, product#1226284, calculationDateTime#1226227, quantity#1226236]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [partial_min(calculationDateTime#1226227), partial_sum(quantity#1226236)]
Aggregate Attributes [2]: [min#1228666, sum#1228667]
Results [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
(740) Exchange
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Arguments: hashpartitioning(product#1226284, plant#1226283, 37), ENSURE_REQUIREMENTS, [plan_id=1924597]
(741) HashAggregate
Input [4]: [product#1226284, plant#1226283, min#1228668, sum#1228669]
Keys [2]: [product#1226284, plant#1226283]
Functions [2]: [min(calculationDateTime#1226227), sum(quantity#1226236)]
Aggregate Attributes [2]: [min(calculationDateTime#1226227)#1225976, sum(quantity#1226236)#1225975]
Results [4]: [product#1226284, plant#1226283, min(calculationDateTime#1226227)#1225976 AS minCalculationDateTime#1226424, round(sum(quantity#1226236)#1225975, 0) AS roundedQuantitySum#1226425]
(742) Sort
Input [4]: [product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
Arguments: [product#1226284 ASC NULLS FIRST, plant#1226283 ASC NULLS FIRST], false, 0
(743) SortMergeJoin
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226284, plant#1226283]
Join type: LeftOuter
Join condition: None
(744) Project
Output [8]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, CASE WHEN isnotnull(minCalculationDateTime#1226424) THEN minCalculationDateTime#1226424 ELSE orderDateTime#1226106 END AS stockDatetime#1226426, CASE WHEN isnotnull(roundedQuantitySum#1226425) THEN array(roundedQuantitySum#1226425) ELSE [0.0] END AS stockBatchQuantities#1226427]
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, product#1226284, plant#1226283, minCalculationDateTime#1226424, roundedQuantitySum#1226425]
(745) Filter
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Condition : (isnotnull(product#1226029) AND isnotnull(plant#1226030))
(746) BroadcastExchange
Input [9]: [product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1924606]
(747) BroadcastHashJoin
Left keys [2]: [product#1226104, plant#1226105]
Right keys [2]: [product#1226029, plant#1226030]
Join type: LeftOuter
Join condition: None
(748) Project
Output [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, CASE WHEN isnotnull(product#1226029) THEN struct(demandChannel, demandChannel#1226031, demandStream, demandStream#1226032, considerVariance, considerVariance#1226033, demandTimeBuckets, demandTimeBuckets#1226034, demandPointInTimeStart, demandPointInTimeStart#1226035, demandPointInTimeEnd, demandPointInTimeEnd#1226036, demandPointInTime, demandPointInTime#1226037) END AS rawDemands#1226050]
Input [17]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, product#1226029, plant#1226030, demandChannel#1226031, demandStream#1226032, considerVariance#1226033, demandTimeBuckets#1226034, demandPointInTimeStart#1226035, demandPointInTimeEnd#1226036, demandPointInTime#1226037]
(749) ObjectHashAggregate
Input [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, rawDemands#1226050]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, knownfloatingpointnormalized(if (isnull(productPlant#1226116)) null else named_struct(systemId, productPlant#1226116.systemId, internalUUID, productPlant#1226116.internalUUID, plant, productPlant#1226116.plant, product, productPlant#1226116.product, blockedForReplenishmentStartingFrom, productPlant#1226116.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect)) null else named_struct(productMovementPlants, productPlant#1226116.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1226116.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1226116.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1226116.salesPlant, listing, productPlant#1226116.listing)) AS productPlant#1226116, timezonecode#1226130, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1226147)) AS outboundUnit#1226147, stockDatetime#1226426, knownfloatingpointnormalized(transform(stockBatchQuantities#1226427, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1228663)), lambda arg#1228663, false))) AS stockBatchQuantities#1226427, [7226582400000000] AS [7226582400000000]#1228662]
Functions [1]: [partial_collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [buf#1228664]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1228662, buf#1228665]
(750) ObjectHashAggregate
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1228662, buf#1228665]
Keys [9]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000]#1228662]
Functions [1]: [collect_list(rawDemands#1226050, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1226050, 0, 0)#1226069]
Results [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1226428, collect_list(rawDemands#1226050, 0, 0)#1226069 AS rawDemands#1226051]
(751) DeserializeToObject
Input [10]: [product#1226104, plant#1226105, orderDateTime#1226106, productPlant#1226116, timezonecode#1226130, outboundUnit#1226147, stockDatetime#1226426, stockBatchQuantities#1226427, stockBatchShelfLifeEndDatetimes#1226428, rawDemands#1226051]
Arguments: createexternalrow(invoke(product#1226104.toString()), invoke(plant#1226105.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1226106)), if (isnull(productPlant#1226116)) null else createexternalrow(invoke(productPlant#1226116.systemId.toString()), invoke(productPlant#1226116.internalUUID.toString()), if (isnull(productPlant#1226116.plant)) null else createexternalrow(invoke(productPlant#1226116.plant.internalRefUUID.toString()), invoke(productPlant#1226116.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1226116.product)) null else createexternalrow(invoke(productPlant#1226116.product.internalRefUUID.toString()), invoke(productPlant#1226116.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1226116.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1226116.productionAspect)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productMovementPlants.unitOfIssue.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1226116.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1226116.productionAspect.productPlanningPlants.sourceOfSupplyCategory.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true), StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(minimumLotSize,DoubleType,true), StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true), StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)), if (isnull(productPlant#1226116.salesPlant)) null else createexternalrow(if (isnull(productPlant#1226116.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1226116.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1226116.salesPlant.loadingGroup.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)), mapobjects(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1), if (isnull(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validFrom)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).validTo)), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true), true, -1).isListed)), StructField(validFrom,TimestampType,true), StructField(validTo,TimestampType,true), StructField(isListed,BooleanType,true)), productPlant#1226116.listing, Some(class scala.collection.mutable.ArraySeq)), StructField(systemId,StringType,true), StructField(internalUUID,StringType,true), StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true), StructField(blockedForReplenishmentStartingFrom,DateType,true), StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true), StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true), StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)), invoke(timezonecode#1226130.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1226147)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1226426)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#1226427, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#1226428, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4), createexternalrow(invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandChannel.toString()), invoke(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandStream.toString()), static_invoke(java.lang.Boolean.valueOf(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).considerVariance)), mapobjects(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5), if (isnull(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandStartDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -5).demandVariance)), StructField(demandStartDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandTimeBuckets, Some(class scala.collection.mutable.ArraySeq)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeStart)), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTimeEnd)), mapobjects(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6), if (isnull(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6))) null else createexternalrow(static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandDateTime)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandQuantity)), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true), true, -6).demandVariance)), StructField(demandDateTime,TimestampType,true), StructField(demandQuantity,DoubleType,true), StructField(demandVariance,DoubleType,true)), lambdavariable(MapObject, StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), false, -4).demandPointInTime, Some(class scala.collection.mutable.ArraySeq)), StructField(demandChannel,StringType,true), StructField(demandStream,StringType,true), StructField(considerVariance,BooleanType,true), StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true), StructField(demandPointInTimeStart,TimestampType,true), StructField(demandPointInTimeEnd,TimestampType,true), StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)), rawDemands#1226051, Some(class scala.collection.mutable.ArraySeq)), StructField(product,StringType,true), StructField(plant,StringType,true), StructField(orderDateTime,TimestampType,true), StructField(productPlant,StructType(StructField(systemId,StringType,true),StructField(internalUUID,StringType,true),StructField(plant,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(product,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(blockedForReplenishmentStartingFrom,DateType,true),StructField(productionAspect,StructType(StructField(productMovementPlants,StructType(StructField(unitOfIssue,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(productPlanningPlants,StructType(StructField(mrpType,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(abcIndicator,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true),StructField(mrpController,StructType(StructField(internalRefUUID,StringType,true),StructField(id,StringType,true)),true),StructField(minimumLotSize,DoubleType,true),StructField(logisticalRoundingProfile,StructType(StructField(internalRefUUID,StringType,true),StructField(logisticalRoundingProfile,StringType,true)),true),StructField(sourceOfSupplyCategory,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true)),true),StructField(salesPlant,StructType(StructField(loadingGroup,StructType(StructField(internalRefUUID,StringType,true),StructField(code,StringType,true)),true)),true),StructField(listing,ArrayType(StructType(StructField(validFrom,TimestampType,true),StructField(validTo,TimestampType,true),StructField(isListed,BooleanType,true)),true),true)),true), StructField(timezonecode,StringType,true), StructField(outboundUnit,DoubleType,true), StructField(stockDatetime,TimestampType,true), StructField(stockBatchQuantities,ArrayType(DoubleType,true),false), StructField(stockBatchShelfLifeEndDatetimes,ArrayType(TimestampType,false),false), StructField(rawDemands,ArrayType(StructType(StructField(demandChannel,StringType,true),StructField(demandStream,StringType,true),StructField(considerVariance,BooleanType,true),StructField(demandTimeBuckets,ArrayType(StructType(StructField(demandStartDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true),StructField(demandPointInTimeStart,TimestampType,true),StructField(demandPointInTimeEnd,TimestampType,true),StructField(demandPointInTime,ArrayType(StructType(StructField(demandDateTime,TimestampType,true),StructField(demandQuantity,DoubleType,true),StructField(demandVariance,DoubleType,true)),true),true)),false),false)), obj#1226090: org.apache.spark.sql.Row
(752) MapElements
Input [1]: [obj#1226090]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@58fc6bc3, obj#1226095: org.apache.spark.sql.Row
(753) SerializeFromObject
Input [1]: [obj#1226095]
Arguments: [if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(0))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 0, product), StringType, ObjectType(class java.lang.String)))) AS product#1226100, if (invoke(assertnotnull(input[0, org.apache.spark.sql.Row, true]).isNullAt(1))) null else static_invoke(UTF8String.fromString(validateexternaltype(getexternalrowfield(assertnotnull(input[0, org.apache.spark.sql.Row, true]), 1, plant), StringType, ObjectType(class java.lang.String)))) AS plant#1226101]
(754) Exchange
Input [2]: [product#1226100, plant#1226101]
Arguments: hashpartitioning(coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100), 37), ENSURE_REQUIREMENTS, [plan_id=1924617]
(755) Sort
Input [2]: [product#1226100, plant#1226101]
Arguments: [coalesce(plant#1226101, ) ASC NULLS FIRST, isnull(plant#1226101) ASC NULLS FIRST, coalesce(product#1226100, ) ASC NULLS FIRST, isnull(product#1226100) ASC NULLS FIRST], false, 0
(756) SortMergeJoin
Left keys [4]: [coalesce(plant#1225623, ), isnull(plant#1225623), coalesce(product#1225622, ), isnull(product#1225622)]
Right keys [4]: [coalesce(plant#1226101, ), isnull(plant#1226101), coalesce(product#1226100, ), isnull(product#1226100)]
Join type: LeftOuter
Join condition: None
(757) Project
Output [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Input [6]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026, product#1226100, plant#1226101]
(758) Exchange
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: hashpartitioning(plant#1225623, 37), ENSURE_REQUIREMENTS, [plan_id=1924647]
(759) Sort
Input [4]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026]
Arguments: [plant#1225623 ASC NULLS FIRST], false, 0
(760) Scan parquet
Output [2]: [marketUnit#1226493, distributionCenters#1226499]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/prp/market-unit]
PushedFilters: [EqualNullSafe(marketUnit,AUTO_MUV2), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(761) Filter
Input [2]: [marketUnit#1226493, distributionCenters#1226499]
Condition : (((marketUnit#1226493 <=> AUTO_MUV2) AND (size(distributionCenters#1226499, true) > 0)) AND isnotnull(distributionCenters#1226499))
(762) Project
Output [1]: [distributionCenters#1226499]
Input [2]: [marketUnit#1226493, distributionCenters#1226499]
(763) Exchange
Input [1]: [distributionCenters#1226499]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924068]
(764) Generate
Input [1]: [distributionCenters#1226499]
Arguments: explode(distributionCenters#1226499), false, [distributionCenters#1226515]
(765) Filter
Input [1]: [distributionCenters#1226515]
Condition : (((size(distributionCenters#1226515.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1226515.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1226515.internalRefUUID))
(766) Project
Output [2]: [distributionCenters#1226515.internalRefUUID AS _extract_internalRefUUID#1226618, distributionCenters#1226515.storageLocations.internalRefUUID AS _extract_internalRefUUID#1226803]
Input [1]: [distributionCenters#1226515]
(767) Generate
Input [2]: [_extract_internalRefUUID#1226618, _extract_internalRefUUID#1226803]
Arguments: explode(_extract_internalRefUUID#1226803), [_extract_internalRefUUID#1226618], false, [storageLocations#1226516]
(768) Filter
Input [2]: [_extract_internalRefUUID#1226618, storageLocations#1226516]
Condition : isnotnull(storageLocations#1226516)
(769) Project
Output [2]: [_extract_internalRefUUID#1226618 AS plantUuid#1226518, storageLocations#1226516 AS storageLocUuid#1226520]
Input [2]: [_extract_internalRefUUID#1226618, storageLocations#1226516]
(770) BroadcastExchange
Input [2]: [plantUuid#1226518, storageLocUuid#1226520]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924642]
(771) Scan parquet
Output [2]: [product#1226521, plant#1226522]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-order-qty-opt-service/out/product-plant-list/10000001356/shardId=0_1_10000001356]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(772) Filter
Input [2]: [product#1226521, plant#1226522]
Condition : isnotnull(plant#1226522)
(773) Exchange
Input [2]: [product#1226521, plant#1226522]
Arguments: hashpartitioning(product#1226521, plant#1226522, 37), REPARTITION_BY_NUM, [plan_id=1924296]
(774) Scan parquet
Output [4]: [plant#1226527, product#1226528, productionAspect#1226530, systemId#1226525]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-productplant]
ReadSchema: struct<plant:struct<internalRefUUID:string>,product:struct<internalRefUUID:string>,productionAspect:struct<productMovementPlants:struct<unitOfIssue:struct<internalRefUUID:string,code:string>>>>
(775) Project
Output [4]: [plant#1226527.internalRefUUID AS _extract_internalRefUUID#1226804, product#1226528.internalRefUUID AS _extract_internalRefUUID#1226807, productionAspect#1226530.productMovementPlants.unitOfIssue.code AS _extract_code#1226805, productionAspect#1226530.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1226806]
Input [4]: [plant#1226527, product#1226528, productionAspect#1226530, systemId#1226525]
(776) Exchange
Input [4]: [_extract_internalRefUUID#1226804, _extract_internalRefUUID#1226807, _extract_code#1226805, _extract_internalRefUUID#1226806]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924081]
(777) Project
Output [4]: [_extract_code#1226805, _extract_internalRefUUID#1226806, _extract_internalRefUUID#1226807, _extract_internalRefUUID#1226804]
Input [4]: [_extract_internalRefUUID#1226804, _extract_internalRefUUID#1226807, _extract_code#1226805, _extract_internalRefUUID#1226806]
(778) BroadcastExchange
Input [4]: [_extract_code#1226805, _extract_internalRefUUID#1226806, _extract_internalRefUUID#1226807, _extract_internalRefUUID#1226804]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[2, string, true], ), isnull(input[2, string, true]), coalesce(input[3, string, true], ), isnull(input[3, string, true])),false), [plan_id=1924622]
(779) BroadcastHashJoin
Left keys [4]: [coalesce(product#1226521, ), isnull(product#1226521), coalesce(plant#1226522, ), isnull(plant#1226522)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1226807, ), isnull(_extract_internalRefUUID#1226807), coalesce(_extract_internalRefUUID#1226804, ), isnull(_extract_internalRefUUID#1226804)]
Join type: LeftOuter
Join condition: None
(780) Project
Output [4]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806]
Input [6]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806, _extract_internalRefUUID#1226807, _extract_internalRefUUID#1226804]
(781) Scan parquet
Output [2]: [internalUUID#1226535, systemId#1226534]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-plant-plant]
ReadSchema: struct<internalUUID:string>
(782) Project
Output [1]: [internalUUID#1226535]
Input [2]: [internalUUID#1226535, systemId#1226534]
(783) Exchange
Input [1]: [internalUUID#1226535]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924087]
(784) BroadcastExchange
Input [1]: [internalUUID#1226535]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1924626]
(785) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1226522, ), isnull(plant#1226522)]
Right keys [2]: [coalesce(internalUUID#1226535, ), isnull(internalUUID#1226535)]
Join type: LeftOuter
Join condition: None
(786) Project
Output [4]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806]
Input [5]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806, internalUUID#1226535]
(787) Scan parquet
Output [4]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555, systemId#1226548]
Batched: true
Location: PreparedDeltaFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-dl-stream-service/cornerstone/sap-cic-product-product-v2]
PushedFilters: [IsNotNull(internalUUID)]
ReadSchema: struct<internalUUID:string,baseUnitOfMeasure:struct<internalRefUUID:string,code:string>,unitOfMeasureConversions:array<struct<measurementUnit1:struct<internalRefUUID:string,code:string>,measurementUnit2:struct<internalRefUUID:string,code:string>,quantityNumerator:int,quantityDenominator:int>>>
(788) Filter
Input [4]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555, systemId#1226548]
Condition : isnotnull(internalUUID#1226549)
(789) Project
Output [3]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555]
Input [4]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555, systemId#1226548]
(790) Exchange
Input [3]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924093]
(791) BroadcastExchange
Input [3]: [internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1924630]
(792) BroadcastHashJoin
Left keys [1]: [product#1226521]
Right keys [1]: [internalUUID#1226549]
Join type: LeftOuter
Join condition: None
(793) Project
Output [2]: [plant#1226522, filter(unitOfMeasureConversions#1226555, lambdafunction((((lambda u#1225669.measurementUnit1.code = _extract_code#1226805) AND (lambda u#1225669.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1226806)) AND ((lambda u#1225669.measurementUnit2.code = baseUnitOfMeasure#1226553.code) AND (lambda u#1225669.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1226553.internalRefUUID))), lambda u#1225669, false)) AS filteredUnitOfMeasureConversions#1226560]
Input [7]: [product#1226521, plant#1226522, _extract_code#1226805, _extract_internalRefUUID#1226806, internalUUID#1226549, baseUnitOfMeasure#1226553, unitOfMeasureConversions#1226555]
(794) Generate
Input [2]: [plant#1226522, filteredUnitOfMeasureConversions#1226560]
Arguments: explode(filteredUnitOfMeasureConversions#1226560.quantityNumerator), [plant#1226522, filteredUnitOfMeasureConversions#1226560], true, [quantityNumerator#1226561]
(795) Project
Output [2]: [plant#1226522, filteredUnitOfMeasureConversions#1226560.quantityDenominator AS _extract_quantityDenominator#1226620]
Input [3]: [plant#1226522, filteredUnitOfMeasureConversions#1226560, quantityNumerator#1226561]
(796) Generate
Input [2]: [plant#1226522, _extract_quantityDenominator#1226620]
Arguments: explode(_extract_quantityDenominator#1226620), [plant#1226522], true, [quantityDenominator#1226562]
(797) Project
Output [1]: [plant#1226522]
Input [2]: [plant#1226522, quantityDenominator#1226562]
(798) HashAggregate
Input [1]: [plant#1226522]
Keys [1]: [plant#1226522]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226522]
(799) Exchange
Input [1]: [plant#1226522]
Arguments: hashpartitioning(plant#1226522, 37), ENSURE_REQUIREMENTS, [plan_id=1924639]
(800) HashAggregate
Input [1]: [plant#1226522]
Keys [1]: [plant#1226522]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1226522]
(801) BroadcastHashJoin
Left keys [1]: [plantUuid#1226518]
Right keys [1]: [plant#1226522]
Join type: Inner
Join condition: None
(802) Project
Output [2]: [plantUuid#1226518 AS plant#1226492, storageLocUuid#1226520]
Input [3]: [plantUuid#1226518, storageLocUuid#1226520, plant#1226522]
(803) Sort
Input [2]: [plant#1226492, storageLocUuid#1226520]
Arguments: [plant#1226492 ASC NULLS FIRST], false, 0
(804) SortMergeJoin
Left keys [1]: [plant#1225623]
Right keys [1]: [plant#1226492]
Join type: Inner
Join condition: None
(805) Project
Output [5]: [plant#1225623, product#1225622, timezonecode#1225654, stockDatetime#1226026, storageLocUuid#1226520]
Input [6]: [product#1225622, plant#1225623, timezonecode#1225654, stockDatetime#1226026, plant#1226492, storageLocUuid#1226520]
(806) Filter
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
Condition : (((isnotnull(isMarkedForDeletion#1226460) AND NOT isMarkedForDeletion#1226460) AND (size(items#1226461, true) > 0)) AND isnotnull(items#1226461))
(807) Project
Output [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Input [6]: [internalUUID#1226454, id#1226455, supplier#1226457, isMarkedForDeletion#1226460, items#1226461, systemId#1226453]
(808) Exchange
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1924109]
(809) Generate
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, items#1226461]
Arguments: explode(items#1226461), [internalUUID#1226454, id#1226455, supplier#1226457], false, [item#1226465]
(810) Filter
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, item#1226465]
Condition : ((((isnotnull(item#1226465.deletionIndicator) AND isnotnull(item#1226465.completeIndicator)) AND isnotnull(item#1226465.returnIndicator)) AND ((NOT item#1226465.deletionIndicator AND NOT item#1226465.completeIndicator) AND NOT item#1226465.returnIndicator)) AND ((isnotnull(item#1226465.product.internalRefUUID) AND isnotnull(item#1226465.plant.internalRefUUID)) AND isnotnull(item#1226465.storageLocation.internalRefUUID)))
(811) Project
Output [14]: [id#1226455, internalUUID#1226454, supplier#1226457.internalRefUUID AS supplierUuid#1226462, item#1226465.plant.internalRefUUID AS plant#1226470, item#1226465.product.internalRefUUID AS product#1226471, item#1226465.plant.id AS externalPlantId#1226472, item#1226465.product.id AS externalProductId#1226473, item#1226465.storageLocation.internalRefUUID AS storageLocUuid#1226474, item#1226465.quantityUnit.code AS quantityUom#1226475, item#1226465.quantityUnit.internalRefUUID AS quantityUomUuid#1226476, item#1226465.quantityNumerator AS quantityNumerator#1226477, item#1226465.quantityDenominator AS quantityDenominator#1226478, item#1226465.scheduleLines AS scheduleLines#1226479, item#1226465.confirmations AS confirmations#1226480]
Input [4]: [internalUUID#1226454, id#1226455, supplier#1226457, item#1226465]
(812) BroadcastExchange
Input [14]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
Arguments: HashedRelationBroadcastMode(List(input[4, string, true], input[3, string, true], input[7, string, true]),false), [plan_id=1924653]
(813) BroadcastHashJoin
Left keys [3]: [product#1225622, plant#1225623, storageLocUuid#1226520]
Right keys [3]: [product#1226471, plant#1226470, storageLocUuid#1226474]
Join type: Inner
Join condition: None
(814) Project
Output [17]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, filter(confirmations#1226480, lambdafunction(((NOT lambda x_149#1226571.deletionIndicator AND lambda x_149#1226571.isRelevantForConfirmation) AND isnotnull(lambda x_149#1226571.confirmedDeliveryAt)), lambda x_149#1226571, false)) AS validConfirmations#1226570]
Input [19]: [plant#1225623, product#1225622, timezonecode#1225654, stockDatetime#1226026, storageLocUuid#1226520, id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480]
(815) AdaptiveSparkPlan
Output [17]: [id#1226455, internalUUID#1226454, supplierUuid#1226462, plant#1226470, product#1226471, externalPlantId#1226472, externalProductId#1226473, storageLocUuid#1226474, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, confirmations#1226480, stockDatetime#1226026, timezonecode#1225654, validConfirmations#1226570]
Arguments: isFinalPlan=true
(816) Project
Output [11]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, size(validConfirmations#1226570, false) AS _w0#1228785]
Input [10]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityDenominator#1226478, quantityNumerator#1226477, quantityUom#1226475, quantityUomUuid#1226476, scheduleLines#1226479, validConfirmations#1226570]
(817) Exchange
Input [11]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, _w0#1228785]
Arguments: hashpartitioning(internalUUID#1226454, 37), ENSURE_REQUIREMENTS, [plan_id=1924681]
(818) Sort
Input [11]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, _w0#1228785]
Arguments: [internalUUID#1226454 ASC NULLS FIRST], false, 0
(819) Window
Input [11]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, _w0#1228785]
Arguments: [sum(_w0#1228785) windowspecdefinition(internalUUID#1226454, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1228786L], [internalUUID#1226454]
(820) Project
Output [3]: [plant#1226470, product#1226471, filter(transform(CASE WHEN (_we0#1228786L > 0) THEN transform(validConfirmations#1226570, lambdafunction(struct(openQty, greatest((lambda x_151#1228781.confirmedQuantity - coalesce(lambda x_151#1228781.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_151#1228781.confirmedDeliveryAt), lambda x_151#1228781, false)) ELSE transform(scheduleLines#1226479, lambdafunction(struct(openQty, greatest((lambda x_150#1228782.quantity - coalesce(lambda x_150#1228782.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_150#1228782.deliveryAt), lambda x_150#1228782, false)) END, lambdafunction(struct(documentId, id#1226455, documentUuid, internalUUID#1226454, openQty, lambda x_152#1228783.openQty, openQtyInBaseUnit, ((lambda x_152#1228783.openQty * quantityNumerator#1226477) / quantityDenominator#1226478), qtyUom, quantityUom#1226475, qtyUomUuid, quantityUomUuid#1226476, availabilityDatetime, lambda x_152#1228783.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_152#1228783, false)), lambdafunction(NOT (lambda x_153#1228784.openQty = 0.0), lambda x_153#1228784, false)) AS openGoodsMovements#1228779]
Input [12]: [id#1226455, internalUUID#1226454, plant#1226470, product#1226471, quantityUom#1226475, quantityUomUuid#1226476, quantityNumerator#1226477, quantityDenominator#1226478, scheduleLines#1226479, validConfirmations#1226570, _w0#1228785, _we0#1228786L]
(821) ObjectHashAggregate
Input [3]: [plant#1226470, product#1226471, openGoodsMovements#1228779]
Keys [2]: [product#1226471, plant#1226470]
Functions [1]: [partial_collect_list(openGoodsMovements#1228779, 0, 0)]
Aggregate Attributes [1]: [buf#1229062]
Results [3]: [product#1226471, plant#1226470, buf#1229063]
(822) Exchange
Input [3]: [product#1226471, plant#1226470, buf#1229063]
Arguments: hashpartitioning(product#1226471, plant#1226470, 37), ENSURE_REQUIREMENTS, [plan_id=1924687]
(823) ObjectHashAggregate
Input [3]: [product#1226471, plant#1226470, buf#1229063]
Keys [2]: [product#1226471, plant#1226470]
Functions [1]: [collect_list(openGoodsMovements#1228779, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1228779, 0, 0)#1228806]
Results [3]: [product#1226471, plant#1226470, flatten(collect_list(openGoodsMovements#1228779, 0, 0)#1228806) AS openGoodsMovements#1228787]
(824) Filter
Input [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Condition : (size(openGoodsMovements#1228787, false) > 0)
(825) AdaptiveSparkPlan
Output [3]: [product#1226471, plant#1226470, openGoodsMovements#1228787]
Arguments: isFinalPlan=true
(826) TableCacheQueryStage
Output [3]: [openGoodsMovements#1228787, plant#1226470, product#1226471]
Arguments: 0
(827) Filter
Input [3]: [openGoodsMovements#1228787, plant#1226470, product#1226471]
Condition : (size(transform(openGoodsMovements#1228787, lambdafunction(struct(documentType, PO, documentId, lambda x_158#1239780.documentId, documentUuid, lambda x_158#1239780.documentUuid, openQty, lambda x_158#1239780.openQty, qtyUomUuid, lambda x_158#1239780.qtyUomUuid, qtyUom, lambda x_158#1239780.qtyUom, plannedDeliveryDatetime, lambda x_158#1239780.availabilityDatetime), lambda x_158#1239780, false)), false) > 0)
(828) Project
Output [4]: [product#1226471, plant#1226470 AS location#1239776, transform(openGoodsMovements#1228787, lambdafunction(struct(documentType, PO, documentId, lambda x_158#1239780.documentId, documentUuid, lambda x_158#1239780.documentUuid, openQty, lambda x_158#1239780.openQty, qtyUomUuid, lambda x_158#1239780.qtyUomUuid, qtyUom, lambda x_158#1239780.qtyUom, plannedDeliveryDatetime, lambda x_158#1239780.availabilityDatetime), lambda x_158#1239780, false)) AS documents#1239779, 10000001356 AS replenishmentRunId#1239781L]
Input [3]: [openGoodsMovements#1228787, plant#1226470, product#1226471]
(829) WriteFiles
Input [4]: [product#1226471, location#1239776, documents#1239779, replenishmentRunId#1239781L]
(830) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000001356/0_1_10000001356, false, Parquet, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000001356/0_1_10000001356], Append, [product, location, documents, replenishmentRunId]
(831) ResultQueryStage
Output: []
Arguments: 1
(832) Filter
Input [3]: [openGoodsMovements#1228787, plant#1226470, product#1226471]
Condition : (size(transform(openGoodsMovements#1228787, lambdafunction(struct(documentType, PO, documentId, lambda x_158#1239780.documentId, documentUuid, lambda x_158#1239780.documentUuid, openQty, lambda x_158#1239780.openQty, qtyUomUuid, lambda x_158#1239780.qtyUomUuid, qtyUom, lambda x_158#1239780.qtyUom, plannedDeliveryDatetime, lambda x_158#1239780.availabilityDatetime), lambda x_158#1239780, false)), false) > 0)
(833) Project
Output [4]: [product#1226471, plant#1226470 AS location#1239776, transform(openGoodsMovements#1228787, lambdafunction(struct(documentType, PO, documentId, lambda x_158#1239780.documentId, documentUuid, lambda x_158#1239780.documentUuid, openQty, lambda x_158#1239780.openQty, qtyUomUuid, lambda x_158#1239780.qtyUomUuid, qtyUom, lambda x_158#1239780.qtyUom, plannedDeliveryDatetime, lambda x_158#1239780.availabilityDatetime), lambda x_158#1239780, false)) AS documents#1239779, 10000001356 AS replenishmentRunId#1239781L]
Input [3]: [openGoodsMovements#1228787, plant#1226470, product#1226471]
(834) WriteFiles
Input [4]: [product#1226471, location#1239776, documents#1239779, replenishmentRunId#1239781L]
(835) Execute InsertIntoHadoopFsRelationCommand
Input: []
Arguments: hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000001356/0_1_10000001356, false, Parquet, [path=hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/prp-op-traceability-results/raw/crp-order-quantity-kpi-service/ogr/10000001356/0_1_10000001356], Append, [product, location, documents, replenishmentRunId]
(836) AdaptiveSparkPlan
Output: []
Arguments: isFinalPlan=true