Spark将pandas日期时间数据类型转换为bigint

时间:2017-12-13 00:20:32

标签: python pandas pyspark

我有一个名为pandas的{​​{1}}数据框。以下是数据类型。

pd_df

现在我想将此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 转换为pd_df数据框。

我在下面做过。

spark

我能够成功创建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]

如何实现我想要的结果

1 个答案:

答案 0 :(得分:1)

尝试,

 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 ss"到时间戳的格式。假设您的时间戳为2017年12月1日的12012017,格式为" mmddyyyy"