Я подключаюсь к базе данных через Impala, используя RI, в моем наборе данных есть столбец даты, и я работаю в часовом поясе GMT + 3.Когда я подключаюсь к базе данных, я так отображаю свои данные.
drv <- JDBC("com.microsoft.sqlserver.jdbc.SQLServerDriver","/root/.../sqljdbc4-2.0.jar")
conn <- dbConnect(drv, "jdbc:sqlserver://port",<user>, <password>)
dbGetQuery(conn, "select eventdate from sample")
Ниже приведен результат.
eventdate
1 2017-01-31
2 2017-01-31
3 2017-01-31
4 2017-01-31
5 2017-01-31
6 2017-01-31
Но мне нужно подключиться через impala к sqlserver, и этосделайте, как показано ниже.
drv <- JDBC("com.cloudera.impala.jdbc41.Driver","/root/.../ImpalaJDBC41.jar")
impala <- src_impala(drv, "jdbc:impala://host","username", "password")
dbGetQuery(impala, "select eventdate from sample")
и я получу результат в виде
eventdate
1 2017-01-30 21:00:00.000000000
2 2017-01-30 21:00:00.000000000
3 2017-01-30 21:00:00.000000000
4 2017-01-30 21:00:00.000000000
5 2017-01-30 21:00:00.000000000
Так что по умолчанию он принимает часовой пояс GMT и удаляет 3 часа из фактических данных.Как не допустить этого.
Можно ли изменить часовой пояс при подключении?Извлечение данных и изменение времени с помощью tz()
может не сработать в моем случае, поскольку это огромный набор данных, а само извлечение занимает время.