== Physical Plan == TakeOrderedAndProject(limit=21, orderBy=[d_week_seq1#384 ASC NULLS FIRST], output=[d_week_seq1#504,round((sun_sales1 / sun_sales2), 2)#505,round((mon_sales1 / mon_sales2), 2)#506,round((tue_sales1 / tue_sales2), 2)#507,round((wed_sales1 / wed_sales2), 2)#508,round((thu_sales1 / thu_sales2), 2)#509,round((fri_sales1 / fri_sales2), 2)#510,round((sat_sales1 / sat_sales2), 2)#511]) +- *(1) Project [d_week_seq1#384, round((sun_sales1#385 / sun_sales2#393), 2) AS round((sun_sales1 / sun_sales2), 2)#481, round((mon_sales1#386 / mon_sales2#394), 2) AS round((mon_sales1 / mon_sales2), 2)#482, round((tue_sales1#387 / tue_sales2#395), 2) AS round((tue_sales1 / tue_sales2), 2)#483, round((wed_sales1#388 / wed_sales2#396), 2) AS round((wed_sales1 / wed_sales2), 2)#484, round((thu_sales1#389 / thu_sales2#397), 2) AS round((thu_sales1 / thu_sales2), 2)#485, round((fri_sales1#390 / fri_sales2#398), 2) AS round((fri_sales1 / fri_sales2), 2)#486, round((sat_sales1#391 / sat_sales2#399), 2) AS round((sat_sales1 / sat_sales2), 2)#487] +- *(1) GpuColumnarToRow false +- GpuShuffledHashJoin [d_week_seq1#384], [(d_week_seq2#392 - 53)], Inner, BuildRight :- GpuProject [d_week_seq#276 AS d_week_seq1#384, sun_sales#404 AS sun_sales1#385, mon_sales#405 AS mon_sales1#386, tue_sales#406 AS tue_sales1#387, wed_sales#407 AS wed_sales1#388, thu_sales#408 AS thu_sales1#389, fri_sales#409 AS fri_sales1#390, sat_sales#410 AS sat_sales1#391] : +- GpuBroadcastHashJoin [d_week_seq#276], [d_week_seq#429], Inner, BuildRight : :- GpuHashAggregate(keys=[d_week_seq#276], functions=[gpusum(cast(CASE WHEN (d_day_name#286 = Sunday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Monday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Tuesday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Wednesday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Thursday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Friday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Saturday) THEN sales_price#401 ELSE null END as double))], output=[d_week_seq#276, sun_sales#404, mon_sales#405, tue_sales#406, wed_sales#407, thu_sales#408, fri_sales#409, sat_sales#410]) : : +- GpuCoalesceBatches TargetSize(2147483647) : : +- GpuColumnarExchange gpuhashpartitioning(d_week_seq#276, 288), true, [id=#241] : : +- GpuHashAggregate(keys=[d_week_seq#276], functions=[partial_gpusum(cast(CASE WHEN (d_day_name#286 = Sunday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Monday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Tuesday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Wednesday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Thursday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Friday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Saturday) THEN sales_price#401 ELSE null END as double))], output=[d_week_seq#276, sum#527, sum#528, sum#529, sum#530, sum#531, sum#532, sum#533]) : : +- GpuProject [sales_price#401, d_week_seq#276, d_day_name#286] : : +- GpuBroadcastHashJoin [sold_date_sk#400], [d_date_sk#272], Inner, BuildRight : : :- GpuUnion : : : :- GpuProject [ws_sold_date_sk#136 AS sold_date_sk#400, ws_ext_sales_price#159 AS sales_price#401] : : : : +- GpuCoalesceBatches TargetSize(2147483647) : : : : +- GpuFilter gpuisnotnull(ws_sold_date_sk#136) : : : : +- GpuFileGpuScan parquet [ws_sold_date_sk#136,ws_ext_sales_price#159] Batched: true, DataFilters: [isnotnull(ws_sold_date_sk#136)], Format: Parquet, Location: InMemoryFileIndex[hdfs://lxsyslab-spark-gpu-p4-master.lxsyslab.baidu.com:8999/tpcds/9.1T_parquet/..., PartitionFilters: [], PushedFilters: [IsNotNull(ws_sold_date_sk)], ReadSchema: struct : : : +- GpuProject [cs_sold_date_sk#0 AS sold_date_sk#402, cs_ext_sales_price#23 AS sales_price#403] : : : +- GpuCoalesceBatches TargetSize(2147483647) : : : +- GpuFilter gpuisnotnull(cs_sold_date_sk#0) : : : +- GpuFileGpuScan parquet [cs_sold_date_sk#0,cs_ext_sales_price#23] Batched: true, DataFilters: [isnotnull(cs_sold_date_sk#0)], Format: Parquet, Location: InMemoryFileIndex[hdfs://lxsyslab-spark-gpu-p4-master.lxsyslab.baidu.com:8999/tpcds/9.1T_parquet/..., PartitionFilters: [], PushedFilters: [IsNotNull(cs_sold_date_sk)], ReadSchema: struct : : +- GpuBroadcastExchange HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint))), [id=#237] : : +- GpuProject [d_date_sk#272, d_week_seq#276, d_day_name#286] : : +- GpuCoalesceBatches TargetSize(2147483647) : : +- GpuFilter (gpuisnotnull(d_date_sk#272) AND gpuisnotnull(d_week_seq#276)) : : +- GpuFileGpuScan parquet [d_date_sk#272,d_week_seq#276,d_day_name#286] Batched: true, DataFilters: [isnotnull(d_date_sk#272), isnotnull(d_week_seq#276)], Format: Parquet, Location: InMemoryFileIndex[hdfs://lxsyslab-spark-gpu-p4-master.lxsyslab.baidu.com:8999/tpcds/9.1T_parquet/..., PartitionFilters: [], PushedFilters: [IsNotNull(d_date_sk), IsNotNull(d_week_seq)], ReadSchema: struct : +- GpuBroadcastExchange HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint))), [id=#246] : +- GpuProject [d_week_seq#276 AS d_week_seq#429] : +- GpuCoalesceBatches TargetSize(2147483647) : +- GpuFilter ((gpuisnotnull(d_year#278) AND (d_year#278 = 2001)) AND gpuisnotnull(d_week_seq#276)) : +- GpuFileGpuScan parquet [d_week_seq#276,d_year#278] Batched: true, DataFilters: [isnotnull(d_year#278), (d_year#278 = 2001), isnotnull(d_week_seq#276)], Format: Parquet, Location: InMemoryFileIndex[hdfs://lxsyslab-spark-gpu-p4-master.lxsyslab.baidu.com:8999/tpcds/9.1T_parquet/..., PartitionFilters: [], PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2001), IsNotNull(d_week_seq)], ReadSchema: struct +- GpuCoalesceBatches RequireSingleBatch +- GpuColumnarExchange gpuhashpartitioning((d_week_seq2#392 - 53), 288), true, [id=#362] +- GpuProject [d_week_seq#276 AS d_week_seq2#392, sun_sales#404 AS sun_sales2#393, mon_sales#405 AS mon_sales2#394, tue_sales#406 AS tue_sales2#395, wed_sales#407 AS wed_sales2#396, thu_sales#408 AS thu_sales2#397, fri_sales#409 AS fri_sales2#398, sat_sales#410 AS sat_sales2#399] +- GpuBroadcastHashJoin [d_week_seq#276], [d_week_seq#457], Inner, BuildRight :- GpuHashAggregate(keys=[d_week_seq#276], functions=[gpusum(cast(CASE WHEN (d_day_name#286 = Sunday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Monday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Tuesday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Wednesday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Thursday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Friday) THEN sales_price#401 ELSE null END as double)), gpusum(cast(CASE WHEN (d_day_name#286 = Saturday) THEN sales_price#401 ELSE null END as double))], output=[d_week_seq#276, sun_sales#404, mon_sales#405, tue_sales#406, wed_sales#407, thu_sales#408, fri_sales#409, sat_sales#410]) : +- GpuCoalesceBatches TargetSize(2147483647) : +- GpuColumnarExchange gpuhashpartitioning(d_week_seq#276, 288), true, [id=#307] : +- GpuHashAggregate(keys=[d_week_seq#276], functions=[partial_gpusum(cast(CASE WHEN (d_day_name#286 = Sunday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Monday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Tuesday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Wednesday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Thursday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Friday) THEN sales_price#401 ELSE null END as double)), partial_gpusum(cast(CASE WHEN (d_day_name#286 = Saturday) THEN sales_price#401 ELSE null END as double))], output=[d_week_seq#276, sum#541, sum#542, sum#543, sum#544, sum#545, sum#546, sum#547]) : +- GpuProject [sales_price#401, d_week_seq#276, d_day_name#286] : +- GpuBroadcastHashJoin [sold_date_sk#400], [d_date_sk#272], Inner, BuildRight : :- GpuUnion : : :- GpuProject [ws_sold_date_sk#136 AS sold_date_sk#400, ws_ext_sales_price#159 AS sales_price#401] : : : +- GpuCoalesceBatches TargetSize(2147483647) : : : +- GpuFilter gpuisnotnull(ws_sold_date_sk#136) : : : +- GpuFileGpuScan parquet [ws_sold_date_sk#136,ws_ext_sales_price#159] Batched: true, DataFilters: [isnotnull(ws_sold_date_sk#136)], Format: Parquet, Location: InMemoryFileIndex[hdfs://lxsyslab-spark-gpu-p4-master.lxsyslab.baidu.com:8999/tpcds/9.1T_parquet/..., PartitionFilters: [], PushedFilters: [IsNotNull(ws_sold_date_sk)], ReadSchema: struct : : +- GpuProject [cs_sold_date_sk#0 AS sold_date_sk#402, cs_ext_sales_price#23 AS sales_price#403] : : +- GpuCoalesceBatches TargetSize(2147483647) : : +- GpuFilter gpuisnotnull(cs_sold_date_sk#0) : : +- GpuFileGpuScan parquet [cs_sold_date_sk#0,cs_ext_sales_price#23] Batched: true, DataFilters: [isnotnull(cs_sold_date_sk#0)], Format: Parquet, Location: InMemoryFileIndex[hdfs://lxsyslab-spark-gpu-p4-master.lxsyslab.baidu.com:8999/tpcds/9.1T_parquet/..., PartitionFilters: [], PushedFilters: [IsNotNull(cs_sold_date_sk)], ReadSchema: struct : +- ReusedExchange [d_date_sk#272, d_week_seq#276, d_day_name#286], GpuBroadcastExchange HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint))), [id=#237] +- GpuBroadcastExchange HashedRelationBroadcastMode(List(cast(input[0, int, true] as bigint))), [id=#265] +- GpuProject [d_week_seq#276 AS d_week_seq#457] +- GpuCoalesceBatches TargetSize(2147483647) +- GpuFilter ((gpuisnotnull(d_year#278) AND (d_year#278 = 2002)) AND gpuisnotnull(d_week_seq#276)) +- GpuFileGpuScan parquet [d_week_seq#276,d_year#278] Batched: true, DataFilters: [isnotnull(d_year#278), (d_year#278 = 2002), isnotnull(d_week_seq#276)], Format: Parquet, Location: InMemoryFileIndex[hdfs://lxsyslab-spark-gpu-p4-master.lxsyslab.baidu.com:8999/tpcds/9.1T_parquet/..., PartitionFilters: [], PushedFilters: [IsNotNull(d_year), EqualTo(d_year,2002), IsNotNull(d_week_seq)], ReadSchema: struct