MaxGekk opened a new pull request #25881: [SPARK-29200][SQL] Optimize 
`extract`/`date_part` for epoch
URL: https://github.com/apache/spark/pull/25881
 
 
   ### What changes were proposed in this pull request?
   
   Refactoring of the `DateTimeUtils.getEpoch()` function by avoiding decimal 
operations that are pretty expensive, and converting the final result to the 
decimal type at the end.
   
   ### Why are the changes needed?
   The changes improve performance of the `getEpoch()` method at least up to 
**20 times**.
   Before:
   ```
   Invoke extract for timestamp:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   cast to timestamp                                   256            277       
   33         39.0          25.6       1.0X
   EPOCH of timestamp                                23455          23550       
  131          0.4        2345.5       0.0X
   ```
   After:
   ```
   Invoke extract for timestamp:             Best Time(ms)   Avg Time(ms)   
Stdev(ms)    Rate(M/s)   Per Row(ns)   Relative
   
------------------------------------------------------------------------------------------------------------------------
   cast to timestamp                                   255            294       
   34         39.2          25.5       1.0X
   EPOCH of timestamp                                 1049           1054       
    9          9.5         104.9       0.2X
   ```
   
   ### Does this PR introduce any user-facing change?
   No
   
   ### How was this patch tested?
   
   By existing test from `DateExpressionSuite`.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

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

Reply via email to