== 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#93875767, Label#93875768, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212] Arguments: [Category#93875767, Label#93875768, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212] (2) InMemoryRelation Arguments: [Category#93875767, Label#93875768, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(2) Project [Category#93875767, Label#93875768, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212] +- *(2) BroadcastHashJoin [group#94021195], [group#93875766], Inner, BuildRight, false :- *(2) Filter isnotnull(group#94021195) : +- InMemoryTableScan [group#94021195, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212], [isnotnull(group#94021195)] : +- InMemoryRelation [group#94021195, annual_bmret#94021196, annual_ret#94021197, std_ret#94021198, Sharpe_ret#94021199, PctPos_ret#94021200, TR_ret#94021201, IR_ret#94021202, annual_resret#94021203, std_resret#94021204, Sharpe_resret#94021205, PctPos_resret#94021206, TR_resret#94021207, IR_resret#94021208, annual_retnet#94021209, std_retnet#94021210, Sharpe_retnet#94021211, PctPos_retnet#94021212, TR_retnet#94021213, IR_retnet#94021214, retIC#94021215, resretIC#94021216, turnover#94021217], StorageLevel(disk, memory, deserialized, 1 replicas) : +- *(1) Project [CASE WHEN (group#94021076 = null) THEN null ELSE group#94021076 END AS group#94021195, CASE WHEN ((annual_bmret#94021077 = NA) OR (annual_bmret#94021077 = null)) THEN null ELSE cast(annual_bmret#94021077 as float) END AS annual_bmret#94021196, CASE WHEN ((annual_ret#94021078 = NA) OR (annual_ret#94021078 = null)) THEN null ELSE cast(annual_ret#94021078 as float) END AS annual_ret#94021197, CASE WHEN ((std_ret#94021079 = NA) OR (std_ret#94021079 = null)) THEN null ELSE cast(std_ret#94021079 as float) END AS std_ret#94021198, CASE WHEN ((Sharpe_ret#94021080 = NA) OR (Sharpe_ret#94021080 = null)) THEN null ELSE cast(Sharpe_ret#94021080 as float) END AS Sharpe_ret#94021199, CASE WHEN ((PctPos_ret#94021081 = NA) OR (PctPos_ret#94021081 = null)) THEN null ELSE cast(PctPos_ret#94021081 as float) END AS PctPos_ret#94021200, CASE WHEN ((TR_ret#94021082 = NA) OR (TR_ret#94021082 = null)) THEN null ELSE cast(TR_ret#94021082 as float) END AS TR_ret#94021201, CASE WHEN ((IR_ret#94021083 = NA) OR (IR_ret#94021083 = null)) THEN null ELSE cast(IR_ret#94021083 as float) END AS IR_ret#94021202, CASE WHEN ((annual_resret#94021084 = NA) OR (annual_resret#94021084 = null)) THEN null ELSE cast(annual_resret#94021084 as float) END AS annual_resret#94021203, CASE WHEN ((std_resret#94021085 = NA) OR (std_resret#94021085 = null)) THEN null ELSE cast(std_resret#94021085 as float) END AS std_resret#94021204, CASE WHEN ((Sharpe_resret#94021086 = NA) OR (Sharpe_resret#94021086 = null)) THEN null ELSE cast(Sharpe_resret#94021086 as float) END AS Sharpe_resret#94021205, CASE WHEN ((PctPos_resret#94021087 = NA) OR (PctPos_resret#94021087 = null)) THEN null ELSE cast(PctPos_resret#94021087 as float) END AS PctPos_resret#94021206, CASE WHEN ((TR_resret#94021088 = NA) OR (TR_resret#94021088 = null)) THEN null ELSE cast(TR_resret#94021088 as float) END AS TR_resret#94021207, CASE WHEN ((IR_resret#94021089 = NA) OR (IR_resret#94021089 = null)) THEN null ELSE cast(IR_resret#94021089 as float) END AS IR_resret#94021208, CASE WHEN ((annual_retnet#94021090 = NA) OR (annual_retnet#94021090 = null)) THEN null ELSE cast(annual_retnet#94021090 as float) END AS annual_retnet#94021209, CASE WHEN ((std_retnet#94021091 = NA) OR (std_retnet#94021091 = null)) THEN null ELSE cast(std_retnet#94021091 as float) END AS std_retnet#94021210, CASE WHEN ((Sharpe_retnet#94021092 = NA) OR (Sharpe_retnet#94021092 = null)) THEN null ELSE cast(Sharpe_retnet#94021092 as float) END AS Sharpe_retnet#94021211, CASE WHEN ((PctPos_retnet#94021093 = NA) OR (PctPos_retnet#94021093 = null)) THEN null ELSE cast(PctPos_retnet#94021093 as float) END AS PctPos_retnet#94021212, CASE WHEN ((TR_retnet#94021094 = NA) OR (TR_retnet#94021094 = null)) THEN null ELSE cast(TR_retnet#94021094 as float) END AS TR_retnet#94021213, CASE WHEN ((IR_retnet#94021095 = NA) OR (IR_retnet#94021095 = null)) THEN null ELSE cast(IR_retnet#94021095 as float) END AS IR_retnet#94021214, CASE WHEN ((retIC#94021096 = NA) OR (retIC#94021096 = null)) THEN null ELSE cast(retIC#94021096 as float) END AS retIC#94021215, CASE WHEN ((resretIC#94021097 = NA) OR (resretIC#94021097 = null)) THEN null ELSE cast(resretIC#94021097 as float) END AS resretIC#94021216, CASE WHEN (turnover#94021098 = null) THEN null ELSE turnover#94021098 END AS turnover#94021217] : +- FileScan csv [group#94021076,annual_bmret#94021077,annual_ret#94021078,std_ret#94021079,Sharpe_ret#94021080,PctPos_ret#94021081,TR_ret#94021082,IR_ret#94021083,annual_resret#94021084,std_resret#94021085,Sharpe_resret#94021086,PctPos_resret#94021087,TR_resret#94021088,IR_resret#94021089,annual_retnet#94021090,std_retnet#94021091,Sharpe_retnet#94021092,PctPos_retnet#94021093,TR_retnet#94021094,IR_retnet#94021095,retIC#94021096,resretIC#94021097,turnover#94021098] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/output/risk_factors/growth/RE..., 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=#7506929] +- *(1) 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#94021195, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212] Arguments: [group#94021195, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212], [isnotnull(group#94021195)] (4) InMemoryRelation Arguments: [group#94021195, annual_bmret#94021196, annual_ret#94021197, std_ret#94021198, Sharpe_ret#94021199, PctPos_ret#94021200, TR_ret#94021201, IR_ret#94021202, annual_resret#94021203, std_resret#94021204, Sharpe_resret#94021205, PctPos_resret#94021206, TR_resret#94021207, IR_resret#94021208, annual_retnet#94021209, std_retnet#94021210, Sharpe_retnet#94021211, PctPos_retnet#94021212, TR_retnet#94021213, IR_retnet#94021214, retIC#94021215, resretIC#94021216, turnover#94021217], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(1) Project [CASE WHEN (group#94021076 = null) THEN null ELSE group#94021076 END AS group#94021195, CASE WHEN ((annual_bmret#94021077 = NA) OR (annual_bmret#94021077 = null)) THEN null ELSE cast(annual_bmret#94021077 as float) END AS annual_bmret#94021196, CASE WHEN ((annual_ret#94021078 = NA) OR (annual_ret#94021078 = null)) THEN null ELSE cast(annual_ret#94021078 as float) END AS annual_ret#94021197, CASE WHEN ((std_ret#94021079 = NA) OR (std_ret#94021079 = null)) THEN null ELSE cast(std_ret#94021079 as float) END AS std_ret#94021198, CASE WHEN ((Sharpe_ret#94021080 = NA) OR (Sharpe_ret#94021080 = null)) THEN null ELSE cast(Sharpe_ret#94021080 as float) END AS Sharpe_ret#94021199, CASE WHEN ((PctPos_ret#94021081 = NA) OR (PctPos_ret#94021081 = null)) THEN null ELSE cast(PctPos_ret#94021081 as float) END AS PctPos_ret#94021200, CASE WHEN ((TR_ret#94021082 = NA) OR (TR_ret#94021082 = null)) THEN null ELSE cast(TR_ret#94021082 as float) END AS TR_ret#94021201, CASE WHEN ((IR_ret#94021083 = NA) OR (IR_ret#94021083 = null)) THEN null ELSE cast(IR_ret#94021083 as float) END AS IR_ret#94021202, CASE WHEN ((annual_resret#94021084 = NA) OR (annual_resret#94021084 = null)) THEN null ELSE cast(annual_resret#94021084 as float) END AS annual_resret#94021203, CASE WHEN ((std_resret#94021085 = NA) OR (std_resret#94021085 = null)) THEN null ELSE cast(std_resret#94021085 as float) END AS std_resret#94021204, CASE WHEN ((Sharpe_resret#94021086 = NA) OR (Sharpe_resret#94021086 = null)) THEN null ELSE cast(Sharpe_resret#94021086 as float) END AS Sharpe_resret#94021205, CASE WHEN ((PctPos_resret#94021087 = NA) OR (PctPos_resret#94021087 = null)) THEN null ELSE cast(PctPos_resret#94021087 as float) END AS PctPos_resret#94021206, CASE WHEN ((TR_resret#94021088 = NA) OR (TR_resret#94021088 = null)) THEN null ELSE cast(TR_resret#94021088 as float) END AS TR_resret#94021207, CASE WHEN ((IR_resret#94021089 = NA) OR (IR_resret#94021089 = null)) THEN null ELSE cast(IR_resret#94021089 as float) END AS IR_resret#94021208, CASE WHEN ((annual_retnet#94021090 = NA) OR (annual_retnet#94021090 = null)) THEN null ELSE cast(annual_retnet#94021090 as float) END AS annual_retnet#94021209, CASE WHEN ((std_retnet#94021091 = NA) OR (std_retnet#94021091 = null)) THEN null ELSE cast(std_retnet#94021091 as float) END AS std_retnet#94021210, CASE WHEN ((Sharpe_retnet#94021092 = NA) OR (Sharpe_retnet#94021092 = null)) THEN null ELSE cast(Sharpe_retnet#94021092 as float) END AS Sharpe_retnet#94021211, CASE WHEN ((PctPos_retnet#94021093 = NA) OR (PctPos_retnet#94021093 = null)) THEN null ELSE cast(PctPos_retnet#94021093 as float) END AS PctPos_retnet#94021212, CASE WHEN ((TR_retnet#94021094 = NA) OR (TR_retnet#94021094 = null)) THEN null ELSE cast(TR_retnet#94021094 as float) END AS TR_retnet#94021213, CASE WHEN ((IR_retnet#94021095 = NA) OR (IR_retnet#94021095 = null)) THEN null ELSE cast(IR_retnet#94021095 as float) END AS IR_retnet#94021214, CASE WHEN ((retIC#94021096 = NA) OR (retIC#94021096 = null)) THEN null ELSE cast(retIC#94021096 as float) END AS retIC#94021215, CASE WHEN ((resretIC#94021097 = NA) OR (resretIC#94021097 = null)) THEN null ELSE cast(resretIC#94021097 as float) END AS resretIC#94021216, CASE WHEN (turnover#94021098 = null) THEN null ELSE turnover#94021098 END AS turnover#94021217] +- FileScan csv [group#94021076,annual_bmret#94021077,annual_ret#94021078,std_ret#94021079,Sharpe_ret#94021080,PctPos_ret#94021081,TR_ret#94021082,IR_ret#94021083,annual_resret#94021084,std_resret#94021085,Sharpe_resret#94021086,PctPos_resret#94021087,TR_resret#94021088,IR_resret#94021089,annual_retnet#94021090,std_retnet#94021091,Sharpe_retnet#94021092,PctPos_retnet#94021093,TR_retnet#94021094,IR_retnet#94021095,retIC#94021096,resretIC#94021097,turnover#94021098] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/output/risk_factors/growth/RE..., 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#94021076, annual_bmret#94021077, annual_ret#94021078, std_ret#94021079, Sharpe_ret#94021080, PctPos_ret#94021081, TR_ret#94021082, IR_ret#94021083, annual_resret#94021084, std_resret#94021085, Sharpe_resret#94021086, PctPos_resret#94021087, TR_resret#94021088, IR_resret#94021089, annual_retnet#94021090, std_retnet#94021091, Sharpe_retnet#94021092, PctPos_retnet#94021093, TR_retnet#94021094, IR_retnet#94021095, retIC#94021096, resretIC#94021097, turnover#94021098] Batched: false Location: InMemoryFileIndex [file:/srv/plusamp/data/default/ea-market/output/risk_factors/growth/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#94021076 = null) THEN null ELSE group#94021076 END AS group#94021195, CASE WHEN ((annual_bmret#94021077 = NA) OR (annual_bmret#94021077 = null)) THEN null ELSE cast(annual_bmret#94021077 as float) END AS annual_bmret#94021196, CASE WHEN ((annual_ret#94021078 = NA) OR (annual_ret#94021078 = null)) THEN null ELSE cast(annual_ret#94021078 as float) END AS annual_ret#94021197, CASE WHEN ((std_ret#94021079 = NA) OR (std_ret#94021079 = null)) THEN null ELSE cast(std_ret#94021079 as float) END AS std_ret#94021198, CASE WHEN ((Sharpe_ret#94021080 = NA) OR (Sharpe_ret#94021080 = null)) THEN null ELSE cast(Sharpe_ret#94021080 as float) END AS Sharpe_ret#94021199, CASE WHEN ((PctPos_ret#94021081 = NA) OR (PctPos_ret#94021081 = null)) THEN null ELSE cast(PctPos_ret#94021081 as float) END AS PctPos_ret#94021200, CASE WHEN ((TR_ret#94021082 = NA) OR (TR_ret#94021082 = null)) THEN null ELSE cast(TR_ret#94021082 as float) END AS TR_ret#94021201, CASE WHEN ((IR_ret#94021083 = NA) OR (IR_ret#94021083 = null)) THEN null ELSE cast(IR_ret#94021083 as float) END AS IR_ret#94021202, CASE WHEN ((annual_resret#94021084 = NA) OR (annual_resret#94021084 = null)) THEN null ELSE cast(annual_resret#94021084 as float) END AS annual_resret#94021203, CASE WHEN ((std_resret#94021085 = NA) OR (std_resret#94021085 = null)) THEN null ELSE cast(std_resret#94021085 as float) END AS std_resret#94021204, CASE WHEN ((Sharpe_resret#94021086 = NA) OR (Sharpe_resret#94021086 = null)) THEN null ELSE cast(Sharpe_resret#94021086 as float) END AS Sharpe_resret#94021205, CASE WHEN ((PctPos_resret#94021087 = NA) OR (PctPos_resret#94021087 = null)) THEN null ELSE cast(PctPos_resret#94021087 as float) END AS PctPos_resret#94021206, CASE WHEN ((TR_resret#94021088 = NA) OR (TR_resret#94021088 = null)) THEN null ELSE cast(TR_resret#94021088 as float) END AS TR_resret#94021207, CASE WHEN ((IR_resret#94021089 = NA) OR (IR_resret#94021089 = null)) THEN null ELSE cast(IR_resret#94021089 as float) END AS IR_resret#94021208, CASE WHEN ((annual_retnet#94021090 = NA) OR (annual_retnet#94021090 = null)) THEN null ELSE cast(annual_retnet#94021090 as float) END AS annual_retnet#94021209, CASE WHEN ((std_retnet#94021091 = NA) OR (std_retnet#94021091 = null)) THEN null ELSE cast(std_retnet#94021091 as float) END AS std_retnet#94021210, CASE WHEN ((Sharpe_retnet#94021092 = NA) OR (Sharpe_retnet#94021092 = null)) THEN null ELSE cast(Sharpe_retnet#94021092 as float) END AS Sharpe_retnet#94021211, CASE WHEN ((PctPos_retnet#94021093 = NA) OR (PctPos_retnet#94021093 = null)) THEN null ELSE cast(PctPos_retnet#94021093 as float) END AS PctPos_retnet#94021212, CASE WHEN ((TR_retnet#94021094 = NA) OR (TR_retnet#94021094 = null)) THEN null ELSE cast(TR_retnet#94021094 as float) END AS TR_retnet#94021213, CASE WHEN ((IR_retnet#94021095 = NA) OR (IR_retnet#94021095 = null)) THEN null ELSE cast(IR_retnet#94021095 as float) END AS IR_retnet#94021214, CASE WHEN ((retIC#94021096 = NA) OR (retIC#94021096 = null)) THEN null ELSE cast(retIC#94021096 as float) END AS retIC#94021215, CASE WHEN ((resretIC#94021097 = NA) OR (resretIC#94021097 = null)) THEN null ELSE cast(resretIC#94021097 as float) END AS resretIC#94021216, CASE WHEN (turnover#94021098 = null) THEN null ELSE turnover#94021098 END AS turnover#94021217] Input [23]: [group#94021076, annual_bmret#94021077, annual_ret#94021078, std_ret#94021079, Sharpe_ret#94021080, PctPos_ret#94021081, TR_ret#94021082, IR_ret#94021083, annual_resret#94021084, std_resret#94021085, Sharpe_resret#94021086, PctPos_resret#94021087, TR_resret#94021088, IR_resret#94021089, annual_retnet#94021090, std_retnet#94021091, Sharpe_retnet#94021092, PctPos_retnet#94021093, TR_retnet#94021094, IR_retnet#94021095, retIC#94021096, resretIC#94021097, turnover#94021098] (7) Filter [codegen id : 2] Input [10]: [group#94021195, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212] Condition : isnotnull(group#94021195) (8) InMemoryTableScan Output [3]: [group#93875766, Category#93875767, Label#93875768] Arguments: [group#93875766, Category#93875767, Label#93875768], [isnotnull(group#93875766)] (9) 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) (10) 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> (11) 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] (12) Filter [codegen id : 1] Input [3]: [group#93875766, Category#93875767, Label#93875768] Condition : isnotnull(group#93875766) (13) BroadcastExchange Input [3]: [group#93875766, Category#93875767, Label#93875768] Arguments: HashedRelationBroadcastMode(List(input[0, string, false]),false), [id=#7506929] (14) BroadcastHashJoin [codegen id : 2] Left keys [1]: [group#94021195] Right keys [1]: [group#93875766] Join condition: None (15) Project [codegen id : 2] Output [11]: [Category#93875767, Label#93875768, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212] Input [13]: [group#94021195, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212, group#93875766, Category#93875767, Label#93875768] (16) CollectLimit Input [11]: [Category#93875767, Label#93875768, annual_ret#94021197, Sharpe_ret#94021199, PctPos_ret#94021200, annual_resret#94021203, Sharpe_resret#94021205, PctPos_resret#94021206, annual_retnet#94021209, Sharpe_retnet#94021211, PctPos_retnet#94021212] Arguments: 1000000