2017-12-13 8 views
0

pd_df이라는 pandas 데이터 프레임이 있습니다. 아래는 데이터 유형입니다.Spark는 pandas date time 데이터 유형을 bigint로 변환합니다.

pd_df.dtypes 


id     int64 
TEST_TIME    datetime64[ns] 
status    object 
Pkg     object 
test_type    object 
test_name    object 
test_id    int64 
test_value   float64 
test_times   int64 
desc     object 
test_source   object 
GP     float64 
dtype: object 

지금 나는 spark 데이터 프레임이 pd_df을 변환 할.

나는 아래와 같이했습니다.

spark_df = sqlContext.createDataFrame(pd_df) 

성공적으로 spark_df을 만들 수있었습니다. 그러나 데이터 유형이 내 요구 사항과 일치하지 않습니다.

스파크 데이터 프레임의 필수 데이터 유형. 내가 가진 무엇

DataFrame[id: int, test_time: timestamp, status: string, pkg: string, test_type: string, test_name: string, test_id: int, test_value: double, test_times: int, desc: string, test_source: string, GP: double] 

spark_df = sqlContext.createDataFrame(pd_df).withColumn('TEST_TIME1', unix_timestamp(col('TEST_TIME').cast("string"), "MM-dd-yyyy hh mm ss").cast("timestamp")).drop('TEST_TIME') 

또한 "MM-DD-YYYY HH mm 교체, 어떻게 내가

+0

데이터 샘플을 게시하십시오. – desertnaut

답변

1

한번에 원하는 결과를 얻을 수 있습니다

DataFrame[id: bigint, test_time: bigint, status: string, pkg: string, test_type: string, test_name: string, test_id: bigint, test_value: double, test_times: bigint, desc: string, test_source: string, GP: double] 

이하 ss "를 사용자의 시간 소인 형식으로 변경하십시오. 2017 년 12 월 1 일에 타임 스탬프가 12012017이고 형식이 "mmddyyyy"가됩니다.

+0

코드 형식을 입력하십시오. – desertnaut

+0

@Vinoth Chinnasamy 아래 코드를 입력하십시오. 예외 'pyspark.sql.utils.AnalysisException : u "데이터 형식 불일치로 인해'unixtimestamp (TEST_TIME, MM-dd-yyyy hh mm ss) '을 해결할 수 없습니다. 인수 1은 (문자열 또는 날짜 또는 타임 스탬프) 형식을 요구하지만' TEST_TIME '은 bigint 형식입니다. "" – User12345

+0

내 대답이 업데이트되고 코드가 포맷되었습니다. –