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



i有一个pandas数据框,称为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]

我得到的是下面的

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]

如何达到我想要的结果

尝试,

 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"

最新更新