从 mysql 导入数据

importing data from mysql

我正在尝试将数据从 mysql 导入到 pyspark。我能够将数据从 mysql 获取到 pyspark 作为数据框。但是数据框在 daylightsavings 时间内显示时间戳列的错误时间。

以下是 table 在夏令时 tTme 期间获取数据的数据。

MySQL数据

id  Package_time            System_time             PACKAGE GROUP                               
1   3/12/2017 2:19:51 AM    2017-03-11 18:13:43.577 TEST_1  STATUS                              
2   3/12/2017 2:19:53 AM    2017-03-11 18:13:43.577 TEST_1  ALARM                               
3   3/12/2017 2:19:53 AM    2017-03-11 18:13:43.577 TEST_1  ALARM                               
4   3/12/2017 2:19:53 AM    2017-03-11 18:13:43.577 TEST_1  ALARM                               
5   3/12/2017 2:19:54 AM    2017-03-11 18:13:44.611 TEST_1  STATUS                      

PySpark 数据

id  Package_time            System_time             PACKAGE GROUP                               
1   3/12/2017 3:19:51 AM    2017-03-11 18:13:43.577 TEST_1  STATUS
2   3/12/2017 3:19:53 AM    2017-03-11 18:13:43.577 TEST_1  ALARM
3   3/12/2017 3:19:53 AM    2017-03-11 18:13:43.577 TEST_1  ALARM
4   3/12/2017 3:19:53 AM    2017-03-11 18:13:43.577 TEST_1  ALARM
5   3/12/2017 3:19:54 AM    2017-03-11 18:13:44.611 TEST_1  STATUS

我希望 pyspark 数据框的数据与 mysql table 中的数据相同。我怎样才能达到我的结果。

我需要做哪些更改才能确保两个数据相同。

列的数据类型:

id int
package_time timestamp
system_time timestamp
package string
group strimg

啊哈!您的日期戳值有 TIMESTAMP 数据类型。这些以 UTC 格式存储在您的数据库中。检索时会根据当前时区设置将它们转换为当地时间。

您可以在 运行 查询之前使用此 SQL 命令以 UTC 格式获取它们。

 SET time_zone='UTC';

如果您希望所有日期戳都显示为太平洋当地时间,并考虑夏令时,您可以使用:

SET time_zone = 'America/Vancouver';

如果您想要太平洋标准时间的所有日期戳,而不考虑夏令时,您可以使用此:

SET time_zone='-08:00';