#sql #pandas #amazon-web-services #sqlalchemy
#sql #pandas #amazon-веб-сервисы #sqlalchemy
Вопрос:
Я использую пакет под названием aws data wrangler для чтения таблицы MYSQL из каталога Клея в фрейм данных Pandas.
Шаги просты. Сначала создайте sql_engine
и оператор sql, затем выполните оператор sql с помощью wr.db.read_sql_query(query, con=sql_engine)
Результирующий фрейм данных
transaction_date created_on modified_on
0 2017-10-04 00:00:00 2018-10-05 10:56:39.000000 2018-10-05 10:56:39.000000
1 2017-10-04 00:00:00 2018-10-05 10:56:39.000000 2018-10-05 10:56:39.000000
2 2017-10-04 00:00:00 2018-10-05 10:56:39.000000 2018-10-05 10:56:39.000000
3 2017-10-04 00:00:00 2018-10-05 10:56:39.000000 2018-10-05 10:56:39.000000
4 2017-10-04 00:00:00 2018-10-05 10:56:39.000000 2018-10-05 10:56:39.000000
... ... ... ...
33901 2020-11-05 06:20:25 2020-11-06 06:20:34.100835 2020-11-06 06:20:34.100877
33902 2020-11-05 06:20:34 2020-11-06 06:20:43.551528 2020-11-06 06:20:43.551551
33903 2020-11-05 06:34:58 2020-11-06 06:35:34.719571 2020-11-06 06:35:34.719592
33904 2020-11-05 06:35:34 2020-11-06 06:35:45.229119 2020-11-06 06:35:45.229141
33905 2020-11-05 06:35:45 2020-11-06 06:36:03.171246 2020-11-06 06:36:03.171269
в то время как дата-время в базе данных
transaction_date created_on modified_on
2017-10-04 08:00:00 2018-10-05 18:56:39 2018-10-05 18:56:39
2017-10-04 08:00:00 2018-10-05 18:56:39 2018-10-05 18:56:39
2017-10-04 08:00:00 2018-10-05 18:56:39 2018-10-05 18:56:39
2017-10-04 08:00:00 2018-10-05 18:56:39 2018-10-05 18:56:39
Я живу в Гонконге. Дата-время в фрейме данных, похоже, вычитается на 8 часов.
Я также задал вопрос в Github. Разработчик предложил мне указать часовой пояс на уровне сеанса, например,
sql_engine = wr.catalog.get_engine(connection,
connect_args={
"init_command": "SET SESSION time_zone=' 00:00'"
})
Но, похоже, что изменение часового пояса сеанса ничего не меняет. Это означает, что даже если я меняю часовой пояс на UTC или UTC 8, результирующий фрейм данных остается тем же.