Github user wangyum commented on the issue: https://github.com/apache/spark/pull/21556 Benchmark results: ``` ###############################[ Pushdown benchmark for Decimal ]################################ Java HotSpot(TM) 64-Bit Server VM 1.8.0_151-b12 on Mac OS X 10.12.6 Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz Select 1 decimal(9, 2) row (value = 7864320): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 4004 / 5309 3.9 254.5 1.0X Parquet Vectorized (Pushdown) 1401 / 1431 11.2 89.1 2.9X Native ORC Vectorized 4499 / 4567 3.5 286.0 0.9X Native ORC Vectorized (Pushdown) 899 / 961 17.5 57.2 4.5X Select 10% decimal(9, 2) rows (value < 1572864): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 5376 / 6437 2.9 341.8 1.0X Parquet Vectorized (Pushdown) 2696 / 2754 5.8 171.4 2.0X Native ORC Vectorized 5458 / 5623 2.9 347.0 1.0X Native ORC Vectorized (Pushdown) 2230 / 2255 7.1 141.8 2.4X Select 50% decimal(9, 2) rows (value < 7864320): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 8280 / 8487 1.9 526.4 1.0X Parquet Vectorized (Pushdown) 7716 / 7757 2.0 490.6 1.1X Native ORC Vectorized 9144 / 9495 1.7 581.4 0.9X Native ORC Vectorized (Pushdown) 7918 / 8118 2.0 503.4 1.0X Select 90% decimal(9, 2) rows (value < 14155776): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 9648 / 9676 1.6 613.4 1.0X Parquet Vectorized (Pushdown) 9647 / 9778 1.6 613.3 1.0X Native ORC Vectorized 10782 / 10867 1.5 685.5 0.9X Native ORC Vectorized (Pushdown) 10108 / 10269 1.6 642.6 1.0X Select 1 decimal(18, 2) row (value = 7864320): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 4066 / 4147 3.9 258.5 1.0X Parquet Vectorized (Pushdown) 84 / 89 188.0 5.3 48.6X Native ORC Vectorized 5430 / 5512 2.9 345.3 0.7X Native ORC Vectorized (Pushdown) 1054 / 1076 14.9 67.0 3.9X Select 10% decimal(18, 2) rows (value < 1572864): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 5028 / 5154 3.1 319.7 1.0X Parquet Vectorized (Pushdown) 1360 / 1421 11.6 86.5 3.7X Native ORC Vectorized 6266 / 6360 2.5 398.4 0.8X Native ORC Vectorized (Pushdown) 2513 / 2550 6.3 159.8 2.0X Select 50% decimal(18, 2) rows (value < 7864320): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 8571 / 8600 1.8 544.9 1.0X Parquet Vectorized (Pushdown) 6455 / 6713 2.4 410.4 1.3X Native ORC Vectorized 10138 / 10353 1.6 644.5 0.8X Native ORC Vectorized (Pushdown) 8166 / 8418 1.9 519.2 1.0X Select 90% decimal(18, 2) rows (value < 14155776): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 12184 / 12253 1.3 774.7 1.0X Parquet Vectorized (Pushdown) 11720 / 11743 1.3 745.1 1.0X Native ORC Vectorized 14024 / 14172 1.1 891.6 0.9X Native ORC Vectorized (Pushdown) 13966 / 13996 1.1 887.9 0.9X Select 1 decimal(38, 2) row (value = 7864320): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 5650 / 6140 2.8 359.2 1.0X Parquet Vectorized (Pushdown) 112 / 186 140.5 7.1 50.5X Native ORC Vectorized 5890 / 6826 2.7 374.5 1.0X Native ORC Vectorized (Pushdown) 1151 / 1396 13.7 73.2 4.9X Select 10% decimal(38, 2) rows (value < 1572864): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 6668 / 6863 2.4 424.0 1.0X Parquet Vectorized (Pushdown) 1766 / 1781 8.9 112.3 3.8X Native ORC Vectorized 6421 / 6448 2.4 408.2 1.0X Native ORC Vectorized (Pushdown) 2648 / 2701 5.9 168.3 2.5X Select 50% decimal(38, 2) rows (value < 7864320): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 11268 / 11292 1.4 716.4 1.0X Parquet Vectorized (Pushdown) 8544 / 8574 1.8 543.2 1.3X Native ORC Vectorized 10975 / 11455 1.4 697.8 1.0X Native ORC Vectorized (Pushdown) 9065 / 9166 1.7 576.3 1.2X Select 90% decimal(38, 2) rows (value < 14155776): Best/Avg Time(ms) Rate(M/s) Per Row(ns) Relative ------------------------------------------------------------------------------------------------ Parquet Vectorized 15878 / 15972 1.0 1009.5 1.0X Parquet Vectorized (Pushdown) 15141 / 15328 1.0 962.6 1.0X Native ORC Vectorized 15407 / 16003 1.0 979.5 1.0X Native ORC Vectorized (Pushdown) 15347 / 15414 1.0 975.7 1.0X ```
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org