diff options
author | wangyang <wangyang@haizhi.com> | 2016-01-30 15:20:57 -0800 |
---|---|---|
committer | Reynold Xin <rxin@databricks.com> | 2016-01-30 15:20:57 -0800 |
commit | de283719980ae78b740e507e4d70c7ebbf6c5f74 (patch) | |
tree | e1735b5c8732304ae8d0879231487c28df044d9b /sql/catalyst | |
parent | 289373b28cd2546165187de2e6a9185a1257b1e7 (diff) | |
download | spark-de283719980ae78b740e507e4d70c7ebbf6c5f74.tar.gz spark-de283719980ae78b740e507e4d70c7ebbf6c5f74.tar.bz2 spark-de283719980ae78b740e507e4d70c7ebbf6c5f74.zip |
[SPARK-13100][SQL] improving the performance of stringToDate method in DateTimeUtils.scala
In jdk1.7 TimeZone.getTimeZone() is synchronized, so use an instance variable to hold an GMT TimeZone object instead of instantiate it every time.
Author: wangyang <wangyang@haizhi.com>
Closes #10994 from wangyang1992/datetimeUtil.
Diffstat (limited to 'sql/catalyst')
-rw-r--r-- | sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala index f18c052b68..a159bc6a61 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala @@ -55,6 +55,7 @@ object DateTimeUtils { // this is year -17999, calculation: 50 * daysIn400Year final val YearZero = -17999 final val toYearZero = to2001 + 7304850 + final val TimeZoneGMT = TimeZone.getTimeZone("GMT") @transient lazy val defaultTimeZone = TimeZone.getDefault @@ -407,7 +408,7 @@ object DateTimeUtils { segments(2) < 1 || segments(2) > 31) { return None } - val c = Calendar.getInstance(TimeZone.getTimeZone("GMT")) + val c = Calendar.getInstance(TimeZoneGMT) c.set(segments(0), segments(1) - 1, segments(2), 0, 0, 0) c.set(Calendar.MILLISECOND, 0) Some((c.getTimeInMillis / MILLIS_PER_DAY).toInt) |