GitHub user nongli opened a pull request:

    https://github.com/apache/spark/pull/9774

    [WIP] [SPARK-11787] [SQL] Improve Parquet scan performance when using…

    … flat schemas.
    
    WIP: this still needs to implement more types and some type conversion 
logic.
    
    This patch adds an alternate to the Parquet RecordReader from the 
parquet-mr project
    that is much faster for flat schemas. Instead of using the general 
converter mechanism
    from parquet-mr, this directly uses the lower level APIs from 
parquet-columnar and a
    customer RecordReader that directly assembles into UnsafeRows.
    
    This is optionally disabled and only used for supported schemas.
    
    Using the benchmark in PerfTest (I'll remove before this is ready to merge) 
the rate
    for the entire query changes from:
    
    For 1 Column:
      Before: 11.3M rows/second
      After: 18.2M rows/second
    
    For 2 Columns:
      Before: 7.2M rows/second
      After: 11.2M rows/second
    
    For 5 Columns:
      Before: 2.9M rows/second
      After: 4.5M rows/second

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/nongli/spark parquet

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/spark/pull/9774.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #9774
    
----
commit 56f86c5e7ef447738c5bfd67d1a58a8c1d755f0a
Author: Nong Li <[email protected]>
Date:   2015-11-13T01:27:12Z

    [WIP] [SPARK-11787] [SQL] Improve Parquet scan performance when using flat 
schemas.
    
    WIP: this still needs to implement more types and some type conversion 
logic.
    
    This patch adds an alternate to the Parquet RecordReader from the 
parquet-mr project
    that is much faster for flat schemas. Instead of using the general 
converter mechanism
    from parquet-mr, this directly uses the lower level APIs from 
parquet-columnar and a
    customer RecordReader that directly assembles into UnsafeRows.
    
    This is optionally disabled and only used for supported schemas.
    
    Using the benchmark in PerfTest (I'll remove before this is ready to merge) 
the rate
    for the entire query changes from:
    
    For 1 Column:
      Before: 11.3M rows/second
      After: 18.2M rows/second
    
    For 2 Columns:
      Before: 7.2M rows/second
      After: 11.2M rows/second
    
    For 5 Columns:
      Before: 2.9M rows/second
      After: 4.5M rows/second

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

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

Reply via email to