我正在使用Spark 2.1.0,Scala 2.11.8和Oracle 12c,同时将火花数据框加载到Oracle它转换时间,服务器上的时区是EDT,我将其更改为亚洲/加尔各答,因为第1条记录中的日期不是在EDT有效(DST在特定时间踢了)。以下是默认的时区代码和数据框
import java.util.TimeZone
val tz= TimeZone.getTimeZone("Asia/Kolkata")
TimeZone.setDefault(tz)
//Create a DataFrame to Load Data
df3.show
+---+----------+--------------------+
| id| something| dateee|
+---+----------+--------------------+
| 1|Date ---- |2017-03-12 02:02:...|
| 2|Date ---- |2017-02-12 02:02:...|
| 3|Date ---- |2017-01-12 02:02:...|
| 4|Date ---- |2017-08-01 11:21:...|
+---+----------+--------------------+
当我运行df3.write.mode("append").jdbc(Url, "test_timestamp", dbProp)
加载到数据库中的数据是
1 Date ---- 3/11/2017 3:32:00 PM
2 Date ---- 2/11/2017 3:32:00 PM
3 Date ---- 1/11/2017 3:32:00 PM
4 Date ---- 8/1/2017 1:51:33 AM
表格式 -
Name Null? Type
----------------------------------------- -------- ------------------------
id NUMBER(38)
something VARCHAR2(100)
dateee DATE
我想在DataFrame中加载时间戳。
当我不使用java.util.TimeZone
并将另一个TimeZone设置为默认值时,这不会发生。