== Physical Plan == CollectLimit (16) +- InMemoryTableScan (1) +- InMemoryRelation (2) +- * Project (15) +- * BroadcastHashJoin Inner BuildRight (14) :- * Filter (7) : +- InMemoryTableScan (3) : +- InMemoryRelation (4) : +- * Project (6) : +- Scan csv (5) +- BroadcastExchange (13) +- * Filter (12) +- InMemoryTableScan (8) +- InMemoryRelation (9) +- * Project (11) +- Scan csv (10) (1) InMemoryTableScan Output [11]: [Category#94152530, Label#94152531, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893] Arguments: [Category#94152530, Label#94152531, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893] (2) InMemoryRelation Arguments: [Category#94152530, Label#94152531, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(2) Project [Category#94152530, Label#94152531, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893] +- *(2) BroadcastHashJoin [group#94277867], [group#94152529], Inner, BuildRight, false :- *(2) Filter isnotnull(group#94277867) : +- InMemoryTableScan [group#94277867, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893], [isnotnull(group#94277867)] : +- InMemoryRelation [group#94277867, annual_bmret#94277870, annual_ret#94277872, std_ret#94277874, Sharpe_ret#94277877, PctPos_ret#94277880, TR_ret#94277881, IR_ret#94277882, annual_resret#94277884, std_resret#94277885, Sharpe_resret#94277886, PctPos_resret#94277887, TR_resret#94277888, IR_resret#94277889, annual_retnet#94277890, std_retnet#94277891, Sharpe_retnet#94277892, PctPos_retnet#94277893, TR_retnet#94277894, IR_retnet#94277895, retIC#94277896, resretIC#94277897, turnover#94277898], StorageLevel(disk, memory, deserialized, 1 replicas) : +- *(1) Project [CASE WHEN (group#94277657 = null) THEN null ELSE group#94277657 END AS group#94277867, CASE WHEN ((annual_bmret#94277658 = NA) OR (annual_bmret#94277658 = null)) THEN null ELSE cast(annual_bmret#94277658 as float) END AS annual_bmret#94277870, CASE WHEN ((annual_ret#94277659 = NA) OR (annual_ret#94277659 = null)) THEN null ELSE cast(annual_ret#94277659 as float) END AS annual_ret#94277872, CASE WHEN ((std_ret#94277660 = NA) OR (std_ret#94277660 = null)) THEN null ELSE cast(std_ret#94277660 as float) END AS std_ret#94277874, CASE WHEN ((Sharpe_ret#94277661 = NA) OR (Sharpe_ret#94277661 = null)) THEN null ELSE cast(Sharpe_ret#94277661 as float) END AS Sharpe_ret#94277877, CASE WHEN ((PctPos_ret#94277662 = NA) OR (PctPos_ret#94277662 = null)) THEN null ELSE cast(PctPos_ret#94277662 as float) END AS PctPos_ret#94277880, CASE WHEN ((TR_ret#94277663 = NA) OR (TR_ret#94277663 = null)) THEN null ELSE cast(TR_ret#94277663 as float) END AS TR_ret#94277881, CASE WHEN ((IR_ret#94277664 = NA) OR (IR_ret#94277664 = null)) THEN null ELSE cast(IR_ret#94277664 as float) END AS IR_ret#94277882, CASE WHEN ((annual_resret#94277665 = NA) OR (annual_resret#94277665 = null)) THEN null ELSE cast(annual_resret#94277665 as float) END AS annual_resret#94277884, CASE WHEN ((std_resret#94277666 = NA) OR (std_resret#94277666 = null)) THEN null ELSE cast(std_resret#94277666 as float) END AS std_resret#94277885, CASE WHEN ((Sharpe_resret#94277667 = NA) OR (Sharpe_resret#94277667 = null)) THEN null ELSE cast(Sharpe_resret#94277667 as float) END AS Sharpe_resret#94277886, CASE WHEN ((PctPos_resret#94277668 = NA) OR (PctPos_resret#94277668 = null)) THEN null ELSE cast(PctPos_resret#94277668 as float) END AS PctPos_resret#94277887, CASE WHEN ((TR_resret#94277669 = NA) OR (TR_resret#94277669 = null)) THEN null ELSE cast(TR_resret#94277669 as float) END AS TR_resret#94277888, CASE WHEN ((IR_resret#94277670 = NA) OR (IR_resret#94277670 = null)) THEN null ELSE cast(IR_resret#94277670 as float) END AS IR_resret#94277889, CASE WHEN ((annual_retnet#94277671 = NA) OR (annual_retnet#94277671 = null)) THEN null ELSE cast(annual_retnet#94277671 as float) END AS annual_retnet#94277890, CASE WHEN ((std_retnet#94277672 = NA) OR (std_retnet#94277672 = null)) THEN null ELSE cast(std_retnet#94277672 as float) END AS std_retnet#94277891, CASE WHEN ((Sharpe_retnet#94277673 = NA) OR (Sharpe_retnet#94277673 = null)) THEN null ELSE cast(Sharpe_retnet#94277673 as float) END AS Sharpe_retnet#94277892, CASE WHEN ((PctPos_retnet#94277674 = NA) OR (PctPos_retnet#94277674 = null)) THEN null ELSE cast(PctPos_retnet#94277674 as float) END AS PctPos_retnet#94277893, CASE WHEN ((TR_retnet#94277675 = NA) OR (TR_retnet#94277675 = null)) THEN null ELSE cast(TR_retnet#94277675 as float) END AS TR_retnet#94277894, CASE WHEN ((IR_retnet#94277676 = NA) OR (IR_retnet#94277676 = null)) THEN null ELSE cast(IR_retnet#94277676 as float) END AS IR_retnet#94277895, CASE WHEN ((retIC#94277677 = NA) OR (retIC#94277677 = null)) THEN null ELSE cast(retIC#94277677 as float) END AS retIC#94277896, CASE WHEN ((resretIC#94277678 = NA) OR (resretIC#94277678 = null)) THEN null ELSE cast(resretIC#94277678 as float) END AS resretIC#94277897, CASE WHEN (turnover#94277679 = null) THEN null ELSE turnover#94277679 END AS turnover#94277898] : +- FileScan csv [group#94277657,annual_bmret#94277658,annual_ret#94277659,std_ret#94277660,Sharpe_ret#94277661,PctPos_ret#94277662,TR_ret#94277663,IR_ret#94277664,annual_resret#94277665,std_resret#94277666,Sharpe_resret#94277667,PctPos_resret#94277668,TR_resret#94277669,IR_resret#94277670,annual_retnet#94277671,std_retnet#94277672,Sharpe_retnet#94277673,PctPos_retnet#94277674,TR_retnet#94277675,IR_retnet#94277676,retIC#94277677,resretIC#94277678,turnover#94277679] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/output/eps_truebeat/surprise_..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<group:string,annual_bmret:string,annual_ret:string,std_ret:string,Sharpe_ret:string,PctPos... +- BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, false]),false), [id=#7527449] +- *(1) Filter isnotnull(group#94152529) +- InMemoryTableScan [group#94152529, Category#94152530, Label#94152531], [isnotnull(group#94152529)] +- InMemoryRelation [group#94152529, Category#94152530, Label#94152531], StorageLevel(disk, memory, deserialized, 1 replicas) +- *(1) Project [CASE WHEN (group#94152498 = null) THEN null ELSE group#94152498 END AS group#94152510, CASE WHEN (Category#94152499 = null) THEN null ELSE Category#94152499 END AS Category#94152511, CASE WHEN (Label#94152500 = null) THEN null ELSE Label#94152500 END AS Label#94152512] +- FileScan csv [group#94152498,Category#94152499,Label#94152500] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/common/map_stats.csv], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<group:string,Category:string,Label:string> ,None) (3) InMemoryTableScan Output [10]: [group#94277867, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893] Arguments: [group#94277867, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893], [isnotnull(group#94277867)] (4) InMemoryRelation Arguments: [group#94277867, annual_bmret#94277870, annual_ret#94277872, std_ret#94277874, Sharpe_ret#94277877, PctPos_ret#94277880, TR_ret#94277881, IR_ret#94277882, annual_resret#94277884, std_resret#94277885, Sharpe_resret#94277886, PctPos_resret#94277887, TR_resret#94277888, IR_resret#94277889, annual_retnet#94277890, std_retnet#94277891, Sharpe_retnet#94277892, PctPos_retnet#94277893, TR_retnet#94277894, IR_retnet#94277895, retIC#94277896, resretIC#94277897, turnover#94277898], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(1) Project [CASE WHEN (group#94277657 = null) THEN null ELSE group#94277657 END AS group#94277867, CASE WHEN ((annual_bmret#94277658 = NA) OR (annual_bmret#94277658 = null)) THEN null ELSE cast(annual_bmret#94277658 as float) END AS annual_bmret#94277870, CASE WHEN ((annual_ret#94277659 = NA) OR (annual_ret#94277659 = null)) THEN null ELSE cast(annual_ret#94277659 as float) END AS annual_ret#94277872, CASE WHEN ((std_ret#94277660 = NA) OR (std_ret#94277660 = null)) THEN null ELSE cast(std_ret#94277660 as float) END AS std_ret#94277874, CASE WHEN ((Sharpe_ret#94277661 = NA) OR (Sharpe_ret#94277661 = null)) THEN null ELSE cast(Sharpe_ret#94277661 as float) END AS Sharpe_ret#94277877, CASE WHEN ((PctPos_ret#94277662 = NA) OR (PctPos_ret#94277662 = null)) THEN null ELSE cast(PctPos_ret#94277662 as float) END AS PctPos_ret#94277880, CASE WHEN ((TR_ret#94277663 = NA) OR (TR_ret#94277663 = null)) THEN null ELSE cast(TR_ret#94277663 as float) END AS TR_ret#94277881, CASE WHEN ((IR_ret#94277664 = NA) OR (IR_ret#94277664 = null)) THEN null ELSE cast(IR_ret#94277664 as float) END AS IR_ret#94277882, CASE WHEN ((annual_resret#94277665 = NA) OR (annual_resret#94277665 = null)) THEN null ELSE cast(annual_resret#94277665 as float) END AS annual_resret#94277884, CASE WHEN ((std_resret#94277666 = NA) OR (std_resret#94277666 = null)) THEN null ELSE cast(std_resret#94277666 as float) END AS std_resret#94277885, CASE WHEN ((Sharpe_resret#94277667 = NA) OR (Sharpe_resret#94277667 = null)) THEN null ELSE cast(Sharpe_resret#94277667 as float) END AS Sharpe_resret#94277886, CASE WHEN ((PctPos_resret#94277668 = NA) OR (PctPos_resret#94277668 = null)) THEN null ELSE cast(PctPos_resret#94277668 as float) END AS PctPos_resret#94277887, CASE WHEN ((TR_resret#94277669 = NA) OR (TR_resret#94277669 = null)) THEN null ELSE cast(TR_resret#94277669 as float) END AS TR_resret#94277888, CASE WHEN ((IR_resret#94277670 = NA) OR (IR_resret#94277670 = null)) THEN null ELSE cast(IR_resret#94277670 as float) END AS IR_resret#94277889, CASE WHEN ((annual_retnet#94277671 = NA) OR (annual_retnet#94277671 = null)) THEN null ELSE cast(annual_retnet#94277671 as float) END AS annual_retnet#94277890, CASE WHEN ((std_retnet#94277672 = NA) OR (std_retnet#94277672 = null)) THEN null ELSE cast(std_retnet#94277672 as float) END AS std_retnet#94277891, CASE WHEN ((Sharpe_retnet#94277673 = NA) OR (Sharpe_retnet#94277673 = null)) THEN null ELSE cast(Sharpe_retnet#94277673 as float) END AS Sharpe_retnet#94277892, CASE WHEN ((PctPos_retnet#94277674 = NA) OR (PctPos_retnet#94277674 = null)) THEN null ELSE cast(PctPos_retnet#94277674 as float) END AS PctPos_retnet#94277893, CASE WHEN ((TR_retnet#94277675 = NA) OR (TR_retnet#94277675 = null)) THEN null ELSE cast(TR_retnet#94277675 as float) END AS TR_retnet#94277894, CASE WHEN ((IR_retnet#94277676 = NA) OR (IR_retnet#94277676 = null)) THEN null ELSE cast(IR_retnet#94277676 as float) END AS IR_retnet#94277895, CASE WHEN ((retIC#94277677 = NA) OR (retIC#94277677 = null)) THEN null ELSE cast(retIC#94277677 as float) END AS retIC#94277896, CASE WHEN ((resretIC#94277678 = NA) OR (resretIC#94277678 = null)) THEN null ELSE cast(resretIC#94277678 as float) END AS resretIC#94277897, CASE WHEN (turnover#94277679 = null) THEN null ELSE turnover#94277679 END AS turnover#94277898] +- FileScan csv [group#94277657,annual_bmret#94277658,annual_ret#94277659,std_ret#94277660,Sharpe_ret#94277661,PctPos_ret#94277662,TR_ret#94277663,IR_ret#94277664,annual_resret#94277665,std_resret#94277666,Sharpe_resret#94277667,PctPos_resret#94277668,TR_resret#94277669,IR_resret#94277670,annual_retnet#94277671,std_retnet#94277672,Sharpe_retnet#94277673,PctPos_retnet#94277674,TR_retnet#94277675,IR_retnet#94277676,retIC#94277677,resretIC#94277678,turnover#94277679] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/output/eps_truebeat/surprise_..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<group:string,annual_bmret:string,annual_ret:string,std_ret:string,Sharpe_ret:string,PctPos... ,None) (5) Scan csv Output [23]: [group#94277657, annual_bmret#94277658, annual_ret#94277659, std_ret#94277660, Sharpe_ret#94277661, PctPos_ret#94277662, TR_ret#94277663, IR_ret#94277664, annual_resret#94277665, std_resret#94277666, Sharpe_resret#94277667, PctPos_resret#94277668, TR_resret#94277669, IR_resret#94277670, annual_retnet#94277671, std_retnet#94277672, Sharpe_retnet#94277673, PctPos_retnet#94277674, TR_retnet#94277675, IR_retnet#94277676, retIC#94277677, resretIC#94277678, turnover#94277679] Batched: false Location: InMemoryFileIndex [file:/srv/plusamp/data/default/ea-market/output/eps_truebeat/surprise_prediction_eps_trunc/REPORT_stats.csv] ReadSchema: struct<group:string,annual_bmret:string,annual_ret:string,std_ret:string,Sharpe_ret:string,PctPos_ret:string,TR_ret:string,IR_ret:string,annual_resret:string,std_resret:string,Sharpe_resret:string,PctPos_resret:string,TR_resret:string,IR_resret:string,annual_retnet:string,std_retnet:string,Sharpe_retnet:string,PctPos_retnet:string,TR_retnet:string,IR_retnet:string,retIC:string,resretIC:string,turnover:string> (6) Project [codegen id : 1] Output [23]: [CASE WHEN (group#94277657 = null) THEN null ELSE group#94277657 END AS group#94277867, CASE WHEN ((annual_bmret#94277658 = NA) OR (annual_bmret#94277658 = null)) THEN null ELSE cast(annual_bmret#94277658 as float) END AS annual_bmret#94277870, CASE WHEN ((annual_ret#94277659 = NA) OR (annual_ret#94277659 = null)) THEN null ELSE cast(annual_ret#94277659 as float) END AS annual_ret#94277872, CASE WHEN ((std_ret#94277660 = NA) OR (std_ret#94277660 = null)) THEN null ELSE cast(std_ret#94277660 as float) END AS std_ret#94277874, CASE WHEN ((Sharpe_ret#94277661 = NA) OR (Sharpe_ret#94277661 = null)) THEN null ELSE cast(Sharpe_ret#94277661 as float) END AS Sharpe_ret#94277877, CASE WHEN ((PctPos_ret#94277662 = NA) OR (PctPos_ret#94277662 = null)) THEN null ELSE cast(PctPos_ret#94277662 as float) END AS PctPos_ret#94277880, CASE WHEN ((TR_ret#94277663 = NA) OR (TR_ret#94277663 = null)) THEN null ELSE cast(TR_ret#94277663 as float) END AS TR_ret#94277881, CASE WHEN ((IR_ret#94277664 = NA) OR (IR_ret#94277664 = null)) THEN null ELSE cast(IR_ret#94277664 as float) END AS IR_ret#94277882, CASE WHEN ((annual_resret#94277665 = NA) OR (annual_resret#94277665 = null)) THEN null ELSE cast(annual_resret#94277665 as float) END AS annual_resret#94277884, CASE WHEN ((std_resret#94277666 = NA) OR (std_resret#94277666 = null)) THEN null ELSE cast(std_resret#94277666 as float) END AS std_resret#94277885, CASE WHEN ((Sharpe_resret#94277667 = NA) OR (Sharpe_resret#94277667 = null)) THEN null ELSE cast(Sharpe_resret#94277667 as float) END AS Sharpe_resret#94277886, CASE WHEN ((PctPos_resret#94277668 = NA) OR (PctPos_resret#94277668 = null)) THEN null ELSE cast(PctPos_resret#94277668 as float) END AS PctPos_resret#94277887, CASE WHEN ((TR_resret#94277669 = NA) OR (TR_resret#94277669 = null)) THEN null ELSE cast(TR_resret#94277669 as float) END AS TR_resret#94277888, CASE WHEN ((IR_resret#94277670 = NA) OR (IR_resret#94277670 = null)) THEN null ELSE cast(IR_resret#94277670 as float) END AS IR_resret#94277889, CASE WHEN ((annual_retnet#94277671 = NA) OR (annual_retnet#94277671 = null)) THEN null ELSE cast(annual_retnet#94277671 as float) END AS annual_retnet#94277890, CASE WHEN ((std_retnet#94277672 = NA) OR (std_retnet#94277672 = null)) THEN null ELSE cast(std_retnet#94277672 as float) END AS std_retnet#94277891, CASE WHEN ((Sharpe_retnet#94277673 = NA) OR (Sharpe_retnet#94277673 = null)) THEN null ELSE cast(Sharpe_retnet#94277673 as float) END AS Sharpe_retnet#94277892, CASE WHEN ((PctPos_retnet#94277674 = NA) OR (PctPos_retnet#94277674 = null)) THEN null ELSE cast(PctPos_retnet#94277674 as float) END AS PctPos_retnet#94277893, CASE WHEN ((TR_retnet#94277675 = NA) OR (TR_retnet#94277675 = null)) THEN null ELSE cast(TR_retnet#94277675 as float) END AS TR_retnet#94277894, CASE WHEN ((IR_retnet#94277676 = NA) OR (IR_retnet#94277676 = null)) THEN null ELSE cast(IR_retnet#94277676 as float) END AS IR_retnet#94277895, CASE WHEN ((retIC#94277677 = NA) OR (retIC#94277677 = null)) THEN null ELSE cast(retIC#94277677 as float) END AS retIC#94277896, CASE WHEN ((resretIC#94277678 = NA) OR (resretIC#94277678 = null)) THEN null ELSE cast(resretIC#94277678 as float) END AS resretIC#94277897, CASE WHEN (turnover#94277679 = null) THEN null ELSE turnover#94277679 END AS turnover#94277898] Input [23]: [group#94277657, annual_bmret#94277658, annual_ret#94277659, std_ret#94277660, Sharpe_ret#94277661, PctPos_ret#94277662, TR_ret#94277663, IR_ret#94277664, annual_resret#94277665, std_resret#94277666, Sharpe_resret#94277667, PctPos_resret#94277668, TR_resret#94277669, IR_resret#94277670, annual_retnet#94277671, std_retnet#94277672, Sharpe_retnet#94277673, PctPos_retnet#94277674, TR_retnet#94277675, IR_retnet#94277676, retIC#94277677, resretIC#94277678, turnover#94277679] (7) Filter [codegen id : 2] Input [10]: [group#94277867, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893] Condition : isnotnull(group#94277867) (8) InMemoryTableScan Output [3]: [group#94152529, Category#94152530, Label#94152531] Arguments: [group#94152529, Category#94152530, Label#94152531], [isnotnull(group#94152529)] (9) InMemoryRelation Arguments: [group#94152529, Category#94152530, Label#94152531], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(1) Project [CASE WHEN (group#94152498 = null) THEN null ELSE group#94152498 END AS group#94152510, CASE WHEN (Category#94152499 = null) THEN null ELSE Category#94152499 END AS Category#94152511, CASE WHEN (Label#94152500 = null) THEN null ELSE Label#94152500 END AS Label#94152512] +- FileScan csv [group#94152498,Category#94152499,Label#94152500] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/common/map_stats.csv], PartitionFilters: [], PushedFilters: [], ReadSchema: struct<group:string,Category:string,Label:string> ,None) (10) Scan csv Output [3]: [group#94152498, Category#94152499, Label#94152500] Batched: false Location: InMemoryFileIndex [file:/srv/plusamp/data/default/ea-market/common/map_stats.csv] ReadSchema: struct<group:string,Category:string,Label:string> (11) Project [codegen id : 1] Output [3]: [CASE WHEN (group#94152498 = null) THEN null ELSE group#94152498 END AS group#94152510, CASE WHEN (Category#94152499 = null) THEN null ELSE Category#94152499 END AS Category#94152511, CASE WHEN (Label#94152500 = null) THEN null ELSE Label#94152500 END AS Label#94152512] Input [3]: [group#94152498, Category#94152499, Label#94152500] (12) Filter [codegen id : 1] Input [3]: [group#94152529, Category#94152530, Label#94152531] Condition : isnotnull(group#94152529) (13) BroadcastExchange Input [3]: [group#94152529, Category#94152530, Label#94152531] Arguments: HashedRelationBroadcastMode(List(input[0, string, false]),false), [id=#7527449] (14) BroadcastHashJoin [codegen id : 2] Left keys [1]: [group#94277867] Right keys [1]: [group#94152529] Join condition: None (15) Project [codegen id : 2] Output [11]: [Category#94152530, Label#94152531, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893] Input [13]: [group#94277867, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893, group#94152529, Category#94152530, Label#94152531] (16) CollectLimit Input [11]: [Category#94152530, Label#94152531, annual_ret#94277872, Sharpe_ret#94277877, PctPos_ret#94277880, annual_resret#94277884, Sharpe_resret#94277886, PctPos_resret#94277887, annual_retnet#94277890, Sharpe_retnet#94277892, PctPos_retnet#94277893] Arguments: 1000000