aboutsummaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorwangyang <wangyang@haizhi.com>2016-01-30 15:20:57 -0800
committerReynold Xin <rxin@databricks.com>2016-01-30 15:20:57 -0800
commitde283719980ae78b740e507e4d70c7ebbf6c5f74 (patch)
treee1735b5c8732304ae8d0879231487c28df044d9b /sql
parent289373b28cd2546165187de2e6a9185a1257b1e7 (diff)
downloadspark-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')
-rw-r--r--sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/util/DateTimeUtils.scala3
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)