将日期-月-年-时间转换为日期格式pyspark

yrefmtwq  于 2021-07-14  发布在  Spark
关注(0)|答案(1)|浏览(355)

我有一个文件的时间戳列。当我试图用自己设计的模式读取文件时,它正在用null填充datetime列。
源文件包含如下数据

created_date
31-AUG-2016 02:48:38
31-AUG-2016 10:37:59
31-AUG-2016 23:37:51

在这里我使用下面的代码片段

from pyspark.sql.types import *
Raw_Schema = StructType([StructField("created_date",DateType(),True)])

DF = spark.read.csv("csv").option("header","true").schema(Raw_schema).load("\path")
DF.display()

created_date
null
null
null

在上面的示例中,df.display()将所有输入的结果显示为null。然而,我的预期产出如下:

Created_Date
31-08-2016 
31-08-2016 
31-08-2016
wa7juj8i

wa7juj8i1#

您需要提供日期格式,因为csv文件中的格式是非标准的。

df = (spark.read
    .format("csv")
    .option("header","true")
    .option("dateFormat", "dd-MMM-yyyy HH:mm:ss")
    .schema(Raw_schema)
    .load("filepath")
)

df.show()
+------------+
|created_date|
+------------+
|  2016-08-31|
|  2016-08-31|
|  2016-08-31|
+------------+

相关问题