== Physical Plan ==
AdaptiveSparkPlan (837)
+- == Final Plan ==
ResultQueryStage (832), Statistics(sizeInBytes=8.0 EiB)
+- Execute InsertIntoHadoopFsRelationCommand (831)
+- WriteFiles (830)
+- Project (829)
+- Filter (828)
+- TableCacheQueryStage (827), Statistics(sizeInBytes=0.0 B, rowCount=0)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (826)
+- == Final Plan ==
ResultQueryStage (4)
+- EmptyRelation (3)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (825)
+- ObjectHashAggregate (824)
+- Exchange (823)
+- ObjectHashAggregate (822)
+- Project (821)
+- Window (820)
+- Sort (819)
+- Exchange (818)
+- Project (817)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- AdaptiveSparkPlan (816)
+- == Final Plan ==
ResultQueryStage (323)
+- Project (322)
+- * BroadcastHashJoin Inner BuildRight (321)
:- * Project (309)
: +- * BroadcastHashJoin Inner BuildLeft (308)
: :- BroadcastQueryStage (292), Statistics(sizeInBytes=2.0 MiB, rowCount=1.29E+3)
: : +- BroadcastExchange (291)
: : +- AQEShuffleRead (290)
: : +- ShuffleQueryStage (289), Statistics(sizeInBytes=151.6 KiB, rowCount=1.29E+3)
: : +- Exchange (288)
: : +- * Project (287)
: : +- * BroadcastHashJoin LeftOuter BuildRight (286)
: : :- AQEShuffleRead (180)
: : : +- ShuffleQueryStage (179), Statistics(sizeInBytes=151.6 KiB, rowCount=1.29E+3)
: : : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : : +- 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=378)
: : : +- BroadcastExchange (174)
: : : +- * HashAggregate (173)
: : : +- AQEShuffleRead (172)
: : : +- ShuffleQueryStage (171), Statistics(sizeInBytes=35.4 KiB, rowCount=378)
: : : +- Exchange (170)
: : : +- * HashAggregate (169)
: : : +- * Project (168)
: : : +- * BroadcastHashJoin Inner BuildLeft (167)
: : : :- BroadcastQueryStage (139), Statistics(sizeInBytes=2.0 MiB, rowCount=378)
: : : : +- BroadcastExchange (138)
: : : : +- AQEShuffleRead (137)
: : : : +- ShuffleQueryStage (136), Statistics(sizeInBytes=41.3 KiB, rowCount=378)
: : : : +- Exchange (135)
: : : : +- * Project (134)
: : : : +- * BroadcastHashJoin Inner BuildLeft (133)
: : : : :- BroadcastQueryStage (111), Statistics(sizeInBytes=2.0 MiB, rowCount=415)
: : : : : +- BroadcastExchange (110)
: : : : : +- AQEShuffleRead (109)
: : : : : +- ShuffleQueryStage (108), Statistics(sizeInBytes=45.4 KiB, rowCount=415)
: : : : : +- 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=11)
: : : : : : +- BroadcastExchange (64)
: : : : : : +- * Project (63)
: : : : : : +- * Generate (62)
: : : : : : +- * Project (61)
: : : : : : +- * Filter (60)
: : : : : : +- * Generate (59)
: : : : : : +- ShuffleQueryStage (58), Statistics(sizeInBytes=1880.0 B, rowCount=1)
: : : : : : +- Exchange (57)
: : : : : : +- * Project (56)
: : : : : : +- * Filter (55)
: : : : : : +- * ColumnarToRow (54)
: : : : : : +- Scan parquet (53)
: : : : : +- * HashAggregate (96)
: : : : : +- AQEShuffleRead (95)
: : : : : +- ShuffleQueryStage (94), Statistics(sizeInBytes=16.5 KiB, rowCount=353)
: : : : : +- 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=111.2 KiB, rowCount=1.29E+3)
: : : : : : : : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : : +- 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=41.3 KiB, rowCount=378)
: : : +- Exchange (164)
: : : +- * HashAggregate (163)
: : : +- * HashAggregate (162)
: : : +- * Project (161)
: : : +- * BroadcastHashJoin Inner BuildLeft (160)
: : : :- BroadcastQueryStage (141), Statistics(sizeInBytes=2.0 MiB, rowCount=415)
: : : : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : +- 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.1 MiB, rowCount=1.29E+3)
: : +- BroadcastExchange (284)
: : +- AQEShuffleRead (283)
: : +- ShuffleQueryStage (282), Statistics(sizeInBytes=111.2 KiB, rowCount=1.29E+3)
: : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : : +- 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=378)
: : : +- BroadcastExchange (265)
: : : +- * HashAggregate (264)
: : : +- AQEShuffleRead (263)
: : : +- ShuffleQueryStage (262), Statistics(sizeInBytes=38.4 KiB, rowCount=378)
: : : +- Exchange (261)
: : : +- * HashAggregate (260)
: : : +- * Project (259)
: : : +- * BroadcastHashJoin Inner BuildLeft (258)
: : : :- BroadcastQueryStage (254), Statistics(sizeInBytes=2.0 MiB, rowCount=378)
: : : : +- BroadcastExchange (253)
: : : : +- AQEShuffleRead (252)
: : : : +- ShuffleQueryStage (251), Statistics(sizeInBytes=44.3 KiB, rowCount=378)
: : : : +- Exchange (250)
: : : : +- * Project (249)
: : : : +- * BroadcastHashJoin Inner BuildLeft (248)
: : : : :- BroadcastQueryStage (229), Statistics(sizeInBytes=2.0 MiB, rowCount=415)
: : : : : +- BroadcastExchange (228)
: : : : : +- AQEShuffleRead (227)
: : : : : +- ShuffleQueryStage (226), Statistics(sizeInBytes=48.6 KiB, rowCount=415)
: : : : : +- 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=11)
: : : : : : +- ReusedExchange (209)
: : : : : +- * HashAggregate (214)
: : : : : +- AQEShuffleRead (213)
: : : : : +- ShuffleQueryStage (212), Statistics(sizeInBytes=16.5 KiB, rowCount=353)
: : : : : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : : +- 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=41.3 KiB, rowCount=378)
: : : +- ReusedExchange (255)
: : +- BroadcastQueryStage (273), Statistics(sizeInBytes=2.1 MiB, rowCount=1.29E+3)
: : +- BroadcastExchange (272)
: : +- * Filter (271)
: : +- * ColumnarToRow (270)
: : +- Scan parquet (269)
: +- * Project (307)
: +- * BroadcastHashJoin Inner BuildLeft (306)
: :- BroadcastQueryStage (302), Statistics(sizeInBytes=2.0 MiB, rowCount=11)
: : +- BroadcastExchange (301)
: : +- * Project (300)
: : +- * Filter (299)
: : +- * Generate (298)
: : +- * Project (297)
: : +- * Filter (296)
: : +- * Generate (295)
: : +- ShuffleQueryStage (294), Statistics(sizeInBytes=1880.0 B, rowCount=1)
: : +- ReusedExchange (293)
: +- * HashAggregate (305)
: +- ShuffleQueryStage (304), Statistics(sizeInBytes=16.5 KiB, rowCount=353)
: +- ReusedExchange (303)
+- BroadcastQueryStage (320), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (319)
+- * Project (318)
+- * Filter (317)
+- * Generate (316)
+- ShuffleQueryStage (315), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (314)
+- * Project (313)
+- * Filter (312)
+- * ColumnarToRow (311)
+- Scan parquet (310)
+- == Initial Plan ==
Project (815)
+- BroadcastHashJoin Inner BuildRight (814)
:- Project (806)
: +- SortMergeJoin Inner (805)
: :- Sort (760)
: : +- Exchange (759)
: : +- Project (758)
: : +- SortMergeJoin LeftOuter (757)
: : :- Sort (532)
: : : +- Exchange (531)
: : : +- Project (530)
: : : +- SortMergeJoin LeftOuter (529)
: : : :- Sort (347)
: : : : +- Project (346)
: : : : +- Generate (345)
: : : : +- Project (344)
: : : : +- Generate (343)
: : : : +- Project (342)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (341)
: : : : :- Project (336)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (335)
: : : : : :- Project (331)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (330)
: : : : : : :- Exchange (325)
: : : : : : : +- Filter (324)
: : : : : : : +- Scan parquet (7)
: : : : : : +- BroadcastExchange (329)
: : : : : : +- Project (328)
: : : : : : +- Exchange (327)
: : : : : : +- Project (326)
: : : : : : +- Scan parquet (12)
: : : : : +- BroadcastExchange (334)
: : : : : +- Exchange (333)
: : : : : +- Project (332)
: : : : : +- Scan parquet (22)
: : : : +- BroadcastExchange (340)
: : : : +- Exchange (339)
: : : : +- Project (338)
: : : : +- Filter (337)
: : : : +- Scan parquet (31)
: : : +- Sort (528)
: : : +- HashAggregate (527)
: : : +- Exchange (526)
: : : +- HashAggregate (525)
: : : +- Project (524)
: : : +- SortMergeJoin Inner (523)
: : : :- Sort (431)
: : : : +- Exchange (430)
: : : : +- Project (429)
: : : : +- SortMergeJoin Inner (428)
: : : : :- Sort (400)
: : : : : +- Exchange (399)
: : : : : +- Project (398)
: : : : : +- Filter (397)
: : : : : +- Generate (396)
: : : : : +- Filter (395)
: : : : : +- ObjectHashAggregate (394)
: : : : : +- ObjectHashAggregate (393)
: : : : : +- Generate (392)
: : : : : +- BroadcastHashJoin Inner BuildLeft (391)
: : : : : :- BroadcastExchange (351)
: : : : : : +- Exchange (350)
: : : : : : +- Project (349)
: : : : : : +- Filter (348)
: : : : : : +- Scan parquet (45)
: : : : : +- Project (390)
: : : : : +- BroadcastHashJoin Inner BuildLeft (389)
: : : : : :- BroadcastExchange (360)
: : : : : : +- Project (359)
: : : : : : +- Generate (358)
: : : : : : +- Project (357)
: : : : : : +- Filter (356)
: : : : : : +- Generate (355)
: : : : : : +- Exchange (354)
: : : : : : +- Project (353)
: : : : : : +- Filter (352)
: : : : : : +- Scan parquet (53)
: : : : : +- HashAggregate (388)
: : : : : +- Exchange (387)
: : : : : +- HashAggregate (386)
: : : : : +- Project (385)
: : : : : +- Generate (384)
: : : : : +- Project (383)
: : : : : +- Generate (382)
: : : : : +- Project (381)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (380)
: : : : : :- Project (374)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (373)
: : : : : : :- Project (369)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (368)
: : : : : : : :- Exchange (362)
: : : : : : : : +- Filter (361)
: : : : : : : : +- Scan parquet (66)
: : : : : : : +- BroadcastExchange (367)
: : : : : : : +- Project (366)
: : : : : : : +- Exchange (365)
: : : : : : : +- Project (364)
: : : : : : : +- Scan parquet (363)
: : : : : : +- BroadcastExchange (372)
: : : : : : +- Exchange (371)
: : : : : : +- Project (370)
: : : : : : +- Scan parquet (75)
: : : : : +- BroadcastExchange (379)
: : : : : +- Exchange (378)
: : : : : +- Project (377)
: : : : : +- Filter (376)
: : : : : +- Scan parquet (375)
: : : : +- Sort (427)
: : : : +- Project (426)
: : : : +- Generate (425)
: : : : +- Project (424)
: : : : +- Generate (423)
: : : : +- Project (422)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (421)
: : : : :- Project (415)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (414)
: : : : : :- Project (409)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (408)
: : : : : : :- Exchange (402)
: : : : : : : +- Filter (401)
: : : : : : : +- Scan parquet (112)
: : : : : : +- BroadcastExchange (407)
: : : : : : +- Project (406)
: : : : : : +- Exchange (405)
: : : : : : +- Project (404)
: : : : : : +- Scan parquet (403)
: : : : : +- BroadcastExchange (413)
: : : : : +- Exchange (412)
: : : : : +- Project (411)
: : : : : +- Scan parquet (410)
: : : : +- BroadcastExchange (420)
: : : : +- Exchange (419)
: : : : +- Project (418)
: : : : +- Filter (417)
: : : : +- Scan parquet (416)
: : : +- Sort (522)
: : : +- Exchange (521)
: : : +- HashAggregate (520)
: : : +- HashAggregate (519)
: : : +- Project (518)
: : : +- SortMergeJoin Inner (517)
: : : :- Sort (488)
: : : : +- Exchange (487)
: : : : +- Project (486)
: : : : +- Filter (485)
: : : : +- Generate (484)
: : : : +- Filter (483)
: : : : +- ObjectHashAggregate (482)
: : : : +- ObjectHashAggregate (481)
: : : : +- Generate (480)
: : : : +- BroadcastHashJoin Inner BuildLeft (479)
: : : : :- BroadcastExchange (436)
: : : : : +- Exchange (435)
: : : : : +- Project (434)
: : : : : +- Filter (433)
: : : : : +- Scan parquet (432)
: : : : +- Project (478)
: : : : +- BroadcastHashJoin Inner BuildLeft (477)
: : : : :- BroadcastExchange (446)
: : : : : +- Project (445)
: : : : : +- Generate (444)
: : : : : +- Project (443)
: : : : : +- Filter (442)
: : : : : +- Generate (441)
: : : : : +- Exchange (440)
: : : : : +- Project (439)
: : : : : +- Filter (438)
: : : : : +- Scan parquet (437)
: : : : +- HashAggregate (476)
: : : : +- Exchange (475)
: : : : +- HashAggregate (474)
: : : : +- Project (473)
: : : : +- Generate (472)
: : : : +- Project (471)
: : : : +- Generate (470)
: : : : +- Project (469)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (468)
: : : : :- Project (462)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (461)
: : : : : :- Project (456)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (455)
: : : : : : :- Exchange (449)
: : : : : : : +- Filter (448)
: : : : : : : +- Scan parquet (447)
: : : : : : +- BroadcastExchange (454)
: : : : : : +- Project (453)
: : : : : : +- Exchange (452)
: : : : : : +- Project (451)
: : : : : : +- Scan parquet (450)
: : : : : +- BroadcastExchange (460)
: : : : : +- Exchange (459)
: : : : : +- Project (458)
: : : : : +- Scan parquet (457)
: : : : +- BroadcastExchange (467)
: : : : +- Exchange (466)
: : : : +- Project (465)
: : : : +- Filter (464)
: : : : +- Scan parquet (463)
: : : +- Sort (516)
: : : +- Project (515)
: : : +- Generate (514)
: : : +- Project (513)
: : : +- Generate (512)
: : : +- Project (511)
: : : +- BroadcastHashJoin LeftOuter BuildRight (510)
: : : :- Project (504)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (503)
: : : : :- Project (498)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (497)
: : : : : :- Exchange (491)
: : : : : : +- Filter (490)
: : : : : : +- Scan parquet (489)
: : : : : +- BroadcastExchange (496)
: : : : : +- Project (495)
: : : : : +- Exchange (494)
: : : : : +- Project (493)
: : : : : +- Scan parquet (492)
: : : : +- BroadcastExchange (502)
: : : : +- Exchange (501)
: : : : +- Project (500)
: : : : +- Scan parquet (499)
: : : +- BroadcastExchange (509)
: : : +- Exchange (508)
: : : +- Project (507)
: : : +- Filter (506)
: : : +- Scan parquet (505)
: : +- Sort (756)
: : +- Exchange (755)
: : +- SerializeFromObject (754)
: : +- MapElements (753)
: : +- DeserializeToObject (752)
: : +- ObjectHashAggregate (751)
: : +- ObjectHashAggregate (750)
: : +- Project (749)
: : +- BroadcastHashJoin LeftOuter BuildRight (748)
: : :- Project (745)
: : : +- SortMergeJoin LeftOuter (744)
: : : :- Sort (557)
: : : : +- Project (556)
: : : : +- Project (555)
: : : : +- Generate (554)
: : : : +- Generate (553)
: : : : +- Project (552)
: : : : +- Project (551)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (550)
: : : : :- Project (544)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (543)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (538)
: : : : : : :- Exchange (533)
: : : : : : : +- Scan parquet (181)
: : : : : : +- BroadcastExchange (537)
: : : : : : +- Project (536)
: : : : : : +- Exchange (535)
: : : : : : +- Project (534)
: : : : : : +- Scan parquet (185)
: : : : : +- BroadcastExchange (542)
: : : : : +- Exchange (541)
: : : : : +- Project (540)
: : : : : +- Scan parquet (539)
: : : : +- BroadcastExchange (549)
: : : : +- Exchange (548)
: : : : +- Project (547)
: : : : +- Filter (546)
: : : : +- Scan parquet (545)
: : : +- Sort (743)
: : : +- HashAggregate (742)
: : : +- Exchange (741)
: : : +- HashAggregate (740)
: : : +- Project (739)
: : : +- SortMergeJoin Inner (738)
: : : :- Sort (646)
: : : : +- Exchange (645)
: : : : +- Project (644)
: : : : +- SortMergeJoin Inner (643)
: : : : :- Sort (614)
: : : : : +- Exchange (613)
: : : : : +- Project (612)
: : : : : +- Filter (611)
: : : : : +- Generate (610)
: : : : : +- Filter (609)
: : : : : +- ObjectHashAggregate (608)
: : : : : +- ObjectHashAggregate (607)
: : : : : +- Generate (606)
: : : : : +- BroadcastHashJoin Inner BuildLeft (605)
: : : : : :- BroadcastExchange (562)
: : : : : : +- Exchange (561)
: : : : : : +- Project (560)
: : : : : : +- Filter (559)
: : : : : : +- Scan parquet (558)
: : : : : +- Project (604)
: : : : : +- BroadcastHashJoin Inner BuildLeft (603)
: : : : : :- BroadcastExchange (572)
: : : : : : +- Project (571)
: : : : : : +- Generate (570)
: : : : : : +- Project (569)
: : : : : : +- Filter (568)
: : : : : : +- Generate (567)
: : : : : : +- Exchange (566)
: : : : : : +- Project (565)
: : : : : : +- Filter (564)
: : : : : : +- Scan parquet (563)
: : : : : +- HashAggregate (602)
: : : : : +- Exchange (601)
: : : : : +- HashAggregate (600)
: : : : : +- Project (599)
: : : : : +- Generate (598)
: : : : : +- Project (597)
: : : : : +- Generate (596)
: : : : : +- Project (595)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (594)
: : : : : :- Project (588)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (587)
: : : : : : :- Project (582)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (581)
: : : : : : : :- Exchange (575)
: : : : : : : : +- Filter (574)
: : : : : : : : +- Scan parquet (573)
: : : : : : : +- BroadcastExchange (580)
: : : : : : : +- Project (579)
: : : : : : : +- Exchange (578)
: : : : : : : +- Project (577)
: : : : : : : +- Scan parquet (576)
: : : : : : +- BroadcastExchange (586)
: : : : : : +- Exchange (585)
: : : : : : +- Project (584)
: : : : : : +- Scan parquet (583)
: : : : : +- BroadcastExchange (593)
: : : : : +- Exchange (592)
: : : : : +- Project (591)
: : : : : +- Filter (590)
: : : : : +- Scan parquet (589)
: : : : +- Sort (642)
: : : : +- Project (641)
: : : : +- Generate (640)
: : : : +- Project (639)
: : : : +- Generate (638)
: : : : +- Project (637)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (636)
: : : : :- Project (630)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (629)
: : : : : :- Project (624)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (623)
: : : : : : :- Exchange (617)
: : : : : : : +- Filter (616)
: : : : : : : +- Scan parquet (615)
: : : : : : +- BroadcastExchange (622)
: : : : : : +- Project (621)
: : : : : : +- Exchange (620)
: : : : : : +- Project (619)
: : : : : : +- Scan parquet (618)
: : : : : +- BroadcastExchange (628)
: : : : : +- Exchange (627)
: : : : : +- Project (626)
: : : : : +- Scan parquet (625)
: : : : +- BroadcastExchange (635)
: : : : +- Exchange (634)
: : : : +- Project (633)
: : : : +- Filter (632)
: : : : +- Scan parquet (631)
: : : +- Sort (737)
: : : +- Exchange (736)
: : : +- HashAggregate (735)
: : : +- HashAggregate (734)
: : : +- Project (733)
: : : +- SortMergeJoin Inner (732)
: : : :- Sort (703)
: : : : +- Exchange (702)
: : : : +- Project (701)
: : : : +- Filter (700)
: : : : +- Generate (699)
: : : : +- Filter (698)
: : : : +- ObjectHashAggregate (697)
: : : : +- ObjectHashAggregate (696)
: : : : +- Generate (695)
: : : : +- BroadcastHashJoin Inner BuildLeft (694)
: : : : :- BroadcastExchange (651)
: : : : : +- Exchange (650)
: : : : : +- Project (649)
: : : : : +- Filter (648)
: : : : : +- Scan parquet (647)
: : : : +- Project (693)
: : : : +- BroadcastHashJoin Inner BuildLeft (692)
: : : : :- BroadcastExchange (661)
: : : : : +- Project (660)
: : : : : +- Generate (659)
: : : : : +- Project (658)
: : : : : +- Filter (657)
: : : : : +- Generate (656)
: : : : : +- Exchange (655)
: : : : : +- Project (654)
: : : : : +- Filter (653)
: : : : : +- Scan parquet (652)
: : : : +- HashAggregate (691)
: : : : +- Exchange (690)
: : : : +- HashAggregate (689)
: : : : +- Project (688)
: : : : +- Generate (687)
: : : : +- Project (686)
: : : : +- Generate (685)
: : : : +- Project (684)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (683)
: : : : :- Project (677)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (676)
: : : : : :- Project (671)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (670)
: : : : : : :- Exchange (664)
: : : : : : : +- Filter (663)
: : : : : : : +- Scan parquet (662)
: : : : : : +- BroadcastExchange (669)
: : : : : : +- Project (668)
: : : : : : +- Exchange (667)
: : : : : : +- Project (666)
: : : : : : +- Scan parquet (665)
: : : : : +- BroadcastExchange (675)
: : : : : +- Exchange (674)
: : : : : +- Project (673)
: : : : : +- Scan parquet (672)
: : : : +- BroadcastExchange (682)
: : : : +- Exchange (681)
: : : : +- Project (680)
: : : : +- Filter (679)
: : : : +- Scan parquet (678)
: : : +- Sort (731)
: : : +- Project (730)
: : : +- Generate (729)
: : : +- Project (728)
: : : +- Generate (727)
: : : +- Project (726)
: : : +- BroadcastHashJoin LeftOuter BuildRight (725)
: : : :- Project (719)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (718)
: : : : :- Project (713)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (712)
: : : : : :- Exchange (706)
: : : : : : +- Filter (705)
: : : : : : +- Scan parquet (704)
: : : : : +- BroadcastExchange (711)
: : : : : +- Project (710)
: : : : : +- Exchange (709)
: : : : : +- Project (708)
: : : : : +- Scan parquet (707)
: : : : +- BroadcastExchange (717)
: : : : +- Exchange (716)
: : : : +- Project (715)
: : : : +- Scan parquet (714)
: : : +- BroadcastExchange (724)
: : : +- Exchange (723)
: : : +- Project (722)
: : : +- Filter (721)
: : : +- Scan parquet (720)
: : +- BroadcastExchange (747)
: : +- Filter (746)
: : +- Scan parquet (269)
: +- Sort (804)
: +- Project (803)
: +- BroadcastHashJoin Inner BuildLeft (802)
: :- BroadcastExchange (771)
: : +- Project (770)
: : +- Filter (769)
: : +- Generate (768)
: : +- Project (767)
: : +- Filter (766)
: : +- Generate (765)
: : +- Exchange (764)
: : +- Project (763)
: : +- Filter (762)
: : +- Scan parquet (761)
: +- HashAggregate (801)
: +- Exchange (800)
: +- HashAggregate (799)
: +- Project (798)
: +- Generate (797)
: +- Project (796)
: +- Generate (795)
: +- Project (794)
: +- BroadcastHashJoin LeftOuter BuildRight (793)
: :- Project (787)
: : +- BroadcastHashJoin LeftOuter BuildRight (786)
: : :- Project (781)
: : : +- BroadcastHashJoin LeftOuter BuildRight (780)
: : : :- Exchange (774)
: : : : +- Filter (773)
: : : : +- Scan parquet (772)
: : : +- BroadcastExchange (779)
: : : +- Project (778)
: : : +- Exchange (777)
: : : +- Project (776)
: : : +- Scan parquet (775)
: : +- BroadcastExchange (785)
: : +- Exchange (784)
: : +- Project (783)
: : +- Scan parquet (782)
: +- BroadcastExchange (792)
: +- Exchange (791)
: +- Project (790)
: +- Filter (789)
: +- Scan parquet (788)
+- BroadcastExchange (813)
+- Project (812)
+- Filter (811)
+- Generate (810)
+- Exchange (809)
+- Project (808)
+- Filter (807)
+- Scan parquet (310)
+- == Initial Plan ==
Execute InsertIntoHadoopFsRelationCommand (836)
+- WriteFiles (835)
+- Project (834)
+- Filter (833)
+- InMemoryTableScan (1)
+- InMemoryRelation (2)
+- AdaptiveSparkPlan (826)
+- == Final Plan ==
ResultQueryStage (4)
+- EmptyRelation (3)
+- Filter (unknown)
+- EmptyRelation (unknown)
+- == Initial Plan ==
Filter (825)
+- ObjectHashAggregate (824)
+- Exchange (823)
+- ObjectHashAggregate (822)
+- Project (821)
+- Window (820)
+- Sort (819)
+- Exchange (818)
+- Project (817)
+- InMemoryTableScan (5)
+- InMemoryRelation (6)
+- AdaptiveSparkPlan (816)
+- == Final Plan ==
ResultQueryStage (323)
+- Project (322)
+- * BroadcastHashJoin Inner BuildRight (321)
:- * Project (309)
: +- * BroadcastHashJoin Inner BuildLeft (308)
: :- BroadcastQueryStage (292), Statistics(sizeInBytes=2.0 MiB, rowCount=1.29E+3)
: : +- BroadcastExchange (291)
: : +- AQEShuffleRead (290)
: : +- ShuffleQueryStage (289), Statistics(sizeInBytes=151.6 KiB, rowCount=1.29E+3)
: : +- Exchange (288)
: : +- * Project (287)
: : +- * BroadcastHashJoin LeftOuter BuildRight (286)
: : :- AQEShuffleRead (180)
: : : +- ShuffleQueryStage (179), Statistics(sizeInBytes=151.6 KiB, rowCount=1.29E+3)
: : : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : : +- 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=378)
: : : +- BroadcastExchange (174)
: : : +- * HashAggregate (173)
: : : +- AQEShuffleRead (172)
: : : +- ShuffleQueryStage (171), Statistics(sizeInBytes=35.4 KiB, rowCount=378)
: : : +- Exchange (170)
: : : +- * HashAggregate (169)
: : : +- * Project (168)
: : : +- * BroadcastHashJoin Inner BuildLeft (167)
: : : :- BroadcastQueryStage (139), Statistics(sizeInBytes=2.0 MiB, rowCount=378)
: : : : +- BroadcastExchange (138)
: : : : +- AQEShuffleRead (137)
: : : : +- ShuffleQueryStage (136), Statistics(sizeInBytes=41.3 KiB, rowCount=378)
: : : : +- Exchange (135)
: : : : +- * Project (134)
: : : : +- * BroadcastHashJoin Inner BuildLeft (133)
: : : : :- BroadcastQueryStage (111), Statistics(sizeInBytes=2.0 MiB, rowCount=415)
: : : : : +- BroadcastExchange (110)
: : : : : +- AQEShuffleRead (109)
: : : : : +- ShuffleQueryStage (108), Statistics(sizeInBytes=45.4 KiB, rowCount=415)
: : : : : +- 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=11)
: : : : : : +- BroadcastExchange (64)
: : : : : : +- * Project (63)
: : : : : : +- * Generate (62)
: : : : : : +- * Project (61)
: : : : : : +- * Filter (60)
: : : : : : +- * Generate (59)
: : : : : : +- ShuffleQueryStage (58), Statistics(sizeInBytes=1880.0 B, rowCount=1)
: : : : : : +- Exchange (57)
: : : : : : +- * Project (56)
: : : : : : +- * Filter (55)
: : : : : : +- * ColumnarToRow (54)
: : : : : : +- Scan parquet (53)
: : : : : +- * HashAggregate (96)
: : : : : +- AQEShuffleRead (95)
: : : : : +- ShuffleQueryStage (94), Statistics(sizeInBytes=16.5 KiB, rowCount=353)
: : : : : +- 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=111.2 KiB, rowCount=1.29E+3)
: : : : : : : : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : : +- 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=41.3 KiB, rowCount=378)
: : : +- Exchange (164)
: : : +- * HashAggregate (163)
: : : +- * HashAggregate (162)
: : : +- * Project (161)
: : : +- * BroadcastHashJoin Inner BuildLeft (160)
: : : :- BroadcastQueryStage (141), Statistics(sizeInBytes=2.0 MiB, rowCount=415)
: : : : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : +- 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.1 MiB, rowCount=1.29E+3)
: : +- BroadcastExchange (284)
: : +- AQEShuffleRead (283)
: : +- ShuffleQueryStage (282), Statistics(sizeInBytes=111.2 KiB, rowCount=1.29E+3)
: : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : : +- 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=378)
: : : +- BroadcastExchange (265)
: : : +- * HashAggregate (264)
: : : +- AQEShuffleRead (263)
: : : +- ShuffleQueryStage (262), Statistics(sizeInBytes=38.4 KiB, rowCount=378)
: : : +- Exchange (261)
: : : +- * HashAggregate (260)
: : : +- * Project (259)
: : : +- * BroadcastHashJoin Inner BuildLeft (258)
: : : :- BroadcastQueryStage (254), Statistics(sizeInBytes=2.0 MiB, rowCount=378)
: : : : +- BroadcastExchange (253)
: : : : +- AQEShuffleRead (252)
: : : : +- ShuffleQueryStage (251), Statistics(sizeInBytes=44.3 KiB, rowCount=378)
: : : : +- Exchange (250)
: : : : +- * Project (249)
: : : : +- * BroadcastHashJoin Inner BuildLeft (248)
: : : : :- BroadcastQueryStage (229), Statistics(sizeInBytes=2.0 MiB, rowCount=415)
: : : : : +- BroadcastExchange (228)
: : : : : +- AQEShuffleRead (227)
: : : : : +- ShuffleQueryStage (226), Statistics(sizeInBytes=48.6 KiB, rowCount=415)
: : : : : +- 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=11)
: : : : : : +- ReusedExchange (209)
: : : : : +- * HashAggregate (214)
: : : : : +- AQEShuffleRead (213)
: : : : : +- ShuffleQueryStage (212), Statistics(sizeInBytes=16.5 KiB, rowCount=353)
: : : : : +- 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=121.3 KiB, rowCount=1.29E+3)
: : : : : : : +- 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=41.3 KiB, rowCount=378)
: : : +- ReusedExchange (255)
: : +- BroadcastQueryStage (273), Statistics(sizeInBytes=2.1 MiB, rowCount=1.29E+3)
: : +- BroadcastExchange (272)
: : +- * Filter (271)
: : +- * ColumnarToRow (270)
: : +- Scan parquet (269)
: +- * Project (307)
: +- * BroadcastHashJoin Inner BuildLeft (306)
: :- BroadcastQueryStage (302), Statistics(sizeInBytes=2.0 MiB, rowCount=11)
: : +- BroadcastExchange (301)
: : +- * Project (300)
: : +- * Filter (299)
: : +- * Generate (298)
: : +- * Project (297)
: : +- * Filter (296)
: : +- * Generate (295)
: : +- ShuffleQueryStage (294), Statistics(sizeInBytes=1880.0 B, rowCount=1)
: : +- ReusedExchange (293)
: +- * HashAggregate (305)
: +- ShuffleQueryStage (304), Statistics(sizeInBytes=16.5 KiB, rowCount=353)
: +- ReusedExchange (303)
+- BroadcastQueryStage (320), Statistics(sizeInBytes=2.0 MiB, rowCount=4)
+- BroadcastExchange (319)
+- * Project (318)
+- * Filter (317)
+- * Generate (316)
+- ShuffleQueryStage (315), Statistics(sizeInBytes=2.9 KiB, rowCount=4)
+- Exchange (314)
+- * Project (313)
+- * Filter (312)
+- * ColumnarToRow (311)
+- Scan parquet (310)
+- == Initial Plan ==
Project (815)
+- BroadcastHashJoin Inner BuildRight (814)
:- Project (806)
: +- SortMergeJoin Inner (805)
: :- Sort (760)
: : +- Exchange (759)
: : +- Project (758)
: : +- SortMergeJoin LeftOuter (757)
: : :- Sort (532)
: : : +- Exchange (531)
: : : +- Project (530)
: : : +- SortMergeJoin LeftOuter (529)
: : : :- Sort (347)
: : : : +- Project (346)
: : : : +- Generate (345)
: : : : +- Project (344)
: : : : +- Generate (343)
: : : : +- Project (342)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (341)
: : : : :- Project (336)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (335)
: : : : : :- Project (331)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (330)
: : : : : : :- Exchange (325)
: : : : : : : +- Filter (324)
: : : : : : : +- Scan parquet (7)
: : : : : : +- BroadcastExchange (329)
: : : : : : +- Project (328)
: : : : : : +- Exchange (327)
: : : : : : +- Project (326)
: : : : : : +- Scan parquet (12)
: : : : : +- BroadcastExchange (334)
: : : : : +- Exchange (333)
: : : : : +- Project (332)
: : : : : +- Scan parquet (22)
: : : : +- BroadcastExchange (340)
: : : : +- Exchange (339)
: : : : +- Project (338)
: : : : +- Filter (337)
: : : : +- Scan parquet (31)
: : : +- Sort (528)
: : : +- HashAggregate (527)
: : : +- Exchange (526)
: : : +- HashAggregate (525)
: : : +- Project (524)
: : : +- SortMergeJoin Inner (523)
: : : :- Sort (431)
: : : : +- Exchange (430)
: : : : +- Project (429)
: : : : +- SortMergeJoin Inner (428)
: : : : :- Sort (400)
: : : : : +- Exchange (399)
: : : : : +- Project (398)
: : : : : +- Filter (397)
: : : : : +- Generate (396)
: : : : : +- Filter (395)
: : : : : +- ObjectHashAggregate (394)
: : : : : +- ObjectHashAggregate (393)
: : : : : +- Generate (392)
: : : : : +- BroadcastHashJoin Inner BuildLeft (391)
: : : : : :- BroadcastExchange (351)
: : : : : : +- Exchange (350)
: : : : : : +- Project (349)
: : : : : : +- Filter (348)
: : : : : : +- Scan parquet (45)
: : : : : +- Project (390)
: : : : : +- BroadcastHashJoin Inner BuildLeft (389)
: : : : : :- BroadcastExchange (360)
: : : : : : +- Project (359)
: : : : : : +- Generate (358)
: : : : : : +- Project (357)
: : : : : : +- Filter (356)
: : : : : : +- Generate (355)
: : : : : : +- Exchange (354)
: : : : : : +- Project (353)
: : : : : : +- Filter (352)
: : : : : : +- Scan parquet (53)
: : : : : +- HashAggregate (388)
: : : : : +- Exchange (387)
: : : : : +- HashAggregate (386)
: : : : : +- Project (385)
: : : : : +- Generate (384)
: : : : : +- Project (383)
: : : : : +- Generate (382)
: : : : : +- Project (381)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (380)
: : : : : :- Project (374)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (373)
: : : : : : :- Project (369)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (368)
: : : : : : : :- Exchange (362)
: : : : : : : : +- Filter (361)
: : : : : : : : +- Scan parquet (66)
: : : : : : : +- BroadcastExchange (367)
: : : : : : : +- Project (366)
: : : : : : : +- Exchange (365)
: : : : : : : +- Project (364)
: : : : : : : +- Scan parquet (363)
: : : : : : +- BroadcastExchange (372)
: : : : : : +- Exchange (371)
: : : : : : +- Project (370)
: : : : : : +- Scan parquet (75)
: : : : : +- BroadcastExchange (379)
: : : : : +- Exchange (378)
: : : : : +- Project (377)
: : : : : +- Filter (376)
: : : : : +- Scan parquet (375)
: : : : +- Sort (427)
: : : : +- Project (426)
: : : : +- Generate (425)
: : : : +- Project (424)
: : : : +- Generate (423)
: : : : +- Project (422)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (421)
: : : : :- Project (415)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (414)
: : : : : :- Project (409)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (408)
: : : : : : :- Exchange (402)
: : : : : : : +- Filter (401)
: : : : : : : +- Scan parquet (112)
: : : : : : +- BroadcastExchange (407)
: : : : : : +- Project (406)
: : : : : : +- Exchange (405)
: : : : : : +- Project (404)
: : : : : : +- Scan parquet (403)
: : : : : +- BroadcastExchange (413)
: : : : : +- Exchange (412)
: : : : : +- Project (411)
: : : : : +- Scan parquet (410)
: : : : +- BroadcastExchange (420)
: : : : +- Exchange (419)
: : : : +- Project (418)
: : : : +- Filter (417)
: : : : +- Scan parquet (416)
: : : +- Sort (522)
: : : +- Exchange (521)
: : : +- HashAggregate (520)
: : : +- HashAggregate (519)
: : : +- Project (518)
: : : +- SortMergeJoin Inner (517)
: : : :- Sort (488)
: : : : +- Exchange (487)
: : : : +- Project (486)
: : : : +- Filter (485)
: : : : +- Generate (484)
: : : : +- Filter (483)
: : : : +- ObjectHashAggregate (482)
: : : : +- ObjectHashAggregate (481)
: : : : +- Generate (480)
: : : : +- BroadcastHashJoin Inner BuildLeft (479)
: : : : :- BroadcastExchange (436)
: : : : : +- Exchange (435)
: : : : : +- Project (434)
: : : : : +- Filter (433)
: : : : : +- Scan parquet (432)
: : : : +- Project (478)
: : : : +- BroadcastHashJoin Inner BuildLeft (477)
: : : : :- BroadcastExchange (446)
: : : : : +- Project (445)
: : : : : +- Generate (444)
: : : : : +- Project (443)
: : : : : +- Filter (442)
: : : : : +- Generate (441)
: : : : : +- Exchange (440)
: : : : : +- Project (439)
: : : : : +- Filter (438)
: : : : : +- Scan parquet (437)
: : : : +- HashAggregate (476)
: : : : +- Exchange (475)
: : : : +- HashAggregate (474)
: : : : +- Project (473)
: : : : +- Generate (472)
: : : : +- Project (471)
: : : : +- Generate (470)
: : : : +- Project (469)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (468)
: : : : :- Project (462)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (461)
: : : : : :- Project (456)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (455)
: : : : : : :- Exchange (449)
: : : : : : : +- Filter (448)
: : : : : : : +- Scan parquet (447)
: : : : : : +- BroadcastExchange (454)
: : : : : : +- Project (453)
: : : : : : +- Exchange (452)
: : : : : : +- Project (451)
: : : : : : +- Scan parquet (450)
: : : : : +- BroadcastExchange (460)
: : : : : +- Exchange (459)
: : : : : +- Project (458)
: : : : : +- Scan parquet (457)
: : : : +- BroadcastExchange (467)
: : : : +- Exchange (466)
: : : : +- Project (465)
: : : : +- Filter (464)
: : : : +- Scan parquet (463)
: : : +- Sort (516)
: : : +- Project (515)
: : : +- Generate (514)
: : : +- Project (513)
: : : +- Generate (512)
: : : +- Project (511)
: : : +- BroadcastHashJoin LeftOuter BuildRight (510)
: : : :- Project (504)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (503)
: : : : :- Project (498)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (497)
: : : : : :- Exchange (491)
: : : : : : +- Filter (490)
: : : : : : +- Scan parquet (489)
: : : : : +- BroadcastExchange (496)
: : : : : +- Project (495)
: : : : : +- Exchange (494)
: : : : : +- Project (493)
: : : : : +- Scan parquet (492)
: : : : +- BroadcastExchange (502)
: : : : +- Exchange (501)
: : : : +- Project (500)
: : : : +- Scan parquet (499)
: : : +- BroadcastExchange (509)
: : : +- Exchange (508)
: : : +- Project (507)
: : : +- Filter (506)
: : : +- Scan parquet (505)
: : +- Sort (756)
: : +- Exchange (755)
: : +- SerializeFromObject (754)
: : +- MapElements (753)
: : +- DeserializeToObject (752)
: : +- ObjectHashAggregate (751)
: : +- ObjectHashAggregate (750)
: : +- Project (749)
: : +- BroadcastHashJoin LeftOuter BuildRight (748)
: : :- Project (745)
: : : +- SortMergeJoin LeftOuter (744)
: : : :- Sort (557)
: : : : +- Project (556)
: : : : +- Project (555)
: : : : +- Generate (554)
: : : : +- Generate (553)
: : : : +- Project (552)
: : : : +- Project (551)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (550)
: : : : :- Project (544)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (543)
: : : : : :- BroadcastHashJoin LeftOuter BuildRight (538)
: : : : : : :- Exchange (533)
: : : : : : : +- Scan parquet (181)
: : : : : : +- BroadcastExchange (537)
: : : : : : +- Project (536)
: : : : : : +- Exchange (535)
: : : : : : +- Project (534)
: : : : : : +- Scan parquet (185)
: : : : : +- BroadcastExchange (542)
: : : : : +- Exchange (541)
: : : : : +- Project (540)
: : : : : +- Scan parquet (539)
: : : : +- BroadcastExchange (549)
: : : : +- Exchange (548)
: : : : +- Project (547)
: : : : +- Filter (546)
: : : : +- Scan parquet (545)
: : : +- Sort (743)
: : : +- HashAggregate (742)
: : : +- Exchange (741)
: : : +- HashAggregate (740)
: : : +- Project (739)
: : : +- SortMergeJoin Inner (738)
: : : :- Sort (646)
: : : : +- Exchange (645)
: : : : +- Project (644)
: : : : +- SortMergeJoin Inner (643)
: : : : :- Sort (614)
: : : : : +- Exchange (613)
: : : : : +- Project (612)
: : : : : +- Filter (611)
: : : : : +- Generate (610)
: : : : : +- Filter (609)
: : : : : +- ObjectHashAggregate (608)
: : : : : +- ObjectHashAggregate (607)
: : : : : +- Generate (606)
: : : : : +- BroadcastHashJoin Inner BuildLeft (605)
: : : : : :- BroadcastExchange (562)
: : : : : : +- Exchange (561)
: : : : : : +- Project (560)
: : : : : : +- Filter (559)
: : : : : : +- Scan parquet (558)
: : : : : +- Project (604)
: : : : : +- BroadcastHashJoin Inner BuildLeft (603)
: : : : : :- BroadcastExchange (572)
: : : : : : +- Project (571)
: : : : : : +- Generate (570)
: : : : : : +- Project (569)
: : : : : : +- Filter (568)
: : : : : : +- Generate (567)
: : : : : : +- Exchange (566)
: : : : : : +- Project (565)
: : : : : : +- Filter (564)
: : : : : : +- Scan parquet (563)
: : : : : +- HashAggregate (602)
: : : : : +- Exchange (601)
: : : : : +- HashAggregate (600)
: : : : : +- Project (599)
: : : : : +- Generate (598)
: : : : : +- Project (597)
: : : : : +- Generate (596)
: : : : : +- Project (595)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (594)
: : : : : :- Project (588)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (587)
: : : : : : :- Project (582)
: : : : : : : +- BroadcastHashJoin LeftOuter BuildRight (581)
: : : : : : : :- Exchange (575)
: : : : : : : : +- Filter (574)
: : : : : : : : +- Scan parquet (573)
: : : : : : : +- BroadcastExchange (580)
: : : : : : : +- Project (579)
: : : : : : : +- Exchange (578)
: : : : : : : +- Project (577)
: : : : : : : +- Scan parquet (576)
: : : : : : +- BroadcastExchange (586)
: : : : : : +- Exchange (585)
: : : : : : +- Project (584)
: : : : : : +- Scan parquet (583)
: : : : : +- BroadcastExchange (593)
: : : : : +- Exchange (592)
: : : : : +- Project (591)
: : : : : +- Filter (590)
: : : : : +- Scan parquet (589)
: : : : +- Sort (642)
: : : : +- Project (641)
: : : : +- Generate (640)
: : : : +- Project (639)
: : : : +- Generate (638)
: : : : +- Project (637)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (636)
: : : : :- Project (630)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (629)
: : : : : :- Project (624)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (623)
: : : : : : :- Exchange (617)
: : : : : : : +- Filter (616)
: : : : : : : +- Scan parquet (615)
: : : : : : +- BroadcastExchange (622)
: : : : : : +- Project (621)
: : : : : : +- Exchange (620)
: : : : : : +- Project (619)
: : : : : : +- Scan parquet (618)
: : : : : +- BroadcastExchange (628)
: : : : : +- Exchange (627)
: : : : : +- Project (626)
: : : : : +- Scan parquet (625)
: : : : +- BroadcastExchange (635)
: : : : +- Exchange (634)
: : : : +- Project (633)
: : : : +- Filter (632)
: : : : +- Scan parquet (631)
: : : +- Sort (737)
: : : +- Exchange (736)
: : : +- HashAggregate (735)
: : : +- HashAggregate (734)
: : : +- Project (733)
: : : +- SortMergeJoin Inner (732)
: : : :- Sort (703)
: : : : +- Exchange (702)
: : : : +- Project (701)
: : : : +- Filter (700)
: : : : +- Generate (699)
: : : : +- Filter (698)
: : : : +- ObjectHashAggregate (697)
: : : : +- ObjectHashAggregate (696)
: : : : +- Generate (695)
: : : : +- BroadcastHashJoin Inner BuildLeft (694)
: : : : :- BroadcastExchange (651)
: : : : : +- Exchange (650)
: : : : : +- Project (649)
: : : : : +- Filter (648)
: : : : : +- Scan parquet (647)
: : : : +- Project (693)
: : : : +- BroadcastHashJoin Inner BuildLeft (692)
: : : : :- BroadcastExchange (661)
: : : : : +- Project (660)
: : : : : +- Generate (659)
: : : : : +- Project (658)
: : : : : +- Filter (657)
: : : : : +- Generate (656)
: : : : : +- Exchange (655)
: : : : : +- Project (654)
: : : : : +- Filter (653)
: : : : : +- Scan parquet (652)
: : : : +- HashAggregate (691)
: : : : +- Exchange (690)
: : : : +- HashAggregate (689)
: : : : +- Project (688)
: : : : +- Generate (687)
: : : : +- Project (686)
: : : : +- Generate (685)
: : : : +- Project (684)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (683)
: : : : :- Project (677)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (676)
: : : : : :- Project (671)
: : : : : : +- BroadcastHashJoin LeftOuter BuildRight (670)
: : : : : : :- Exchange (664)
: : : : : : : +- Filter (663)
: : : : : : : +- Scan parquet (662)
: : : : : : +- BroadcastExchange (669)
: : : : : : +- Project (668)
: : : : : : +- Exchange (667)
: : : : : : +- Project (666)
: : : : : : +- Scan parquet (665)
: : : : : +- BroadcastExchange (675)
: : : : : +- Exchange (674)
: : : : : +- Project (673)
: : : : : +- Scan parquet (672)
: : : : +- BroadcastExchange (682)
: : : : +- Exchange (681)
: : : : +- Project (680)
: : : : +- Filter (679)
: : : : +- Scan parquet (678)
: : : +- Sort (731)
: : : +- Project (730)
: : : +- Generate (729)
: : : +- Project (728)
: : : +- Generate (727)
: : : +- Project (726)
: : : +- BroadcastHashJoin LeftOuter BuildRight (725)
: : : :- Project (719)
: : : : +- BroadcastHashJoin LeftOuter BuildRight (718)
: : : : :- Project (713)
: : : : : +- BroadcastHashJoin LeftOuter BuildRight (712)
: : : : : :- Exchange (706)
: : : : : : +- Filter (705)
: : : : : : +- Scan parquet (704)
: : : : : +- BroadcastExchange (711)
: : : : : +- Project (710)
: : : : : +- Exchange (709)
: : : : : +- Project (708)
: : : : : +- Scan parquet (707)
: : : : +- BroadcastExchange (717)
: : : : +- Exchange (716)
: : : : +- Project (715)
: : : : +- Scan parquet (714)
: : : +- BroadcastExchange (724)
: : : +- Exchange (723)
: : : +- Project (722)
: : : +- Filter (721)
: : : +- Scan parquet (720)
: : +- BroadcastExchange (747)
: : +- Filter (746)
: : +- Scan parquet (269)
: +- Sort (804)
: +- Project (803)
: +- BroadcastHashJoin Inner BuildLeft (802)
: :- BroadcastExchange (771)
: : +- Project (770)
: : +- Filter (769)
: : +- Generate (768)
: : +- Project (767)
: : +- Filter (766)
: : +- Generate (765)
: : +- Exchange (764)
: : +- Project (763)
: : +- Filter (762)
: : +- Scan parquet (761)
: +- HashAggregate (801)
: +- Exchange (800)
: +- HashAggregate (799)
: +- Project (798)
: +- Generate (797)
: +- Project (796)
: +- Generate (795)
: +- Project (794)
: +- BroadcastHashJoin LeftOuter BuildRight (793)
: :- Project (787)
: : +- BroadcastHashJoin LeftOuter BuildRight (786)
: : :- Project (781)
: : : +- BroadcastHashJoin LeftOuter BuildRight (780)
: : : :- Exchange (774)
: : : : +- Filter (773)
: : : : +- Scan parquet (772)
: : : +- BroadcastExchange (779)
: : : +- Project (778)
: : : +- Exchange (777)
: : : +- Project (776)
: : : +- Scan parquet (775)
: : +- BroadcastExchange (785)
: : +- Exchange (784)
: : +- Project (783)
: : +- Scan parquet (782)
: +- BroadcastExchange (792)
: +- Exchange (791)
: +- Project (790)
: +- Filter (789)
: +- Scan parquet (788)
+- BroadcastExchange (813)
+- Project (812)
+- Filter (811)
+- Generate (810)
+- Exchange (809)
+- Project (808)
+- Filter (807)
+- Scan parquet (310)
(1) InMemoryTableScan
Output [3]: [openGoodsMovements#1202100, plant#1200790, product#1200791]
Arguments: [openGoodsMovements#1202100, plant#1200790, product#1200791], [(size(transform(openGoodsMovements#1202100, lambdafunction(struct(documentType, PO, documentId, lambda x_148#1209080.documentId, documentUuid, lambda x_148#1209080.documentUuid, openQty, lambda x_148#1209080.openQty, qtyUomUuid, lambda x_148#1209080.qtyUomUuid, qtyUom, lambda x_148#1209080.qtyUom, plannedDeliveryDatetime, lambda x_148#1209080.availabilityDatetime), lambda x_148#1209080, false)), false) > 0)]
(2) InMemoryRelation
Arguments: [product#1200791, plant#1200790, openGoodsMovements#1202100], StorageLevel(disk, memory, 2 replicas)
(3) EmptyRelation
Output [3]: [product#1200791, plant#1200790, openGoodsMovements#1202100]
Arguments: [plan_id=1886892]
(4) ResultQueryStage
Output [3]: [product#1200791, plant#1200790, openGoodsMovements#1202100]
Arguments: 2
(5) InMemoryTableScan
Output [10]: [id#1200775, internalUUID#1200774, plant#1200790, product#1200791, quantityDenominator#1200798, quantityNumerator#1200797, quantityUom#1200795, quantityUomUuid#1200796, scheduleLines#1200799, validConfirmations#1200890]
Arguments: [id#1200775, internalUUID#1200774, plant#1200790, product#1200791, quantityDenominator#1200798, quantityNumerator#1200797, quantityUom#1200795, quantityUomUuid#1200796, scheduleLines#1200799, validConfirmations#1200890]
(6) InMemoryRelation
Arguments: [id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800, stockDatetime#1200346, timezonecode#1199974, validConfirmations#1200890], StorageLevel(disk, memory, deserialized, 1 replicas)
(7) Scan parquet
Output [3]: [product#1199942, plant#1199943, orderDateTime#1199944]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(8) ColumnarToRow
Input [3]: [product#1199942, plant#1199943, orderDateTime#1199944]
(9) Filter
Input [3]: [product#1199942, plant#1199943, orderDateTime#1199944]
Condition : (isnotnull(plant#1199943) AND isnotnull(product#1199942))
(10) Exchange
Input [3]: [product#1199942, plant#1199943, orderDateTime#1199944]
Arguments: hashpartitioning(product#1199942, plant#1199943, 37), REPARTITION_BY_NUM, [plan_id=1847795]
(11) ShuffleQueryStage
Output [3]: [product#1199942, plant#1199943, orderDateTime#1199944]
Arguments: 0
(12) Scan parquet
Output [4]: [plant#1199949, product#1199950, productionAspect#1199952, systemId#1199947]
Batched: 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#1199949, product#1199950, productionAspect#1199952, systemId#1199947]
(14) Project
Output [4]: [plant#1199949.internalRefUUID AS _extract_internalRefUUID#1201089, product#1199950.internalRefUUID AS _extract_internalRefUUID#1201086, productionAspect#1199952.productMovementPlants.unitOfIssue.code AS _extract_code#1201087, productionAspect#1199952.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201088]
Input [4]: [plant#1199949, product#1199950, productionAspect#1199952, systemId#1199947]
(15) Exchange
Input [4]: [_extract_internalRefUUID#1201089, _extract_internalRefUUID#1201086, _extract_code#1201087, _extract_internalRefUUID#1201088]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1847811]
(16) ShuffleQueryStage
Output [4]: [_extract_internalRefUUID#1201089, _extract_internalRefUUID#1201086, _extract_code#1201087, _extract_internalRefUUID#1201088]
Arguments: 1
(17) Project
Output [4]: [_extract_code#1201087, _extract_internalRefUUID#1201088, _extract_internalRefUUID#1201086, _extract_internalRefUUID#1201089]
Input [4]: [_extract_internalRefUUID#1201089, _extract_internalRefUUID#1201086, _extract_code#1201087, _extract_internalRefUUID#1201088]
(18) BroadcastExchange
Input [4]: [_extract_code#1201087, _extract_internalRefUUID#1201088, _extract_internalRefUUID#1201086, _extract_internalRefUUID#1201089]
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=1850872]
(19) BroadcastQueryStage
Output [4]: [_extract_code#1201087, _extract_internalRefUUID#1201088, _extract_internalRefUUID#1201086, _extract_internalRefUUID#1201089]
Arguments: 97
(20) BroadcastHashJoin
Left keys [4]: [coalesce(product#1199942, ), isnull(product#1199942), coalesce(plant#1199943, ), isnull(plant#1199943)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201086, ), isnull(_extract_internalRefUUID#1201086), coalesce(_extract_internalRefUUID#1201089, ), isnull(_extract_internalRefUUID#1201089)]
Join type: LeftOuter
Join condition: None
(21) Project
Output [5]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088]
Input [7]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088, _extract_internalRefUUID#1201086, _extract_internalRefUUID#1201089]
(22) Scan parquet
Output [3]: [internalUUID#1199960, address#1199966, systemId#1199959]
Batched: 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#1199960, address#1199966, systemId#1199959]
(24) Project
Output [2]: [internalUUID#1199960, address#1199966.timeZone.code AS timezonecode#1199971]
Input [3]: [internalUUID#1199960, address#1199966, systemId#1199959]
(25) Exchange
Input [2]: [internalUUID#1199960, timezonecode#1199971]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1847830]
(26) ShuffleQueryStage
Output [2]: [internalUUID#1199960, timezonecode#1199971]
Arguments: 2
(27) BroadcastExchange
Input [2]: [internalUUID#1199960, timezonecode#1199971]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1857014]
(28) BroadcastQueryStage
Output [2]: [internalUUID#1199960, timezonecode#1199971]
Arguments: 128
(29) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1199943, ), isnull(plant#1199943)]
Right keys [2]: [coalesce(internalUUID#1199960, ), isnull(internalUUID#1199960)]
Join type: LeftOuter
Join condition: None
(30) Project
Output [6]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088, CASE WHEN isnotnull(timezonecode#1199971) THEN timezonecode#1199971 ELSE UTC END AS timezonecode#1199974]
Input [7]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088, internalUUID#1199960, timezonecode#1199971]
(31) Scan parquet
Output [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
Batched: 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#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
(33) Filter
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
Condition : isnotnull(internalUUID#1199976)
(34) Project
Output [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
(35) Exchange
Input [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1847850]
(36) ShuffleQueryStage
Output [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: 3
(37) BroadcastExchange
Input [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1861295]
(38) BroadcastQueryStage
Output [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: 140
(39) BroadcastHashJoin
Left keys [1]: [product#1199942]
Right keys [1]: [internalUUID#1199976]
Join type: LeftOuter
Join condition: None
(40) Project
Output [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filter(unitOfMeasureConversions#1199982, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201087) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201088)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1199980.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1199980.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1199988]
Input [9]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088, timezonecode#1199974, internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
(41) Generate
Input [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filteredUnitOfMeasureConversions#1199988]
Arguments: explode(filteredUnitOfMeasureConversions#1199988.quantityNumerator), [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filteredUnitOfMeasureConversions#1199988], true, [quantityNumerator#1199996]
(42) Project
Output [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filteredUnitOfMeasureConversions#1199988.quantityDenominator AS _extract_quantityDenominator#1200892]
Input [6]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filteredUnitOfMeasureConversions#1199988, quantityNumerator#1199996]
(43) Generate
Input [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, _extract_quantityDenominator#1200892]
Arguments: explode(_extract_quantityDenominator#1200892), [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974], true, [quantityDenominator#1199999]
(44) Project
Output [4]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974]
Input [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, quantityDenominator#1199999]
(45) Scan parquet
Output [6]: [internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043, systemId#1200038]
Batched: 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#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043, systemId#1200038]
(47) Filter
Input [6]: [internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043, systemId#1200038]
Condition : (isnotnull(plant#1200041.internalRefUUID) AND isnotnull(product#1200040.internalRefUUID))
(48) Project
Output [6]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043]
Input [6]: [internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043, systemId#1200038]
(49) Exchange
Input [6]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1847877]
(50) ShuffleQueryStage
Output [6]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043]
Arguments: 4
(51) BroadcastExchange
Input [6]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043]
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=1852075]
(52) BroadcastQueryStage
Output [6]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043]
Arguments: 116
(53) Scan parquet
Output [2]: [marketUnit#1200002, distributionCenters#1200008]
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,Grocery_SS), 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#1200002, distributionCenters#1200008]
(55) Filter
Input [2]: [marketUnit#1200002, distributionCenters#1200008]
Condition : (((marketUnit#1200002 <=> Grocery_SS) AND (size(distributionCenters#1200008, true) > 0)) AND isnotnull(distributionCenters#1200008))
(56) Project
Output [1]: [distributionCenters#1200008]
Input [2]: [marketUnit#1200002, distributionCenters#1200008]
(57) Exchange
Input [1]: [distributionCenters#1200008]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1847897]
(58) ShuffleQueryStage
Output [1]: [distributionCenters#1200008]
Arguments: 5
(59) Generate
Input [1]: [distributionCenters#1200008]
Arguments: explode(distributionCenters#1200008), false, [distributionCenters#1200026]
(60) Filter
Input [1]: [distributionCenters#1200026]
Condition : (((size(distributionCenters#1200026.storageLocations, true) > 0) AND isnotnull(distributionCenters#1200026.storageLocations)) AND isnotnull(distributionCenters#1200026.internalRefUUID))
(61) Project
Output [2]: [distributionCenters#1200026.internalRefUUID AS _extract_internalRefUUID#1200896, distributionCenters#1200026.storageLocations AS _extract_storageLocations#1200897]
Input [1]: [distributionCenters#1200026]
(62) Generate
Input [2]: [_extract_internalRefUUID#1200896, _extract_storageLocations#1200897]
Arguments: explode(_extract_storageLocations#1200897), [_extract_internalRefUUID#1200896], false, [storageLocations#1200033]
(63) Project
Output [3]: [_extract_internalRefUUID#1200896 AS plantUuid#1200028, storageLocations#1200033.id AS storageLocId#1200034, storageLocations#1200033.internalRefUUID AS storageLocUuid#1200035]
Input [2]: [_extract_internalRefUUID#1200896, storageLocations#1200033]
(64) BroadcastExchange
Input [3]: [plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1854573]
(65) BroadcastQueryStage
Output [3]: [plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035]
Arguments: 120
(66) Scan parquet
Output [2]: [product#1200298, plant#1200299]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(67) ColumnarToRow
Input [2]: [product#1200298, plant#1200299]
(68) Filter
Input [2]: [product#1200298, plant#1200299]
Condition : isnotnull(plant#1200299)
(69) Exchange
Input [2]: [product#1200298, plant#1200299]
Arguments: hashpartitioning(product#1200298, plant#1200299, 37), REPARTITION_BY_NUM, [plan_id=1847920]
(70) ShuffleQueryStage
Output [2]: [product#1200298, plant#1200299]
Arguments: 6
(71) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1201090, _extract_internalRefUUID#1201091, _extract_internalRefUUID#1201092, _extract_internalRefUUID#1201093]
(72) BroadcastQueryStage
Output [4]: [_extract_code#1201090, _extract_internalRefUUID#1201091, _extract_internalRefUUID#1201092, _extract_internalRefUUID#1201093]
Arguments: 99
(73) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200298, ), isnull(product#1200298), coalesce(plant#1200299, ), isnull(plant#1200299)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201092, ), isnull(_extract_internalRefUUID#1201092), coalesce(_extract_internalRefUUID#1201093, ), isnull(_extract_internalRefUUID#1201093)]
Join type: LeftOuter
Join condition: None
(74) Project
Output [4]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091]
Input [6]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091, _extract_internalRefUUID#1201092, _extract_internalRefUUID#1201093]
(75) Scan parquet
Output [2]: [internalUUID#1200312, systemId#1200311]
Batched: 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#1200312, systemId#1200311]
(77) Project
Output [1]: [internalUUID#1200312]
Input [2]: [internalUUID#1200312, systemId#1200311]
(78) Exchange
Input [1]: [internalUUID#1200312]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1847957]
(79) ShuffleQueryStage
Output [1]: [internalUUID#1200312]
Arguments: 9
(80) BroadcastExchange
Input [1]: [internalUUID#1200312]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1859634]
(81) BroadcastQueryStage
Output [1]: [internalUUID#1200312]
Arguments: 131
(82) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200299, ), isnull(plant#1200299)]
Right keys [2]: [coalesce(internalUUID#1200312, ), isnull(internalUUID#1200312)]
Join type: LeftOuter
Join condition: None
(83) Project
Output [4]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091]
Input [5]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091, internalUUID#1200312]
(84) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332]
(85) BroadcastQueryStage
Output [3]: [internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332]
Arguments: 141
(86) BroadcastHashJoin
Left keys [1]: [product#1200298]
Right keys [1]: [internalUUID#1200326]
Join type: LeftOuter
Join condition: None
(87) Project
Output [2]: [plant#1200299, filter(unitOfMeasureConversions#1200332, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201090) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201091)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200330.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200330.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200337]
Input [7]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091, internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332]
(88) Generate
Input [2]: [plant#1200299, filteredUnitOfMeasureConversions#1200337]
Arguments: explode(filteredUnitOfMeasureConversions#1200337.quantityNumerator), [plant#1200299, filteredUnitOfMeasureConversions#1200337], true, [quantityNumerator#1200338]
(89) Project
Output [2]: [plant#1200299, filteredUnitOfMeasureConversions#1200337.quantityDenominator AS _extract_quantityDenominator#1200898]
Input [3]: [plant#1200299, filteredUnitOfMeasureConversions#1200337, quantityNumerator#1200338]
(90) Generate
Input [2]: [plant#1200299, _extract_quantityDenominator#1200898]
Arguments: explode(_extract_quantityDenominator#1200898), [plant#1200299], true, [quantityDenominator#1200339]
(91) Project
Output [1]: [plant#1200299]
Input [2]: [plant#1200299, quantityDenominator#1200339]
(92) HashAggregate
Input [1]: [plant#1200299]
Keys [1]: [plant#1200299]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200299]
(93) Exchange
Input [1]: [plant#1200299]
Arguments: hashpartitioning(plant#1200299, 37), ENSURE_REQUIREMENTS, [plan_id=1877752]
(94) ShuffleQueryStage
Output [1]: [plant#1200299]
Arguments: 152
(95) AQEShuffleRead
Input [1]: [plant#1200299]
Arguments: coalesced
(96) HashAggregate
Input [1]: [plant#1200299]
Keys [1]: [plant#1200299]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200299]
(97) BroadcastHashJoin
Left keys [1]: [plantUuid#1200028]
Right keys [1]: [plant#1200299]
Join type: Inner
Join condition: None
(98) Project
Output [3]: [plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035]
Input [4]: [plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035, plant#1200299]
(99) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200041.internalRefUUID, ), isnull(plant#1200041.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1200028, ), isnull(plantUuid#1200028)]
Join type: Inner
Join condition: None
(100) Generate
Input [9]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043, plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035]
Arguments: explode(filter(stockQuantities#1200043, lambdafunction(((lambda x#1200047.storageLocation.internalRefUuid = storageLocUuid#1200035) AND (lambda x#1200047.storageLocation.Id = storageLocId#1200034)), lambda x#1200047, false))), [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, plantUuid#1200028], false, [stockQuantity#1200048]
(101) ObjectHashAggregate
Input [7]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, plantUuid#1200028, stockQuantity#1200048]
Keys [5]: [plantUuid#1200028, internalUUID#1200039, plant#1200041, product#1200040, systemId#1200038]
Functions [2]: [partial_first(calculationDateTime#1200042, false), partial_collect_list(stockQuantity#1200048, 0, 0)]
Aggregate Attributes [3]: [first#1201961, valueSet#1201962, buf#1201963]
Results [8]: [plantUuid#1200028, internalUUID#1200039, plant#1200041, product#1200040, systemId#1200038, first#1201964, valueSet#1201965, buf#1201966]
(102) ObjectHashAggregate
Input [8]: [plantUuid#1200028, internalUUID#1200039, plant#1200041, product#1200040, systemId#1200038, first#1201964, valueSet#1201965, buf#1201966]
Keys [5]: [plantUuid#1200028, internalUUID#1200039, plant#1200041, product#1200040, systemId#1200038]
Functions [2]: [first(calculationDateTime#1200042, false), collect_list(stockQuantity#1200048, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1200042)()#1200062, collect_list(stockQuantity#1200048, 0, 0)#1200063]
Results [4]: [product#1200040, plant#1200041, first(calculationDateTime#1200042)()#1200062 AS calculationDateTime#1200049, collect_list(stockQuantity#1200048, 0, 0)#1200063 AS stockQuantities#1200050]
(103) Filter
Input [4]: [product#1200040, plant#1200041, calculationDateTime#1200049, stockQuantities#1200050]
Condition : ((size(stockQuantities#1200050, true) > 0) AND isnotnull(calculationDateTime#1200049))
(104) Generate
Input [4]: [product#1200040, plant#1200041, calculationDateTime#1200049, stockQuantities#1200050]
Arguments: explode(stockQuantities#1200050), [product#1200040, plant#1200041, calculationDateTime#1200049], false, [stockQuantity#1200065]
(105) Filter
Input [4]: [product#1200040, plant#1200041, calculationDateTime#1200049, stockQuantity#1200065]
Condition : (((isnotnull(stockQuantity#1200065.specialStockIndicator.code) AND isnotnull(stockQuantity#1200065.stockType.code)) AND (stockQuantity#1200065.specialStockIndicator.code = )) AND (stockQuantity#1200065.stockType.code = 01))
(106) Project
Output [4]: [plant#1200041.internalRefUUID AS plantUuid#1200067, product#1200040.internalRefUUID AS productUuid#1200069, calculationDateTime#1200049, stockQuantity#1200065.storagelocation.id AS storageLocId#1200070]
Input [4]: [product#1200040, plant#1200041, calculationDateTime#1200049, stockQuantity#1200065]
(107) Exchange
Input [4]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070]
Arguments: hashpartitioning(productUuid#1200069, plantUuid#1200067, 37), ENSURE_REQUIREMENTS, [plan_id=1879976]
(108) ShuffleQueryStage
Output [4]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070]
Arguments: 161
(109) AQEShuffleRead
Input [4]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070]
Arguments: local
(110) BroadcastExchange
Input [4]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1881606]
(111) BroadcastQueryStage
Output [4]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070]
Arguments: 167
(112) Scan parquet
Output [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(113) ColumnarToRow
Input [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
(114) Filter
Input [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
Condition : ((isnotnull(orderDateTime#1200086) AND isnotnull(plant#1200085)) AND isnotnull(product#1200084))
(115) Exchange
Input [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
Arguments: hashpartitioning(product#1200084, plant#1200085, 37), REPARTITION_BY_NUM, [plan_id=1848018]
(116) ShuffleQueryStage
Output [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
Arguments: 12
(117) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1201095, _extract_internalRefUUID#1201096, _extract_internalRefUUID#1201094, _extract_internalRefUUID#1201097]
(118) BroadcastQueryStage
Output [4]: [_extract_code#1201095, _extract_internalRefUUID#1201096, _extract_internalRefUUID#1201094, _extract_internalRefUUID#1201097]
Arguments: 101
(119) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200084, ), isnull(product#1200084), coalesce(plant#1200085, ), isnull(plant#1200085)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201094, ), isnull(_extract_internalRefUUID#1201094), coalesce(_extract_internalRefUUID#1201097, ), isnull(_extract_internalRefUUID#1201097)]
Join type: LeftOuter
Join condition: None
(120) Project
Output [5]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096]
Input [7]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096, _extract_internalRefUUID#1201094, _extract_internalRefUUID#1201097]
(121) ReusedExchange [Reuses operator id: 80]
Output [1]: [internalUUID#1200098]
(122) BroadcastQueryStage
Output [1]: [internalUUID#1200098]
Arguments: 132
(123) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200085, ), isnull(plant#1200085)]
Right keys [2]: [coalesce(internalUUID#1200098, ), isnull(internalUUID#1200098)]
Join type: LeftOuter
Join condition: None
(124) Project
Output [5]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096]
Input [6]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096, internalUUID#1200098]
(125) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118]
(126) BroadcastQueryStage
Output [3]: [internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118]
Arguments: 142
(127) BroadcastHashJoin
Left keys [1]: [product#1200084]
Right keys [1]: [internalUUID#1200112]
Join type: LeftOuter
Join condition: None
(128) Project
Output [4]: [product#1200084, plant#1200085, orderDateTime#1200086, filter(unitOfMeasureConversions#1200118, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201095) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201096)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200116.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200116.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200123]
Input [8]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096, internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118]
(129) Generate
Input [4]: [product#1200084, plant#1200085, orderDateTime#1200086, filteredUnitOfMeasureConversions#1200123]
Arguments: explode(filteredUnitOfMeasureConversions#1200123.quantityNumerator), [product#1200084, plant#1200085, orderDateTime#1200086, filteredUnitOfMeasureConversions#1200123], true, [quantityNumerator#1200124]
(130) Project
Output [4]: [product#1200084, plant#1200085, orderDateTime#1200086, filteredUnitOfMeasureConversions#1200123.quantityDenominator AS _extract_quantityDenominator#1200902]
Input [5]: [product#1200084, plant#1200085, orderDateTime#1200086, filteredUnitOfMeasureConversions#1200123, quantityNumerator#1200124]
(131) Generate
Input [4]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_quantityDenominator#1200902]
Arguments: explode(_extract_quantityDenominator#1200902), [product#1200084, plant#1200085, orderDateTime#1200086], true, [quantityDenominator#1200125]
(132) Project
Output [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
Input [4]: [product#1200084, plant#1200085, orderDateTime#1200086, quantityDenominator#1200125]
(133) BroadcastHashJoin
Left keys [2]: [plantUuid#1200067, productUuid#1200069]
Right keys [2]: [plant#1200085, product#1200084]
Join type: Inner
Join condition: (calculationDateTime#1200049 <= orderDateTime#1200086)
(134) Project
Output [4]: [plantUuid#1200067 AS plant#1200132, productUuid#1200069 AS product#1200133, storageLocId#1200070, calculationDateTime#1200049]
Input [7]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070, product#1200084, plant#1200085, orderDateTime#1200086]
(135) Exchange
Input [4]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049]
Arguments: hashpartitioning(coalesce(plant#1200132, ), isnull(plant#1200132), coalesce(product#1200133, ), isnull(product#1200133), coalesce(storageLocId#1200070, ), isnull(storageLocId#1200070), coalesce(calculationDateTime#1200049, 1970-01-01 00:00:00), isnull(calculationDateTime#1200049), 37), ENSURE_REQUIREMENTS, [plan_id=1883011]
(136) ShuffleQueryStage
Output [4]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049]
Arguments: 173
(137) AQEShuffleRead
Input [4]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049]
Arguments: local
(138) BroadcastExchange
Input [4]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049]
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=1884031]
(139) BroadcastQueryStage
Output [4]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049]
Arguments: 178
(140) ReusedExchange [Reuses operator id: 110]
Output [4]: [plantUuid#1200224, productUuid#1200226, calculationDateTime#1200220, storageLocId#1200227]
(141) BroadcastQueryStage
Output [4]: [plantUuid#1200224, productUuid#1200226, calculationDateTime#1200220, storageLocId#1200227]
Arguments: 169
(142) ReusedExchange [Reuses operator id: 115]
Output [3]: [product#1200232, plant#1200233, orderDateTime#1200234]
(143) ShuffleQueryStage
Output [3]: [product#1200232, plant#1200233, orderDateTime#1200234]
Arguments: 32
(144) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1201103, _extract_internalRefUUID#1201104, _extract_internalRefUUID#1201105, _extract_internalRefUUID#1201102]
(145) BroadcastQueryStage
Output [4]: [_extract_code#1201103, _extract_internalRefUUID#1201104, _extract_internalRefUUID#1201105, _extract_internalRefUUID#1201102]
Arguments: 105
(146) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200232, ), isnull(product#1200232), coalesce(plant#1200233, ), isnull(plant#1200233)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201105, ), isnull(_extract_internalRefUUID#1201105), coalesce(_extract_internalRefUUID#1201102, ), isnull(_extract_internalRefUUID#1201102)]
Join type: LeftOuter
Join condition: None
(147) Project
Output [5]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104]
Input [7]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104, _extract_internalRefUUID#1201105, _extract_internalRefUUID#1201102]
(148) ReusedExchange [Reuses operator id: 80]
Output [1]: [internalUUID#1200246]
(149) BroadcastQueryStage
Output [1]: [internalUUID#1200246]
Arguments: 134
(150) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200233, ), isnull(plant#1200233)]
Right keys [2]: [coalesce(internalUUID#1200246, ), isnull(internalUUID#1200246)]
Join type: LeftOuter
Join condition: None
(151) Project
Output [5]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104]
Input [6]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104, internalUUID#1200246]
(152) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266]
(153) BroadcastQueryStage
Output [3]: [internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266]
Arguments: 144
(154) BroadcastHashJoin
Left keys [1]: [product#1200232]
Right keys [1]: [internalUUID#1200260]
Join type: LeftOuter
Join condition: None
(155) Project
Output [4]: [product#1200232, plant#1200233, orderDateTime#1200234, filter(unitOfMeasureConversions#1200266, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201103) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201104)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200264.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200264.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200271]
Input [8]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104, internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266]
(156) Generate
Input [4]: [product#1200232, plant#1200233, orderDateTime#1200234, filteredUnitOfMeasureConversions#1200271]
Arguments: explode(filteredUnitOfMeasureConversions#1200271.quantityNumerator), [product#1200232, plant#1200233, orderDateTime#1200234, filteredUnitOfMeasureConversions#1200271], true, [quantityNumerator#1200272]
(157) Project
Output [4]: [product#1200232, plant#1200233, orderDateTime#1200234, filteredUnitOfMeasureConversions#1200271.quantityDenominator AS _extract_quantityDenominator#1200912]
Input [5]: [product#1200232, plant#1200233, orderDateTime#1200234, filteredUnitOfMeasureConversions#1200271, quantityNumerator#1200272]
(158) Generate
Input [4]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_quantityDenominator#1200912]
Arguments: explode(_extract_quantityDenominator#1200912), [product#1200232, plant#1200233, orderDateTime#1200234], true, [quantityDenominator#1200273]
(159) Project
Output [3]: [product#1200232, plant#1200233, orderDateTime#1200234]
Input [4]: [product#1200232, plant#1200233, orderDateTime#1200234, quantityDenominator#1200273]
(160) BroadcastHashJoin
Left keys [2]: [plantUuid#1200224, productUuid#1200226]
Right keys [2]: [plant#1200233, product#1200232]
Join type: Inner
Join condition: (calculationDateTime#1200220 <= orderDateTime#1200234)
(161) Project
Output [4]: [plantUuid#1200224 AS plant#1200276, productUuid#1200226 AS product#1200277, storageLocId#1200227, calculationDateTime#1200220]
Input [7]: [plantUuid#1200224, productUuid#1200226, calculationDateTime#1200220, storageLocId#1200227, product#1200232, plant#1200233, orderDateTime#1200234]
(162) HashAggregate
Input [4]: [plant#1200276, product#1200277, storageLocId#1200227, calculationDateTime#1200220]
Keys [3]: [plant#1200276, product#1200277, storageLocId#1200227]
Functions [1]: [partial_max(calculationDateTime#1200220)]
Aggregate Attributes [1]: [max#1201967]
Results [4]: [plant#1200276, product#1200277, storageLocId#1200227, max#1201968]
(163) HashAggregate
Input [4]: [plant#1200276, product#1200277, storageLocId#1200227, max#1201968]
Keys [3]: [plant#1200276, product#1200277, storageLocId#1200227]
Functions [1]: [max(calculationDateTime#1200220)]
Aggregate Attributes [1]: [max(calculationDateTime#1200220)#1200140]
Results [4]: [plant#1200276, product#1200277, storageLocId#1200227, max(calculationDateTime#1200220)#1200140 AS max_calc_datetime#1200134]
(164) Exchange
Input [4]: [plant#1200276, product#1200277, storageLocId#1200227, max_calc_datetime#1200134]
Arguments: hashpartitioning(coalesce(plant#1200276, ), isnull(plant#1200276), coalesce(product#1200277, ), isnull(product#1200277), coalesce(storageLocId#1200227, ), isnull(storageLocId#1200227), coalesce(max_calc_datetime#1200134, 1970-01-01 00:00:00), isnull(max_calc_datetime#1200134), 37), ENSURE_REQUIREMENTS, [plan_id=1883070]
(165) ShuffleQueryStage
Output [4]: [plant#1200276, product#1200277, storageLocId#1200227, max_calc_datetime#1200134]
Arguments: 174
(166) AQEShuffleRead
Input [4]: [plant#1200276, product#1200277, storageLocId#1200227, max_calc_datetime#1200134]
Arguments: local
(167) BroadcastHashJoin
Left keys [8]: [coalesce(plant#1200132, ), isnull(plant#1200132), coalesce(product#1200133, ), isnull(product#1200133), coalesce(storageLocId#1200070, ), isnull(storageLocId#1200070), coalesce(calculationDateTime#1200049, 1970-01-01 00:00:00), isnull(calculationDateTime#1200049)]
Right keys [8]: [coalesce(plant#1200276, ), isnull(plant#1200276), coalesce(product#1200277, ), isnull(product#1200277), coalesce(storageLocId#1200227, ), isnull(storageLocId#1200227), coalesce(max_calc_datetime#1200134, 1970-01-01 00:00:00), isnull(max_calc_datetime#1200134)]
Join type: Inner
Join condition: None
(168) Project
Output [3]: [plant#1200132, product#1200133, calculationDateTime#1200049]
Input [8]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049, plant#1200276, product#1200277, storageLocId#1200227, max_calc_datetime#1200134]
(169) HashAggregate
Input [3]: [plant#1200132, product#1200133, calculationDateTime#1200049]
Keys [2]: [product#1200133, plant#1200132]
Functions [1]: [partial_min(calculationDateTime#1200049)]
Aggregate Attributes [1]: [min#1201959]
Results [3]: [product#1200133, plant#1200132, min#1201960]
(170) Exchange
Input [3]: [product#1200133, plant#1200132, min#1201960]
Arguments: hashpartitioning(product#1200133, plant#1200132, 37), ENSURE_REQUIREMENTS, [plan_id=1885368]
(171) ShuffleQueryStage
Output [3]: [product#1200133, plant#1200132, min#1201960]
Arguments: 180
(172) AQEShuffleRead
Input [3]: [product#1200133, plant#1200132, min#1201960]
Arguments: coalesced
(173) HashAggregate
Input [3]: [product#1200133, plant#1200132, min#1201960]
Keys [2]: [product#1200133, plant#1200132]
Functions [1]: [min(calculationDateTime#1200049)]
Aggregate Attributes [1]: [min(calculationDateTime#1200049)#1200296]
Results [3]: [product#1200133, plant#1200132, min(calculationDateTime#1200049)#1200296 AS minCalculationDateTime#1200289]
(174) BroadcastExchange
Input [3]: [product#1200133, plant#1200132, minCalculationDateTime#1200289]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=1885704]
(175) BroadcastQueryStage
Output [3]: [product#1200133, plant#1200132, minCalculationDateTime#1200289]
Arguments: 182
(176) BroadcastHashJoin
Left keys [2]: [plant#1199943, product#1199942]
Right keys [2]: [plant#1200132, product#1200133]
Join type: LeftOuter
Join condition: None
(177) Project
Output [4]: [product#1199942, plant#1199943, timezonecode#1199974, CASE WHEN isnotnull(minCalculationDateTime#1200289) THEN minCalculationDateTime#1200289 ELSE orderDateTime#1199944 END AS stockDatetime#1200346]
Input [7]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, product#1200133, plant#1200132, minCalculationDateTime#1200289]
(178) Exchange
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: hashpartitioning(coalesce(plant#1199943, ), isnull(plant#1199943), coalesce(product#1199942, ), isnull(product#1199942), 37), ENSURE_REQUIREMENTS, [plan_id=1886259]
(179) ShuffleQueryStage
Output [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: 184
(180) AQEShuffleRead
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: local
(181) Scan parquet
Output [3]: [product#1200424, plant#1200425, orderDateTime#1200426]
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/10000001355/shardId=0_1_10000001355]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(182) ColumnarToRow
Input [3]: [product#1200424, plant#1200425, orderDateTime#1200426]
(183) Exchange
Input [3]: [product#1200424, plant#1200425, orderDateTime#1200426]
Arguments: hashpartitioning(product#1200424, plant#1200425, 37), REPARTITION_BY_NUM, [plan_id=1848361]
(184) ShuffleQueryStage
Output [3]: [product#1200424, plant#1200425, orderDateTime#1200426]
Arguments: 39
(185) Scan parquet
Output [8]: [internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435, systemId#1200428]
Batched: 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#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435, systemId#1200428]
(187) Project
Output [8]: [systemId#1200428, internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435]
Input [8]: [internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435, systemId#1200428]
(188) Exchange
Input [8]: [systemId#1200428, internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1848375]
(189) ShuffleQueryStage
Output [8]: [systemId#1200428, internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435]
Arguments: 40
(190) Project
Output [1]: [struct(systemId, systemId#1200428, internalUUID, internalUUID#1200429, plant, plant#1200430, product, product#1200431, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1200432, productionAspect, productionAspect#1200433, salesPlant, salesPlant#1200434, listing, listing#1200435) AS productPlant#1200436]
Input [8]: [systemId#1200428, internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435]
(191) BroadcastExchange
Input [1]: [productPlant#1200436]
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=1858889]
(192) BroadcastQueryStage
Output [1]: [productPlant#1200436]
Arguments: 130
(193) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200424, ), isnull(product#1200424), coalesce(plant#1200425, ), isnull(plant#1200425)]
Right keys [4]: [coalesce(productPlant#1200436.product.internalRefUUID, ), isnull(productPlant#1200436.product.internalRefUUID), coalesce(productPlant#1200436.plant.internalRefUUID, ), isnull(productPlant#1200436.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(194) ReusedExchange [Reuses operator id: 27]
Output [2]: [internalUUID#1200438, timezonecode#1200449]
(195) BroadcastQueryStage
Output [2]: [internalUUID#1200438, timezonecode#1200449]
Arguments: 129
(196) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200425, ), isnull(plant#1200425)]
Right keys [2]: [coalesce(internalUUID#1200438, ), isnull(internalUUID#1200438)]
Join type: LeftOuter
Join condition: None
(197) Project
Output [5]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, CASE WHEN isnotnull(timezonecode#1200449) THEN timezonecode#1200449 ELSE UTC END AS timezonecode#1200450]
Input [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, internalUUID#1200438, timezonecode#1200449]
(198) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458]
(199) BroadcastQueryStage
Output [3]: [internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458]
Arguments: 145
(200) BroadcastHashJoin
Left keys [1]: [product#1200424]
Right keys [1]: [internalUUID#1200452]
Join type: LeftOuter
Join condition: None
(201) Project
Output [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, filter(unitOfMeasureConversions#1200458, lambdafunction((((lambda u#1199989.measurementUnit1.code = productPlant#1200436.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1199989.measurementUnit1.internalRefUUID = productPlant#1200436.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200456.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200456.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200463]
Input [8]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458]
(202) Project
Output [7]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, filteredUnitOfMeasureConversions#1200463.quantityDenominator AS _extract_quantityDenominator#1200974, filteredUnitOfMeasureConversions#1200463.quantityNumerator AS _extract_quantityNumerator#1200975]
Input [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, filteredUnitOfMeasureConversions#1200463]
(203) Generate
Input [7]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, _extract_quantityDenominator#1200974, _extract_quantityNumerator#1200975]
Arguments: explode(_extract_quantityNumerator#1200975), [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, _extract_quantityDenominator#1200974], true, [quantityNumerator#1200464]
(204) Generate
Input [7]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, _extract_quantityDenominator#1200974, quantityNumerator#1200464]
Arguments: explode(_extract_quantityDenominator#1200974), [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, quantityNumerator#1200464], true, [quantityDenominator#1200465]
(205) Project
Output [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, (cast(quantityNumerator#1200464 as double) / cast(quantityDenominator#1200465 as double)) AS outboundUnit#1200466]
Input [7]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, quantityNumerator#1200464, quantityDenominator#1200465]
(206) Project
Output [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, CASE WHEN (isnull(outboundUnit#1200466) OR (outboundUnit#1200466 <= 0.0)) THEN 1.0 ELSE outboundUnit#1200466 END AS outboundUnit#1200467]
Input [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200466]
(207) ReusedExchange [Reuses operator id: 51]
Output [6]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473]
(208) BroadcastQueryStage
Output [6]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473]
Arguments: 118
(209) ReusedExchange [Reuses operator id: 64]
Output [3]: [plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501]
(210) BroadcastQueryStage
Output [3]: [plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501]
Arguments: 124
(211) ReusedExchange [Reuses operator id: 93]
Output [1]: [plant#1200503]
(212) ShuffleQueryStage
Output [1]: [plant#1200503]
Arguments: 156
(213) AQEShuffleRead
Input [1]: [plant#1200503]
Arguments: coalesced
(214) HashAggregate
Input [1]: [plant#1200503]
Keys [1]: [plant#1200503]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200503]
(215) BroadcastHashJoin
Left keys [1]: [plantUuid#1200499]
Right keys [1]: [plant#1200503]
Join type: Inner
Join condition: None
(216) Project
Output [3]: [plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501]
Input [4]: [plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501, plant#1200503]
(217) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200471.internalRefUUID, ), isnull(plant#1200471.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1200499, ), isnull(plantUuid#1200499)]
Join type: Inner
Join condition: None
(218) Generate
Input [9]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473, plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501]
Arguments: explode(filter(stockQuantities#1200473, lambdafunction(((lambda x#1200047.storageLocation.internalRefUuid = storageLocUuid#1200501) AND (lambda x#1200047.storageLocation.Id = storageLocId#1200500)), lambda x#1200047, false))), [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, plantUuid#1200499], false, [stockQuantity#1200546]
(219) ObjectHashAggregate
Input [7]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, plantUuid#1200499, stockQuantity#1200546]
Keys [5]: [plantUuid#1200499, internalUUID#1200469, plant#1200471, product#1200470, systemId#1200468]
Functions [2]: [partial_first(calculationDateTime#1200472, false), partial_collect_list(stockQuantity#1200546, 0, 0)]
Aggregate Attributes [3]: [first#1201983, valueSet#1201984, buf#1201985]
Results [8]: [plantUuid#1200499, internalUUID#1200469, plant#1200471, product#1200470, systemId#1200468, first#1201986, valueSet#1201987, buf#1201988]
(220) ObjectHashAggregate
Input [8]: [plantUuid#1200499, internalUUID#1200469, plant#1200471, product#1200470, systemId#1200468, first#1201986, valueSet#1201987, buf#1201988]
Keys [5]: [plantUuid#1200499, internalUUID#1200469, plant#1200471, product#1200470, systemId#1200468]
Functions [2]: [first(calculationDateTime#1200472, false), collect_list(stockQuantity#1200546, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1200472)()#1200062, collect_list(stockQuantity#1200546, 0, 0)#1200063]
Results [4]: [product#1200470, plant#1200471, first(calculationDateTime#1200472)()#1200062 AS calculationDateTime#1200547, collect_list(stockQuantity#1200546, 0, 0)#1200063 AS stockQuantities#1200548]
(221) Filter
Input [4]: [product#1200470, plant#1200471, calculationDateTime#1200547, stockQuantities#1200548]
Condition : ((size(stockQuantities#1200548, true) > 0) AND isnotnull(calculationDateTime#1200547))
(222) Generate
Input [4]: [product#1200470, plant#1200471, calculationDateTime#1200547, stockQuantities#1200548]
Arguments: explode(stockQuantities#1200548), [product#1200470, plant#1200471, calculationDateTime#1200547], false, [stockQuantity#1200549]
(223) Filter
Input [4]: [product#1200470, plant#1200471, calculationDateTime#1200547, stockQuantity#1200549]
Condition : (((isnotnull(stockQuantity#1200549.specialStockIndicator.code) AND isnotnull(stockQuantity#1200549.stockType.code)) AND (stockQuantity#1200549.specialStockIndicator.code = )) AND (stockQuantity#1200549.stockType.code = 01))
(224) Project
Output [5]: [plant#1200471.internalRefUUID AS plantUuid#1200551, product#1200470.internalRefUUID AS productUuid#1200553, calculationDateTime#1200547, stockQuantity#1200549.storagelocation.id AS storageLocId#1200554, stockQuantity#1200549.quantity.measure AS quantity#1200556]
Input [4]: [product#1200470, plant#1200471, calculationDateTime#1200547, stockQuantity#1200549]
(225) Exchange
Input [5]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556]
Arguments: hashpartitioning(productUuid#1200553, plantUuid#1200551, 37), ENSURE_REQUIREMENTS, [plan_id=1880126]
(226) ShuffleQueryStage
Output [5]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556]
Arguments: 164
(227) AQEShuffleRead
Input [5]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556]
Arguments: local
(228) BroadcastExchange
Input [5]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true], input[1, string, true]),false), [plan_id=1882321]
(229) BroadcastQueryStage
Output [5]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556]
Arguments: 172
(230) ReusedExchange [Reuses operator id: 115]
Output [3]: [product#1200559, plant#1200560, orderDateTime#1200561]
(231) ShuffleQueryStage
Output [3]: [product#1200559, plant#1200560, orderDateTime#1200561]
Arguments: 58
(232) ReusedExchange [Reuses operator id: 18]
Output [4]: [_extract_code#1201110, _extract_internalRefUUID#1201111, _extract_internalRefUUID#1201113, _extract_internalRefUUID#1201112]
(233) BroadcastQueryStage
Output [4]: [_extract_code#1201110, _extract_internalRefUUID#1201111, _extract_internalRefUUID#1201113, _extract_internalRefUUID#1201112]
Arguments: 109
(234) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200559, ), isnull(product#1200559), coalesce(plant#1200560, ), isnull(plant#1200560)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201113, ), isnull(_extract_internalRefUUID#1201113), coalesce(_extract_internalRefUUID#1201112, ), isnull(_extract_internalRefUUID#1201112)]
Join type: LeftOuter
Join condition: None
(235) Project
Output [5]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111]
Input [7]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111, _extract_internalRefUUID#1201113, _extract_internalRefUUID#1201112]
(236) ReusedExchange [Reuses operator id: 80]
Output [1]: [internalUUID#1200573]
(237) BroadcastQueryStage
Output [1]: [internalUUID#1200573]
Arguments: 136
(238) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200560, ), isnull(plant#1200560)]
Right keys [2]: [coalesce(internalUUID#1200573, ), isnull(internalUUID#1200573)]
Join type: LeftOuter
Join condition: None
(239) Project
Output [5]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111]
Input [6]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111, internalUUID#1200573]
(240) ReusedExchange [Reuses operator id: 37]
Output [3]: [internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593]
(241) BroadcastQueryStage
Output [3]: [internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593]
Arguments: 147
(242) BroadcastHashJoin
Left keys [1]: [product#1200559]
Right keys [1]: [internalUUID#1200587]
Join type: LeftOuter
Join condition: None
(243) Project
Output [4]: [product#1200559, plant#1200560, orderDateTime#1200561, filter(unitOfMeasureConversions#1200593, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201110) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201111)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200591.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200591.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200598]
Input [8]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111, internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593]
(244) Generate
Input [4]: [product#1200559, plant#1200560, orderDateTime#1200561, filteredUnitOfMeasureConversions#1200598]
Arguments: explode(filteredUnitOfMeasureConversions#1200598.quantityNumerator), [product#1200559, plant#1200560, orderDateTime#1200561, filteredUnitOfMeasureConversions#1200598], true, [quantityNumerator#1200599]
(245) Project
Output [4]: [product#1200559, plant#1200560, orderDateTime#1200561, filteredUnitOfMeasureConversions#1200598.quantityDenominator AS _extract_quantityDenominator#1200924]
Input [5]: [product#1200559, plant#1200560, orderDateTime#1200561, filteredUnitOfMeasureConversions#1200598, quantityNumerator#1200599]
(246) Generate
Input [4]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_quantityDenominator#1200924]
Arguments: explode(_extract_quantityDenominator#1200924), [product#1200559, plant#1200560, orderDateTime#1200561], true, [quantityDenominator#1200600]
(247) Project
Output [3]: [product#1200559, plant#1200560, orderDateTime#1200561]
Input [4]: [product#1200559, plant#1200560, orderDateTime#1200561, quantityDenominator#1200600]
(248) BroadcastHashJoin
Left keys [2]: [plantUuid#1200551, productUuid#1200553]
Right keys [2]: [plant#1200560, product#1200559]
Join type: Inner
Join condition: (calculationDateTime#1200547 <= orderDateTime#1200561)
(249) Project
Output [5]: [plantUuid#1200551 AS plant#1200603, productUuid#1200553 AS product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
Input [8]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556, product#1200559, plant#1200560, orderDateTime#1200561]
(250) Exchange
Input [5]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
Arguments: hashpartitioning(coalesce(plant#1200603, ), isnull(plant#1200603), coalesce(product#1200604, ), isnull(product#1200604), coalesce(storageLocId#1200554, ), isnull(storageLocId#1200554), coalesce(calculationDateTime#1200547, 1970-01-01 00:00:00), isnull(calculationDateTime#1200547), 37), ENSURE_REQUIREMENTS, [plan_id=1883637]
(251) ShuffleQueryStage
Output [5]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
Arguments: 177
(252) AQEShuffleRead
Input [5]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
Arguments: local
(253) BroadcastExchange
Input [5]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
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=1884698]
(254) BroadcastQueryStage
Output [5]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
Arguments: 179
(255) ReusedExchange [Reuses operator id: 164]
Output [4]: [plant#1200740, product#1200741, storageLocId#1200691, max_calc_datetime#1200742]
(256) ShuffleQueryStage
Output [4]: [plant#1200740, product#1200741, storageLocId#1200691, max_calc_datetime#1200742]
Arguments: 176
(257) AQEShuffleRead
Input [4]: [plant#1200740, product#1200741, storageLocId#1200691, max_calc_datetime#1200742]
Arguments: local
(258) BroadcastHashJoin
Left keys [8]: [coalesce(plant#1200603, ), isnull(plant#1200603), coalesce(product#1200604, ), isnull(product#1200604), coalesce(storageLocId#1200554, ), isnull(storageLocId#1200554), coalesce(calculationDateTime#1200547, 1970-01-01 00:00:00), isnull(calculationDateTime#1200547)]
Right keys [8]: [coalesce(plant#1200740, ), isnull(plant#1200740), coalesce(product#1200741, ), isnull(product#1200741), coalesce(storageLocId#1200691, ), isnull(storageLocId#1200691), coalesce(max_calc_datetime#1200742, 1970-01-01 00:00:00), isnull(max_calc_datetime#1200742)]
Join type: Inner
Join condition: None
(259) Project
Output [4]: [plant#1200603, product#1200604, calculationDateTime#1200547, quantity#1200556]
Input [9]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556, plant#1200740, product#1200741, storageLocId#1200691, max_calc_datetime#1200742]
(260) HashAggregate
Input [4]: [plant#1200603, product#1200604, calculationDateTime#1200547, quantity#1200556]
Keys [2]: [product#1200604, plant#1200603]
Functions [2]: [partial_min(calculationDateTime#1200547), partial_sum(quantity#1200556)]
Aggregate Attributes [2]: [min#1201979, sum#1201980]
Results [4]: [product#1200604, plant#1200603, min#1201981, sum#1201982]
(261) Exchange
Input [4]: [product#1200604, plant#1200603, min#1201981, sum#1201982]
Arguments: hashpartitioning(product#1200604, plant#1200603, 37), ENSURE_REQUIREMENTS, [plan_id=1885403]
(262) ShuffleQueryStage
Output [4]: [product#1200604, plant#1200603, min#1201981, sum#1201982]
Arguments: 181
(263) AQEShuffleRead
Input [4]: [product#1200604, plant#1200603, min#1201981, sum#1201982]
Arguments: coalesced
(264) HashAggregate
Input [4]: [product#1200604, plant#1200603, min#1201981, sum#1201982]
Keys [2]: [product#1200604, plant#1200603]
Functions [2]: [min(calculationDateTime#1200547), sum(quantity#1200556)]
Aggregate Attributes [2]: [min(calculationDateTime#1200547)#1200296, sum(quantity#1200556)#1200295]
Results [4]: [product#1200604, plant#1200603, min(calculationDateTime#1200547)#1200296 AS minCalculationDateTime#1200744, round(sum(quantity#1200556)#1200295, 0) AS roundedQuantitySum#1200745]
(265) BroadcastExchange
Input [4]: [product#1200604, plant#1200603, minCalculationDateTime#1200744, roundedQuantitySum#1200745]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true], input[0, string, true]),false), [plan_id=1885977]
(266) BroadcastQueryStage
Output [4]: [product#1200604, plant#1200603, minCalculationDateTime#1200744, roundedQuantitySum#1200745]
Arguments: 183
(267) BroadcastHashJoin
Left keys [2]: [plant#1200425, product#1200424]
Right keys [2]: [plant#1200603, product#1200604]
Join type: LeftOuter
Join condition: None
(268) Project
Output [8]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, CASE WHEN isnotnull(minCalculationDateTime#1200744) THEN minCalculationDateTime#1200744 ELSE orderDateTime#1200426 END AS stockDatetime#1200746, CASE WHEN isnotnull(roundedQuantitySum#1200745) THEN array(roundedQuantitySum#1200745) ELSE [0.0] END AS stockBatchQuantities#1200747]
Input [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, product#1200604, plant#1200603, minCalculationDateTime#1200744, roundedQuantitySum#1200745]
(269) Scan parquet
Output [9]: [product#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
Batched: true
Location: InMemoryFileIndex [hdlfs://ced12e6d-bca7-47af-9525-449cba9023d7.files.hdl.prod-eu20.hanacloud.ondemand.com:443/crp-demand-service/out/demand/10000001355/0_1_10000001355]
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#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
(271) Filter
Input [9]: [product#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
Condition : (isnotnull(product#1200349) AND isnotnull(plant#1200350))
(272) BroadcastExchange
Input [9]: [product#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1848939]
(273) BroadcastQueryStage
Output [9]: [product#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
Arguments: 85
(274) BroadcastHashJoin
Left keys [2]: [product#1200424, plant#1200425]
Right keys [2]: [product#1200349, plant#1200350]
Join type: LeftOuter
Join condition: None
(275) Project
Output [9]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, CASE WHEN isnotnull(product#1200349) THEN struct(demandChannel, demandChannel#1200351, demandStream, demandStream#1200352, considerVariance, considerVariance#1200353, demandTimeBuckets, demandTimeBuckets#1200354, demandPointInTimeStart, demandPointInTimeStart#1200355, demandPointInTimeEnd, demandPointInTimeEnd#1200356, demandPointInTime, demandPointInTime#1200357) END AS rawDemands#1200370]
Input [17]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, product#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
(276) ObjectHashAggregate
Input [9]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, rawDemands#1200370]
Keys [9]: [product#1200424, plant#1200425, orderDateTime#1200426, knownfloatingpointnormalized(if (isnull(productPlant#1200436)) null else named_struct(systemId, productPlant#1200436.systemId, internalUUID, productPlant#1200436.internalUUID, plant, productPlant#1200436.plant, product, productPlant#1200436.product, blockedForReplenishmentStartingFrom, productPlant#1200436.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1200436.productionAspect)) null else named_struct(productMovementPlants, productPlant#1200436.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1200436.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1200436.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1200436.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1200436.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1200436.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1200436.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1200436.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1200436.salesPlant, listing, productPlant#1200436.listing)) AS productPlant#1200436, timezonecode#1200450, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1200467)) AS outboundUnit#1200467, stockDatetime#1200746, knownfloatingpointnormalized(transform(stockBatchQuantities#1200747, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1207108)), lambda arg#1207108, false))) AS stockBatchQuantities#1200747, [7226582400000000] AS [7226582400000000]#1207107]
Functions [1]: [partial_collect_list(rawDemands#1200370, 0, 0)]
Aggregate Attributes [1]: [buf#1201977]
Results [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, [7226582400000000]#1207107, buf#1201978]
(277) ObjectHashAggregate
Input [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, [7226582400000000]#1207107, buf#1201978]
Keys [9]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, [7226582400000000]#1207107]
Functions [1]: [collect_list(rawDemands#1200370, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1200370, 0, 0)#1200389]
Results [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1200748, collect_list(rawDemands#1200370, 0, 0)#1200389 AS rawDemands#1200371]
(278) DeserializeToObject
Input [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, stockBatchShelfLifeEndDatetimes#1200748, rawDemands#1200371]
Arguments: createexternalrow(invoke(product#1200424.toString()), invoke(plant#1200425.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1200426)), if (isnull(productPlant#1200436)) null else createexternalrow(invoke(productPlant#1200436.systemId.toString()), invoke(productPlant#1200436.internalUUID.toString()), if (isnull(productPlant#1200436.plant)) null else createexternalrow(invoke(productPlant#1200436.plant.internalRefUUID.toString()), invoke(productPlant#1200436.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1200436.product)) null else createexternalrow(invoke(productPlant#1200436.product.internalRefUUID.toString()), invoke(productPlant#1200436.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1200436.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1200436.productionAspect)) null else createexternalrow(if (isnull(productPlant#1200436.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1200436.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1200436.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#1200436.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1200436.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1200436.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1200436.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1200436.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1200436.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1200436.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#1200436.salesPlant)) null else createexternalrow(if (isnull(productPlant#1200436.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1200436.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1200436.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#1200436.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#1200450.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1200467)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1200746)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#1200747, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#1200748, 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#1200371, 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#1200410: org.apache.spark.sql.Row
(279) MapElements
Input [1]: [obj#1200410]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@783def9c, obj#1200415: org.apache.spark.sql.Row
(280) SerializeFromObject
Input [1]: [obj#1200415]
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#1200420, 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#1200421]
(281) Exchange
Input [2]: [product#1200420, plant#1200421]
Arguments: hashpartitioning(coalesce(plant#1200421, ), isnull(plant#1200421), coalesce(product#1200420, ), isnull(product#1200420), 37), ENSURE_REQUIREMENTS, [plan_id=1886498]
(282) ShuffleQueryStage
Output [2]: [product#1200420, plant#1200421]
Arguments: 185
(283) AQEShuffleRead
Input [2]: [product#1200420, plant#1200421]
Arguments: local
(284) BroadcastExchange
Input [2]: [product#1200420, plant#1200421]
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=1886669]
(285) BroadcastQueryStage
Output [2]: [product#1200420, plant#1200421]
Arguments: 186
(286) BroadcastHashJoin
Left keys [4]: [coalesce(plant#1199943, ), isnull(plant#1199943), coalesce(product#1199942, ), isnull(product#1199942)]
Right keys [4]: [coalesce(plant#1200421, ), isnull(plant#1200421), coalesce(product#1200420, ), isnull(product#1200420)]
Join type: LeftOuter
Join condition: None
(287) Project
Output [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Input [6]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346, product#1200420, plant#1200421]
(288) Exchange
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: hashpartitioning(plant#1199943, 37), ENSURE_REQUIREMENTS, [plan_id=1886740]
(289) ShuffleQueryStage
Output [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: 187
(290) AQEShuffleRead
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: local
(291) BroadcastExchange
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: HashedRelationBroadcastMode(List(input[1, string, true]),false), [plan_id=1886790]
(292) BroadcastQueryStage
Output [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: 188
(293) ReusedExchange [Reuses operator id: 57]
Output [1]: [distributionCenters#1200819]
(294) ShuffleQueryStage
Output [1]: [distributionCenters#1200819]
Arguments: 87
(295) Generate
Input [1]: [distributionCenters#1200819]
Arguments: explode(distributionCenters#1200819), false, [distributionCenters#1200835]
(296) Filter
Input [1]: [distributionCenters#1200835]
Condition : (((size(distributionCenters#1200835.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1200835.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1200835.internalRefUUID))
(297) Project
Output [2]: [distributionCenters#1200835.internalRefUUID AS _extract_internalRefUUID#1200938, distributionCenters#1200835.storageLocations.internalRefUUID AS _extract_internalRefUUID#1201123]
Input [1]: [distributionCenters#1200835]
(298) Generate
Input [2]: [_extract_internalRefUUID#1200938, _extract_internalRefUUID#1201123]
Arguments: explode(_extract_internalRefUUID#1201123), [_extract_internalRefUUID#1200938], false, [storageLocations#1200836]
(299) Filter
Input [2]: [_extract_internalRefUUID#1200938, storageLocations#1200836]
Condition : isnotnull(storageLocations#1200836)
(300) Project
Output [2]: [_extract_internalRefUUID#1200938 AS plantUuid#1200838, storageLocations#1200836 AS storageLocUuid#1200840]
Input [2]: [_extract_internalRefUUID#1200938, storageLocations#1200836]
(301) BroadcastExchange
Input [2]: [plantUuid#1200838, storageLocUuid#1200840]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1854780]
(302) BroadcastQueryStage
Output [2]: [plantUuid#1200838, storageLocUuid#1200840]
Arguments: 127
(303) ReusedExchange [Reuses operator id: 93]
Output [1]: [plant#1200842]
(304) ShuffleQueryStage
Output [1]: [plant#1200842]
Arguments: 160
(305) HashAggregate
Input [1]: [plant#1200842]
Keys [1]: [plant#1200842]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200842]
(306) BroadcastHashJoin
Left keys [1]: [plantUuid#1200838]
Right keys [1]: [plant#1200842]
Join type: Inner
Join condition: None
(307) Project
Output [2]: [plantUuid#1200838 AS plant#1200812, storageLocUuid#1200840]
Input [3]: [plantUuid#1200838, storageLocUuid#1200840, plant#1200842]
(308) BroadcastHashJoin
Left keys [1]: [plant#1199943]
Right keys [1]: [plant#1200812]
Join type: Inner
Join condition: None
(309) Project
Output [5]: [plant#1199943, product#1199942, timezonecode#1199974, stockDatetime#1200346, storageLocUuid#1200840]
Input [6]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346, plant#1200812, storageLocUuid#1200840]
(310) Scan parquet
Output [6]: [internalUUID#1200774, id#1200775, supplier#1200777, isMarkedForDeletion#1200780, items#1200781, systemId#1200773]
Batched: 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>>>>>
(311) ColumnarToRow
Input [6]: [internalUUID#1200774, id#1200775, supplier#1200777, isMarkedForDeletion#1200780, items#1200781, systemId#1200773]
(312) Filter
Input [6]: [internalUUID#1200774, id#1200775, supplier#1200777, isMarkedForDeletion#1200780, items#1200781, systemId#1200773]
Condition : (((isnotnull(isMarkedForDeletion#1200780) AND NOT isMarkedForDeletion#1200780) AND (size(items#1200781, true) > 0)) AND isnotnull(items#1200781))
(313) Project
Output [4]: [internalUUID#1200774, id#1200775, supplier#1200777, items#1200781]
Input [6]: [internalUUID#1200774, id#1200775, supplier#1200777, isMarkedForDeletion#1200780, items#1200781, systemId#1200773]
(314) Exchange
Input [4]: [internalUUID#1200774, id#1200775, supplier#1200777, items#1200781]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1849172]
(315) ShuffleQueryStage
Output [4]: [internalUUID#1200774, id#1200775, supplier#1200777, items#1200781]
Arguments: 96
(316) Generate
Input [4]: [internalUUID#1200774, id#1200775, supplier#1200777, items#1200781]
Arguments: explode(items#1200781), [internalUUID#1200774, id#1200775, supplier#1200777], false, [item#1200785]
(317) Filter
Input [4]: [internalUUID#1200774, id#1200775, supplier#1200777, item#1200785]
Condition : ((((isnotnull(item#1200785.deletionIndicator) AND isnotnull(item#1200785.completeIndicator)) AND isnotnull(item#1200785.returnIndicator)) AND ((NOT item#1200785.deletionIndicator AND NOT item#1200785.completeIndicator) AND NOT item#1200785.returnIndicator)) AND ((isnotnull(item#1200785.product.internalRefUUID) AND isnotnull(item#1200785.plant.internalRefUUID)) AND isnotnull(item#1200785.storageLocation.internalRefUUID)))
(318) Project
Output [14]: [id#1200775, internalUUID#1200774, supplier#1200777.internalRefUUID AS supplierUuid#1200782, item#1200785.plant.internalRefUUID AS plant#1200790, item#1200785.product.internalRefUUID AS product#1200791, item#1200785.plant.id AS externalPlantId#1200792, item#1200785.product.id AS externalProductId#1200793, item#1200785.storageLocation.internalRefUUID AS storageLocUuid#1200794, item#1200785.quantityUnit.code AS quantityUom#1200795, item#1200785.quantityUnit.internalRefUUID AS quantityUomUuid#1200796, item#1200785.quantityNumerator AS quantityNumerator#1200797, item#1200785.quantityDenominator AS quantityDenominator#1200798, item#1200785.scheduleLines AS scheduleLines#1200799, item#1200785.confirmations AS confirmations#1200800]
Input [4]: [internalUUID#1200774, id#1200775, supplier#1200777, item#1200785]
(319) BroadcastExchange
Input [14]: [id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800]
Arguments: HashedRelationBroadcastMode(List(input[4, string, true], input[3, string, true], input[7, string, true]),false), [plan_id=1863533]
(320) BroadcastQueryStage
Output [14]: [id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800]
Arguments: 151
(321) BroadcastHashJoin
Left keys [3]: [product#1199942, plant#1199943, storageLocUuid#1200840]
Right keys [3]: [product#1200791, plant#1200790, storageLocUuid#1200794]
Join type: Inner
Join condition: None
(322) Project
Output [17]: [id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800, stockDatetime#1200346, timezonecode#1199974, filter(confirmations#1200800, lambdafunction(((NOT lambda x_139#1200891.deletionIndicator AND lambda x_139#1200891.isRelevantForConfirmation) AND isnotnull(lambda x_139#1200891.confirmedDeliveryAt)), lambda x_139#1200891, false)) AS validConfirmations#1200890]
Input [19]: [plant#1199943, product#1199942, timezonecode#1199974, stockDatetime#1200346, storageLocUuid#1200840, id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800]
(323) ResultQueryStage
Output [17]: [id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800, stockDatetime#1200346, timezonecode#1199974, validConfirmations#1200890]
Arguments: 189
(324) Filter
Input [3]: [product#1199942, plant#1199943, orderDateTime#1199944]
Condition : (isnotnull(plant#1199943) AND isnotnull(product#1199942))
(325) Exchange
Input [3]: [product#1199942, plant#1199943, orderDateTime#1199944]
Arguments: hashpartitioning(product#1199942, plant#1199943, 37), REPARTITION_BY_NUM, [plan_id=1838361]
(326) Project
Output [4]: [plant#1199949.internalRefUUID AS _extract_internalRefUUID#1201089, product#1199950.internalRefUUID AS _extract_internalRefUUID#1201086, productionAspect#1199952.productMovementPlants.unitOfIssue.code AS _extract_code#1201087, productionAspect#1199952.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201088]
Input [4]: [plant#1199949, product#1199950, productionAspect#1199952, systemId#1199947]
(327) Exchange
Input [4]: [_extract_internalRefUUID#1201089, _extract_internalRefUUID#1201086, _extract_code#1201087, _extract_internalRefUUID#1201088]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1837932]
(328) Project
Output [4]: [_extract_code#1201087, _extract_internalRefUUID#1201088, _extract_internalRefUUID#1201086, _extract_internalRefUUID#1201089]
Input [4]: [_extract_internalRefUUID#1201089, _extract_internalRefUUID#1201086, _extract_code#1201087, _extract_internalRefUUID#1201088]
(329) BroadcastExchange
Input [4]: [_extract_code#1201087, _extract_internalRefUUID#1201088, _extract_internalRefUUID#1201086, _extract_internalRefUUID#1201089]
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=1838560]
(330) BroadcastHashJoin
Left keys [4]: [coalesce(product#1199942, ), isnull(product#1199942), coalesce(plant#1199943, ), isnull(plant#1199943)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201086, ), isnull(_extract_internalRefUUID#1201086), coalesce(_extract_internalRefUUID#1201089, ), isnull(_extract_internalRefUUID#1201089)]
Join type: LeftOuter
Join condition: None
(331) Project
Output [5]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088]
Input [7]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088, _extract_internalRefUUID#1201086, _extract_internalRefUUID#1201089]
(332) Project
Output [2]: [internalUUID#1199960, address#1199966.timeZone.code AS timezonecode#1199971]
Input [3]: [internalUUID#1199960, address#1199966, systemId#1199959]
(333) Exchange
Input [2]: [internalUUID#1199960, timezonecode#1199971]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1837938]
(334) BroadcastExchange
Input [2]: [internalUUID#1199960, timezonecode#1199971]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838564]
(335) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1199943, ), isnull(plant#1199943)]
Right keys [2]: [coalesce(internalUUID#1199960, ), isnull(internalUUID#1199960)]
Join type: LeftOuter
Join condition: None
(336) Project
Output [6]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088, CASE WHEN isnotnull(timezonecode#1199971) THEN timezonecode#1199971 ELSE UTC END AS timezonecode#1199974]
Input [7]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088, internalUUID#1199960, timezonecode#1199971]
(337) Filter
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
Condition : isnotnull(internalUUID#1199976)
(338) Project
Output [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Input [4]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982, systemId#1199975]
(339) Exchange
Input [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1837944]
(340) BroadcastExchange
Input [3]: [internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838568]
(341) BroadcastHashJoin
Left keys [1]: [product#1199942]
Right keys [1]: [internalUUID#1199976]
Join type: LeftOuter
Join condition: None
(342) Project
Output [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filter(unitOfMeasureConversions#1199982, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201087) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201088)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1199980.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1199980.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1199988]
Input [9]: [product#1199942, plant#1199943, orderDateTime#1199944, _extract_code#1201087, _extract_internalRefUUID#1201088, timezonecode#1199974, internalUUID#1199976, baseUnitOfMeasure#1199980, unitOfMeasureConversions#1199982]
(343) Generate
Input [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filteredUnitOfMeasureConversions#1199988]
Arguments: explode(filteredUnitOfMeasureConversions#1199988.quantityNumerator), [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filteredUnitOfMeasureConversions#1199988], true, [quantityNumerator#1199996]
(344) Project
Output [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filteredUnitOfMeasureConversions#1199988.quantityDenominator AS _extract_quantityDenominator#1200892]
Input [6]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, filteredUnitOfMeasureConversions#1199988, quantityNumerator#1199996]
(345) Generate
Input [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, _extract_quantityDenominator#1200892]
Arguments: explode(_extract_quantityDenominator#1200892), [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974], true, [quantityDenominator#1199999]
(346) Project
Output [4]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974]
Input [5]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, quantityDenominator#1199999]
(347) Sort
Input [4]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974]
Arguments: [product#1199942 ASC NULLS FIRST, plant#1199943 ASC NULLS FIRST], false, 0
(348) Filter
Input [6]: [internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043, systemId#1200038]
Condition : (isnotnull(plant#1200041.internalRefUUID) AND isnotnull(product#1200040.internalRefUUID))
(349) Project
Output [6]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043]
Input [6]: [internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043, systemId#1200038]
(350) Exchange
Input [6]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1837954]
(351) BroadcastExchange
Input [6]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043]
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=1838599]
(352) Filter
Input [2]: [marketUnit#1200002, distributionCenters#1200008]
Condition : (((marketUnit#1200002 <=> Grocery_SS) AND (size(distributionCenters#1200008, true) > 0)) AND isnotnull(distributionCenters#1200008))
(353) Project
Output [1]: [distributionCenters#1200008]
Input [2]: [marketUnit#1200002, distributionCenters#1200008]
(354) Exchange
Input [1]: [distributionCenters#1200008]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1837958]
(355) Generate
Input [1]: [distributionCenters#1200008]
Arguments: explode(distributionCenters#1200008), false, [distributionCenters#1200026]
(356) Filter
Input [1]: [distributionCenters#1200026]
Condition : (((size(distributionCenters#1200026.storageLocations, true) > 0) AND isnotnull(distributionCenters#1200026.storageLocations)) AND isnotnull(distributionCenters#1200026.internalRefUUID))
(357) Project
Output [2]: [distributionCenters#1200026.internalRefUUID AS _extract_internalRefUUID#1200896, distributionCenters#1200026.storageLocations AS _extract_storageLocations#1200897]
Input [1]: [distributionCenters#1200026]
(358) Generate
Input [2]: [_extract_internalRefUUID#1200896, _extract_storageLocations#1200897]
Arguments: explode(_extract_storageLocations#1200897), [_extract_internalRefUUID#1200896], false, [storageLocations#1200033]
(359) Project
Output [3]: [_extract_internalRefUUID#1200896 AS plantUuid#1200028, storageLocations#1200033.id AS storageLocId#1200034, storageLocations#1200033.internalRefUUID AS storageLocUuid#1200035]
Input [2]: [_extract_internalRefUUID#1200896, storageLocations#1200033]
(360) BroadcastExchange
Input [3]: [plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838595]
(361) Filter
Input [2]: [product#1200298, plant#1200299]
Condition : isnotnull(plant#1200299)
(362) Exchange
Input [2]: [product#1200298, plant#1200299]
Arguments: hashpartitioning(product#1200298, plant#1200299, 37), REPARTITION_BY_NUM, [plan_id=1838372]
(363) Scan parquet
Output [4]: [plant#1200304, product#1200305, productionAspect#1200307, systemId#1200302]
Batched: 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>>>>
(364) Project
Output [4]: [plant#1200304.internalRefUUID AS _extract_internalRefUUID#1201093, product#1200305.internalRefUUID AS _extract_internalRefUUID#1201092, productionAspect#1200307.productMovementPlants.unitOfIssue.code AS _extract_code#1201090, productionAspect#1200307.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201091]
Input [4]: [plant#1200304, product#1200305, productionAspect#1200307, systemId#1200302]
(365) Exchange
Input [4]: [_extract_internalRefUUID#1201093, _extract_internalRefUUID#1201092, _extract_code#1201090, _extract_internalRefUUID#1201091]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1837970]
(366) Project
Output [4]: [_extract_code#1201090, _extract_internalRefUUID#1201091, _extract_internalRefUUID#1201092, _extract_internalRefUUID#1201093]
Input [4]: [_extract_internalRefUUID#1201093, _extract_internalRefUUID#1201092, _extract_code#1201090, _extract_internalRefUUID#1201091]
(367) BroadcastExchange
Input [4]: [_extract_code#1201090, _extract_internalRefUUID#1201091, _extract_internalRefUUID#1201092, _extract_internalRefUUID#1201093]
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=1838575]
(368) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200298, ), isnull(product#1200298), coalesce(plant#1200299, ), isnull(plant#1200299)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201092, ), isnull(_extract_internalRefUUID#1201092), coalesce(_extract_internalRefUUID#1201093, ), isnull(_extract_internalRefUUID#1201093)]
Join type: LeftOuter
Join condition: None
(369) Project
Output [4]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091]
Input [6]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091, _extract_internalRefUUID#1201092, _extract_internalRefUUID#1201093]
(370) Project
Output [1]: [internalUUID#1200312]
Input [2]: [internalUUID#1200312, systemId#1200311]
(371) Exchange
Input [1]: [internalUUID#1200312]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1837976]
(372) BroadcastExchange
Input [1]: [internalUUID#1200312]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838579]
(373) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200299, ), isnull(plant#1200299)]
Right keys [2]: [coalesce(internalUUID#1200312, ), isnull(internalUUID#1200312)]
Join type: LeftOuter
Join condition: None
(374) Project
Output [4]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091]
Input [5]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091, internalUUID#1200312]
(375) Scan parquet
Output [4]: [internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332, systemId#1200325]
Batched: 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>>>
(376) Filter
Input [4]: [internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332, systemId#1200325]
Condition : isnotnull(internalUUID#1200326)
(377) Project
Output [3]: [internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332]
Input [4]: [internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332, systemId#1200325]
(378) Exchange
Input [3]: [internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1837982]
(379) BroadcastExchange
Input [3]: [internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838583]
(380) BroadcastHashJoin
Left keys [1]: [product#1200298]
Right keys [1]: [internalUUID#1200326]
Join type: LeftOuter
Join condition: None
(381) Project
Output [2]: [plant#1200299, filter(unitOfMeasureConversions#1200332, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201090) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201091)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200330.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200330.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200337]
Input [7]: [product#1200298, plant#1200299, _extract_code#1201090, _extract_internalRefUUID#1201091, internalUUID#1200326, baseUnitOfMeasure#1200330, unitOfMeasureConversions#1200332]
(382) Generate
Input [2]: [plant#1200299, filteredUnitOfMeasureConversions#1200337]
Arguments: explode(filteredUnitOfMeasureConversions#1200337.quantityNumerator), [plant#1200299, filteredUnitOfMeasureConversions#1200337], true, [quantityNumerator#1200338]
(383) Project
Output [2]: [plant#1200299, filteredUnitOfMeasureConversions#1200337.quantityDenominator AS _extract_quantityDenominator#1200898]
Input [3]: [plant#1200299, filteredUnitOfMeasureConversions#1200337, quantityNumerator#1200338]
(384) Generate
Input [2]: [plant#1200299, _extract_quantityDenominator#1200898]
Arguments: explode(_extract_quantityDenominator#1200898), [plant#1200299], true, [quantityDenominator#1200339]
(385) Project
Output [1]: [plant#1200299]
Input [2]: [plant#1200299, quantityDenominator#1200339]
(386) HashAggregate
Input [1]: [plant#1200299]
Keys [1]: [plant#1200299]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200299]
(387) Exchange
Input [1]: [plant#1200299]
Arguments: hashpartitioning(plant#1200299, 37), ENSURE_REQUIREMENTS, [plan_id=1838592]
(388) HashAggregate
Input [1]: [plant#1200299]
Keys [1]: [plant#1200299]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200299]
(389) BroadcastHashJoin
Left keys [1]: [plantUuid#1200028]
Right keys [1]: [plant#1200299]
Join type: Inner
Join condition: None
(390) Project
Output [3]: [plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035]
Input [4]: [plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035, plant#1200299]
(391) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200041.internalRefUUID, ), isnull(plant#1200041.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1200028, ), isnull(plantUuid#1200028)]
Join type: Inner
Join condition: None
(392) Generate
Input [9]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, stockQuantities#1200043, plantUuid#1200028, storageLocId#1200034, storageLocUuid#1200035]
Arguments: explode(filter(stockQuantities#1200043, lambdafunction(((lambda x#1200047.storageLocation.internalRefUuid = storageLocUuid#1200035) AND (lambda x#1200047.storageLocation.Id = storageLocId#1200034)), lambda x#1200047, false))), [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, plantUuid#1200028], false, [stockQuantity#1200048]
(393) ObjectHashAggregate
Input [7]: [systemId#1200038, internalUUID#1200039, product#1200040, plant#1200041, calculationDateTime#1200042, plantUuid#1200028, stockQuantity#1200048]
Keys [5]: [plantUuid#1200028, internalUUID#1200039, plant#1200041, product#1200040, systemId#1200038]
Functions [2]: [partial_first(calculationDateTime#1200042, false), partial_collect_list(stockQuantity#1200048, 0, 0)]
Aggregate Attributes [3]: [first#1201961, valueSet#1201962, buf#1201963]
Results [8]: [plantUuid#1200028, internalUUID#1200039, plant#1200041, product#1200040, systemId#1200038, first#1201964, valueSet#1201965, buf#1201966]
(394) ObjectHashAggregate
Input [8]: [plantUuid#1200028, internalUUID#1200039, plant#1200041, product#1200040, systemId#1200038, first#1201964, valueSet#1201965, buf#1201966]
Keys [5]: [plantUuid#1200028, internalUUID#1200039, plant#1200041, product#1200040, systemId#1200038]
Functions [2]: [first(calculationDateTime#1200042, false), collect_list(stockQuantity#1200048, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1200042)()#1200062, collect_list(stockQuantity#1200048, 0, 0)#1200063]
Results [4]: [product#1200040, plant#1200041, first(calculationDateTime#1200042)()#1200062 AS calculationDateTime#1200049, collect_list(stockQuantity#1200048, 0, 0)#1200063 AS stockQuantities#1200050]
(395) Filter
Input [4]: [product#1200040, plant#1200041, calculationDateTime#1200049, stockQuantities#1200050]
Condition : ((size(stockQuantities#1200050, true) > 0) AND isnotnull(calculationDateTime#1200049))
(396) Generate
Input [4]: [product#1200040, plant#1200041, calculationDateTime#1200049, stockQuantities#1200050]
Arguments: explode(stockQuantities#1200050), [product#1200040, plant#1200041, calculationDateTime#1200049], false, [stockQuantity#1200065]
(397) Filter
Input [4]: [product#1200040, plant#1200041, calculationDateTime#1200049, stockQuantity#1200065]
Condition : (((isnotnull(stockQuantity#1200065.specialStockIndicator.code) AND isnotnull(stockQuantity#1200065.stockType.code)) AND (stockQuantity#1200065.specialStockIndicator.code = )) AND (stockQuantity#1200065.stockType.code = 01))
(398) Project
Output [4]: [plant#1200041.internalRefUUID AS plantUuid#1200067, product#1200040.internalRefUUID AS productUuid#1200069, calculationDateTime#1200049, stockQuantity#1200065.storagelocation.id AS storageLocId#1200070]
Input [4]: [product#1200040, plant#1200041, calculationDateTime#1200049, stockQuantity#1200065]
(399) Exchange
Input [4]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070]
Arguments: hashpartitioning(productUuid#1200069, plantUuid#1200067, 37), ENSURE_REQUIREMENTS, [plan_id=1838625]
(400) Sort
Input [4]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070]
Arguments: [productUuid#1200069 ASC NULLS FIRST, plantUuid#1200067 ASC NULLS FIRST], false, 0
(401) Filter
Input [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
Condition : ((isnotnull(orderDateTime#1200086) AND isnotnull(plant#1200085)) AND isnotnull(product#1200084))
(402) Exchange
Input [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
Arguments: hashpartitioning(product#1200084, plant#1200085, 37), REPARTITION_BY_NUM, [plan_id=1838395]
(403) Scan parquet
Output [4]: [plant#1200090, product#1200091, productionAspect#1200093, systemId#1200088]
Batched: 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>>>>
(404) Project
Output [4]: [plant#1200090.internalRefUUID AS _extract_internalRefUUID#1201097, product#1200091.internalRefUUID AS _extract_internalRefUUID#1201094, productionAspect#1200093.productMovementPlants.unitOfIssue.code AS _extract_code#1201095, productionAspect#1200093.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201096]
Input [4]: [plant#1200090, product#1200091, productionAspect#1200093, systemId#1200088]
(405) Exchange
Input [4]: [_extract_internalRefUUID#1201097, _extract_internalRefUUID#1201094, _extract_code#1201095, _extract_internalRefUUID#1201096]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838007]
(406) Project
Output [4]: [_extract_code#1201095, _extract_internalRefUUID#1201096, _extract_internalRefUUID#1201094, _extract_internalRefUUID#1201097]
Input [4]: [_extract_internalRefUUID#1201097, _extract_internalRefUUID#1201094, _extract_code#1201095, _extract_internalRefUUID#1201096]
(407) BroadcastExchange
Input [4]: [_extract_code#1201095, _extract_internalRefUUID#1201096, _extract_internalRefUUID#1201094, _extract_internalRefUUID#1201097]
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=1838608]
(408) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200084, ), isnull(product#1200084), coalesce(plant#1200085, ), isnull(plant#1200085)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201094, ), isnull(_extract_internalRefUUID#1201094), coalesce(_extract_internalRefUUID#1201097, ), isnull(_extract_internalRefUUID#1201097)]
Join type: LeftOuter
Join condition: None
(409) Project
Output [5]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096]
Input [7]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096, _extract_internalRefUUID#1201094, _extract_internalRefUUID#1201097]
(410) Scan parquet
Output [2]: [internalUUID#1200098, systemId#1200097]
Batched: 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>
(411) Project
Output [1]: [internalUUID#1200098]
Input [2]: [internalUUID#1200098, systemId#1200097]
(412) Exchange
Input [1]: [internalUUID#1200098]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838013]
(413) BroadcastExchange
Input [1]: [internalUUID#1200098]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838612]
(414) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200085, ), isnull(plant#1200085)]
Right keys [2]: [coalesce(internalUUID#1200098, ), isnull(internalUUID#1200098)]
Join type: LeftOuter
Join condition: None
(415) Project
Output [5]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096]
Input [6]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096, internalUUID#1200098]
(416) Scan parquet
Output [4]: [internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118, systemId#1200111]
Batched: 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>>>
(417) Filter
Input [4]: [internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118, systemId#1200111]
Condition : isnotnull(internalUUID#1200112)
(418) Project
Output [3]: [internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118]
Input [4]: [internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118, systemId#1200111]
(419) Exchange
Input [3]: [internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838019]
(420) BroadcastExchange
Input [3]: [internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838616]
(421) BroadcastHashJoin
Left keys [1]: [product#1200084]
Right keys [1]: [internalUUID#1200112]
Join type: LeftOuter
Join condition: None
(422) Project
Output [4]: [product#1200084, plant#1200085, orderDateTime#1200086, filter(unitOfMeasureConversions#1200118, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201095) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201096)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200116.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200116.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200123]
Input [8]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_code#1201095, _extract_internalRefUUID#1201096, internalUUID#1200112, baseUnitOfMeasure#1200116, unitOfMeasureConversions#1200118]
(423) Generate
Input [4]: [product#1200084, plant#1200085, orderDateTime#1200086, filteredUnitOfMeasureConversions#1200123]
Arguments: explode(filteredUnitOfMeasureConversions#1200123.quantityNumerator), [product#1200084, plant#1200085, orderDateTime#1200086, filteredUnitOfMeasureConversions#1200123], true, [quantityNumerator#1200124]
(424) Project
Output [4]: [product#1200084, plant#1200085, orderDateTime#1200086, filteredUnitOfMeasureConversions#1200123.quantityDenominator AS _extract_quantityDenominator#1200902]
Input [5]: [product#1200084, plant#1200085, orderDateTime#1200086, filteredUnitOfMeasureConversions#1200123, quantityNumerator#1200124]
(425) Generate
Input [4]: [product#1200084, plant#1200085, orderDateTime#1200086, _extract_quantityDenominator#1200902]
Arguments: explode(_extract_quantityDenominator#1200902), [product#1200084, plant#1200085, orderDateTime#1200086], true, [quantityDenominator#1200125]
(426) Project
Output [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
Input [4]: [product#1200084, plant#1200085, orderDateTime#1200086, quantityDenominator#1200125]
(427) Sort
Input [3]: [product#1200084, plant#1200085, orderDateTime#1200086]
Arguments: [product#1200084 ASC NULLS FIRST, plant#1200085 ASC NULLS FIRST], false, 0
(428) SortMergeJoin
Left keys [2]: [productUuid#1200069, plantUuid#1200067]
Right keys [2]: [product#1200084, plant#1200085]
Join type: Inner
Join condition: (calculationDateTime#1200049 <= orderDateTime#1200086)
(429) Project
Output [4]: [plantUuid#1200067 AS plant#1200132, productUuid#1200069 AS product#1200133, storageLocId#1200070, calculationDateTime#1200049]
Input [7]: [plantUuid#1200067, productUuid#1200069, calculationDateTime#1200049, storageLocId#1200070, product#1200084, plant#1200085, orderDateTime#1200086]
(430) Exchange
Input [4]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049]
Arguments: hashpartitioning(coalesce(plant#1200132, ), isnull(plant#1200132), coalesce(product#1200133, ), isnull(product#1200133), coalesce(storageLocId#1200070, ), isnull(storageLocId#1200070), coalesce(calculationDateTime#1200049, 1970-01-01 00:00:00), isnull(calculationDateTime#1200049), 37), ENSURE_REQUIREMENTS, [plan_id=1838689]
(431) Sort
Input [4]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049]
Arguments: [coalesce(plant#1200132, ) ASC NULLS FIRST, isnull(plant#1200132) ASC NULLS FIRST, coalesce(product#1200133, ) ASC NULLS FIRST, isnull(product#1200133) ASC NULLS FIRST, coalesce(storageLocId#1200070, ) ASC NULLS FIRST, isnull(storageLocId#1200070) ASC NULLS FIRST, coalesce(calculationDateTime#1200049, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1200049) ASC NULLS FIRST], false, 0
(432) Scan parquet
Output [6]: [internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, stockQuantities#1200146, systemId#1200141]
Batched: 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>>>>>
(433) Filter
Input [6]: [internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, stockQuantities#1200146, systemId#1200141]
Condition : (isnotnull(plant#1200144.internalRefUUID) AND isnotnull(product#1200143.internalRefUUID))
(434) Project
Output [6]: [systemId#1200141, internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, stockQuantities#1200146]
Input [6]: [internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, stockQuantities#1200146, systemId#1200141]
(435) Exchange
Input [6]: [systemId#1200141, internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, stockQuantities#1200146]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838031]
(436) BroadcastExchange
Input [6]: [systemId#1200141, internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, stockQuantities#1200146]
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=1838654]
(437) Scan parquet
Output [2]: [marketUnit#1200147, distributionCenters#1200153]
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,Grocery_SS), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(438) Filter
Input [2]: [marketUnit#1200147, distributionCenters#1200153]
Condition : (((marketUnit#1200147 <=> Grocery_SS) AND (size(distributionCenters#1200153, true) > 0)) AND isnotnull(distributionCenters#1200153))
(439) Project
Output [1]: [distributionCenters#1200153]
Input [2]: [marketUnit#1200147, distributionCenters#1200153]
(440) Exchange
Input [1]: [distributionCenters#1200153]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838035]
(441) Generate
Input [1]: [distributionCenters#1200153]
Arguments: explode(distributionCenters#1200153), false, [distributionCenters#1200169]
(442) Filter
Input [1]: [distributionCenters#1200169]
Condition : (((size(distributionCenters#1200169.storageLocations, true) > 0) AND isnotnull(distributionCenters#1200169.storageLocations)) AND isnotnull(distributionCenters#1200169.internalRefUUID))
(443) Project
Output [2]: [distributionCenters#1200169.internalRefUUID AS _extract_internalRefUUID#1200906, distributionCenters#1200169.storageLocations AS _extract_storageLocations#1200907]
Input [1]: [distributionCenters#1200169]
(444) Generate
Input [2]: [_extract_internalRefUUID#1200906, _extract_storageLocations#1200907]
Arguments: explode(_extract_storageLocations#1200907), [_extract_internalRefUUID#1200906], false, [storageLocations#1200170]
(445) Project
Output [3]: [_extract_internalRefUUID#1200906 AS plantUuid#1200172, storageLocations#1200170.id AS storageLocId#1200173, storageLocations#1200170.internalRefUUID AS storageLocUuid#1200174]
Input [2]: [_extract_internalRefUUID#1200906, storageLocations#1200170]
(446) BroadcastExchange
Input [3]: [plantUuid#1200172, storageLocId#1200173, storageLocUuid#1200174]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838650]
(447) Scan parquet
Output [2]: [product#1200175, plant#1200176]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(448) Filter
Input [2]: [product#1200175, plant#1200176]
Condition : isnotnull(plant#1200176)
(449) Exchange
Input [2]: [product#1200175, plant#1200176]
Arguments: hashpartitioning(product#1200175, plant#1200176, 37), REPARTITION_BY_NUM, [plan_id=1838408]
(450) Scan parquet
Output [4]: [plant#1200181, product#1200182, productionAspect#1200184, systemId#1200179]
Batched: 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>>>>
(451) Project
Output [4]: [plant#1200181.internalRefUUID AS _extract_internalRefUUID#1201098, product#1200182.internalRefUUID AS _extract_internalRefUUID#1201099, productionAspect#1200184.productMovementPlants.unitOfIssue.code AS _extract_code#1201100, productionAspect#1200184.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201101]
Input [4]: [plant#1200181, product#1200182, productionAspect#1200184, systemId#1200179]
(452) Exchange
Input [4]: [_extract_internalRefUUID#1201098, _extract_internalRefUUID#1201099, _extract_code#1201100, _extract_internalRefUUID#1201101]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838047]
(453) Project
Output [4]: [_extract_code#1201100, _extract_internalRefUUID#1201101, _extract_internalRefUUID#1201099, _extract_internalRefUUID#1201098]
Input [4]: [_extract_internalRefUUID#1201098, _extract_internalRefUUID#1201099, _extract_code#1201100, _extract_internalRefUUID#1201101]
(454) BroadcastExchange
Input [4]: [_extract_code#1201100, _extract_internalRefUUID#1201101, _extract_internalRefUUID#1201099, _extract_internalRefUUID#1201098]
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=1838630]
(455) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200175, ), isnull(product#1200175), coalesce(plant#1200176, ), isnull(plant#1200176)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201099, ), isnull(_extract_internalRefUUID#1201099), coalesce(_extract_internalRefUUID#1201098, ), isnull(_extract_internalRefUUID#1201098)]
Join type: LeftOuter
Join condition: None
(456) Project
Output [4]: [product#1200175, plant#1200176, _extract_code#1201100, _extract_internalRefUUID#1201101]
Input [6]: [product#1200175, plant#1200176, _extract_code#1201100, _extract_internalRefUUID#1201101, _extract_internalRefUUID#1201099, _extract_internalRefUUID#1201098]
(457) Scan parquet
Output [2]: [internalUUID#1200189, systemId#1200188]
Batched: 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>
(458) Project
Output [1]: [internalUUID#1200189]
Input [2]: [internalUUID#1200189, systemId#1200188]
(459) Exchange
Input [1]: [internalUUID#1200189]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838053]
(460) BroadcastExchange
Input [1]: [internalUUID#1200189]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838634]
(461) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200176, ), isnull(plant#1200176)]
Right keys [2]: [coalesce(internalUUID#1200189, ), isnull(internalUUID#1200189)]
Join type: LeftOuter
Join condition: None
(462) Project
Output [4]: [product#1200175, plant#1200176, _extract_code#1201100, _extract_internalRefUUID#1201101]
Input [5]: [product#1200175, plant#1200176, _extract_code#1201100, _extract_internalRefUUID#1201101, internalUUID#1200189]
(463) Scan parquet
Output [4]: [internalUUID#1200203, baseUnitOfMeasure#1200207, unitOfMeasureConversions#1200209, systemId#1200202]
Batched: 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>>>
(464) Filter
Input [4]: [internalUUID#1200203, baseUnitOfMeasure#1200207, unitOfMeasureConversions#1200209, systemId#1200202]
Condition : isnotnull(internalUUID#1200203)
(465) Project
Output [3]: [internalUUID#1200203, baseUnitOfMeasure#1200207, unitOfMeasureConversions#1200209]
Input [4]: [internalUUID#1200203, baseUnitOfMeasure#1200207, unitOfMeasureConversions#1200209, systemId#1200202]
(466) Exchange
Input [3]: [internalUUID#1200203, baseUnitOfMeasure#1200207, unitOfMeasureConversions#1200209]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838059]
(467) BroadcastExchange
Input [3]: [internalUUID#1200203, baseUnitOfMeasure#1200207, unitOfMeasureConversions#1200209]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838638]
(468) BroadcastHashJoin
Left keys [1]: [product#1200175]
Right keys [1]: [internalUUID#1200203]
Join type: LeftOuter
Join condition: None
(469) Project
Output [2]: [plant#1200176, filter(unitOfMeasureConversions#1200209, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201100) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201101)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200207.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200207.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200214]
Input [7]: [product#1200175, plant#1200176, _extract_code#1201100, _extract_internalRefUUID#1201101, internalUUID#1200203, baseUnitOfMeasure#1200207, unitOfMeasureConversions#1200209]
(470) Generate
Input [2]: [plant#1200176, filteredUnitOfMeasureConversions#1200214]
Arguments: explode(filteredUnitOfMeasureConversions#1200214.quantityNumerator), [plant#1200176, filteredUnitOfMeasureConversions#1200214], true, [quantityNumerator#1200215]
(471) Project
Output [2]: [plant#1200176, filteredUnitOfMeasureConversions#1200214.quantityDenominator AS _extract_quantityDenominator#1200908]
Input [3]: [plant#1200176, filteredUnitOfMeasureConversions#1200214, quantityNumerator#1200215]
(472) Generate
Input [2]: [plant#1200176, _extract_quantityDenominator#1200908]
Arguments: explode(_extract_quantityDenominator#1200908), [plant#1200176], true, [quantityDenominator#1200216]
(473) Project
Output [1]: [plant#1200176]
Input [2]: [plant#1200176, quantityDenominator#1200216]
(474) HashAggregate
Input [1]: [plant#1200176]
Keys [1]: [plant#1200176]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200176]
(475) Exchange
Input [1]: [plant#1200176]
Arguments: hashpartitioning(plant#1200176, 37), ENSURE_REQUIREMENTS, [plan_id=1838647]
(476) HashAggregate
Input [1]: [plant#1200176]
Keys [1]: [plant#1200176]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200176]
(477) BroadcastHashJoin
Left keys [1]: [plantUuid#1200172]
Right keys [1]: [plant#1200176]
Join type: Inner
Join condition: None
(478) Project
Output [3]: [plantUuid#1200172, storageLocId#1200173, storageLocUuid#1200174]
Input [4]: [plantUuid#1200172, storageLocId#1200173, storageLocUuid#1200174, plant#1200176]
(479) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200144.internalRefUUID, ), isnull(plant#1200144.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1200172, ), isnull(plantUuid#1200172)]
Join type: Inner
Join condition: None
(480) Generate
Input [9]: [systemId#1200141, internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, stockQuantities#1200146, plantUuid#1200172, storageLocId#1200173, storageLocUuid#1200174]
Arguments: explode(filter(stockQuantities#1200146, lambdafunction(((lambda x#1200047.storageLocation.internalRefUuid = storageLocUuid#1200174) AND (lambda x#1200047.storageLocation.Id = storageLocId#1200173)), lambda x#1200047, false))), [systemId#1200141, internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, plantUuid#1200172], false, [stockQuantity#1200219]
(481) ObjectHashAggregate
Input [7]: [systemId#1200141, internalUUID#1200142, product#1200143, plant#1200144, calculationDateTime#1200145, plantUuid#1200172, stockQuantity#1200219]
Keys [5]: [plantUuid#1200172, internalUUID#1200142, plant#1200144, product#1200143, systemId#1200141]
Functions [2]: [partial_first(calculationDateTime#1200145, false), partial_collect_list(stockQuantity#1200219, 0, 0)]
Aggregate Attributes [3]: [first#1201969, valueSet#1201970, buf#1201971]
Results [8]: [plantUuid#1200172, internalUUID#1200142, plant#1200144, product#1200143, systemId#1200141, first#1201972, valueSet#1201973, buf#1201974]
(482) ObjectHashAggregate
Input [8]: [plantUuid#1200172, internalUUID#1200142, plant#1200144, product#1200143, systemId#1200141, first#1201972, valueSet#1201973, buf#1201974]
Keys [5]: [plantUuid#1200172, internalUUID#1200142, plant#1200144, product#1200143, systemId#1200141]
Functions [2]: [first(calculationDateTime#1200145, false), collect_list(stockQuantity#1200219, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1200145)()#1200062, collect_list(stockQuantity#1200219, 0, 0)#1200063]
Results [4]: [product#1200143, plant#1200144, first(calculationDateTime#1200145)()#1200062 AS calculationDateTime#1200220, collect_list(stockQuantity#1200219, 0, 0)#1200063 AS stockQuantities#1200221]
(483) Filter
Input [4]: [product#1200143, plant#1200144, calculationDateTime#1200220, stockQuantities#1200221]
Condition : ((size(stockQuantities#1200221, true) > 0) AND isnotnull(calculationDateTime#1200220))
(484) Generate
Input [4]: [product#1200143, plant#1200144, calculationDateTime#1200220, stockQuantities#1200221]
Arguments: explode(stockQuantities#1200221), [product#1200143, plant#1200144, calculationDateTime#1200220], false, [stockQuantity#1200222]
(485) Filter
Input [4]: [product#1200143, plant#1200144, calculationDateTime#1200220, stockQuantity#1200222]
Condition : (((isnotnull(stockQuantity#1200222.specialStockIndicator.code) AND isnotnull(stockQuantity#1200222.stockType.code)) AND (stockQuantity#1200222.specialStockIndicator.code = )) AND (stockQuantity#1200222.stockType.code = 01))
(486) Project
Output [4]: [plant#1200144.internalRefUUID AS plantUuid#1200224, product#1200143.internalRefUUID AS productUuid#1200226, calculationDateTime#1200220, stockQuantity#1200222.storagelocation.id AS storageLocId#1200227]
Input [4]: [product#1200143, plant#1200144, calculationDateTime#1200220, stockQuantity#1200222]
(487) Exchange
Input [4]: [plantUuid#1200224, productUuid#1200226, calculationDateTime#1200220, storageLocId#1200227]
Arguments: hashpartitioning(productUuid#1200226, plantUuid#1200224, 37), ENSURE_REQUIREMENTS, [plan_id=1838680]
(488) Sort
Input [4]: [plantUuid#1200224, productUuid#1200226, calculationDateTime#1200220, storageLocId#1200227]
Arguments: [productUuid#1200226 ASC NULLS FIRST, plantUuid#1200224 ASC NULLS FIRST], false, 0
(489) Scan parquet
Output [3]: [product#1200232, plant#1200233, orderDateTime#1200234]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(490) Filter
Input [3]: [product#1200232, plant#1200233, orderDateTime#1200234]
Condition : ((isnotnull(orderDateTime#1200234) AND isnotnull(plant#1200233)) AND isnotnull(product#1200232))
(491) Exchange
Input [3]: [product#1200232, plant#1200233, orderDateTime#1200234]
Arguments: hashpartitioning(product#1200232, plant#1200233, 37), REPARTITION_BY_NUM, [plan_id=1838431]
(492) Scan parquet
Output [4]: [plant#1200238, product#1200239, productionAspect#1200241, systemId#1200236]
Batched: 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>>>>
(493) Project
Output [4]: [plant#1200238.internalRefUUID AS _extract_internalRefUUID#1201102, product#1200239.internalRefUUID AS _extract_internalRefUUID#1201105, productionAspect#1200241.productMovementPlants.unitOfIssue.code AS _extract_code#1201103, productionAspect#1200241.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201104]
Input [4]: [plant#1200238, product#1200239, productionAspect#1200241, systemId#1200236]
(494) Exchange
Input [4]: [_extract_internalRefUUID#1201102, _extract_internalRefUUID#1201105, _extract_code#1201103, _extract_internalRefUUID#1201104]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838084]
(495) Project
Output [4]: [_extract_code#1201103, _extract_internalRefUUID#1201104, _extract_internalRefUUID#1201105, _extract_internalRefUUID#1201102]
Input [4]: [_extract_internalRefUUID#1201102, _extract_internalRefUUID#1201105, _extract_code#1201103, _extract_internalRefUUID#1201104]
(496) BroadcastExchange
Input [4]: [_extract_code#1201103, _extract_internalRefUUID#1201104, _extract_internalRefUUID#1201105, _extract_internalRefUUID#1201102]
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=1838663]
(497) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200232, ), isnull(product#1200232), coalesce(plant#1200233, ), isnull(plant#1200233)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201105, ), isnull(_extract_internalRefUUID#1201105), coalesce(_extract_internalRefUUID#1201102, ), isnull(_extract_internalRefUUID#1201102)]
Join type: LeftOuter
Join condition: None
(498) Project
Output [5]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104]
Input [7]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104, _extract_internalRefUUID#1201105, _extract_internalRefUUID#1201102]
(499) Scan parquet
Output [2]: [internalUUID#1200246, systemId#1200245]
Batched: 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>
(500) Project
Output [1]: [internalUUID#1200246]
Input [2]: [internalUUID#1200246, systemId#1200245]
(501) Exchange
Input [1]: [internalUUID#1200246]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838090]
(502) BroadcastExchange
Input [1]: [internalUUID#1200246]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838667]
(503) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200233, ), isnull(plant#1200233)]
Right keys [2]: [coalesce(internalUUID#1200246, ), isnull(internalUUID#1200246)]
Join type: LeftOuter
Join condition: None
(504) Project
Output [5]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104]
Input [6]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104, internalUUID#1200246]
(505) Scan parquet
Output [4]: [internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266, systemId#1200259]
Batched: 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>>>
(506) Filter
Input [4]: [internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266, systemId#1200259]
Condition : isnotnull(internalUUID#1200260)
(507) Project
Output [3]: [internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266]
Input [4]: [internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266, systemId#1200259]
(508) Exchange
Input [3]: [internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838096]
(509) BroadcastExchange
Input [3]: [internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838671]
(510) BroadcastHashJoin
Left keys [1]: [product#1200232]
Right keys [1]: [internalUUID#1200260]
Join type: LeftOuter
Join condition: None
(511) Project
Output [4]: [product#1200232, plant#1200233, orderDateTime#1200234, filter(unitOfMeasureConversions#1200266, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201103) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201104)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200264.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200264.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200271]
Input [8]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_code#1201103, _extract_internalRefUUID#1201104, internalUUID#1200260, baseUnitOfMeasure#1200264, unitOfMeasureConversions#1200266]
(512) Generate
Input [4]: [product#1200232, plant#1200233, orderDateTime#1200234, filteredUnitOfMeasureConversions#1200271]
Arguments: explode(filteredUnitOfMeasureConversions#1200271.quantityNumerator), [product#1200232, plant#1200233, orderDateTime#1200234, filteredUnitOfMeasureConversions#1200271], true, [quantityNumerator#1200272]
(513) Project
Output [4]: [product#1200232, plant#1200233, orderDateTime#1200234, filteredUnitOfMeasureConversions#1200271.quantityDenominator AS _extract_quantityDenominator#1200912]
Input [5]: [product#1200232, plant#1200233, orderDateTime#1200234, filteredUnitOfMeasureConversions#1200271, quantityNumerator#1200272]
(514) Generate
Input [4]: [product#1200232, plant#1200233, orderDateTime#1200234, _extract_quantityDenominator#1200912]
Arguments: explode(_extract_quantityDenominator#1200912), [product#1200232, plant#1200233, orderDateTime#1200234], true, [quantityDenominator#1200273]
(515) Project
Output [3]: [product#1200232, plant#1200233, orderDateTime#1200234]
Input [4]: [product#1200232, plant#1200233, orderDateTime#1200234, quantityDenominator#1200273]
(516) Sort
Input [3]: [product#1200232, plant#1200233, orderDateTime#1200234]
Arguments: [product#1200232 ASC NULLS FIRST, plant#1200233 ASC NULLS FIRST], false, 0
(517) SortMergeJoin
Left keys [2]: [productUuid#1200226, plantUuid#1200224]
Right keys [2]: [product#1200232, plant#1200233]
Join type: Inner
Join condition: (calculationDateTime#1200220 <= orderDateTime#1200234)
(518) Project
Output [4]: [plantUuid#1200224 AS plant#1200276, productUuid#1200226 AS product#1200277, storageLocId#1200227, calculationDateTime#1200220]
Input [7]: [plantUuid#1200224, productUuid#1200226, calculationDateTime#1200220, storageLocId#1200227, product#1200232, plant#1200233, orderDateTime#1200234]
(519) HashAggregate
Input [4]: [plant#1200276, product#1200277, storageLocId#1200227, calculationDateTime#1200220]
Keys [3]: [plant#1200276, product#1200277, storageLocId#1200227]
Functions [1]: [partial_max(calculationDateTime#1200220)]
Aggregate Attributes [1]: [max#1201967]
Results [4]: [plant#1200276, product#1200277, storageLocId#1200227, max#1201968]
(520) HashAggregate
Input [4]: [plant#1200276, product#1200277, storageLocId#1200227, max#1201968]
Keys [3]: [plant#1200276, product#1200277, storageLocId#1200227]
Functions [1]: [max(calculationDateTime#1200220)]
Aggregate Attributes [1]: [max(calculationDateTime#1200220)#1200140]
Results [4]: [plant#1200276, product#1200277, storageLocId#1200227, max(calculationDateTime#1200220)#1200140 AS max_calc_datetime#1200134]
(521) Exchange
Input [4]: [plant#1200276, product#1200277, storageLocId#1200227, max_calc_datetime#1200134]
Arguments: hashpartitioning(coalesce(plant#1200276, ), isnull(plant#1200276), coalesce(product#1200277, ), isnull(product#1200277), coalesce(storageLocId#1200227, ), isnull(storageLocId#1200227), coalesce(max_calc_datetime#1200134, 1970-01-01 00:00:00), isnull(max_calc_datetime#1200134), 37), ENSURE_REQUIREMENTS, [plan_id=1838690]
(522) Sort
Input [4]: [plant#1200276, product#1200277, storageLocId#1200227, max_calc_datetime#1200134]
Arguments: [coalesce(plant#1200276, ) ASC NULLS FIRST, isnull(plant#1200276) ASC NULLS FIRST, coalesce(product#1200277, ) ASC NULLS FIRST, isnull(product#1200277) ASC NULLS FIRST, coalesce(storageLocId#1200227, ) ASC NULLS FIRST, isnull(storageLocId#1200227) ASC NULLS FIRST, coalesce(max_calc_datetime#1200134, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1200134) ASC NULLS FIRST], false, 0
(523) SortMergeJoin
Left keys [8]: [coalesce(plant#1200132, ), isnull(plant#1200132), coalesce(product#1200133, ), isnull(product#1200133), coalesce(storageLocId#1200070, ), isnull(storageLocId#1200070), coalesce(calculationDateTime#1200049, 1970-01-01 00:00:00), isnull(calculationDateTime#1200049)]
Right keys [8]: [coalesce(plant#1200276, ), isnull(plant#1200276), coalesce(product#1200277, ), isnull(product#1200277), coalesce(storageLocId#1200227, ), isnull(storageLocId#1200227), coalesce(max_calc_datetime#1200134, 1970-01-01 00:00:00), isnull(max_calc_datetime#1200134)]
Join type: Inner
Join condition: None
(524) Project
Output [3]: [plant#1200132, product#1200133, calculationDateTime#1200049]
Input [8]: [plant#1200132, product#1200133, storageLocId#1200070, calculationDateTime#1200049, plant#1200276, product#1200277, storageLocId#1200227, max_calc_datetime#1200134]
(525) HashAggregate
Input [3]: [plant#1200132, product#1200133, calculationDateTime#1200049]
Keys [2]: [product#1200133, plant#1200132]
Functions [1]: [partial_min(calculationDateTime#1200049)]
Aggregate Attributes [1]: [min#1201959]
Results [3]: [product#1200133, plant#1200132, min#1201960]
(526) Exchange
Input [3]: [product#1200133, plant#1200132, min#1201960]
Arguments: hashpartitioning(product#1200133, plant#1200132, 37), ENSURE_REQUIREMENTS, [plan_id=1838697]
(527) HashAggregate
Input [3]: [product#1200133, plant#1200132, min#1201960]
Keys [2]: [product#1200133, plant#1200132]
Functions [1]: [min(calculationDateTime#1200049)]
Aggregate Attributes [1]: [min(calculationDateTime#1200049)#1200296]
Results [3]: [product#1200133, plant#1200132, min(calculationDateTime#1200049)#1200296 AS minCalculationDateTime#1200289]
(528) Sort
Input [3]: [product#1200133, plant#1200132, minCalculationDateTime#1200289]
Arguments: [product#1200133 ASC NULLS FIRST, plant#1200132 ASC NULLS FIRST], false, 0
(529) SortMergeJoin
Left keys [2]: [product#1199942, plant#1199943]
Right keys [2]: [product#1200133, plant#1200132]
Join type: LeftOuter
Join condition: None
(530) Project
Output [4]: [product#1199942, plant#1199943, timezonecode#1199974, CASE WHEN isnotnull(minCalculationDateTime#1200289) THEN minCalculationDateTime#1200289 ELSE orderDateTime#1199944 END AS stockDatetime#1200346]
Input [7]: [product#1199942, plant#1199943, orderDateTime#1199944, timezonecode#1199974, product#1200133, plant#1200132, minCalculationDateTime#1200289]
(531) Exchange
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: hashpartitioning(coalesce(plant#1199943, ), isnull(plant#1199943), coalesce(product#1199942, ), isnull(product#1199942), 37), ENSURE_REQUIREMENTS, [plan_id=1838861]
(532) Sort
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: [coalesce(plant#1199943, ) ASC NULLS FIRST, isnull(plant#1199943) ASC NULLS FIRST, coalesce(product#1199942, ) ASC NULLS FIRST, isnull(product#1199942) ASC NULLS FIRST], false, 0
(533) Exchange
Input [3]: [product#1200424, plant#1200425, orderDateTime#1200426]
Arguments: hashpartitioning(product#1200424, plant#1200425, 37), REPARTITION_BY_NUM, [plan_id=1838114]
(534) Project
Output [8]: [systemId#1200428, internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435]
Input [8]: [internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435, systemId#1200428]
(535) Exchange
Input [8]: [systemId#1200428, internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838117]
(536) Project
Output [1]: [struct(systemId, systemId#1200428, internalUUID, internalUUID#1200429, plant, plant#1200430, product, product#1200431, blockedForReplenishmentStartingFrom, blockedForReplenishmentStartingFrom#1200432, productionAspect, productionAspect#1200433, salesPlant, salesPlant#1200434, listing, listing#1200435) AS productPlant#1200436]
Input [8]: [systemId#1200428, internalUUID#1200429, plant#1200430, product#1200431, blockedForReplenishmentStartingFrom#1200432, productionAspect#1200433, salesPlant#1200434, listing#1200435]
(537) BroadcastExchange
Input [1]: [productPlant#1200436]
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=1838705]
(538) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200424, ), isnull(product#1200424), coalesce(plant#1200425, ), isnull(plant#1200425)]
Right keys [4]: [coalesce(productPlant#1200436.product.internalRefUUID, ), isnull(productPlant#1200436.product.internalRefUUID), coalesce(productPlant#1200436.plant.internalRefUUID, ), isnull(productPlant#1200436.plant.internalRefUUID)]
Join type: LeftOuter
Join condition: None
(539) Scan parquet
Output [3]: [internalUUID#1200438, address#1200444, systemId#1200437]
Batched: 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>>>
(540) Project
Output [2]: [internalUUID#1200438, address#1200444.timeZone.code AS timezonecode#1200449]
Input [3]: [internalUUID#1200438, address#1200444, systemId#1200437]
(541) Exchange
Input [2]: [internalUUID#1200438, timezonecode#1200449]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838122]
(542) BroadcastExchange
Input [2]: [internalUUID#1200438, timezonecode#1200449]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838708]
(543) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200425, ), isnull(plant#1200425)]
Right keys [2]: [coalesce(internalUUID#1200438, ), isnull(internalUUID#1200438)]
Join type: LeftOuter
Join condition: None
(544) Project
Output [5]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, CASE WHEN isnotnull(timezonecode#1200449) THEN timezonecode#1200449 ELSE UTC END AS timezonecode#1200450]
Input [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, internalUUID#1200438, timezonecode#1200449]
(545) Scan parquet
Output [4]: [internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458, systemId#1200451]
Batched: 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>>>
(546) Filter
Input [4]: [internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458, systemId#1200451]
Condition : isnotnull(internalUUID#1200452)
(547) Project
Output [3]: [internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458]
Input [4]: [internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458, systemId#1200451]
(548) Exchange
Input [3]: [internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838128]
(549) BroadcastExchange
Input [3]: [internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838712]
(550) BroadcastHashJoin
Left keys [1]: [product#1200424]
Right keys [1]: [internalUUID#1200452]
Join type: LeftOuter
Join condition: None
(551) Project
Output [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, filter(unitOfMeasureConversions#1200458, lambdafunction((((lambda u#1199989.measurementUnit1.code = productPlant#1200436.productionAspect.productMovementPlants.unitOfIssue.code) AND (lambda u#1199989.measurementUnit1.internalRefUUID = productPlant#1200436.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200456.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200456.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200463]
Input [8]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, internalUUID#1200452, baseUnitOfMeasure#1200456, unitOfMeasureConversions#1200458]
(552) Project
Output [7]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, filteredUnitOfMeasureConversions#1200463.quantityDenominator AS _extract_quantityDenominator#1200974, filteredUnitOfMeasureConversions#1200463.quantityNumerator AS _extract_quantityNumerator#1200975]
Input [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, filteredUnitOfMeasureConversions#1200463]
(553) Generate
Input [7]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, _extract_quantityDenominator#1200974, _extract_quantityNumerator#1200975]
Arguments: explode(_extract_quantityNumerator#1200975), [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, _extract_quantityDenominator#1200974], true, [quantityNumerator#1200464]
(554) Generate
Input [7]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, _extract_quantityDenominator#1200974, quantityNumerator#1200464]
Arguments: explode(_extract_quantityDenominator#1200974), [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, quantityNumerator#1200464], true, [quantityDenominator#1200465]
(555) Project
Output [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, (cast(quantityNumerator#1200464 as double) / cast(quantityDenominator#1200465 as double)) AS outboundUnit#1200466]
Input [7]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, quantityNumerator#1200464, quantityDenominator#1200465]
(556) Project
Output [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, CASE WHEN (isnull(outboundUnit#1200466) OR (outboundUnit#1200466 <= 0.0)) THEN 1.0 ELSE outboundUnit#1200466 END AS outboundUnit#1200467]
Input [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200466]
(557) Sort
Input [6]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467]
Arguments: [product#1200424 ASC NULLS FIRST, plant#1200425 ASC NULLS FIRST], false, 0
(558) Scan parquet
Output [6]: [internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473, systemId#1200468]
Batched: 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>>>>>
(559) Filter
Input [6]: [internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473, systemId#1200468]
Condition : (isnotnull(plant#1200471.internalRefUUID) AND isnotnull(product#1200470.internalRefUUID))
(560) Project
Output [6]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473]
Input [6]: [internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473, systemId#1200468]
(561) Exchange
Input [6]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838139]
(562) BroadcastExchange
Input [6]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473]
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=1838744]
(563) Scan parquet
Output [2]: [marketUnit#1200474, distributionCenters#1200480]
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,Grocery_SS), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(564) Filter
Input [2]: [marketUnit#1200474, distributionCenters#1200480]
Condition : (((marketUnit#1200474 <=> Grocery_SS) AND (size(distributionCenters#1200480, true) > 0)) AND isnotnull(distributionCenters#1200480))
(565) Project
Output [1]: [distributionCenters#1200480]
Input [2]: [marketUnit#1200474, distributionCenters#1200480]
(566) Exchange
Input [1]: [distributionCenters#1200480]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838143]
(567) Generate
Input [1]: [distributionCenters#1200480]
Arguments: explode(distributionCenters#1200480), false, [distributionCenters#1200496]
(568) Filter
Input [1]: [distributionCenters#1200496]
Condition : (((size(distributionCenters#1200496.storageLocations, true) > 0) AND isnotnull(distributionCenters#1200496.storageLocations)) AND isnotnull(distributionCenters#1200496.internalRefUUID))
(569) Project
Output [2]: [distributionCenters#1200496.internalRefUUID AS _extract_internalRefUUID#1200918, distributionCenters#1200496.storageLocations AS _extract_storageLocations#1200919]
Input [1]: [distributionCenters#1200496]
(570) Generate
Input [2]: [_extract_internalRefUUID#1200918, _extract_storageLocations#1200919]
Arguments: explode(_extract_storageLocations#1200919), [_extract_internalRefUUID#1200918], false, [storageLocations#1200497]
(571) Project
Output [3]: [_extract_internalRefUUID#1200918 AS plantUuid#1200499, storageLocations#1200497.id AS storageLocId#1200500, storageLocations#1200497.internalRefUUID AS storageLocUuid#1200501]
Input [2]: [_extract_internalRefUUID#1200918, storageLocations#1200497]
(572) BroadcastExchange
Input [3]: [plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838740]
(573) Scan parquet
Output [2]: [product#1200502, plant#1200503]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(574) Filter
Input [2]: [product#1200502, plant#1200503]
Condition : isnotnull(plant#1200503)
(575) Exchange
Input [2]: [product#1200502, plant#1200503]
Arguments: hashpartitioning(product#1200502, plant#1200503, 37), REPARTITION_BY_NUM, [plan_id=1838452]
(576) Scan parquet
Output [4]: [plant#1200508, product#1200509, productionAspect#1200511, systemId#1200506]
Batched: 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>>>>
(577) Project
Output [4]: [plant#1200508.internalRefUUID AS _extract_internalRefUUID#1201106, product#1200509.internalRefUUID AS _extract_internalRefUUID#1201107, productionAspect#1200511.productMovementPlants.unitOfIssue.code AS _extract_code#1201108, productionAspect#1200511.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201109]
Input [4]: [plant#1200508, product#1200509, productionAspect#1200511, systemId#1200506]
(578) Exchange
Input [4]: [_extract_internalRefUUID#1201106, _extract_internalRefUUID#1201107, _extract_code#1201108, _extract_internalRefUUID#1201109]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838155]
(579) Project
Output [4]: [_extract_code#1201108, _extract_internalRefUUID#1201109, _extract_internalRefUUID#1201107, _extract_internalRefUUID#1201106]
Input [4]: [_extract_internalRefUUID#1201106, _extract_internalRefUUID#1201107, _extract_code#1201108, _extract_internalRefUUID#1201109]
(580) BroadcastExchange
Input [4]: [_extract_code#1201108, _extract_internalRefUUID#1201109, _extract_internalRefUUID#1201107, _extract_internalRefUUID#1201106]
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=1838720]
(581) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200502, ), isnull(product#1200502), coalesce(plant#1200503, ), isnull(plant#1200503)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201107, ), isnull(_extract_internalRefUUID#1201107), coalesce(_extract_internalRefUUID#1201106, ), isnull(_extract_internalRefUUID#1201106)]
Join type: LeftOuter
Join condition: None
(582) Project
Output [4]: [product#1200502, plant#1200503, _extract_code#1201108, _extract_internalRefUUID#1201109]
Input [6]: [product#1200502, plant#1200503, _extract_code#1201108, _extract_internalRefUUID#1201109, _extract_internalRefUUID#1201107, _extract_internalRefUUID#1201106]
(583) Scan parquet
Output [2]: [internalUUID#1200516, systemId#1200515]
Batched: 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>
(584) Project
Output [1]: [internalUUID#1200516]
Input [2]: [internalUUID#1200516, systemId#1200515]
(585) Exchange
Input [1]: [internalUUID#1200516]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838161]
(586) BroadcastExchange
Input [1]: [internalUUID#1200516]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838724]
(587) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200503, ), isnull(plant#1200503)]
Right keys [2]: [coalesce(internalUUID#1200516, ), isnull(internalUUID#1200516)]
Join type: LeftOuter
Join condition: None
(588) Project
Output [4]: [product#1200502, plant#1200503, _extract_code#1201108, _extract_internalRefUUID#1201109]
Input [5]: [product#1200502, plant#1200503, _extract_code#1201108, _extract_internalRefUUID#1201109, internalUUID#1200516]
(589) Scan parquet
Output [4]: [internalUUID#1200530, baseUnitOfMeasure#1200534, unitOfMeasureConversions#1200536, systemId#1200529]
Batched: 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>>>
(590) Filter
Input [4]: [internalUUID#1200530, baseUnitOfMeasure#1200534, unitOfMeasureConversions#1200536, systemId#1200529]
Condition : isnotnull(internalUUID#1200530)
(591) Project
Output [3]: [internalUUID#1200530, baseUnitOfMeasure#1200534, unitOfMeasureConversions#1200536]
Input [4]: [internalUUID#1200530, baseUnitOfMeasure#1200534, unitOfMeasureConversions#1200536, systemId#1200529]
(592) Exchange
Input [3]: [internalUUID#1200530, baseUnitOfMeasure#1200534, unitOfMeasureConversions#1200536]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838167]
(593) BroadcastExchange
Input [3]: [internalUUID#1200530, baseUnitOfMeasure#1200534, unitOfMeasureConversions#1200536]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838728]
(594) BroadcastHashJoin
Left keys [1]: [product#1200502]
Right keys [1]: [internalUUID#1200530]
Join type: LeftOuter
Join condition: None
(595) Project
Output [2]: [plant#1200503, filter(unitOfMeasureConversions#1200536, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201108) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201109)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200534.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200534.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200541]
Input [7]: [product#1200502, plant#1200503, _extract_code#1201108, _extract_internalRefUUID#1201109, internalUUID#1200530, baseUnitOfMeasure#1200534, unitOfMeasureConversions#1200536]
(596) Generate
Input [2]: [plant#1200503, filteredUnitOfMeasureConversions#1200541]
Arguments: explode(filteredUnitOfMeasureConversions#1200541.quantityNumerator), [plant#1200503, filteredUnitOfMeasureConversions#1200541], true, [quantityNumerator#1200542]
(597) Project
Output [2]: [plant#1200503, filteredUnitOfMeasureConversions#1200541.quantityDenominator AS _extract_quantityDenominator#1200920]
Input [3]: [plant#1200503, filteredUnitOfMeasureConversions#1200541, quantityNumerator#1200542]
(598) Generate
Input [2]: [plant#1200503, _extract_quantityDenominator#1200920]
Arguments: explode(_extract_quantityDenominator#1200920), [plant#1200503], true, [quantityDenominator#1200543]
(599) Project
Output [1]: [plant#1200503]
Input [2]: [plant#1200503, quantityDenominator#1200543]
(600) HashAggregate
Input [1]: [plant#1200503]
Keys [1]: [plant#1200503]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200503]
(601) Exchange
Input [1]: [plant#1200503]
Arguments: hashpartitioning(plant#1200503, 37), ENSURE_REQUIREMENTS, [plan_id=1838737]
(602) HashAggregate
Input [1]: [plant#1200503]
Keys [1]: [plant#1200503]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200503]
(603) BroadcastHashJoin
Left keys [1]: [plantUuid#1200499]
Right keys [1]: [plant#1200503]
Join type: Inner
Join condition: None
(604) Project
Output [3]: [plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501]
Input [4]: [plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501, plant#1200503]
(605) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200471.internalRefUUID, ), isnull(plant#1200471.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1200499, ), isnull(plantUuid#1200499)]
Join type: Inner
Join condition: None
(606) Generate
Input [9]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, stockQuantities#1200473, plantUuid#1200499, storageLocId#1200500, storageLocUuid#1200501]
Arguments: explode(filter(stockQuantities#1200473, lambdafunction(((lambda x#1200047.storageLocation.internalRefUuid = storageLocUuid#1200501) AND (lambda x#1200047.storageLocation.Id = storageLocId#1200500)), lambda x#1200047, false))), [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, plantUuid#1200499], false, [stockQuantity#1200546]
(607) ObjectHashAggregate
Input [7]: [systemId#1200468, internalUUID#1200469, product#1200470, plant#1200471, calculationDateTime#1200472, plantUuid#1200499, stockQuantity#1200546]
Keys [5]: [plantUuid#1200499, internalUUID#1200469, plant#1200471, product#1200470, systemId#1200468]
Functions [2]: [partial_first(calculationDateTime#1200472, false), partial_collect_list(stockQuantity#1200546, 0, 0)]
Aggregate Attributes [3]: [first#1201983, valueSet#1201984, buf#1201985]
Results [8]: [plantUuid#1200499, internalUUID#1200469, plant#1200471, product#1200470, systemId#1200468, first#1201986, valueSet#1201987, buf#1201988]
(608) ObjectHashAggregate
Input [8]: [plantUuid#1200499, internalUUID#1200469, plant#1200471, product#1200470, systemId#1200468, first#1201986, valueSet#1201987, buf#1201988]
Keys [5]: [plantUuid#1200499, internalUUID#1200469, plant#1200471, product#1200470, systemId#1200468]
Functions [2]: [first(calculationDateTime#1200472, false), collect_list(stockQuantity#1200546, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1200472)()#1200062, collect_list(stockQuantity#1200546, 0, 0)#1200063]
Results [4]: [product#1200470, plant#1200471, first(calculationDateTime#1200472)()#1200062 AS calculationDateTime#1200547, collect_list(stockQuantity#1200546, 0, 0)#1200063 AS stockQuantities#1200548]
(609) Filter
Input [4]: [product#1200470, plant#1200471, calculationDateTime#1200547, stockQuantities#1200548]
Condition : ((size(stockQuantities#1200548, true) > 0) AND isnotnull(calculationDateTime#1200547))
(610) Generate
Input [4]: [product#1200470, plant#1200471, calculationDateTime#1200547, stockQuantities#1200548]
Arguments: explode(stockQuantities#1200548), [product#1200470, plant#1200471, calculationDateTime#1200547], false, [stockQuantity#1200549]
(611) Filter
Input [4]: [product#1200470, plant#1200471, calculationDateTime#1200547, stockQuantity#1200549]
Condition : (((isnotnull(stockQuantity#1200549.specialStockIndicator.code) AND isnotnull(stockQuantity#1200549.stockType.code)) AND (stockQuantity#1200549.specialStockIndicator.code = )) AND (stockQuantity#1200549.stockType.code = 01))
(612) Project
Output [5]: [plant#1200471.internalRefUUID AS plantUuid#1200551, product#1200470.internalRefUUID AS productUuid#1200553, calculationDateTime#1200547, stockQuantity#1200549.storagelocation.id AS storageLocId#1200554, stockQuantity#1200549.quantity.measure AS quantity#1200556]
Input [4]: [product#1200470, plant#1200471, calculationDateTime#1200547, stockQuantity#1200549]
(613) Exchange
Input [5]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556]
Arguments: hashpartitioning(productUuid#1200553, plantUuid#1200551, 37), ENSURE_REQUIREMENTS, [plan_id=1838770]
(614) Sort
Input [5]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556]
Arguments: [productUuid#1200553 ASC NULLS FIRST, plantUuid#1200551 ASC NULLS FIRST], false, 0
(615) Scan parquet
Output [3]: [product#1200559, plant#1200560, orderDateTime#1200561]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(616) Filter
Input [3]: [product#1200559, plant#1200560, orderDateTime#1200561]
Condition : ((isnotnull(orderDateTime#1200561) AND isnotnull(plant#1200560)) AND isnotnull(product#1200559))
(617) Exchange
Input [3]: [product#1200559, plant#1200560, orderDateTime#1200561]
Arguments: hashpartitioning(product#1200559, plant#1200560, 37), REPARTITION_BY_NUM, [plan_id=1838475]
(618) Scan parquet
Output [4]: [plant#1200565, product#1200566, productionAspect#1200568, systemId#1200563]
Batched: 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>>>>
(619) Project
Output [4]: [plant#1200565.internalRefUUID AS _extract_internalRefUUID#1201112, product#1200566.internalRefUUID AS _extract_internalRefUUID#1201113, productionAspect#1200568.productMovementPlants.unitOfIssue.code AS _extract_code#1201110, productionAspect#1200568.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201111]
Input [4]: [plant#1200565, product#1200566, productionAspect#1200568, systemId#1200563]
(620) Exchange
Input [4]: [_extract_internalRefUUID#1201112, _extract_internalRefUUID#1201113, _extract_code#1201110, _extract_internalRefUUID#1201111]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838192]
(621) Project
Output [4]: [_extract_code#1201110, _extract_internalRefUUID#1201111, _extract_internalRefUUID#1201113, _extract_internalRefUUID#1201112]
Input [4]: [_extract_internalRefUUID#1201112, _extract_internalRefUUID#1201113, _extract_code#1201110, _extract_internalRefUUID#1201111]
(622) BroadcastExchange
Input [4]: [_extract_code#1201110, _extract_internalRefUUID#1201111, _extract_internalRefUUID#1201113, _extract_internalRefUUID#1201112]
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=1838753]
(623) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200559, ), isnull(product#1200559), coalesce(plant#1200560, ), isnull(plant#1200560)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201113, ), isnull(_extract_internalRefUUID#1201113), coalesce(_extract_internalRefUUID#1201112, ), isnull(_extract_internalRefUUID#1201112)]
Join type: LeftOuter
Join condition: None
(624) Project
Output [5]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111]
Input [7]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111, _extract_internalRefUUID#1201113, _extract_internalRefUUID#1201112]
(625) Scan parquet
Output [2]: [internalUUID#1200573, systemId#1200572]
Batched: 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>
(626) Project
Output [1]: [internalUUID#1200573]
Input [2]: [internalUUID#1200573, systemId#1200572]
(627) Exchange
Input [1]: [internalUUID#1200573]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838198]
(628) BroadcastExchange
Input [1]: [internalUUID#1200573]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838757]
(629) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200560, ), isnull(plant#1200560)]
Right keys [2]: [coalesce(internalUUID#1200573, ), isnull(internalUUID#1200573)]
Join type: LeftOuter
Join condition: None
(630) Project
Output [5]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111]
Input [6]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111, internalUUID#1200573]
(631) Scan parquet
Output [4]: [internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593, systemId#1200586]
Batched: 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>>>
(632) Filter
Input [4]: [internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593, systemId#1200586]
Condition : isnotnull(internalUUID#1200587)
(633) Project
Output [3]: [internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593]
Input [4]: [internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593, systemId#1200586]
(634) Exchange
Input [3]: [internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838204]
(635) BroadcastExchange
Input [3]: [internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838761]
(636) BroadcastHashJoin
Left keys [1]: [product#1200559]
Right keys [1]: [internalUUID#1200587]
Join type: LeftOuter
Join condition: None
(637) Project
Output [4]: [product#1200559, plant#1200560, orderDateTime#1200561, filter(unitOfMeasureConversions#1200593, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201110) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201111)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200591.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200591.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200598]
Input [8]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_code#1201110, _extract_internalRefUUID#1201111, internalUUID#1200587, baseUnitOfMeasure#1200591, unitOfMeasureConversions#1200593]
(638) Generate
Input [4]: [product#1200559, plant#1200560, orderDateTime#1200561, filteredUnitOfMeasureConversions#1200598]
Arguments: explode(filteredUnitOfMeasureConversions#1200598.quantityNumerator), [product#1200559, plant#1200560, orderDateTime#1200561, filteredUnitOfMeasureConversions#1200598], true, [quantityNumerator#1200599]
(639) Project
Output [4]: [product#1200559, plant#1200560, orderDateTime#1200561, filteredUnitOfMeasureConversions#1200598.quantityDenominator AS _extract_quantityDenominator#1200924]
Input [5]: [product#1200559, plant#1200560, orderDateTime#1200561, filteredUnitOfMeasureConversions#1200598, quantityNumerator#1200599]
(640) Generate
Input [4]: [product#1200559, plant#1200560, orderDateTime#1200561, _extract_quantityDenominator#1200924]
Arguments: explode(_extract_quantityDenominator#1200924), [product#1200559, plant#1200560, orderDateTime#1200561], true, [quantityDenominator#1200600]
(641) Project
Output [3]: [product#1200559, plant#1200560, orderDateTime#1200561]
Input [4]: [product#1200559, plant#1200560, orderDateTime#1200561, quantityDenominator#1200600]
(642) Sort
Input [3]: [product#1200559, plant#1200560, orderDateTime#1200561]
Arguments: [product#1200559 ASC NULLS FIRST, plant#1200560 ASC NULLS FIRST], false, 0
(643) SortMergeJoin
Left keys [2]: [productUuid#1200553, plantUuid#1200551]
Right keys [2]: [product#1200559, plant#1200560]
Join type: Inner
Join condition: (calculationDateTime#1200547 <= orderDateTime#1200561)
(644) Project
Output [5]: [plantUuid#1200551 AS plant#1200603, productUuid#1200553 AS product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
Input [8]: [plantUuid#1200551, productUuid#1200553, calculationDateTime#1200547, storageLocId#1200554, quantity#1200556, product#1200559, plant#1200560, orderDateTime#1200561]
(645) Exchange
Input [5]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
Arguments: hashpartitioning(coalesce(plant#1200603, ), isnull(plant#1200603), coalesce(product#1200604, ), isnull(product#1200604), coalesce(storageLocId#1200554, ), isnull(storageLocId#1200554), coalesce(calculationDateTime#1200547, 1970-01-01 00:00:00), isnull(calculationDateTime#1200547), 37), ENSURE_REQUIREMENTS, [plan_id=1838834]
(646) Sort
Input [5]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556]
Arguments: [coalesce(plant#1200603, ) ASC NULLS FIRST, isnull(plant#1200603) ASC NULLS FIRST, coalesce(product#1200604, ) ASC NULLS FIRST, isnull(product#1200604) ASC NULLS FIRST, coalesce(storageLocId#1200554, ) ASC NULLS FIRST, isnull(storageLocId#1200554) ASC NULLS FIRST, coalesce(calculationDateTime#1200547, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(calculationDateTime#1200547) ASC NULLS FIRST], false, 0
(647) Scan parquet
Output [6]: [internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, stockQuantities#1200610, systemId#1200605]
Batched: 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>>>>>
(648) Filter
Input [6]: [internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, stockQuantities#1200610, systemId#1200605]
Condition : (isnotnull(plant#1200608.internalRefUUID) AND isnotnull(product#1200607.internalRefUUID))
(649) Project
Output [6]: [systemId#1200605, internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, stockQuantities#1200610]
Input [6]: [internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, stockQuantities#1200610, systemId#1200605]
(650) Exchange
Input [6]: [systemId#1200605, internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, stockQuantities#1200610]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838216]
(651) BroadcastExchange
Input [6]: [systemId#1200605, internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, stockQuantities#1200610]
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=1838799]
(652) Scan parquet
Output [2]: [marketUnit#1200611, distributionCenters#1200617]
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,Grocery_SS), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(653) Filter
Input [2]: [marketUnit#1200611, distributionCenters#1200617]
Condition : (((marketUnit#1200611 <=> Grocery_SS) AND (size(distributionCenters#1200617, true) > 0)) AND isnotnull(distributionCenters#1200617))
(654) Project
Output [1]: [distributionCenters#1200617]
Input [2]: [marketUnit#1200611, distributionCenters#1200617]
(655) Exchange
Input [1]: [distributionCenters#1200617]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838220]
(656) Generate
Input [1]: [distributionCenters#1200617]
Arguments: explode(distributionCenters#1200617), false, [distributionCenters#1200633]
(657) Filter
Input [1]: [distributionCenters#1200633]
Condition : (((size(distributionCenters#1200633.storageLocations, true) > 0) AND isnotnull(distributionCenters#1200633.storageLocations)) AND isnotnull(distributionCenters#1200633.internalRefUUID))
(658) Project
Output [2]: [distributionCenters#1200633.internalRefUUID AS _extract_internalRefUUID#1200928, distributionCenters#1200633.storageLocations AS _extract_storageLocations#1200929]
Input [1]: [distributionCenters#1200633]
(659) Generate
Input [2]: [_extract_internalRefUUID#1200928, _extract_storageLocations#1200929]
Arguments: explode(_extract_storageLocations#1200929), [_extract_internalRefUUID#1200928], false, [storageLocations#1200634]
(660) Project
Output [3]: [_extract_internalRefUUID#1200928 AS plantUuid#1200636, storageLocations#1200634.id AS storageLocId#1200637, storageLocations#1200634.internalRefUUID AS storageLocUuid#1200638]
Input [2]: [_extract_internalRefUUID#1200928, storageLocations#1200634]
(661) BroadcastExchange
Input [3]: [plantUuid#1200636, storageLocId#1200637, storageLocUuid#1200638]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838795]
(662) Scan parquet
Output [2]: [product#1200639, plant#1200640]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(663) Filter
Input [2]: [product#1200639, plant#1200640]
Condition : isnotnull(plant#1200640)
(664) Exchange
Input [2]: [product#1200639, plant#1200640]
Arguments: hashpartitioning(product#1200639, plant#1200640, 37), REPARTITION_BY_NUM, [plan_id=1838488]
(665) Scan parquet
Output [4]: [plant#1200645, product#1200646, productionAspect#1200648, systemId#1200643]
Batched: 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>>>>
(666) Project
Output [4]: [plant#1200645.internalRefUUID AS _extract_internalRefUUID#1201115, product#1200646.internalRefUUID AS _extract_internalRefUUID#1201114, productionAspect#1200648.productMovementPlants.unitOfIssue.code AS _extract_code#1201116, productionAspect#1200648.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201117]
Input [4]: [plant#1200645, product#1200646, productionAspect#1200648, systemId#1200643]
(667) Exchange
Input [4]: [_extract_internalRefUUID#1201115, _extract_internalRefUUID#1201114, _extract_code#1201116, _extract_internalRefUUID#1201117]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838232]
(668) Project
Output [4]: [_extract_code#1201116, _extract_internalRefUUID#1201117, _extract_internalRefUUID#1201114, _extract_internalRefUUID#1201115]
Input [4]: [_extract_internalRefUUID#1201115, _extract_internalRefUUID#1201114, _extract_code#1201116, _extract_internalRefUUID#1201117]
(669) BroadcastExchange
Input [4]: [_extract_code#1201116, _extract_internalRefUUID#1201117, _extract_internalRefUUID#1201114, _extract_internalRefUUID#1201115]
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=1838775]
(670) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200639, ), isnull(product#1200639), coalesce(plant#1200640, ), isnull(plant#1200640)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201114, ), isnull(_extract_internalRefUUID#1201114), coalesce(_extract_internalRefUUID#1201115, ), isnull(_extract_internalRefUUID#1201115)]
Join type: LeftOuter
Join condition: None
(671) Project
Output [4]: [product#1200639, plant#1200640, _extract_code#1201116, _extract_internalRefUUID#1201117]
Input [6]: [product#1200639, plant#1200640, _extract_code#1201116, _extract_internalRefUUID#1201117, _extract_internalRefUUID#1201114, _extract_internalRefUUID#1201115]
(672) Scan parquet
Output [2]: [internalUUID#1200653, systemId#1200652]
Batched: 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>
(673) Project
Output [1]: [internalUUID#1200653]
Input [2]: [internalUUID#1200653, systemId#1200652]
(674) Exchange
Input [1]: [internalUUID#1200653]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838238]
(675) BroadcastExchange
Input [1]: [internalUUID#1200653]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838779]
(676) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200640, ), isnull(plant#1200640)]
Right keys [2]: [coalesce(internalUUID#1200653, ), isnull(internalUUID#1200653)]
Join type: LeftOuter
Join condition: None
(677) Project
Output [4]: [product#1200639, plant#1200640, _extract_code#1201116, _extract_internalRefUUID#1201117]
Input [5]: [product#1200639, plant#1200640, _extract_code#1201116, _extract_internalRefUUID#1201117, internalUUID#1200653]
(678) Scan parquet
Output [4]: [internalUUID#1200667, baseUnitOfMeasure#1200671, unitOfMeasureConversions#1200673, systemId#1200666]
Batched: 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>>>
(679) Filter
Input [4]: [internalUUID#1200667, baseUnitOfMeasure#1200671, unitOfMeasureConversions#1200673, systemId#1200666]
Condition : isnotnull(internalUUID#1200667)
(680) Project
Output [3]: [internalUUID#1200667, baseUnitOfMeasure#1200671, unitOfMeasureConversions#1200673]
Input [4]: [internalUUID#1200667, baseUnitOfMeasure#1200671, unitOfMeasureConversions#1200673, systemId#1200666]
(681) Exchange
Input [3]: [internalUUID#1200667, baseUnitOfMeasure#1200671, unitOfMeasureConversions#1200673]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838244]
(682) BroadcastExchange
Input [3]: [internalUUID#1200667, baseUnitOfMeasure#1200671, unitOfMeasureConversions#1200673]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838783]
(683) BroadcastHashJoin
Left keys [1]: [product#1200639]
Right keys [1]: [internalUUID#1200667]
Join type: LeftOuter
Join condition: None
(684) Project
Output [2]: [plant#1200640, filter(unitOfMeasureConversions#1200673, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201116) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201117)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200671.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200671.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200678]
Input [7]: [product#1200639, plant#1200640, _extract_code#1201116, _extract_internalRefUUID#1201117, internalUUID#1200667, baseUnitOfMeasure#1200671, unitOfMeasureConversions#1200673]
(685) Generate
Input [2]: [plant#1200640, filteredUnitOfMeasureConversions#1200678]
Arguments: explode(filteredUnitOfMeasureConversions#1200678.quantityNumerator), [plant#1200640, filteredUnitOfMeasureConversions#1200678], true, [quantityNumerator#1200679]
(686) Project
Output [2]: [plant#1200640, filteredUnitOfMeasureConversions#1200678.quantityDenominator AS _extract_quantityDenominator#1200930]
Input [3]: [plant#1200640, filteredUnitOfMeasureConversions#1200678, quantityNumerator#1200679]
(687) Generate
Input [2]: [plant#1200640, _extract_quantityDenominator#1200930]
Arguments: explode(_extract_quantityDenominator#1200930), [plant#1200640], true, [quantityDenominator#1200680]
(688) Project
Output [1]: [plant#1200640]
Input [2]: [plant#1200640, quantityDenominator#1200680]
(689) HashAggregate
Input [1]: [plant#1200640]
Keys [1]: [plant#1200640]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200640]
(690) Exchange
Input [1]: [plant#1200640]
Arguments: hashpartitioning(plant#1200640, 37), ENSURE_REQUIREMENTS, [plan_id=1838792]
(691) HashAggregate
Input [1]: [plant#1200640]
Keys [1]: [plant#1200640]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200640]
(692) BroadcastHashJoin
Left keys [1]: [plantUuid#1200636]
Right keys [1]: [plant#1200640]
Join type: Inner
Join condition: None
(693) Project
Output [3]: [plantUuid#1200636, storageLocId#1200637, storageLocUuid#1200638]
Input [4]: [plantUuid#1200636, storageLocId#1200637, storageLocUuid#1200638, plant#1200640]
(694) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200608.internalRefUUID, ), isnull(plant#1200608.internalRefUUID)]
Right keys [2]: [coalesce(plantUuid#1200636, ), isnull(plantUuid#1200636)]
Join type: Inner
Join condition: None
(695) Generate
Input [9]: [systemId#1200605, internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, stockQuantities#1200610, plantUuid#1200636, storageLocId#1200637, storageLocUuid#1200638]
Arguments: explode(filter(stockQuantities#1200610, lambdafunction(((lambda x#1200047.storageLocation.internalRefUuid = storageLocUuid#1200638) AND (lambda x#1200047.storageLocation.Id = storageLocId#1200637)), lambda x#1200047, false))), [systemId#1200605, internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, plantUuid#1200636], false, [stockQuantity#1200683]
(696) ObjectHashAggregate
Input [7]: [systemId#1200605, internalUUID#1200606, product#1200607, plant#1200608, calculationDateTime#1200609, plantUuid#1200636, stockQuantity#1200683]
Keys [5]: [plantUuid#1200636, internalUUID#1200606, plant#1200608, product#1200607, systemId#1200605]
Functions [2]: [partial_first(calculationDateTime#1200609, false), partial_collect_list(stockQuantity#1200683, 0, 0)]
Aggregate Attributes [3]: [first#1201991, valueSet#1201992, buf#1201993]
Results [8]: [plantUuid#1200636, internalUUID#1200606, plant#1200608, product#1200607, systemId#1200605, first#1201994, valueSet#1201995, buf#1201996]
(697) ObjectHashAggregate
Input [8]: [plantUuid#1200636, internalUUID#1200606, plant#1200608, product#1200607, systemId#1200605, first#1201994, valueSet#1201995, buf#1201996]
Keys [5]: [plantUuid#1200636, internalUUID#1200606, plant#1200608, product#1200607, systemId#1200605]
Functions [2]: [first(calculationDateTime#1200609, false), collect_list(stockQuantity#1200683, 0, 0)]
Aggregate Attributes [2]: [first(calculationDateTime#1200609)()#1200062, collect_list(stockQuantity#1200683, 0, 0)#1200063]
Results [4]: [product#1200607, plant#1200608, first(calculationDateTime#1200609)()#1200062 AS calculationDateTime#1200684, collect_list(stockQuantity#1200683, 0, 0)#1200063 AS stockQuantities#1200685]
(698) Filter
Input [4]: [product#1200607, plant#1200608, calculationDateTime#1200684, stockQuantities#1200685]
Condition : ((size(stockQuantities#1200685, true) > 0) AND isnotnull(calculationDateTime#1200684))
(699) Generate
Input [4]: [product#1200607, plant#1200608, calculationDateTime#1200684, stockQuantities#1200685]
Arguments: explode(stockQuantities#1200685), [product#1200607, plant#1200608, calculationDateTime#1200684], false, [stockQuantity#1200686]
(700) Filter
Input [4]: [product#1200607, plant#1200608, calculationDateTime#1200684, stockQuantity#1200686]
Condition : (((isnotnull(stockQuantity#1200686.specialStockIndicator.code) AND isnotnull(stockQuantity#1200686.stockType.code)) AND (stockQuantity#1200686.specialStockIndicator.code = )) AND (stockQuantity#1200686.stockType.code = 01))
(701) Project
Output [4]: [plant#1200608.internalRefUUID AS plantUuid#1200688, product#1200607.internalRefUUID AS productUuid#1200690, calculationDateTime#1200684, stockQuantity#1200686.storagelocation.id AS storageLocId#1200691]
Input [4]: [product#1200607, plant#1200608, calculationDateTime#1200684, stockQuantity#1200686]
(702) Exchange
Input [4]: [plantUuid#1200688, productUuid#1200690, calculationDateTime#1200684, storageLocId#1200691]
Arguments: hashpartitioning(productUuid#1200690, plantUuid#1200688, 37), ENSURE_REQUIREMENTS, [plan_id=1838825]
(703) Sort
Input [4]: [plantUuid#1200688, productUuid#1200690, calculationDateTime#1200684, storageLocId#1200691]
Arguments: [productUuid#1200690 ASC NULLS FIRST, plantUuid#1200688 ASC NULLS FIRST], false, 0
(704) Scan parquet
Output [3]: [product#1200696, plant#1200697, orderDateTime#1200698]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(orderDateTime), IsNotNull(plant), IsNotNull(product)]
ReadSchema: struct<product:string,plant:string,orderDateTime:timestamp>
(705) Filter
Input [3]: [product#1200696, plant#1200697, orderDateTime#1200698]
Condition : ((isnotnull(orderDateTime#1200698) AND isnotnull(plant#1200697)) AND isnotnull(product#1200696))
(706) Exchange
Input [3]: [product#1200696, plant#1200697, orderDateTime#1200698]
Arguments: hashpartitioning(product#1200696, plant#1200697, 37), REPARTITION_BY_NUM, [plan_id=1838511]
(707) Scan parquet
Output [4]: [plant#1200702, product#1200703, productionAspect#1200705, systemId#1200700]
Batched: 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>>>>
(708) Project
Output [4]: [plant#1200702.internalRefUUID AS _extract_internalRefUUID#1201118, product#1200703.internalRefUUID AS _extract_internalRefUUID#1201119, productionAspect#1200705.productMovementPlants.unitOfIssue.code AS _extract_code#1201120, productionAspect#1200705.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201121]
Input [4]: [plant#1200702, product#1200703, productionAspect#1200705, systemId#1200700]
(709) Exchange
Input [4]: [_extract_internalRefUUID#1201118, _extract_internalRefUUID#1201119, _extract_code#1201120, _extract_internalRefUUID#1201121]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838269]
(710) Project
Output [4]: [_extract_code#1201120, _extract_internalRefUUID#1201121, _extract_internalRefUUID#1201119, _extract_internalRefUUID#1201118]
Input [4]: [_extract_internalRefUUID#1201118, _extract_internalRefUUID#1201119, _extract_code#1201120, _extract_internalRefUUID#1201121]
(711) BroadcastExchange
Input [4]: [_extract_code#1201120, _extract_internalRefUUID#1201121, _extract_internalRefUUID#1201119, _extract_internalRefUUID#1201118]
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=1838808]
(712) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200696, ), isnull(product#1200696), coalesce(plant#1200697, ), isnull(plant#1200697)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201119, ), isnull(_extract_internalRefUUID#1201119), coalesce(_extract_internalRefUUID#1201118, ), isnull(_extract_internalRefUUID#1201118)]
Join type: LeftOuter
Join condition: None
(713) Project
Output [5]: [product#1200696, plant#1200697, orderDateTime#1200698, _extract_code#1201120, _extract_internalRefUUID#1201121]
Input [7]: [product#1200696, plant#1200697, orderDateTime#1200698, _extract_code#1201120, _extract_internalRefUUID#1201121, _extract_internalRefUUID#1201119, _extract_internalRefUUID#1201118]
(714) Scan parquet
Output [2]: [internalUUID#1200710, systemId#1200709]
Batched: 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>
(715) Project
Output [1]: [internalUUID#1200710]
Input [2]: [internalUUID#1200710, systemId#1200709]
(716) Exchange
Input [1]: [internalUUID#1200710]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838275]
(717) BroadcastExchange
Input [1]: [internalUUID#1200710]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838812]
(718) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200697, ), isnull(plant#1200697)]
Right keys [2]: [coalesce(internalUUID#1200710, ), isnull(internalUUID#1200710)]
Join type: LeftOuter
Join condition: None
(719) Project
Output [5]: [product#1200696, plant#1200697, orderDateTime#1200698, _extract_code#1201120, _extract_internalRefUUID#1201121]
Input [6]: [product#1200696, plant#1200697, orderDateTime#1200698, _extract_code#1201120, _extract_internalRefUUID#1201121, internalUUID#1200710]
(720) Scan parquet
Output [4]: [internalUUID#1200724, baseUnitOfMeasure#1200728, unitOfMeasureConversions#1200730, systemId#1200723]
Batched: 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>>>
(721) Filter
Input [4]: [internalUUID#1200724, baseUnitOfMeasure#1200728, unitOfMeasureConversions#1200730, systemId#1200723]
Condition : isnotnull(internalUUID#1200724)
(722) Project
Output [3]: [internalUUID#1200724, baseUnitOfMeasure#1200728, unitOfMeasureConversions#1200730]
Input [4]: [internalUUID#1200724, baseUnitOfMeasure#1200728, unitOfMeasureConversions#1200730, systemId#1200723]
(723) Exchange
Input [3]: [internalUUID#1200724, baseUnitOfMeasure#1200728, unitOfMeasureConversions#1200730]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838281]
(724) BroadcastExchange
Input [3]: [internalUUID#1200724, baseUnitOfMeasure#1200728, unitOfMeasureConversions#1200730]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838816]
(725) BroadcastHashJoin
Left keys [1]: [product#1200696]
Right keys [1]: [internalUUID#1200724]
Join type: LeftOuter
Join condition: None
(726) Project
Output [4]: [product#1200696, plant#1200697, orderDateTime#1200698, filter(unitOfMeasureConversions#1200730, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201120) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201121)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200728.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200728.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200735]
Input [8]: [product#1200696, plant#1200697, orderDateTime#1200698, _extract_code#1201120, _extract_internalRefUUID#1201121, internalUUID#1200724, baseUnitOfMeasure#1200728, unitOfMeasureConversions#1200730]
(727) Generate
Input [4]: [product#1200696, plant#1200697, orderDateTime#1200698, filteredUnitOfMeasureConversions#1200735]
Arguments: explode(filteredUnitOfMeasureConversions#1200735.quantityNumerator), [product#1200696, plant#1200697, orderDateTime#1200698, filteredUnitOfMeasureConversions#1200735], true, [quantityNumerator#1200736]
(728) Project
Output [4]: [product#1200696, plant#1200697, orderDateTime#1200698, filteredUnitOfMeasureConversions#1200735.quantityDenominator AS _extract_quantityDenominator#1200934]
Input [5]: [product#1200696, plant#1200697, orderDateTime#1200698, filteredUnitOfMeasureConversions#1200735, quantityNumerator#1200736]
(729) Generate
Input [4]: [product#1200696, plant#1200697, orderDateTime#1200698, _extract_quantityDenominator#1200934]
Arguments: explode(_extract_quantityDenominator#1200934), [product#1200696, plant#1200697, orderDateTime#1200698], true, [quantityDenominator#1200737]
(730) Project
Output [3]: [product#1200696, plant#1200697, orderDateTime#1200698]
Input [4]: [product#1200696, plant#1200697, orderDateTime#1200698, quantityDenominator#1200737]
(731) Sort
Input [3]: [product#1200696, plant#1200697, orderDateTime#1200698]
Arguments: [product#1200696 ASC NULLS FIRST, plant#1200697 ASC NULLS FIRST], false, 0
(732) SortMergeJoin
Left keys [2]: [productUuid#1200690, plantUuid#1200688]
Right keys [2]: [product#1200696, plant#1200697]
Join type: Inner
Join condition: (calculationDateTime#1200684 <= orderDateTime#1200698)
(733) Project
Output [4]: [plantUuid#1200688 AS plant#1200740, productUuid#1200690 AS product#1200741, storageLocId#1200691, calculationDateTime#1200684]
Input [7]: [plantUuid#1200688, productUuid#1200690, calculationDateTime#1200684, storageLocId#1200691, product#1200696, plant#1200697, orderDateTime#1200698]
(734) HashAggregate
Input [4]: [plant#1200740, product#1200741, storageLocId#1200691, calculationDateTime#1200684]
Keys [3]: [plant#1200740, product#1200741, storageLocId#1200691]
Functions [1]: [partial_max(calculationDateTime#1200684)]
Aggregate Attributes [1]: [max#1201989]
Results [4]: [plant#1200740, product#1200741, storageLocId#1200691, max#1201990]
(735) HashAggregate
Input [4]: [plant#1200740, product#1200741, storageLocId#1200691, max#1201990]
Keys [3]: [plant#1200740, product#1200741, storageLocId#1200691]
Functions [1]: [max(calculationDateTime#1200684)]
Aggregate Attributes [1]: [max(calculationDateTime#1200684)#1200140]
Results [4]: [plant#1200740, product#1200741, storageLocId#1200691, max(calculationDateTime#1200684)#1200140 AS max_calc_datetime#1200742]
(736) Exchange
Input [4]: [plant#1200740, product#1200741, storageLocId#1200691, max_calc_datetime#1200742]
Arguments: hashpartitioning(coalesce(plant#1200740, ), isnull(plant#1200740), coalesce(product#1200741, ), isnull(product#1200741), coalesce(storageLocId#1200691, ), isnull(storageLocId#1200691), coalesce(max_calc_datetime#1200742, 1970-01-01 00:00:00), isnull(max_calc_datetime#1200742), 37), ENSURE_REQUIREMENTS, [plan_id=1838835]
(737) Sort
Input [4]: [plant#1200740, product#1200741, storageLocId#1200691, max_calc_datetime#1200742]
Arguments: [coalesce(plant#1200740, ) ASC NULLS FIRST, isnull(plant#1200740) ASC NULLS FIRST, coalesce(product#1200741, ) ASC NULLS FIRST, isnull(product#1200741) ASC NULLS FIRST, coalesce(storageLocId#1200691, ) ASC NULLS FIRST, isnull(storageLocId#1200691) ASC NULLS FIRST, coalesce(max_calc_datetime#1200742, 1970-01-01 00:00:00) ASC NULLS FIRST, isnull(max_calc_datetime#1200742) ASC NULLS FIRST], false, 0
(738) SortMergeJoin
Left keys [8]: [coalesce(plant#1200603, ), isnull(plant#1200603), coalesce(product#1200604, ), isnull(product#1200604), coalesce(storageLocId#1200554, ), isnull(storageLocId#1200554), coalesce(calculationDateTime#1200547, 1970-01-01 00:00:00), isnull(calculationDateTime#1200547)]
Right keys [8]: [coalesce(plant#1200740, ), isnull(plant#1200740), coalesce(product#1200741, ), isnull(product#1200741), coalesce(storageLocId#1200691, ), isnull(storageLocId#1200691), coalesce(max_calc_datetime#1200742, 1970-01-01 00:00:00), isnull(max_calc_datetime#1200742)]
Join type: Inner
Join condition: None
(739) Project
Output [4]: [plant#1200603, product#1200604, calculationDateTime#1200547, quantity#1200556]
Input [9]: [plant#1200603, product#1200604, storageLocId#1200554, calculationDateTime#1200547, quantity#1200556, plant#1200740, product#1200741, storageLocId#1200691, max_calc_datetime#1200742]
(740) HashAggregate
Input [4]: [plant#1200603, product#1200604, calculationDateTime#1200547, quantity#1200556]
Keys [2]: [product#1200604, plant#1200603]
Functions [2]: [partial_min(calculationDateTime#1200547), partial_sum(quantity#1200556)]
Aggregate Attributes [2]: [min#1201979, sum#1201980]
Results [4]: [product#1200604, plant#1200603, min#1201981, sum#1201982]
(741) Exchange
Input [4]: [product#1200604, plant#1200603, min#1201981, sum#1201982]
Arguments: hashpartitioning(product#1200604, plant#1200603, 37), ENSURE_REQUIREMENTS, [plan_id=1838842]
(742) HashAggregate
Input [4]: [product#1200604, plant#1200603, min#1201981, sum#1201982]
Keys [2]: [product#1200604, plant#1200603]
Functions [2]: [min(calculationDateTime#1200547), sum(quantity#1200556)]
Aggregate Attributes [2]: [min(calculationDateTime#1200547)#1200296, sum(quantity#1200556)#1200295]
Results [4]: [product#1200604, plant#1200603, min(calculationDateTime#1200547)#1200296 AS minCalculationDateTime#1200744, round(sum(quantity#1200556)#1200295, 0) AS roundedQuantitySum#1200745]
(743) Sort
Input [4]: [product#1200604, plant#1200603, minCalculationDateTime#1200744, roundedQuantitySum#1200745]
Arguments: [product#1200604 ASC NULLS FIRST, plant#1200603 ASC NULLS FIRST], false, 0
(744) SortMergeJoin
Left keys [2]: [product#1200424, plant#1200425]
Right keys [2]: [product#1200604, plant#1200603]
Join type: LeftOuter
Join condition: None
(745) Project
Output [8]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, CASE WHEN isnotnull(minCalculationDateTime#1200744) THEN minCalculationDateTime#1200744 ELSE orderDateTime#1200426 END AS stockDatetime#1200746, CASE WHEN isnotnull(roundedQuantitySum#1200745) THEN array(roundedQuantitySum#1200745) ELSE [0.0] END AS stockBatchQuantities#1200747]
Input [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, product#1200604, plant#1200603, minCalculationDateTime#1200744, roundedQuantitySum#1200745]
(746) Filter
Input [9]: [product#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
Condition : (isnotnull(product#1200349) AND isnotnull(plant#1200350))
(747) BroadcastExchange
Input [9]: [product#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
Arguments: HashedRelationBroadcastMode(List(input[0, string, false], input[1, string, false]),false), [plan_id=1838851]
(748) BroadcastHashJoin
Left keys [2]: [product#1200424, plant#1200425]
Right keys [2]: [product#1200349, plant#1200350]
Join type: LeftOuter
Join condition: None
(749) Project
Output [9]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, CASE WHEN isnotnull(product#1200349) THEN struct(demandChannel, demandChannel#1200351, demandStream, demandStream#1200352, considerVariance, considerVariance#1200353, demandTimeBuckets, demandTimeBuckets#1200354, demandPointInTimeStart, demandPointInTimeStart#1200355, demandPointInTimeEnd, demandPointInTimeEnd#1200356, demandPointInTime, demandPointInTime#1200357) END AS rawDemands#1200370]
Input [17]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, product#1200349, plant#1200350, demandChannel#1200351, demandStream#1200352, considerVariance#1200353, demandTimeBuckets#1200354, demandPointInTimeStart#1200355, demandPointInTimeEnd#1200356, demandPointInTime#1200357]
(750) ObjectHashAggregate
Input [9]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, rawDemands#1200370]
Keys [9]: [product#1200424, plant#1200425, orderDateTime#1200426, knownfloatingpointnormalized(if (isnull(productPlant#1200436)) null else named_struct(systemId, productPlant#1200436.systemId, internalUUID, productPlant#1200436.internalUUID, plant, productPlant#1200436.plant, product, productPlant#1200436.product, blockedForReplenishmentStartingFrom, productPlant#1200436.blockedForReplenishmentStartingFrom, productionAspect, knownfloatingpointnormalized(if (isnull(productPlant#1200436.productionAspect)) null else named_struct(productMovementPlants, productPlant#1200436.productionAspect.productMovementPlants, productPlanningPlants, knownfloatingpointnormalized(if (isnull(productPlant#1200436.productionAspect.productPlanningPlants)) null else named_struct(mrpType, productPlant#1200436.productionAspect.productPlanningPlants.mrpType, abcIndicator, productPlant#1200436.productionAspect.productPlanningPlants.abcIndicator, mrpController, productPlant#1200436.productionAspect.productPlanningPlants.mrpController, minimumLotSize, knownfloatingpointnormalized(normalizenanandzero(productPlant#1200436.productionAspect.productPlanningPlants.minimumLotSize)), logisticalRoundingProfile, productPlant#1200436.productionAspect.productPlanningPlants.logisticalRoundingProfile, sourceOfSupplyCategory, productPlant#1200436.productionAspect.productPlanningPlants.sourceOfSupplyCategory)))), salesPlant, productPlant#1200436.salesPlant, listing, productPlant#1200436.listing)) AS productPlant#1200436, timezonecode#1200450, knownfloatingpointnormalized(normalizenanandzero(outboundUnit#1200467)) AS outboundUnit#1200467, stockDatetime#1200746, knownfloatingpointnormalized(transform(stockBatchQuantities#1200747, lambdafunction(knownfloatingpointnormalized(normalizenanandzero(lambda arg#1201976)), lambda arg#1201976, false))) AS stockBatchQuantities#1200747, [7226582400000000] AS [7226582400000000]#1201975]
Functions [1]: [partial_collect_list(rawDemands#1200370, 0, 0)]
Aggregate Attributes [1]: [buf#1201977]
Results [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, [7226582400000000]#1201975, buf#1201978]
(751) ObjectHashAggregate
Input [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, [7226582400000000]#1201975, buf#1201978]
Keys [9]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, [7226582400000000]#1201975]
Functions [1]: [collect_list(rawDemands#1200370, 0, 0)]
Aggregate Attributes [1]: [collect_list(rawDemands#1200370, 0, 0)#1200389]
Results [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, [7226582400000000] AS stockBatchShelfLifeEndDatetimes#1200748, collect_list(rawDemands#1200370, 0, 0)#1200389 AS rawDemands#1200371]
(752) DeserializeToObject
Input [10]: [product#1200424, plant#1200425, orderDateTime#1200426, productPlant#1200436, timezonecode#1200450, outboundUnit#1200467, stockDatetime#1200746, stockBatchQuantities#1200747, stockBatchShelfLifeEndDatetimes#1200748, rawDemands#1200371]
Arguments: createexternalrow(invoke(product#1200424.toString()), invoke(plant#1200425.toString()), static_invoke(DateTimeUtils.toJavaTimestamp(orderDateTime#1200426)), if (isnull(productPlant#1200436)) null else createexternalrow(invoke(productPlant#1200436.systemId.toString()), invoke(productPlant#1200436.internalUUID.toString()), if (isnull(productPlant#1200436.plant)) null else createexternalrow(invoke(productPlant#1200436.plant.internalRefUUID.toString()), invoke(productPlant#1200436.plant.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), if (isnull(productPlant#1200436.product)) null else createexternalrow(invoke(productPlant#1200436.product.internalRefUUID.toString()), invoke(productPlant#1200436.product.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(DateTimeUtils.toJavaDate(productPlant#1200436.blockedForReplenishmentStartingFrom)), if (isnull(productPlant#1200436.productionAspect)) null else createexternalrow(if (isnull(productPlant#1200436.productionAspect.productMovementPlants)) null else createexternalrow(if (isnull(productPlant#1200436.productionAspect.productMovementPlants.unitOfIssue)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productMovementPlants.unitOfIssue.internalRefUUID.toString()), invoke(productPlant#1200436.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#1200436.productionAspect.productPlanningPlants)) null else createexternalrow(if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.mrpType)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.mrpType.internalRefUUID.toString()), invoke(productPlant#1200436.productionAspect.productPlanningPlants.mrpType.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.abcIndicator)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.abcIndicator.internalRefUUID.toString()), invoke(productPlant#1200436.productionAspect.productPlanningPlants.abcIndicator.code.toString()), StructField(internalRefUUID,StringType,true), StructField(code,StringType,true)), if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.mrpController)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.mrpController.internalRefUUID.toString()), invoke(productPlant#1200436.productionAspect.productPlanningPlants.mrpController.id.toString()), StructField(internalRefUUID,StringType,true), StructField(id,StringType,true)), static_invoke(java.lang.Double.valueOf(productPlant#1200436.productionAspect.productPlanningPlants.minimumLotSize)), if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.logisticalRoundingProfile)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.logisticalRoundingProfile.internalRefUUID.toString()), invoke(productPlant#1200436.productionAspect.productPlanningPlants.logisticalRoundingProfile.logisticalRoundingProfile.toString()), StructField(internalRefUUID,StringType,true), StructField(logisticalRoundingProfile,StringType,true)), if (isnull(productPlant#1200436.productionAspect.productPlanningPlants.sourceOfSupplyCategory)) null else createexternalrow(invoke(productPlant#1200436.productionAspect.productPlanningPlants.sourceOfSupplyCategory.internalRefUUID.toString()), invoke(productPlant#1200436.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#1200436.salesPlant)) null else createexternalrow(if (isnull(productPlant#1200436.salesPlant.loadingGroup)) null else createexternalrow(invoke(productPlant#1200436.salesPlant.loadingGroup.internalRefUUID.toString()), invoke(productPlant#1200436.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#1200436.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#1200450.toString()), static_invoke(java.lang.Double.valueOf(outboundUnit#1200467)), static_invoke(DateTimeUtils.toJavaTimestamp(stockDatetime#1200746)), mapobjects(lambdavariable(MapObject, DoubleType, true, -2), static_invoke(java.lang.Double.valueOf(lambdavariable(MapObject, DoubleType, true, -2))), stockBatchQuantities#1200747, Some(class scala.collection.mutable.ArraySeq)), mapobjects(lambdavariable(MapObject, TimestampType, false, -3), static_invoke(DateTimeUtils.toJavaTimestamp(lambdavariable(MapObject, TimestampType, false, -3))), stockBatchShelfLifeEndDatetimes#1200748, 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#1200371, 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#1200410: org.apache.spark.sql.Row
(753) MapElements
Input [1]: [obj#1200410]
Arguments: com.sap.s4hana.eureka.business.crporderquantitykpiservice.core.business.datasnapshot.DemandTransformatorImpl$$Lambda/0x00000008023bc120@783def9c, obj#1200415: org.apache.spark.sql.Row
(754) SerializeFromObject
Input [1]: [obj#1200415]
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#1200420, 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#1200421]
(755) Exchange
Input [2]: [product#1200420, plant#1200421]
Arguments: hashpartitioning(coalesce(plant#1200421, ), isnull(plant#1200421), coalesce(product#1200420, ), isnull(product#1200420), 37), ENSURE_REQUIREMENTS, [plan_id=1838862]
(756) Sort
Input [2]: [product#1200420, plant#1200421]
Arguments: [coalesce(plant#1200421, ) ASC NULLS FIRST, isnull(plant#1200421) ASC NULLS FIRST, coalesce(product#1200420, ) ASC NULLS FIRST, isnull(product#1200420) ASC NULLS FIRST], false, 0
(757) SortMergeJoin
Left keys [4]: [coalesce(plant#1199943, ), isnull(plant#1199943), coalesce(product#1199942, ), isnull(product#1199942)]
Right keys [4]: [coalesce(plant#1200421, ), isnull(plant#1200421), coalesce(product#1200420, ), isnull(product#1200420)]
Join type: LeftOuter
Join condition: None
(758) Project
Output [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Input [6]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346, product#1200420, plant#1200421]
(759) Exchange
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: hashpartitioning(plant#1199943, 37), ENSURE_REQUIREMENTS, [plan_id=1838892]
(760) Sort
Input [4]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346]
Arguments: [plant#1199943 ASC NULLS FIRST], false, 0
(761) Scan parquet
Output [2]: [marketUnit#1200813, distributionCenters#1200819]
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,Grocery_SS), IsNotNull(distributionCenters)]
ReadSchema: struct<marketUnit:string,distributionCenters:array<struct<internalRefUUID:string,id:string,storageLocations:array<struct<internalRefUUID:string,id:string>>>>>
(762) Filter
Input [2]: [marketUnit#1200813, distributionCenters#1200819]
Condition : (((marketUnit#1200813 <=> Grocery_SS) AND (size(distributionCenters#1200819, true) > 0)) AND isnotnull(distributionCenters#1200819))
(763) Project
Output [1]: [distributionCenters#1200819]
Input [2]: [marketUnit#1200813, distributionCenters#1200819]
(764) Exchange
Input [1]: [distributionCenters#1200819]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838313]
(765) Generate
Input [1]: [distributionCenters#1200819]
Arguments: explode(distributionCenters#1200819), false, [distributionCenters#1200835]
(766) Filter
Input [1]: [distributionCenters#1200835]
Condition : (((size(distributionCenters#1200835.storageLocations.internalRefUUID, true) > 0) AND isnotnull(distributionCenters#1200835.storageLocations.internalRefUUID)) AND isnotnull(distributionCenters#1200835.internalRefUUID))
(767) Project
Output [2]: [distributionCenters#1200835.internalRefUUID AS _extract_internalRefUUID#1200938, distributionCenters#1200835.storageLocations.internalRefUUID AS _extract_internalRefUUID#1201123]
Input [1]: [distributionCenters#1200835]
(768) Generate
Input [2]: [_extract_internalRefUUID#1200938, _extract_internalRefUUID#1201123]
Arguments: explode(_extract_internalRefUUID#1201123), [_extract_internalRefUUID#1200938], false, [storageLocations#1200836]
(769) Filter
Input [2]: [_extract_internalRefUUID#1200938, storageLocations#1200836]
Condition : isnotnull(storageLocations#1200836)
(770) Project
Output [2]: [_extract_internalRefUUID#1200938 AS plantUuid#1200838, storageLocations#1200836 AS storageLocUuid#1200840]
Input [2]: [_extract_internalRefUUID#1200938, storageLocations#1200836]
(771) BroadcastExchange
Input [2]: [plantUuid#1200838, storageLocUuid#1200840]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838887]
(772) Scan parquet
Output [2]: [product#1200841, plant#1200842]
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/10000001355/shardId=0_1_10000001355]
PushedFilters: [IsNotNull(plant)]
ReadSchema: struct<product:string,plant:string>
(773) Filter
Input [2]: [product#1200841, plant#1200842]
Condition : isnotnull(plant#1200842)
(774) Exchange
Input [2]: [product#1200841, plant#1200842]
Arguments: hashpartitioning(product#1200841, plant#1200842, 37), REPARTITION_BY_NUM, [plan_id=1838541]
(775) Scan parquet
Output [4]: [plant#1200847, product#1200848, productionAspect#1200850, systemId#1200845]
Batched: 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>>>>
(776) Project
Output [4]: [plant#1200847.internalRefUUID AS _extract_internalRefUUID#1201127, product#1200848.internalRefUUID AS _extract_internalRefUUID#1201126, productionAspect#1200850.productMovementPlants.unitOfIssue.code AS _extract_code#1201124, productionAspect#1200850.productMovementPlants.unitOfIssue.internalRefUUID AS _extract_internalRefUUID#1201125]
Input [4]: [plant#1200847, product#1200848, productionAspect#1200850, systemId#1200845]
(777) Exchange
Input [4]: [_extract_internalRefUUID#1201127, _extract_internalRefUUID#1201126, _extract_code#1201124, _extract_internalRefUUID#1201125]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838326]
(778) Project
Output [4]: [_extract_code#1201124, _extract_internalRefUUID#1201125, _extract_internalRefUUID#1201126, _extract_internalRefUUID#1201127]
Input [4]: [_extract_internalRefUUID#1201127, _extract_internalRefUUID#1201126, _extract_code#1201124, _extract_internalRefUUID#1201125]
(779) BroadcastExchange
Input [4]: [_extract_code#1201124, _extract_internalRefUUID#1201125, _extract_internalRefUUID#1201126, _extract_internalRefUUID#1201127]
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=1838867]
(780) BroadcastHashJoin
Left keys [4]: [coalesce(product#1200841, ), isnull(product#1200841), coalesce(plant#1200842, ), isnull(plant#1200842)]
Right keys [4]: [coalesce(_extract_internalRefUUID#1201126, ), isnull(_extract_internalRefUUID#1201126), coalesce(_extract_internalRefUUID#1201127, ), isnull(_extract_internalRefUUID#1201127)]
Join type: LeftOuter
Join condition: None
(781) Project
Output [4]: [product#1200841, plant#1200842, _extract_code#1201124, _extract_internalRefUUID#1201125]
Input [6]: [product#1200841, plant#1200842, _extract_code#1201124, _extract_internalRefUUID#1201125, _extract_internalRefUUID#1201126, _extract_internalRefUUID#1201127]
(782) Scan parquet
Output [2]: [internalUUID#1200855, systemId#1200854]
Batched: 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>
(783) Project
Output [1]: [internalUUID#1200855]
Input [2]: [internalUUID#1200855, systemId#1200854]
(784) Exchange
Input [1]: [internalUUID#1200855]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838332]
(785) BroadcastExchange
Input [1]: [internalUUID#1200855]
Arguments: HashedRelationBroadcastMode(List(coalesce(input[0, string, true], ), isnull(input[0, string, true])),false), [plan_id=1838871]
(786) BroadcastHashJoin
Left keys [2]: [coalesce(plant#1200842, ), isnull(plant#1200842)]
Right keys [2]: [coalesce(internalUUID#1200855, ), isnull(internalUUID#1200855)]
Join type: LeftOuter
Join condition: None
(787) Project
Output [4]: [product#1200841, plant#1200842, _extract_code#1201124, _extract_internalRefUUID#1201125]
Input [5]: [product#1200841, plant#1200842, _extract_code#1201124, _extract_internalRefUUID#1201125, internalUUID#1200855]
(788) Scan parquet
Output [4]: [internalUUID#1200869, baseUnitOfMeasure#1200873, unitOfMeasureConversions#1200875, systemId#1200868]
Batched: 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>>>
(789) Filter
Input [4]: [internalUUID#1200869, baseUnitOfMeasure#1200873, unitOfMeasureConversions#1200875, systemId#1200868]
Condition : isnotnull(internalUUID#1200869)
(790) Project
Output [3]: [internalUUID#1200869, baseUnitOfMeasure#1200873, unitOfMeasureConversions#1200875]
Input [4]: [internalUUID#1200869, baseUnitOfMeasure#1200873, unitOfMeasureConversions#1200875, systemId#1200868]
(791) Exchange
Input [3]: [internalUUID#1200869, baseUnitOfMeasure#1200873, unitOfMeasureConversions#1200875]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838338]
(792) BroadcastExchange
Input [3]: [internalUUID#1200869, baseUnitOfMeasure#1200873, unitOfMeasureConversions#1200875]
Arguments: HashedRelationBroadcastMode(List(input[0, string, true]),false), [plan_id=1838875]
(793) BroadcastHashJoin
Left keys [1]: [product#1200841]
Right keys [1]: [internalUUID#1200869]
Join type: LeftOuter
Join condition: None
(794) Project
Output [2]: [plant#1200842, filter(unitOfMeasureConversions#1200875, lambdafunction((((lambda u#1199989.measurementUnit1.code = _extract_code#1201124) AND (lambda u#1199989.measurementUnit1.internalRefUUID = _extract_internalRefUUID#1201125)) AND ((lambda u#1199989.measurementUnit2.code = baseUnitOfMeasure#1200873.code) AND (lambda u#1199989.measurementUnit2.internalRefUUID = baseUnitOfMeasure#1200873.internalRefUUID))), lambda u#1199989, false)) AS filteredUnitOfMeasureConversions#1200880]
Input [7]: [product#1200841, plant#1200842, _extract_code#1201124, _extract_internalRefUUID#1201125, internalUUID#1200869, baseUnitOfMeasure#1200873, unitOfMeasureConversions#1200875]
(795) Generate
Input [2]: [plant#1200842, filteredUnitOfMeasureConversions#1200880]
Arguments: explode(filteredUnitOfMeasureConversions#1200880.quantityNumerator), [plant#1200842, filteredUnitOfMeasureConversions#1200880], true, [quantityNumerator#1200881]
(796) Project
Output [2]: [plant#1200842, filteredUnitOfMeasureConversions#1200880.quantityDenominator AS _extract_quantityDenominator#1200940]
Input [3]: [plant#1200842, filteredUnitOfMeasureConversions#1200880, quantityNumerator#1200881]
(797) Generate
Input [2]: [plant#1200842, _extract_quantityDenominator#1200940]
Arguments: explode(_extract_quantityDenominator#1200940), [plant#1200842], true, [quantityDenominator#1200882]
(798) Project
Output [1]: [plant#1200842]
Input [2]: [plant#1200842, quantityDenominator#1200882]
(799) HashAggregate
Input [1]: [plant#1200842]
Keys [1]: [plant#1200842]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200842]
(800) Exchange
Input [1]: [plant#1200842]
Arguments: hashpartitioning(plant#1200842, 37), ENSURE_REQUIREMENTS, [plan_id=1838884]
(801) HashAggregate
Input [1]: [plant#1200842]
Keys [1]: [plant#1200842]
Functions: []
Aggregate Attributes: []
Results [1]: [plant#1200842]
(802) BroadcastHashJoin
Left keys [1]: [plantUuid#1200838]
Right keys [1]: [plant#1200842]
Join type: Inner
Join condition: None
(803) Project
Output [2]: [plantUuid#1200838 AS plant#1200812, storageLocUuid#1200840]
Input [3]: [plantUuid#1200838, storageLocUuid#1200840, plant#1200842]
(804) Sort
Input [2]: [plant#1200812, storageLocUuid#1200840]
Arguments: [plant#1200812 ASC NULLS FIRST], false, 0
(805) SortMergeJoin
Left keys [1]: [plant#1199943]
Right keys [1]: [plant#1200812]
Join type: Inner
Join condition: None
(806) Project
Output [5]: [plant#1199943, product#1199942, timezonecode#1199974, stockDatetime#1200346, storageLocUuid#1200840]
Input [6]: [product#1199942, plant#1199943, timezonecode#1199974, stockDatetime#1200346, plant#1200812, storageLocUuid#1200840]
(807) Filter
Input [6]: [internalUUID#1200774, id#1200775, supplier#1200777, isMarkedForDeletion#1200780, items#1200781, systemId#1200773]
Condition : (((isnotnull(isMarkedForDeletion#1200780) AND NOT isMarkedForDeletion#1200780) AND (size(items#1200781, true) > 0)) AND isnotnull(items#1200781))
(808) Project
Output [4]: [internalUUID#1200774, id#1200775, supplier#1200777, items#1200781]
Input [6]: [internalUUID#1200774, id#1200775, supplier#1200777, isMarkedForDeletion#1200780, items#1200781, systemId#1200773]
(809) Exchange
Input [4]: [internalUUID#1200774, id#1200775, supplier#1200777, items#1200781]
Arguments: RoundRobinPartitioning(37), REPARTITION_BY_NUM, [plan_id=1838354]
(810) Generate
Input [4]: [internalUUID#1200774, id#1200775, supplier#1200777, items#1200781]
Arguments: explode(items#1200781), [internalUUID#1200774, id#1200775, supplier#1200777], false, [item#1200785]
(811) Filter
Input [4]: [internalUUID#1200774, id#1200775, supplier#1200777, item#1200785]
Condition : ((((isnotnull(item#1200785.deletionIndicator) AND isnotnull(item#1200785.completeIndicator)) AND isnotnull(item#1200785.returnIndicator)) AND ((NOT item#1200785.deletionIndicator AND NOT item#1200785.completeIndicator) AND NOT item#1200785.returnIndicator)) AND ((isnotnull(item#1200785.product.internalRefUUID) AND isnotnull(item#1200785.plant.internalRefUUID)) AND isnotnull(item#1200785.storageLocation.internalRefUUID)))
(812) Project
Output [14]: [id#1200775, internalUUID#1200774, supplier#1200777.internalRefUUID AS supplierUuid#1200782, item#1200785.plant.internalRefUUID AS plant#1200790, item#1200785.product.internalRefUUID AS product#1200791, item#1200785.plant.id AS externalPlantId#1200792, item#1200785.product.id AS externalProductId#1200793, item#1200785.storageLocation.internalRefUUID AS storageLocUuid#1200794, item#1200785.quantityUnit.code AS quantityUom#1200795, item#1200785.quantityUnit.internalRefUUID AS quantityUomUuid#1200796, item#1200785.quantityNumerator AS quantityNumerator#1200797, item#1200785.quantityDenominator AS quantityDenominator#1200798, item#1200785.scheduleLines AS scheduleLines#1200799, item#1200785.confirmations AS confirmations#1200800]
Input [4]: [internalUUID#1200774, id#1200775, supplier#1200777, item#1200785]
(813) BroadcastExchange
Input [14]: [id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800]
Arguments: HashedRelationBroadcastMode(List(input[4, string, true], input[3, string, true], input[7, string, true]),false), [plan_id=1838898]
(814) BroadcastHashJoin
Left keys [3]: [product#1199942, plant#1199943, storageLocUuid#1200840]
Right keys [3]: [product#1200791, plant#1200790, storageLocUuid#1200794]
Join type: Inner
Join condition: None
(815) Project
Output [17]: [id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800, stockDatetime#1200346, timezonecode#1199974, filter(confirmations#1200800, lambdafunction(((NOT lambda x_139#1200891.deletionIndicator AND lambda x_139#1200891.isRelevantForConfirmation) AND isnotnull(lambda x_139#1200891.confirmedDeliveryAt)), lambda x_139#1200891, false)) AS validConfirmations#1200890]
Input [19]: [plant#1199943, product#1199942, timezonecode#1199974, stockDatetime#1200346, storageLocUuid#1200840, id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800]
(816) AdaptiveSparkPlan
Output [17]: [id#1200775, internalUUID#1200774, supplierUuid#1200782, plant#1200790, product#1200791, externalPlantId#1200792, externalProductId#1200793, storageLocUuid#1200794, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, confirmations#1200800, stockDatetime#1200346, timezonecode#1199974, validConfirmations#1200890]
Arguments: isFinalPlan=true
(817) Project
Output [11]: [id#1200775, internalUUID#1200774, plant#1200790, product#1200791, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, validConfirmations#1200890, size(validConfirmations#1200890, false) AS _w0#1202098]
Input [10]: [id#1200775, internalUUID#1200774, plant#1200790, product#1200791, quantityDenominator#1200798, quantityNumerator#1200797, quantityUom#1200795, quantityUomUuid#1200796, scheduleLines#1200799, validConfirmations#1200890]
(818) Exchange
Input [11]: [id#1200775, internalUUID#1200774, plant#1200790, product#1200791, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, validConfirmations#1200890, _w0#1202098]
Arguments: hashpartitioning(internalUUID#1200774, 37), ENSURE_REQUIREMENTS, [plan_id=1838926]
(819) Sort
Input [11]: [id#1200775, internalUUID#1200774, plant#1200790, product#1200791, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, validConfirmations#1200890, _w0#1202098]
Arguments: [internalUUID#1200774 ASC NULLS FIRST], false, 0
(820) Window
Input [11]: [id#1200775, internalUUID#1200774, plant#1200790, product#1200791, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, validConfirmations#1200890, _w0#1202098]
Arguments: [sum(_w0#1202098) windowspecdefinition(internalUUID#1200774, specifiedwindowframe(RowFrame, unboundedpreceding$(), unboundedfollowing$())) AS _we0#1202099L], [internalUUID#1200774]
(821) Project
Output [3]: [plant#1200790, product#1200791, filter(transform(CASE WHEN (_we0#1202099L > 0) THEN transform(validConfirmations#1200890, lambdafunction(struct(openQty, greatest((lambda x_141#1202094.confirmedQuantity - coalesce(lambda x_141#1202094.mrpRelevantQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_141#1202094.confirmedDeliveryAt), lambda x_141#1202094, false)) ELSE transform(scheduleLines#1200799, lambdafunction(struct(openQty, greatest((lambda x_140#1202095.quantity - coalesce(lambda x_140#1202095.receivedQuantity, 0.0)), 0.0), availabilityDatetime, lambda x_140#1202095.deliveryAt), lambda x_140#1202095, false)) END, lambdafunction(struct(documentId, id#1200775, documentUuid, internalUUID#1200774, openQty, lambda x_142#1202096.openQty, openQtyInBaseUnit, ((lambda x_142#1202096.openQty * quantityNumerator#1200797) / quantityDenominator#1200798), qtyUom, quantityUom#1200795, qtyUomUuid, quantityUomUuid#1200796, availabilityDatetime, lambda x_142#1202096.availabilityDatetime, shelfLifeEndDatetime, 2199-01-01 00:00:00), lambda x_142#1202096, false)), lambdafunction(NOT (lambda x_143#1202097.openQty = 0.0), lambda x_143#1202097, false)) AS openGoodsMovements#1202092]
Input [12]: [id#1200775, internalUUID#1200774, plant#1200790, product#1200791, quantityUom#1200795, quantityUomUuid#1200796, quantityNumerator#1200797, quantityDenominator#1200798, scheduleLines#1200799, validConfirmations#1200890, _w0#1202098, _we0#1202099L]
(822) ObjectHashAggregate
Input [3]: [plant#1200790, product#1200791, openGoodsMovements#1202092]
Keys [2]: [product#1200791, plant#1200790]
Functions [1]: [partial_collect_list(openGoodsMovements#1202092, 0, 0)]
Aggregate Attributes [1]: [buf#1202375]
Results [3]: [product#1200791, plant#1200790, buf#1202376]
(823) Exchange
Input [3]: [product#1200791, plant#1200790, buf#1202376]
Arguments: hashpartitioning(product#1200791, plant#1200790, 37), ENSURE_REQUIREMENTS, [plan_id=1838932]
(824) ObjectHashAggregate
Input [3]: [product#1200791, plant#1200790, buf#1202376]
Keys [2]: [product#1200791, plant#1200790]
Functions [1]: [collect_list(openGoodsMovements#1202092, 0, 0)]
Aggregate Attributes [1]: [collect_list(openGoodsMovements#1202092, 0, 0)#1202119]
Results [3]: [product#1200791, plant#1200790, flatten(collect_list(openGoodsMovements#1202092, 0, 0)#1202119) AS openGoodsMovements#1202100]
(825) Filter
Input [3]: [product#1200791, plant#1200790, openGoodsMovements#1202100]
Condition : (size(openGoodsMovements#1202100, false) > 0)
(826) AdaptiveSparkPlan
Output [3]: [product#1200791, plant#1200790, openGoodsMovements#1202100]
Arguments: isFinalPlan=true
(827) TableCacheQueryStage
Output [3]: [openGoodsMovements#1202100, plant#1200790, product#1200791]
Arguments: 0
(828) Filter
Input [3]: [openGoodsMovements#1202100, plant#1200790, product#1200791]
Condition : (size(transform(openGoodsMovements#1202100, lambdafunction(struct(documentType, PO, documentId, lambda x_148#1209080.documentId, documentUuid, lambda x_148#1209080.documentUuid, openQty, lambda x_148#1209080.openQty, qtyUomUuid, lambda x_148#1209080.qtyUomUuid, qtyUom, lambda x_148#1209080.qtyUom, plannedDeliveryDatetime, lambda x_148#1209080.availabilityDatetime), lambda x_148#1209080, false)), false) > 0)
(829) Project
Output [4]: [product#1200791, plant#1200790 AS location#1209076, transform(openGoodsMovements#1202100, lambdafunction(struct(documentType, PO, documentId, lambda x_148#1209080.documentId, documentUuid, lambda x_148#1209080.documentUuid, openQty, lambda x_148#1209080.openQty, qtyUomUuid, lambda x_148#1209080.qtyUomUuid, qtyUom, lambda x_148#1209080.qtyUom, plannedDeliveryDatetime, lambda x_148#1209080.availabilityDatetime), lambda x_148#1209080, false)) AS documents#1209079, 10000001355 AS replenishmentRunId#1209081L]
Input [3]: [openGoodsMovements#1202100, plant#1200790, product#1200791]
(830) WriteFiles
Input [4]: [product#1200791, location#1209076, documents#1209079, replenishmentRunId#1209081L]
(831) 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/10000001355/0_1_10000001355, 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/10000001355/0_1_10000001355], Append, [product, location, documents, replenishmentRunId]
(832) ResultQueryStage
Output: []
Arguments: 1
(833) Filter
Input [3]: [openGoodsMovements#1202100, plant#1200790, product#1200791]
Condition : (size(transform(openGoodsMovements#1202100, lambdafunction(struct(documentType, PO, documentId, lambda x_148#1209080.documentId, documentUuid, lambda x_148#1209080.documentUuid, openQty, lambda x_148#1209080.openQty, qtyUomUuid, lambda x_148#1209080.qtyUomUuid, qtyUom, lambda x_148#1209080.qtyUom, plannedDeliveryDatetime, lambda x_148#1209080.availabilityDatetime), lambda x_148#1209080, false)), false) > 0)
(834) Project
Output [4]: [product#1200791, plant#1200790 AS location#1209076, transform(openGoodsMovements#1202100, lambdafunction(struct(documentType, PO, documentId, lambda x_148#1209080.documentId, documentUuid, lambda x_148#1209080.documentUuid, openQty, lambda x_148#1209080.openQty, qtyUomUuid, lambda x_148#1209080.qtyUomUuid, qtyUom, lambda x_148#1209080.qtyUom, plannedDeliveryDatetime, lambda x_148#1209080.availabilityDatetime), lambda x_148#1209080, false)) AS documents#1209079, 10000001355 AS replenishmentRunId#1209081L]
Input [3]: [openGoodsMovements#1202100, plant#1200790, product#1200791]
(835) WriteFiles
Input [4]: [product#1200791, location#1209076, documents#1209079, replenishmentRunId#1209081L]
(836) 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/10000001355/0_1_10000001355, 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/10000001355/0_1_10000001355], Append, [product, location, documents, replenishmentRunId]
(837) AdaptiveSparkPlan
Output: []
Arguments: isFinalPlan=true