我有一个Spark(v1.6.3)数据框,我将其转换为Pandas数据帧(Python v2.7.12)。有2个时间戳列,但其中一列转换为datetime64
,而另一列转换为object
。对于发生了什么有什么想法?
df.printSchema()
这导致以下结果。
root |-- id: string (nullable = true) |-- gps_id: integer (nullable = true) |-- start_date: timestamp (nullable = true) |-- end_date: timestamp (nullable = true)
df.take(1)
以下结果。
[Row(id=u'000000', gps_id=860, start_date=datetime.datetime(2017, 7, 29, 0, 0), end_date=datetime.datetime(2018, 9, 6, 0, 0))]
pdf = df.toPandas()
pdf.dtypes
id object gps_id int32 start_date datetime64[ns] end_date object dtype: object
有趣的是,如果我输入pdf.head(1)
,我会看到以下内容。请注意start_date
没有附加HH:mm:ss
。
id gps_id start_date end_date 000000 860 2017-09-29 2018-09-06 00:00:00
生成数据集的SQL非常简单,如下所示。
select
id,
gps_id,
cast(start_date as timestamp) as start_date,
cast(end_date as timestamp) as end_date
from gps_tbl