Liang-Chi Hsieh created SPARK-19355:
---------------------------------------

             Summary: Use map output statistices to improve global limit's 
parallelism
                 Key: SPARK-19355
                 URL: https://issues.apache.org/jira/browse/SPARK-19355
             Project: Spark
          Issue Type: Improvement
          Components: SQL
            Reporter: Liang-Chi Hsieh


A logical Limit is performed actually by two physical operations LocalLimit and 
GlobalLimit.

In most of time, before GlobalLimit, we will perform a shuffle exchange to 
shuffle data to single partition. When the limit number is very big, we shuffle 
a lot of data to a single partition and significantly reduce parallelism, 
except for the cost of shuffling.

This change tries to perform GlobalLimit without shuffling data to single 
partition. Instead, we perform the map stage of the shuffling and collect the 
statistics of the number of rows in each partition. Shuffled data are actually 
all retrieved locally without from remote executors.

Once we get the number of output rows in each partition, we only take the 
required number of rows from the locally shuffled data.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to