== Physical Plan == CollectLimit (16) +- InMemoryTableScan (1) +- InMemoryRelation (2) +- * Project (15) +- * BroadcastHashJoin Inner BuildLeft (14) :- BroadcastExchange (8) : +- * Filter (7) : +- InMemoryTableScan (3) : +- InMemoryRelation (4) : +- * Project (6) : +- Scan csv (5) +- * Filter (13) +- InMemoryTableScan (9) +- InMemoryRelation (10) +- * Project (12) +- Scan csv (11) (1) InMemoryTableScan Output [11]: [Category#93875767, Label#93875768, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871] Arguments: [Category#93875767, Label#93875768, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871] (2) InMemoryRelation Arguments: [Category#93875767, Label#93875768, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(2) Project [Category#93875767, Label#93875768, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871] +- *(2) BroadcastHashJoin [group#93976854], [group#93875766], Inner, BuildLeft, false :- BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, false]),false), [id=#7503531] : +- *(1) Filter isnotnull(group#93976854) : +- InMemoryTableScan [group#93976854, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871], [isnotnull(group#93976854)] : +- InMemoryRelation [group#93976854, annual_bmret#93976855, annual_ret#93976856, std_ret#93976857, Sharpe_ret#93976858, PctPos_ret#93976859, TR_ret#93976860, IR_ret#93976861, annual_resret#93976862, std_resret#93976863, Sharpe_resret#93976864, PctPos_resret#93976865, TR_resret#93976866, IR_resret#93976867, annual_retnet#93976868, std_retnet#93976869, Sharpe_retnet#93976870, PctPos_retnet#93976871, TR_retnet#93976872, IR_retnet#93976873, retIC#93976874, resretIC#93976875, turnover#93976876], StorageLevel(disk, memory, deserialized, 1 replicas) : +- *(1) Project [CASE WHEN (group#93976762 = null) THEN null ELSE group#93976762 END AS group#93976854, CASE WHEN ((annual_bmret#93976763 = NA) OR (annual_bmret#93976763 = null)) THEN null ELSE cast(annual_bmret#93976763 as float) END AS annual_bmret#93976855, CASE WHEN ((annual_ret#93976764 = NA) OR (annual_ret#93976764 = null)) THEN null ELSE cast(annual_ret#93976764 as float) END AS annual_ret#93976856, CASE WHEN ((std_ret#93976765 = NA) OR (std_ret#93976765 = null)) THEN null ELSE cast(std_ret#93976765 as float) END AS std_ret#93976857, CASE WHEN ((Sharpe_ret#93976766 = NA) OR (Sharpe_ret#93976766 = null)) THEN null ELSE cast(Sharpe_ret#93976766 as float) END AS Sharpe_ret#93976858, CASE WHEN ((PctPos_ret#93976767 = NA) OR (PctPos_ret#93976767 = null)) THEN null ELSE cast(PctPos_ret#93976767 as float) END AS PctPos_ret#93976859, CASE WHEN ((TR_ret#93976768 = NA) OR (TR_ret#93976768 = null)) THEN null ELSE cast(TR_ret#93976768 as float) END AS TR_ret#93976860, CASE WHEN ((IR_ret#93976769 = NA) OR (IR_ret#93976769 = null)) THEN null ELSE cast(IR_ret#93976769 as float) END AS IR_ret#93976861, CASE WHEN ((annual_resret#93976770 = NA) OR (annual_resret#93976770 = null)) THEN null ELSE cast(annual_resret#93976770 as float) END AS annual_resret#93976862, CASE WHEN ((std_resret#93976771 = NA) OR (std_resret#93976771 = null)) THEN null ELSE cast(std_resret#93976771 as float) END AS std_resret#93976863, CASE WHEN ((Sharpe_resret#93976772 = NA) OR (Sharpe_resret#93976772 = null)) THEN null ELSE cast(Sharpe_resret#93976772 as float) END AS Sharpe_resret#93976864, CASE WHEN ((PctPos_resret#93976773 = NA) OR (PctPos_resret#93976773 = null)) THEN null ELSE cast(PctPos_resret#93976773 as float) END AS PctPos_resret#93976865, CASE WHEN ((TR_resret#93976774 = NA) OR (TR_resret#93976774 = null)) THEN null ELSE cast(TR_resret#93976774 as float) END AS TR_resret#93976866, CASE WHEN ((IR_resret#93976775 = NA) OR (IR_resret#93976775 = null)) THEN null ELSE cast(IR_resret#93976775 as float) END AS IR_resret#93976867, CASE WHEN ((annual_retnet#93976776 = NA) OR (annual_retnet#93976776 = null)) THEN null ELSE cast(annual_retnet#93976776 as float) END AS annual_retnet#93976868, CASE WHEN ((std_retnet#93976777 = NA) OR (std_retnet#93976777 = null)) THEN null ELSE cast(std_retnet#93976777 as float) END AS std_retnet#93976869, CASE WHEN ((Sharpe_retnet#93976778 = NA) OR (Sharpe_retnet#93976778 = null)) THEN null ELSE cast(Sharpe_retnet#93976778 as float) END AS Sharpe_retnet#93976870, CASE WHEN ((PctPos_retnet#93976779 = NA) OR (PctPos_retnet#93976779 = null)) THEN null ELSE cast(PctPos_retnet#93976779 as float) END AS PctPos_retnet#93976871, CASE WHEN ((TR_retnet#93976780 = NA) OR (TR_retnet#93976780 = null)) THEN null ELSE cast(TR_retnet#93976780 as float) END AS TR_retnet#93976872, CASE WHEN ((IR_retnet#93976781 = NA) OR (IR_retnet#93976781 = null)) THEN null ELSE cast(IR_retnet#93976781 as float) END AS IR_retnet#93976873, CASE WHEN ((retIC#93976782 = NA) OR (retIC#93976782 = null)) THEN null ELSE cast(retIC#93976782 as float) END AS retIC#93976874, CASE WHEN ((resretIC#93976783 = NA) OR (resretIC#93976783 = null)) THEN null ELSE cast(resretIC#93976783 as float) END AS resretIC#93976875, CASE WHEN (turnover#93976784 = null) THEN null ELSE turnover#93976784 END AS turnover#93976876] : +- FileScan csv [group#93976762,annual_bmret#93976763,annual_ret#93976764,std_ret#93976765,Sharpe_ret#93976766,PctPos_ret#93976767,TR_ret#93976768,IR_ret#93976769,annual_resret#93976770,std_resret#93976771,Sharpe_resret#93976772,PctPos_resret#93976773,TR_resret#93976774,IR_resret#93976775,annual_retnet#93976776,std_retnet#93976777,Sharpe_retnet#93976778,PctPos_retnet#93976779,TR_retnet#93976780,IR_retnet#93976781,retIC#93976782,resretIC#93976783,turnover#93976784] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/output/estimize_signal_histor..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<group:string,annual_bmret:string,annual_ret:string,std_ret:string,Sharpe_ret:string,PctPos... +- *(2) Filter isnotnull(group#93875766) +- InMemoryTableScan [group#93875766, Category#93875767, Label#93875768], [isnotnull(group#93875766)] +- InMemoryRelation [group#93875766, Category#93875767, Label#93875768], StorageLevel(disk, memory, deserialized, 1 replicas) +- *(1) Project [CASE WHEN (group#93875754 = null) THEN null ELSE group#93875754 END AS group#93875766, CASE WHEN (Category#93875755 = null) THEN null ELSE Category#93875755 END AS Category#93875767, CASE WHEN (Label#93875756 = null) THEN null ELSE Label#93875756 END AS Label#93875768] +- FileScan csv [group#93875754,Category#93875755,Label#93875756] 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#93976854, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871] Arguments: [group#93976854, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871], [isnotnull(group#93976854)] (4) InMemoryRelation Arguments: [group#93976854, annual_bmret#93976855, annual_ret#93976856, std_ret#93976857, Sharpe_ret#93976858, PctPos_ret#93976859, TR_ret#93976860, IR_ret#93976861, annual_resret#93976862, std_resret#93976863, Sharpe_resret#93976864, PctPos_resret#93976865, TR_resret#93976866, IR_resret#93976867, annual_retnet#93976868, std_retnet#93976869, Sharpe_retnet#93976870, PctPos_retnet#93976871, TR_retnet#93976872, IR_retnet#93976873, retIC#93976874, resretIC#93976875, turnover#93976876], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(1) Project [CASE WHEN (group#93976762 = null) THEN null ELSE group#93976762 END AS group#93976854, CASE WHEN ((annual_bmret#93976763 = NA) OR (annual_bmret#93976763 = null)) THEN null ELSE cast(annual_bmret#93976763 as float) END AS annual_bmret#93976855, CASE WHEN ((annual_ret#93976764 = NA) OR (annual_ret#93976764 = null)) THEN null ELSE cast(annual_ret#93976764 as float) END AS annual_ret#93976856, CASE WHEN ((std_ret#93976765 = NA) OR (std_ret#93976765 = null)) THEN null ELSE cast(std_ret#93976765 as float) END AS std_ret#93976857, CASE WHEN ((Sharpe_ret#93976766 = NA) OR (Sharpe_ret#93976766 = null)) THEN null ELSE cast(Sharpe_ret#93976766 as float) END AS Sharpe_ret#93976858, CASE WHEN ((PctPos_ret#93976767 = NA) OR (PctPos_ret#93976767 = null)) THEN null ELSE cast(PctPos_ret#93976767 as float) END AS PctPos_ret#93976859, CASE WHEN ((TR_ret#93976768 = NA) OR (TR_ret#93976768 = null)) THEN null ELSE cast(TR_ret#93976768 as float) END AS TR_ret#93976860, CASE WHEN ((IR_ret#93976769 = NA) OR (IR_ret#93976769 = null)) THEN null ELSE cast(IR_ret#93976769 as float) END AS IR_ret#93976861, CASE WHEN ((annual_resret#93976770 = NA) OR (annual_resret#93976770 = null)) THEN null ELSE cast(annual_resret#93976770 as float) END AS annual_resret#93976862, CASE WHEN ((std_resret#93976771 = NA) OR (std_resret#93976771 = null)) THEN null ELSE cast(std_resret#93976771 as float) END AS std_resret#93976863, CASE WHEN ((Sharpe_resret#93976772 = NA) OR (Sharpe_resret#93976772 = null)) THEN null ELSE cast(Sharpe_resret#93976772 as float) END AS Sharpe_resret#93976864, CASE WHEN ((PctPos_resret#93976773 = NA) OR (PctPos_resret#93976773 = null)) THEN null ELSE cast(PctPos_resret#93976773 as float) END AS PctPos_resret#93976865, CASE WHEN ((TR_resret#93976774 = NA) OR (TR_resret#93976774 = null)) THEN null ELSE cast(TR_resret#93976774 as float) END AS TR_resret#93976866, CASE WHEN ((IR_resret#93976775 = NA) OR (IR_resret#93976775 = null)) THEN null ELSE cast(IR_resret#93976775 as float) END AS IR_resret#93976867, CASE WHEN ((annual_retnet#93976776 = NA) OR (annual_retnet#93976776 = null)) THEN null ELSE cast(annual_retnet#93976776 as float) END AS annual_retnet#93976868, CASE WHEN ((std_retnet#93976777 = NA) OR (std_retnet#93976777 = null)) THEN null ELSE cast(std_retnet#93976777 as float) END AS std_retnet#93976869, CASE WHEN ((Sharpe_retnet#93976778 = NA) OR (Sharpe_retnet#93976778 = null)) THEN null ELSE cast(Sharpe_retnet#93976778 as float) END AS Sharpe_retnet#93976870, CASE WHEN ((PctPos_retnet#93976779 = NA) OR (PctPos_retnet#93976779 = null)) THEN null ELSE cast(PctPos_retnet#93976779 as float) END AS PctPos_retnet#93976871, CASE WHEN ((TR_retnet#93976780 = NA) OR (TR_retnet#93976780 = null)) THEN null ELSE cast(TR_retnet#93976780 as float) END AS TR_retnet#93976872, CASE WHEN ((IR_retnet#93976781 = NA) OR (IR_retnet#93976781 = null)) THEN null ELSE cast(IR_retnet#93976781 as float) END AS IR_retnet#93976873, CASE WHEN ((retIC#93976782 = NA) OR (retIC#93976782 = null)) THEN null ELSE cast(retIC#93976782 as float) END AS retIC#93976874, CASE WHEN ((resretIC#93976783 = NA) OR (resretIC#93976783 = null)) THEN null ELSE cast(resretIC#93976783 as float) END AS resretIC#93976875, CASE WHEN (turnover#93976784 = null) THEN null ELSE turnover#93976784 END AS turnover#93976876] +- FileScan csv [group#93976762,annual_bmret#93976763,annual_ret#93976764,std_ret#93976765,Sharpe_ret#93976766,PctPos_ret#93976767,TR_ret#93976768,IR_ret#93976769,annual_resret#93976770,std_resret#93976771,Sharpe_resret#93976772,PctPos_resret#93976773,TR_resret#93976774,IR_resret#93976775,annual_retnet#93976776,std_retnet#93976777,Sharpe_retnet#93976778,PctPos_retnet#93976779,TR_retnet#93976780,IR_retnet#93976781,retIC#93976782,resretIC#93976783,turnover#93976784] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/output/estimize_signal_histor..., 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#93976762, annual_bmret#93976763, annual_ret#93976764, std_ret#93976765, Sharpe_ret#93976766, PctPos_ret#93976767, TR_ret#93976768, IR_ret#93976769, annual_resret#93976770, std_resret#93976771, Sharpe_resret#93976772, PctPos_resret#93976773, TR_resret#93976774, IR_resret#93976775, annual_retnet#93976776, std_retnet#93976777, Sharpe_retnet#93976778, PctPos_retnet#93976779, TR_retnet#93976780, IR_retnet#93976781, retIC#93976782, resretIC#93976783, turnover#93976784] Batched: false Location: InMemoryFileIndex [file:/srv/plusamp/data/default/ea-market/output/estimize_signal_history/estimizesignal_postearnings/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#93976762 = null) THEN null ELSE group#93976762 END AS group#93976854, CASE WHEN ((annual_bmret#93976763 = NA) OR (annual_bmret#93976763 = null)) THEN null ELSE cast(annual_bmret#93976763 as float) END AS annual_bmret#93976855, CASE WHEN ((annual_ret#93976764 = NA) OR (annual_ret#93976764 = null)) THEN null ELSE cast(annual_ret#93976764 as float) END AS annual_ret#93976856, CASE WHEN ((std_ret#93976765 = NA) OR (std_ret#93976765 = null)) THEN null ELSE cast(std_ret#93976765 as float) END AS std_ret#93976857, CASE WHEN ((Sharpe_ret#93976766 = NA) OR (Sharpe_ret#93976766 = null)) THEN null ELSE cast(Sharpe_ret#93976766 as float) END AS Sharpe_ret#93976858, CASE WHEN ((PctPos_ret#93976767 = NA) OR (PctPos_ret#93976767 = null)) THEN null ELSE cast(PctPos_ret#93976767 as float) END AS PctPos_ret#93976859, CASE WHEN ((TR_ret#93976768 = NA) OR (TR_ret#93976768 = null)) THEN null ELSE cast(TR_ret#93976768 as float) END AS TR_ret#93976860, CASE WHEN ((IR_ret#93976769 = NA) OR (IR_ret#93976769 = null)) THEN null ELSE cast(IR_ret#93976769 as float) END AS IR_ret#93976861, CASE WHEN ((annual_resret#93976770 = NA) OR (annual_resret#93976770 = null)) THEN null ELSE cast(annual_resret#93976770 as float) END AS annual_resret#93976862, CASE WHEN ((std_resret#93976771 = NA) OR (std_resret#93976771 = null)) THEN null ELSE cast(std_resret#93976771 as float) END AS std_resret#93976863, CASE WHEN ((Sharpe_resret#93976772 = NA) OR (Sharpe_resret#93976772 = null)) THEN null ELSE cast(Sharpe_resret#93976772 as float) END AS Sharpe_resret#93976864, CASE WHEN ((PctPos_resret#93976773 = NA) OR (PctPos_resret#93976773 = null)) THEN null ELSE cast(PctPos_resret#93976773 as float) END AS PctPos_resret#93976865, CASE WHEN ((TR_resret#93976774 = NA) OR (TR_resret#93976774 = null)) THEN null ELSE cast(TR_resret#93976774 as float) END AS TR_resret#93976866, CASE WHEN ((IR_resret#93976775 = NA) OR (IR_resret#93976775 = null)) THEN null ELSE cast(IR_resret#93976775 as float) END AS IR_resret#93976867, CASE WHEN ((annual_retnet#93976776 = NA) OR (annual_retnet#93976776 = null)) THEN null ELSE cast(annual_retnet#93976776 as float) END AS annual_retnet#93976868, CASE WHEN ((std_retnet#93976777 = NA) OR (std_retnet#93976777 = null)) THEN null ELSE cast(std_retnet#93976777 as float) END AS std_retnet#93976869, CASE WHEN ((Sharpe_retnet#93976778 = NA) OR (Sharpe_retnet#93976778 = null)) THEN null ELSE cast(Sharpe_retnet#93976778 as float) END AS Sharpe_retnet#93976870, CASE WHEN ((PctPos_retnet#93976779 = NA) OR (PctPos_retnet#93976779 = null)) THEN null ELSE cast(PctPos_retnet#93976779 as float) END AS PctPos_retnet#93976871, CASE WHEN ((TR_retnet#93976780 = NA) OR (TR_retnet#93976780 = null)) THEN null ELSE cast(TR_retnet#93976780 as float) END AS TR_retnet#93976872, CASE WHEN ((IR_retnet#93976781 = NA) OR (IR_retnet#93976781 = null)) THEN null ELSE cast(IR_retnet#93976781 as float) END AS IR_retnet#93976873, CASE WHEN ((retIC#93976782 = NA) OR (retIC#93976782 = null)) THEN null ELSE cast(retIC#93976782 as float) END AS retIC#93976874, CASE WHEN ((resretIC#93976783 = NA) OR (resretIC#93976783 = null)) THEN null ELSE cast(resretIC#93976783 as float) END AS resretIC#93976875, CASE WHEN (turnover#93976784 = null) THEN null ELSE turnover#93976784 END AS turnover#93976876] Input [23]: [group#93976762, annual_bmret#93976763, annual_ret#93976764, std_ret#93976765, Sharpe_ret#93976766, PctPos_ret#93976767, TR_ret#93976768, IR_ret#93976769, annual_resret#93976770, std_resret#93976771, Sharpe_resret#93976772, PctPos_resret#93976773, TR_resret#93976774, IR_resret#93976775, annual_retnet#93976776, std_retnet#93976777, Sharpe_retnet#93976778, PctPos_retnet#93976779, TR_retnet#93976780, IR_retnet#93976781, retIC#93976782, resretIC#93976783, turnover#93976784] (7) Filter [codegen id : 1] Input [10]: [group#93976854, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871] Condition : isnotnull(group#93976854) (8) BroadcastExchange Input [10]: [group#93976854, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871] Arguments: HashedRelationBroadcastMode(List(input[0, string, false]),false), [id=#7503531] (9) InMemoryTableScan Output [3]: [group#93875766, Category#93875767, Label#93875768] Arguments: [group#93875766, Category#93875767, Label#93875768], [isnotnull(group#93875766)] (10) InMemoryRelation Arguments: [group#93875766, Category#93875767, Label#93875768], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(1) Project [CASE WHEN (group#93875754 = null) THEN null ELSE group#93875754 END AS group#93875766, CASE WHEN (Category#93875755 = null) THEN null ELSE Category#93875755 END AS Category#93875767, CASE WHEN (Label#93875756 = null) THEN null ELSE Label#93875756 END AS Label#93875768] +- FileScan csv [group#93875754,Category#93875755,Label#93875756] 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) (11) Scan csv Output [3]: [group#93875754, Category#93875755, Label#93875756] Batched: false Location: InMemoryFileIndex [file:/srv/plusamp/data/default/ea-market/common/map_stats.csv] ReadSchema: struct<group:string,Category:string,Label:string> (12) Project [codegen id : 1] Output [3]: [CASE WHEN (group#93875754 = null) THEN null ELSE group#93875754 END AS group#93875766, CASE WHEN (Category#93875755 = null) THEN null ELSE Category#93875755 END AS Category#93875767, CASE WHEN (Label#93875756 = null) THEN null ELSE Label#93875756 END AS Label#93875768] Input [3]: [group#93875754, Category#93875755, Label#93875756] (13) Filter Input [3]: [group#93875766, Category#93875767, Label#93875768] Condition : isnotnull(group#93875766) (14) BroadcastHashJoin [codegen id : 2] Left keys [1]: [group#93976854] Right keys [1]: [group#93875766] Join condition: None (15) Project [codegen id : 2] Output [11]: [Category#93875767, Label#93875768, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871] Input [13]: [group#93976854, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871, group#93875766, Category#93875767, Label#93875768] (16) CollectLimit Input [11]: [Category#93875767, Label#93875768, annual_ret#93976856, Sharpe_ret#93976858, PctPos_ret#93976859, annual_resret#93976862, Sharpe_resret#93976864, PctPos_resret#93976865, annual_retnet#93976868, Sharpe_retnet#93976870, PctPos_retnet#93976871] Arguments: 1000000