== Physical Plan == CollectLimit (13) +- * ColumnarToRow (12) +- InMemoryTableScan (1) +- InMemoryRelation (2) +- * Sort (11) +- Exchange (10) +- * Project (9) +- * Filter (8) +- * ColumnarToRow (7) +- InMemoryTableScan (3) +- InMemoryRelation (4) +- * Project (6) +- Scan csv (5) (1) InMemoryTableScan Output [3]: [year#94271655, turnover#94271728, days_hold#94271771] Arguments: [year#94271655, turnover#94271728, days_hold#94271771] (2) InMemoryRelation Arguments: [year#94271655, turnover#94271728, days_hold#94271771], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(2) Sort [year#94271655 ASC NULLS FIRST], true, 0 +- Exchange rangepartitioning(year#94271655 ASC NULLS FIRST, 200), ENSURE_REQUIREMENTS, [id=#7526745] +- *(1) Project [year#94271655, turnover#94271728, (1.0 / cast(turnover#94271728 as double)) AS days_hold#94271771] +- *(1) Filter isnotnull(turnover#94271728) +- *(1) ColumnarToRow +- InMemoryTableScan [turnover#94271728, year#94271655], [isnotnull(turnover#94271728)] +- InMemoryRelation [year#94271655, retIC#94271656, resretIC#94271657, numcos#94271658, numdates#94271692, annual_bmret#94271693, annual_ret#94271694, std_ret#94271695, Sharpe_ret#94271696, PctPos_ret#94271698, TR_ret#94271700, IR_ret#94271702, annual_resret#94271704, std_resret#94271706, Sharpe_resret#94271708, PctPos_resret#94271710, TR_resret#94271712, IR_resret#94271714, annual_retnet#94271716, std_retnet#94271718, Sharpe_retnet#94271720, PctPos_retnet#94271722, TR_retnet#94271724, IR_retnet#94271726, turnover#94271728], StorageLevel(disk, memory, deserialized, 1 replicas) +- *(1) Project [CASE WHEN ((year#94271455 = NA) OR (year#94271455 = null)) THEN null ELSE cast(year#94271455 as float) END AS year#94271655, CASE WHEN ((retIC#94271456 = NA) OR (retIC#94271456 = null)) THEN null ELSE cast(retIC#94271456 as float) END AS retIC#94271656, CASE WHEN ((resretIC#94271457 = NA) OR (resretIC#94271457 = null)) THEN null ELSE cast(resretIC#94271457 as float) END AS resretIC#94271657, CASE WHEN ((numcos#94271458 = NA) OR (numcos#94271458 = null)) THEN null ELSE cast(numcos#94271458 as float) END AS numcos#94271658, CASE WHEN ((numdates#94271459 = NA) OR (numdates#94271459 = null)) THEN null ELSE cast(numdates#94271459 as int) END AS numdates#94271692, CASE WHEN ((annual_bmret#94271460 = NA) OR (annual_bmret#94271460 = null)) THEN null ELSE cast(annual_bmret#94271460 as float) END AS annual_bmret#94271693, CASE WHEN ((annual_ret#94271461 = NA) OR (annual_ret#94271461 = null)) THEN null ELSE cast(annual_ret#94271461 as float) END AS annual_ret#94271694, CASE WHEN ((std_ret#94271462 = NA) OR (std_ret#94271462 = null)) THEN null ELSE cast(std_ret#94271462 as float) END AS std_ret#94271695, CASE WHEN ((Sharpe_ret#94271463 = NA) OR (Sharpe_ret#94271463 = null)) THEN null ELSE cast(Sharpe_ret#94271463 as float) END AS Sharpe_ret#94271696, CASE WHEN ((PctPos_ret#94271464 = NA) OR (PctPos_ret#94271464 = null)) THEN null ELSE cast(PctPos_ret#94271464 as float) END AS PctPos_ret#94271698, CASE WHEN ((TR_ret#94271465 = NA) OR (TR_ret#94271465 = null)) THEN null ELSE cast(TR_ret#94271465 as float) END AS TR_ret#94271700, CASE WHEN ((IR_ret#94271466 = NA) OR (IR_ret#94271466 = null)) THEN null ELSE cast(IR_ret#94271466 as float) END AS IR_ret#94271702, CASE WHEN ((annual_resret#94271467 = NA) OR (annual_resret#94271467 = null)) THEN null ELSE cast(annual_resret#94271467 as float) END AS annual_resret#94271704, CASE WHEN ((std_resret#94271468 = NA) OR (std_resret#94271468 = null)) THEN null ELSE cast(std_resret#94271468 as float) END AS std_resret#94271706, CASE WHEN ((Sharpe_resret#94271469 = NA) OR (Sharpe_resret#94271469 = null)) THEN null ELSE cast(Sharpe_resret#94271469 as float) END AS Sharpe_resret#94271708, CASE WHEN ((PctPos_resret#94271470 = NA) OR (PctPos_resret#94271470 = null)) THEN null ELSE cast(PctPos_resret#94271470 as float) END AS PctPos_resret#94271710, CASE WHEN ((TR_resret#94271471 = NA) OR (TR_resret#94271471 = null)) THEN null ELSE cast(TR_resret#94271471 as float) END AS TR_resret#94271712, CASE WHEN ((IR_resret#94271472 = NA) OR (IR_resret#94271472 = null)) THEN null ELSE cast(IR_resret#94271472 as float) END AS IR_resret#94271714, CASE WHEN ((annual_retnet#94271473 = NA) OR (annual_retnet#94271473 = null)) THEN null ELSE cast(annual_retnet#94271473 as float) END AS annual_retnet#94271716, CASE WHEN ((std_retnet#94271474 = NA) OR (std_retnet#94271474 = null)) THEN null ELSE cast(std_retnet#94271474 as float) END AS std_retnet#94271718, CASE WHEN ((Sharpe_retnet#94271475 = NA) OR (Sharpe_retnet#94271475 = null)) THEN null ELSE cast(Sharpe_retnet#94271475 as float) END AS Sharpe_retnet#94271720, CASE WHEN ((PctPos_retnet#94271476 = NA) OR (PctPos_retnet#94271476 = null)) THEN null ELSE cast(PctPos_retnet#94271476 as float) END AS PctPos_retnet#94271722, CASE WHEN ((TR_retnet#94271477 = NA) OR (TR_retnet#94271477 = null)) THEN null ELSE cast(TR_retnet#94271477 as float) END AS TR_retnet#94271724, CASE WHEN ((IR_retnet#94271478 = NA) OR (IR_retnet#94271478 = null)) THEN null ELSE cast(IR_retnet#94271478 as float) END AS IR_retnet#94271726, CASE WHEN ((turnover#94271479 = NA) OR (turnover#94271479 = null)) THEN null ELSE cast(turnover#94271479 as float) END AS turnover#94271728] +- FileScan csv [year#94271455,retIC#94271456,resretIC#94271457,numcos#94271458,numdates#94271459,annual_bmret#94271460,annual_ret#94271461,std_ret#94271462,Sharpe_ret#94271463,PctPos_ret#94271464,TR_ret#94271465,IR_ret#94271466,annual_resret#94271467,std_resret#94271468,Sharpe_resret#94271469,PctPos_resret#94271470,TR_resret#94271471,IR_resret#94271472,annual_retnet#94271473,std_retnet#94271474,Sharpe_retnet#94271475,PctPos_retnet#94271476,TR_retnet#94271477,IR_retnet#94271478,turnover#94271479] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/output/digital_revenue_signal..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<year:string,retIC:string,resretIC:string,numcos:string,numdates:string,annual_bmret:string... ,None), [year#94271655 ASC NULLS FIRST] (3) InMemoryTableScan Output [2]: [turnover#94271728, year#94271655] Arguments: [turnover#94271728, year#94271655], [isnotnull(turnover#94271728)] (4) InMemoryRelation Arguments: [year#94271655, retIC#94271656, resretIC#94271657, numcos#94271658, numdates#94271692, annual_bmret#94271693, annual_ret#94271694, std_ret#94271695, Sharpe_ret#94271696, PctPos_ret#94271698, TR_ret#94271700, IR_ret#94271702, annual_resret#94271704, std_resret#94271706, Sharpe_resret#94271708, PctPos_resret#94271710, TR_resret#94271712, IR_resret#94271714, annual_retnet#94271716, std_retnet#94271718, Sharpe_retnet#94271720, PctPos_retnet#94271722, TR_retnet#94271724, IR_retnet#94271726, turnover#94271728], CachedRDDBuilder(org.apache.spark.sql.execution.columnar.DefaultCachedBatchSerializer@208e3fd9,StorageLevel(disk, memory, deserialized, 1 replicas),*(1) Project [CASE WHEN ((year#94271455 = NA) OR (year#94271455 = null)) THEN null ELSE cast(year#94271455 as float) END AS year#94271655, CASE WHEN ((retIC#94271456 = NA) OR (retIC#94271456 = null)) THEN null ELSE cast(retIC#94271456 as float) END AS retIC#94271656, CASE WHEN ((resretIC#94271457 = NA) OR (resretIC#94271457 = null)) THEN null ELSE cast(resretIC#94271457 as float) END AS resretIC#94271657, CASE WHEN ((numcos#94271458 = NA) OR (numcos#94271458 = null)) THEN null ELSE cast(numcos#94271458 as float) END AS numcos#94271658, CASE WHEN ((numdates#94271459 = NA) OR (numdates#94271459 = null)) THEN null ELSE cast(numdates#94271459 as int) END AS numdates#94271692, CASE WHEN ((annual_bmret#94271460 = NA) OR (annual_bmret#94271460 = null)) THEN null ELSE cast(annual_bmret#94271460 as float) END AS annual_bmret#94271693, CASE WHEN ((annual_ret#94271461 = NA) OR (annual_ret#94271461 = null)) THEN null ELSE cast(annual_ret#94271461 as float) END AS annual_ret#94271694, CASE WHEN ((std_ret#94271462 = NA) OR (std_ret#94271462 = null)) THEN null ELSE cast(std_ret#94271462 as float) END AS std_ret#94271695, CASE WHEN ((Sharpe_ret#94271463 = NA) OR (Sharpe_ret#94271463 = null)) THEN null ELSE cast(Sharpe_ret#94271463 as float) END AS Sharpe_ret#94271696, CASE WHEN ((PctPos_ret#94271464 = NA) OR (PctPos_ret#94271464 = null)) THEN null ELSE cast(PctPos_ret#94271464 as float) END AS PctPos_ret#94271698, CASE WHEN ((TR_ret#94271465 = NA) OR (TR_ret#94271465 = null)) THEN null ELSE cast(TR_ret#94271465 as float) END AS TR_ret#94271700, CASE WHEN ((IR_ret#94271466 = NA) OR (IR_ret#94271466 = null)) THEN null ELSE cast(IR_ret#94271466 as float) END AS IR_ret#94271702, CASE WHEN ((annual_resret#94271467 = NA) OR (annual_resret#94271467 = null)) THEN null ELSE cast(annual_resret#94271467 as float) END AS annual_resret#94271704, CASE WHEN ((std_resret#94271468 = NA) OR (std_resret#94271468 = null)) THEN null ELSE cast(std_resret#94271468 as float) END AS std_resret#94271706, CASE WHEN ((Sharpe_resret#94271469 = NA) OR (Sharpe_resret#94271469 = null)) THEN null ELSE cast(Sharpe_resret#94271469 as float) END AS Sharpe_resret#94271708, CASE WHEN ((PctPos_resret#94271470 = NA) OR (PctPos_resret#94271470 = null)) THEN null ELSE cast(PctPos_resret#94271470 as float) END AS PctPos_resret#94271710, CASE WHEN ((TR_resret#94271471 = NA) OR (TR_resret#94271471 = null)) THEN null ELSE cast(TR_resret#94271471 as float) END AS TR_resret#94271712, CASE WHEN ((IR_resret#94271472 = NA) OR (IR_resret#94271472 = null)) THEN null ELSE cast(IR_resret#94271472 as float) END AS IR_resret#94271714, CASE WHEN ((annual_retnet#94271473 = NA) OR (annual_retnet#94271473 = null)) THEN null ELSE cast(annual_retnet#94271473 as float) END AS annual_retnet#94271716, CASE WHEN ((std_retnet#94271474 = NA) OR (std_retnet#94271474 = null)) THEN null ELSE cast(std_retnet#94271474 as float) END AS std_retnet#94271718, CASE WHEN ((Sharpe_retnet#94271475 = NA) OR (Sharpe_retnet#94271475 = null)) THEN null ELSE cast(Sharpe_retnet#94271475 as float) END AS Sharpe_retnet#94271720, CASE WHEN ((PctPos_retnet#94271476 = NA) OR (PctPos_retnet#94271476 = null)) THEN null ELSE cast(PctPos_retnet#94271476 as float) END AS PctPos_retnet#94271722, CASE WHEN ((TR_retnet#94271477 = NA) OR (TR_retnet#94271477 = null)) THEN null ELSE cast(TR_retnet#94271477 as float) END AS TR_retnet#94271724, CASE WHEN ((IR_retnet#94271478 = NA) OR (IR_retnet#94271478 = null)) THEN null ELSE cast(IR_retnet#94271478 as float) END AS IR_retnet#94271726, CASE WHEN ((turnover#94271479 = NA) OR (turnover#94271479 = null)) THEN null ELSE cast(turnover#94271479 as float) END AS turnover#94271728] +- FileScan csv [year#94271455,retIC#94271456,resretIC#94271457,numcos#94271458,numdates#94271459,annual_bmret#94271460,annual_ret#94271461,std_ret#94271462,Sharpe_ret#94271463,PctPos_ret#94271464,TR_ret#94271465,IR_ret#94271466,annual_resret#94271467,std_resret#94271468,Sharpe_resret#94271469,PctPos_resret#94271470,TR_resret#94271471,IR_resret#94271472,annual_retnet#94271473,std_retnet#94271474,Sharpe_retnet#94271475,PctPos_retnet#94271476,TR_retnet#94271477,IR_retnet#94271478,turnover#94271479] Batched: false, DataFilters: [], Format: CSV, Location: InMemoryFileIndex(1 paths)[file:/srv/plusamp/data/default/ea-market/output/digital_revenue_signal..., PartitionFilters: [], PushedFilters: [], ReadSchema: struct<year:string,retIC:string,resretIC:string,numcos:string,numdates:string,annual_bmret:string... ,None) (5) Scan csv Output [25]: [year#94271455, retIC#94271456, resretIC#94271457, numcos#94271458, numdates#94271459, annual_bmret#94271460, annual_ret#94271461, std_ret#94271462, Sharpe_ret#94271463, PctPos_ret#94271464, TR_ret#94271465, IR_ret#94271466, annual_resret#94271467, std_resret#94271468, Sharpe_resret#94271469, PctPos_resret#94271470, TR_resret#94271471, IR_resret#94271472, annual_retnet#94271473, std_retnet#94271474, Sharpe_retnet#94271475, PctPos_retnet#94271476, TR_retnet#94271477, IR_retnet#94271478, turnover#94271479] Batched: false Location: InMemoryFileIndex [file:/srv/plusamp/data/default/ea-market/output/digital_revenue_signal/rev_signal_percentile_r_100/stats_year.csv] ReadSchema: struct<year:string,retIC:string,resretIC:string,numcos:string,numdates: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,turnover:string> (6) Project [codegen id : 1] Output [25]: [CASE WHEN ((year#94271455 = NA) OR (year#94271455 = null)) THEN null ELSE cast(year#94271455 as float) END AS year#94271655, CASE WHEN ((retIC#94271456 = NA) OR (retIC#94271456 = null)) THEN null ELSE cast(retIC#94271456 as float) END AS retIC#94271656, CASE WHEN ((resretIC#94271457 = NA) OR (resretIC#94271457 = null)) THEN null ELSE cast(resretIC#94271457 as float) END AS resretIC#94271657, CASE WHEN ((numcos#94271458 = NA) OR (numcos#94271458 = null)) THEN null ELSE cast(numcos#94271458 as float) END AS numcos#94271658, CASE WHEN ((numdates#94271459 = NA) OR (numdates#94271459 = null)) THEN null ELSE cast(numdates#94271459 as int) END AS numdates#94271692, CASE WHEN ((annual_bmret#94271460 = NA) OR (annual_bmret#94271460 = null)) THEN null ELSE cast(annual_bmret#94271460 as float) END AS annual_bmret#94271693, CASE WHEN ((annual_ret#94271461 = NA) OR (annual_ret#94271461 = null)) THEN null ELSE cast(annual_ret#94271461 as float) END AS annual_ret#94271694, CASE WHEN ((std_ret#94271462 = NA) OR (std_ret#94271462 = null)) THEN null ELSE cast(std_ret#94271462 as float) END AS std_ret#94271695, CASE WHEN ((Sharpe_ret#94271463 = NA) OR (Sharpe_ret#94271463 = null)) THEN null ELSE cast(Sharpe_ret#94271463 as float) END AS Sharpe_ret#94271696, CASE WHEN ((PctPos_ret#94271464 = NA) OR (PctPos_ret#94271464 = null)) THEN null ELSE cast(PctPos_ret#94271464 as float) END AS PctPos_ret#94271698, CASE WHEN ((TR_ret#94271465 = NA) OR (TR_ret#94271465 = null)) THEN null ELSE cast(TR_ret#94271465 as float) END AS TR_ret#94271700, CASE WHEN ((IR_ret#94271466 = NA) OR (IR_ret#94271466 = null)) THEN null ELSE cast(IR_ret#94271466 as float) END AS IR_ret#94271702, CASE WHEN ((annual_resret#94271467 = NA) OR (annual_resret#94271467 = null)) THEN null ELSE cast(annual_resret#94271467 as float) END AS annual_resret#94271704, CASE WHEN ((std_resret#94271468 = NA) OR (std_resret#94271468 = null)) THEN null ELSE cast(std_resret#94271468 as float) END AS std_resret#94271706, CASE WHEN ((Sharpe_resret#94271469 = NA) OR (Sharpe_resret#94271469 = null)) THEN null ELSE cast(Sharpe_resret#94271469 as float) END AS Sharpe_resret#94271708, CASE WHEN ((PctPos_resret#94271470 = NA) OR (PctPos_resret#94271470 = null)) THEN null ELSE cast(PctPos_resret#94271470 as float) END AS PctPos_resret#94271710, CASE WHEN ((TR_resret#94271471 = NA) OR (TR_resret#94271471 = null)) THEN null ELSE cast(TR_resret#94271471 as float) END AS TR_resret#94271712, CASE WHEN ((IR_resret#94271472 = NA) OR (IR_resret#94271472 = null)) THEN null ELSE cast(IR_resret#94271472 as float) END AS IR_resret#94271714, CASE WHEN ((annual_retnet#94271473 = NA) OR (annual_retnet#94271473 = null)) THEN null ELSE cast(annual_retnet#94271473 as float) END AS annual_retnet#94271716, CASE WHEN ((std_retnet#94271474 = NA) OR (std_retnet#94271474 = null)) THEN null ELSE cast(std_retnet#94271474 as float) END AS std_retnet#94271718, CASE WHEN ((Sharpe_retnet#94271475 = NA) OR (Sharpe_retnet#94271475 = null)) THEN null ELSE cast(Sharpe_retnet#94271475 as float) END AS Sharpe_retnet#94271720, CASE WHEN ((PctPos_retnet#94271476 = NA) OR (PctPos_retnet#94271476 = null)) THEN null ELSE cast(PctPos_retnet#94271476 as float) END AS PctPos_retnet#94271722, CASE WHEN ((TR_retnet#94271477 = NA) OR (TR_retnet#94271477 = null)) THEN null ELSE cast(TR_retnet#94271477 as float) END AS TR_retnet#94271724, CASE WHEN ((IR_retnet#94271478 = NA) OR (IR_retnet#94271478 = null)) THEN null ELSE cast(IR_retnet#94271478 as float) END AS IR_retnet#94271726, CASE WHEN ((turnover#94271479 = NA) OR (turnover#94271479 = null)) THEN null ELSE cast(turnover#94271479 as float) END AS turnover#94271728] Input [25]: [year#94271455, retIC#94271456, resretIC#94271457, numcos#94271458, numdates#94271459, annual_bmret#94271460, annual_ret#94271461, std_ret#94271462, Sharpe_ret#94271463, PctPos_ret#94271464, TR_ret#94271465, IR_ret#94271466, annual_resret#94271467, std_resret#94271468, Sharpe_resret#94271469, PctPos_resret#94271470, TR_resret#94271471, IR_resret#94271472, annual_retnet#94271473, std_retnet#94271474, Sharpe_retnet#94271475, PctPos_retnet#94271476, TR_retnet#94271477, IR_retnet#94271478, turnover#94271479] (7) ColumnarToRow [codegen id : 1] Input [2]: [turnover#94271728, year#94271655] (8) Filter [codegen id : 1] Input [2]: [turnover#94271728, year#94271655] Condition : isnotnull(turnover#94271728) (9) Project [codegen id : 1] Output [3]: [year#94271655, turnover#94271728, (1.0 / cast(turnover#94271728 as double)) AS days_hold#94271771] Input [2]: [turnover#94271728, year#94271655] (10) Exchange Input [3]: [year#94271655, turnover#94271728, days_hold#94271771] Arguments: rangepartitioning(year#94271655 ASC NULLS FIRST, 200), ENSURE_REQUIREMENTS, [id=#7526745] (11) Sort [codegen id : 2] Input [3]: [year#94271655, turnover#94271728, days_hold#94271771] Arguments: [year#94271655 ASC NULLS FIRST], true, 0 (12) ColumnarToRow [codegen id : 1] Input [3]: [year#94271655, turnover#94271728, days_hold#94271771] (13) CollectLimit Input [3]: [year#94271655, turnover#94271728, days_hold#94271771] Arguments: 1000000