== 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#94152530, Label#94152531, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516] Arguments: [Category#94152530, Label#94152531, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516] (2) InMemoryRelation Arguments: [Category#94152530, Label#94152531, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(2) Project [Category#94152530, Label#94152531, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516] +- *(2) BroadcastHashJoin [group#94320430], [group#94152529], Inner, BuildLeft, false :- BroadcastExchange HashedRelationBroadcastMode(List(input[0, string, false]),false), [id=#7530884] : +- *(1) Filter isnotnull(group#94320430) : +- InMemoryTableScan [group#94320430, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516], [isnotnull(group#94320430)] : +- InMemoryRelation [group#94320430, annual_bmret#94320432, annual_ret#94320435, std_ret#94320438, Sharpe_ret#94320441, PctPos_ret#94320443, TR_ret#94320444, IR_ret#94320446, annual_resret#94320448, std_resret#94320451, Sharpe_resret#94320475, PctPos_resret#94320478, TR_resret#94320502, IR_resret#94320507, annual_retnet#94320509, std_retnet#94320512, Sharpe_retnet#94320514, PctPos_retnet#94320516, TR_retnet#94320518, IR_retnet#94320520, retIC#94320522, resretIC#94320523, turnover#94320524], StorageLevel(disk, memory, deserialized, 1 replicas) : +- *(1) Project [CASE WHEN (group#94320171 = null) THEN null ELSE group#94320171 END AS group#94320430, CASE WHEN ((annual_bmret#94320172 = NA) OR (annual_bmret#94320172 = null)) THEN null ELSE cast(annual_bmret#94320172 as float) END AS annual_bmret#94320432, CASE WHEN ((annual_ret#94320173 = NA) OR (annual_ret#94320173 = null)) THEN null ELSE cast(annual_ret#94320173 as float) END AS annual_ret#94320435, CASE WHEN ((std_ret#94320174 = NA) OR (std_ret#94320174 = null)) THEN null ELSE cast(std_ret#94320174 as float) END AS std_ret#94320438, CASE WHEN ((Sharpe_ret#94320175 = NA) OR (Sharpe_ret#94320175 = null)) THEN null ELSE cast(Sharpe_ret#94320175 as float) END AS Sharpe_ret#94320441, CASE WHEN ((PctPos_ret#94320176 = NA) OR (PctPos_ret#94320176 = null)) THEN null ELSE cast(PctPos_ret#94320176 as float) END AS PctPos_ret#94320443, CASE WHEN ((TR_ret#94320177 = NA) OR (TR_ret#94320177 = null)) THEN null ELSE cast(TR_ret#94320177 as float) END AS TR_ret#94320444, CASE WHEN ((IR_ret#94320178 = NA) OR (IR_ret#94320178 = null)) THEN null ELSE cast(IR_ret#94320178 as float) END AS IR_ret#94320446, CASE WHEN ((annual_resret#94320179 = NA) OR (annual_resret#94320179 = null)) THEN null ELSE cast(annual_resret#94320179 as float) END AS annual_resret#94320448, CASE WHEN ((std_resret#94320180 = NA) OR (std_resret#94320180 = null)) THEN null ELSE cast(std_resret#94320180 as float) END AS std_resret#94320451, CASE WHEN ((Sharpe_resret#94320181 = NA) OR (Sharpe_resret#94320181 = null)) THEN null ELSE cast(Sharpe_resret#94320181 as float) END AS Sharpe_resret#94320475, CASE WHEN ((PctPos_resret#94320182 = NA) OR (PctPos_resret#94320182 = null)) THEN null ELSE cast(PctPos_resret#94320182 as float) END AS PctPos_resret#94320478, CASE WHEN ((TR_resret#94320183 = NA) OR (TR_resret#94320183 = null)) THEN null ELSE cast(TR_resret#94320183 as float) END AS TR_resret#94320502, CASE WHEN ((IR_resret#94320184 = NA) OR (IR_resret#94320184 = null)) THEN null ELSE cast(IR_resret#94320184 as float) END AS IR_resret#94320507, CASE WHEN ((annual_retnet#94320185 = NA) OR (annual_retnet#94320185 = null)) THEN null ELSE cast(annual_retnet#94320185 as float) END AS annual_retnet#94320509, CASE WHEN ((std_retnet#94320186 = NA) OR (std_retnet#94320186 = null)) THEN null ELSE cast(std_retnet#94320186 as float) END AS std_retnet#94320512, CASE WHEN ((Sharpe_retnet#94320187 = NA) OR (Sharpe_retnet#94320187 = null)) THEN null ELSE cast(Sharpe_retnet#94320187 as float) END AS Sharpe_retnet#94320514, CASE WHEN ((PctPos_retnet#94320188 = NA) OR (PctPos_retnet#94320188 = null)) THEN null ELSE cast(PctPos_retnet#94320188 as float) END AS PctPos_retnet#94320516, CASE WHEN ((TR_retnet#94320189 = NA) OR (TR_retnet#94320189 = null)) THEN null ELSE cast(TR_retnet#94320189 as float) END AS TR_retnet#94320518, CASE WHEN ((IR_retnet#94320190 = NA) OR (IR_retnet#94320190 = null)) THEN null ELSE cast(IR_retnet#94320190 as float) END AS IR_retnet#94320520, CASE WHEN ((retIC#94320191 = NA) OR (retIC#94320191 = null)) THEN null ELSE cast(retIC#94320191 as float) END AS retIC#94320522, CASE WHEN ((resretIC#94320192 = NA) OR (resretIC#94320192 = null)) THEN null ELSE cast(resretIC#94320192 as float) END AS resretIC#94320523, CASE WHEN (turnover#94320193 = null) THEN null ELSE turnover#94320193 END AS turnover#94320524] : +- FileScan csv [group#94320171,annual_bmret#94320172,annual_ret#94320173,std_ret#94320174,Sharpe_ret#94320175,PctPos_ret#94320176,TR_ret#94320177,IR_ret#94320178,annual_resret#94320179,std_resret#94320180,Sharpe_resret#94320181,PctPos_resret#94320182,TR_resret#94320183,IR_resret#94320184,annual_retnet#94320185,std_retnet#94320186,Sharpe_retnet#94320187,PctPos_retnet#94320188,TR_retnet#94320189,IR_retnet#94320190,retIC#94320191,resretIC#94320192,turnover#94320193] 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#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#94320430, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516] Arguments: [group#94320430, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516], [isnotnull(group#94320430)] (4) InMemoryRelation Arguments: [group#94320430, annual_bmret#94320432, annual_ret#94320435, std_ret#94320438, Sharpe_ret#94320441, PctPos_ret#94320443, TR_ret#94320444, IR_ret#94320446, annual_resret#94320448, std_resret#94320451, Sharpe_resret#94320475, PctPos_resret#94320478, TR_resret#94320502, IR_resret#94320507, annual_retnet#94320509, std_retnet#94320512, Sharpe_retnet#94320514, PctPos_retnet#94320516, TR_retnet#94320518, IR_retnet#94320520, retIC#94320522, resretIC#94320523, turnover#94320524], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(1) Project [CASE WHEN (group#94320171 = null) THEN null ELSE group#94320171 END AS group#94320430, CASE WHEN ((annual_bmret#94320172 = NA) OR (annual_bmret#94320172 = null)) THEN null ELSE cast(annual_bmret#94320172 as float) END AS annual_bmret#94320432, CASE WHEN ((annual_ret#94320173 = NA) OR (annual_ret#94320173 = null)) THEN null ELSE cast(annual_ret#94320173 as float) END AS annual_ret#94320435, CASE WHEN ((std_ret#94320174 = NA) OR (std_ret#94320174 = null)) THEN null ELSE cast(std_ret#94320174 as float) END AS std_ret#94320438, CASE WHEN ((Sharpe_ret#94320175 = NA) OR (Sharpe_ret#94320175 = null)) THEN null ELSE cast(Sharpe_ret#94320175 as float) END AS Sharpe_ret#94320441, CASE WHEN ((PctPos_ret#94320176 = NA) OR (PctPos_ret#94320176 = null)) THEN null ELSE cast(PctPos_ret#94320176 as float) END AS PctPos_ret#94320443, CASE WHEN ((TR_ret#94320177 = NA) OR (TR_ret#94320177 = null)) THEN null ELSE cast(TR_ret#94320177 as float) END AS TR_ret#94320444, CASE WHEN ((IR_ret#94320178 = NA) OR (IR_ret#94320178 = null)) THEN null ELSE cast(IR_ret#94320178 as float) END AS IR_ret#94320446, CASE WHEN ((annual_resret#94320179 = NA) OR (annual_resret#94320179 = null)) THEN null ELSE cast(annual_resret#94320179 as float) END AS annual_resret#94320448, CASE WHEN ((std_resret#94320180 = NA) OR (std_resret#94320180 = null)) THEN null ELSE cast(std_resret#94320180 as float) END AS std_resret#94320451, CASE WHEN ((Sharpe_resret#94320181 = NA) OR (Sharpe_resret#94320181 = null)) THEN null ELSE cast(Sharpe_resret#94320181 as float) END AS Sharpe_resret#94320475, CASE WHEN ((PctPos_resret#94320182 = NA) OR (PctPos_resret#94320182 = null)) THEN null ELSE cast(PctPos_resret#94320182 as float) END AS PctPos_resret#94320478, CASE WHEN ((TR_resret#94320183 = NA) OR (TR_resret#94320183 = null)) THEN null ELSE cast(TR_resret#94320183 as float) END AS TR_resret#94320502, CASE WHEN ((IR_resret#94320184 = NA) OR (IR_resret#94320184 = null)) THEN null ELSE cast(IR_resret#94320184 as float) END AS IR_resret#94320507, CASE WHEN ((annual_retnet#94320185 = NA) OR (annual_retnet#94320185 = null)) THEN null ELSE cast(annual_retnet#94320185 as float) END AS annual_retnet#94320509, CASE WHEN ((std_retnet#94320186 = NA) OR (std_retnet#94320186 = null)) THEN null ELSE cast(std_retnet#94320186 as float) END AS std_retnet#94320512, CASE WHEN ((Sharpe_retnet#94320187 = NA) OR (Sharpe_retnet#94320187 = null)) THEN null ELSE cast(Sharpe_retnet#94320187 as float) END AS Sharpe_retnet#94320514, CASE WHEN ((PctPos_retnet#94320188 = NA) OR (PctPos_retnet#94320188 = null)) THEN null ELSE cast(PctPos_retnet#94320188 as float) END AS PctPos_retnet#94320516, CASE WHEN ((TR_retnet#94320189 = NA) OR (TR_retnet#94320189 = null)) THEN null ELSE cast(TR_retnet#94320189 as float) END AS TR_retnet#94320518, CASE WHEN ((IR_retnet#94320190 = NA) OR (IR_retnet#94320190 = null)) THEN null ELSE cast(IR_retnet#94320190 as float) END AS IR_retnet#94320520, CASE WHEN ((retIC#94320191 = NA) OR (retIC#94320191 = null)) THEN null ELSE cast(retIC#94320191 as float) END AS retIC#94320522, CASE WHEN ((resretIC#94320192 = NA) OR (resretIC#94320192 = null)) THEN null ELSE cast(resretIC#94320192 as float) END AS resretIC#94320523, CASE WHEN (turnover#94320193 = null) THEN null ELSE turnover#94320193 END AS turnover#94320524] +- FileScan csv [group#94320171,annual_bmret#94320172,annual_ret#94320173,std_ret#94320174,Sharpe_ret#94320175,PctPos_ret#94320176,TR_ret#94320177,IR_ret#94320178,annual_resret#94320179,std_resret#94320180,Sharpe_resret#94320181,PctPos_resret#94320182,TR_resret#94320183,IR_resret#94320184,annual_retnet#94320185,std_retnet#94320186,Sharpe_retnet#94320187,PctPos_retnet#94320188,TR_retnet#94320189,IR_retnet#94320190,retIC#94320191,resretIC#94320192,turnover#94320193] 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#94320171, annual_bmret#94320172, annual_ret#94320173, std_ret#94320174, Sharpe_ret#94320175, PctPos_ret#94320176, TR_ret#94320177, IR_ret#94320178, annual_resret#94320179, std_resret#94320180, Sharpe_resret#94320181, PctPos_resret#94320182, TR_resret#94320183, IR_resret#94320184, annual_retnet#94320185, std_retnet#94320186, Sharpe_retnet#94320187, PctPos_retnet#94320188, TR_retnet#94320189, IR_retnet#94320190, retIC#94320191, resretIC#94320192, turnover#94320193] 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#94320171 = null) THEN null ELSE group#94320171 END AS group#94320430, CASE WHEN ((annual_bmret#94320172 = NA) OR (annual_bmret#94320172 = null)) THEN null ELSE cast(annual_bmret#94320172 as float) END AS annual_bmret#94320432, CASE WHEN ((annual_ret#94320173 = NA) OR (annual_ret#94320173 = null)) THEN null ELSE cast(annual_ret#94320173 as float) END AS annual_ret#94320435, CASE WHEN ((std_ret#94320174 = NA) OR (std_ret#94320174 = null)) THEN null ELSE cast(std_ret#94320174 as float) END AS std_ret#94320438, CASE WHEN ((Sharpe_ret#94320175 = NA) OR (Sharpe_ret#94320175 = null)) THEN null ELSE cast(Sharpe_ret#94320175 as float) END AS Sharpe_ret#94320441, CASE WHEN ((PctPos_ret#94320176 = NA) OR (PctPos_ret#94320176 = null)) THEN null ELSE cast(PctPos_ret#94320176 as float) END AS PctPos_ret#94320443, CASE WHEN ((TR_ret#94320177 = NA) OR (TR_ret#94320177 = null)) THEN null ELSE cast(TR_ret#94320177 as float) END AS TR_ret#94320444, CASE WHEN ((IR_ret#94320178 = NA) OR (IR_ret#94320178 = null)) THEN null ELSE cast(IR_ret#94320178 as float) END AS IR_ret#94320446, CASE WHEN ((annual_resret#94320179 = NA) OR (annual_resret#94320179 = null)) THEN null ELSE cast(annual_resret#94320179 as float) END AS annual_resret#94320448, CASE WHEN ((std_resret#94320180 = NA) OR (std_resret#94320180 = null)) THEN null ELSE cast(std_resret#94320180 as float) END AS std_resret#94320451, CASE WHEN ((Sharpe_resret#94320181 = NA) OR (Sharpe_resret#94320181 = null)) THEN null ELSE cast(Sharpe_resret#94320181 as float) END AS Sharpe_resret#94320475, CASE WHEN ((PctPos_resret#94320182 = NA) OR (PctPos_resret#94320182 = null)) THEN null ELSE cast(PctPos_resret#94320182 as float) END AS PctPos_resret#94320478, CASE WHEN ((TR_resret#94320183 = NA) OR (TR_resret#94320183 = null)) THEN null ELSE cast(TR_resret#94320183 as float) END AS TR_resret#94320502, CASE WHEN ((IR_resret#94320184 = NA) OR (IR_resret#94320184 = null)) THEN null ELSE cast(IR_resret#94320184 as float) END AS IR_resret#94320507, CASE WHEN ((annual_retnet#94320185 = NA) OR (annual_retnet#94320185 = null)) THEN null ELSE cast(annual_retnet#94320185 as float) END AS annual_retnet#94320509, CASE WHEN ((std_retnet#94320186 = NA) OR (std_retnet#94320186 = null)) THEN null ELSE cast(std_retnet#94320186 as float) END AS std_retnet#94320512, CASE WHEN ((Sharpe_retnet#94320187 = NA) OR (Sharpe_retnet#94320187 = null)) THEN null ELSE cast(Sharpe_retnet#94320187 as float) END AS Sharpe_retnet#94320514, CASE WHEN ((PctPos_retnet#94320188 = NA) OR (PctPos_retnet#94320188 = null)) THEN null ELSE cast(PctPos_retnet#94320188 as float) END AS PctPos_retnet#94320516, CASE WHEN ((TR_retnet#94320189 = NA) OR (TR_retnet#94320189 = null)) THEN null ELSE cast(TR_retnet#94320189 as float) END AS TR_retnet#94320518, CASE WHEN ((IR_retnet#94320190 = NA) OR (IR_retnet#94320190 = null)) THEN null ELSE cast(IR_retnet#94320190 as float) END AS IR_retnet#94320520, CASE WHEN ((retIC#94320191 = NA) OR (retIC#94320191 = null)) THEN null ELSE cast(retIC#94320191 as float) END AS retIC#94320522, CASE WHEN ((resretIC#94320192 = NA) OR (resretIC#94320192 = null)) THEN null ELSE cast(resretIC#94320192 as float) END AS resretIC#94320523, CASE WHEN (turnover#94320193 = null) THEN null ELSE turnover#94320193 END AS turnover#94320524] Input [23]: [group#94320171, annual_bmret#94320172, annual_ret#94320173, std_ret#94320174, Sharpe_ret#94320175, PctPos_ret#94320176, TR_ret#94320177, IR_ret#94320178, annual_resret#94320179, std_resret#94320180, Sharpe_resret#94320181, PctPos_resret#94320182, TR_resret#94320183, IR_resret#94320184, annual_retnet#94320185, std_retnet#94320186, Sharpe_retnet#94320187, PctPos_retnet#94320188, TR_retnet#94320189, IR_retnet#94320190, retIC#94320191, resretIC#94320192, turnover#94320193] (7) Filter [codegen id : 1] Input [10]: [group#94320430, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516] Condition : isnotnull(group#94320430) (8) BroadcastExchange Input [10]: [group#94320430, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516] Arguments: HashedRelationBroadcastMode(List(input[0, string, false]),false), [id=#7530884] (9) InMemoryTableScan Output [3]: [group#94152529, Category#94152530, Label#94152531] Arguments: [group#94152529, Category#94152530, Label#94152531], [isnotnull(group#94152529)] (10) 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) (11) 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> (12) 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] (13) Filter Input [3]: [group#94152529, Category#94152530, Label#94152531] Condition : isnotnull(group#94152529) (14) BroadcastHashJoin [codegen id : 2] Left keys [1]: [group#94320430] Right keys [1]: [group#94152529] Join condition: None (15) Project [codegen id : 2] Output [11]: [Category#94152530, Label#94152531, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516] Input [13]: [group#94320430, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516, group#94152529, Category#94152530, Label#94152531] (16) CollectLimit Input [11]: [Category#94152530, Label#94152531, annual_ret#94320435, Sharpe_ret#94320441, PctPos_ret#94320443, annual_resret#94320448, Sharpe_resret#94320475, PctPos_resret#94320478, annual_retnet#94320509, Sharpe_retnet#94320514, PctPos_retnet#94320516] Arguments: 1000000