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"