2017-11-27 4 views
1

mysql에서 pyspark으로 데이터를 가져 오려고합니다. mysql에서 pyspark으로 데이터를 데이터 프레임으로 가져올 수 있습니다. 그러나 데이터 프레임은 daylightsavings 시간 동안 타임 스탬프 열의 잘못된 시간을 표시합니다.mysql에서 데이터를 가져 오는 중

다음은 일광 절약 시간제 동안 데이터가있는 테이블의 데이터입니다.

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 테이블에서와 동일한 데이터를 갖고 싶어. 어떻게하면 결과를 얻을 수 있습니까?

데이터가 동일해야하기 때문에 어떤 변경을해야합니까? 열

데이터 유형 :

id int 
package_time timestamp 
system_time timestamp 
package string 
group strimg 
+0

질문을 편집하여 시간 열의 데이터 유형을 알려주십시오. –

+0

@ O.Jones 질문에 데이터 유형을 추가했습니다. 제발보십시오 – User12345

답변

1

아하! 귀하의 날짜 기록 값에 대한 데이터 유형은 TIMESTAMP입니다. 이들은 데이터베이스의 UTC에 저장됩니다. 검색 할 때 현재 시간대 설정에 따라 현지 시간으로 변환됩니다.

쿼리를 실행하기 전에이 SQL 명령을 사용하여 UTC로 모두 가져올 수 있습니다. 당신이 고려 일광 절약 시간 태평양 지역의 시간을 표시 모든 datestamps을 원하는 경우

SET time_zone='UTC'; 

, 당신은이를 사용할 수 있습니다

SET time_zone = 'America/Vancouver'; 

당신이 태평양 표준 시간에 모든 datestamps을 원하는 경우에,없이 일광 절약 시간을 감안할 때 이것을 사용할 수 있습니다 :

SET time_zone='-08:00'; 
+0

당신의 솔루션은 mysql에서 작동합니다. 그러나 이것은'spark'에서 작동하지 않을 것이라고 생각하지 않습니다. –

+0

@ O.Jones 일광 절약 시간을 고려하기 위해'time_zone'을 어떻게 설정할 수 있습니까? –

관련 문제