[FEA] Support time zones that are not UTC
Is your feature request related to a problem? Please describe. This is related to #6603 but a super set of it. I will list out the issues here to complete both sets of work, and then reference some of them in #6603 too.
The following are the tasks to do:
Phase I (P0) - Release 23.12
- [x] https://github.com/NVIDIA/spark-rapids/issues/6831
- [x] https://github.com/NVIDIA/spark-rapids/issues/9737
- [x] https://github.com/NVIDIA/spark-rapids/issues/6832
- [x] https://github.com/NVIDIA/spark-rapids/issues/9802
- [x] https://github.com/NVIDIA/spark-rapids/issues/9805
- [X] https://github.com/NVIDIA/spark-rapids/issues/9804
- [x] https://github.com/NVIDIA/spark-rapids/issues/9829 (might move to Phase II)
- [x] https://github.com/NVIDIA/spark-rapids/issues/9915 (might move to Phase II)
Phase II (P0) - Release 24.02
- [x] https://github.com/NVIDIA/spark-rapids/issues/9606
- [x] https://github.com/NVIDIA/spark-rapids/issues/9815
- [x] https://github.com/NVIDIA/spark-rapids/issues/9605
- [x] https://github.com/NVIDIA/spark-rapids/issues/6836
- [x] https://github.com/NVIDIA/spark-rapids/issues/9927
- [ ] https://github.com/NVIDIA/spark-rapids/issues/10079
- [x] https://github.com/NVIDIA/spark-rapids/issues/9801
- [x] https://github.com/NVIDIA/spark-rapids/issues/6834
- [x] https://github.com/NVIDIA/spark-rapids/issues/9747
- [x] https://github.com/NVIDIA/spark-rapids/issues/9881
- [x] https://github.com/NVIDIA/spark-rapids/issues/9855
- [ ] https://github.com/NVIDIA/spark-rapids/issues/9633
- [ ] https://github.com/NVIDIA/spark-rapids/issues/6840
- [ ] https://github.com/NVIDIA/spark-rapids/issues/9997 2 kernel: Parse string to local time; convert local time to UTC time.
- [ ] https://github.com/NVIDIA/spark-rapids/issues/10034
- [ ] https://github.com/NVIDIA/spark-rapids/issues/10035
- [ ] https://github.com/NVIDIA/spark-rapids/issues/10083
Phase III/Uncategorized (P1)
- [ ] https://github.com/NVIDIA/spark-rapids/issues/6835
- [x] https://github.com/NVIDIA/spark-rapids/issues/10006
- [ ] https://github.com/NVIDIA/spark-rapids/issues/6838
- [ ] https://github.com/NVIDIA/spark-rapids/issues/6841
- [x] https://github.com/NVIDIA/spark-rapids/issues/6842
- [ ] https://github.com/NVIDIA/spark-rapids/issues/6843
- [ ] https://github.com/NVIDIA/spark-rapids/issues/6844
- [ ] https://github.com/NVIDIA/spark-rapids/issues/6845
- [ ] https://github.com/NVIDIA/spark-rapids/issues/6846
- [ ] https://github.com/NVIDIA/spark-rapids-jni/issues/1588
- [x] https://github.com/NVIDIA/spark-rapids/issues/9916
- [ ] https://github.com/NVIDIA/spark-rapids-jni/issues/1571
Uncategorized
- [ ] https://github.com/NVIDIA/spark-rapids/issues/9653
- [ ] https://github.com/NVIDIA/spark-rapids/issues/9912
- [ ] https://github.com/NVIDIA/spark-rapids/issues/9913
- [x] https://github.com/NVIDIA/spark-rapids/issues/9914 (might move to Phase II)
Test improvements
- [ ] #10039
- [ ] #10040
- [x] #10041
- [ ] #141
Benchmarking
- [ ] https://github.com/NVIDIA/spark-rapids/issues/10142
In general we are going to try to have timestamps follow what Spark does and store them in UTC. Then convert the inputs to the desired timezone whenever we need to operate on it in a different time zone.
We should also go through other operators and see if there are things that we can/should support once we can support timezones.
Not sure if FromUTCTimestamp support PST should be a sub task.
CC @viadea
Follow on issue: https://github.com/NVIDIA/spark-rapids/issues/9570
Adding in some issues for testing too
https://github.com/NVIDIA/spark-rapids/issues/9627
https://github.com/NVIDIA/spark-rapids/issues/9633
Test cases statistics:
| code snapshot | TZ | passed | skipped | xfailed | xpassed | total |
|---|---|---|---|---|---|---|
| Before xfail all the impacted cases #9773 | UTC | 19361 | 2210 | 373 | 283 | 22227 |
| After xfail all the impacted cases #9773 | non-UTC | 7589 | 2214 | 3719 | 8613 | 22135 |
| Introduced fine grained checker from #9719 | non-UTC | 20173 | 1411 | 358 | 382 | 22324 |
Not planing work on this for release 24.04 @sameerz can we move it to next release?