opened
ueshin
username_0
## What changes were proposed in this pull request?

Because the method `TimeZone.getTimeZone(String ID)` is synchronized on the TimeZone class, concurrent call of this method will become a bottleneck.
This especially happens when casting from string value containing timezone info to timestamp value, which uses `DateTimeUtils.stringToTimestamp()` and gets TimeZone instance on the site.

This pr makes a cache of the generated TimeZone instances per thread to avoid the synchronization.

## How was this patch tested?

Existing tests.
[SPARK-20588][SQL] Cache TimeZone instances per thread.
issue
created
viirya
username_1
LGTM
comment
created
gatorsmile
username_2
Thanks! Merging to master/2.2
comment