Python 在Spark中读取CSV文件时,Datetime/Timestamp被视为字符串

Python 在Spark中读取CSV文件时,Datetime/Timestamp被视为字符串,python,csv,apache-spark,dataframe,pyspark,Python,Csv,Apache Spark,Dataframe,Pyspark,我正在spark中读取CSV文件并推断模式 在正确转换图式方面有困难 df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true',dateFormat ='yyyy-MM-dd').load('ACTIVITY.csv') # I have to use below two lines to convert the String type to time st

我正在spark中读取CSV文件并推断模式

在正确转换图式方面有困难

df = sqlContext.read.format('com.databricks.spark.csv').options(header='true', inferschema='true',dateFormat ='yyyy-MM-dd').load('ACTIVITY.csv')

# I have to use below two lines to convert the String type to time stamp
#df = (df.withColumn('START_DT', df.START_DT.cast('timestamp'))
#       .withColumn('END_DT', df.END_DT.cast('timestamp')))
df.printSchema() 

有没有更好的方法来推断模式而不是对每一列进行类型转换?在我的用例中,我可能会有大量的列,并且很难对每个列进行类型转换

一种最简单的方法是定义一个模式,并在读取csv文件时使用该模式。当您推断模式时,时间戳列得到什么类型?一串另外,您使用哪一版本的Spark?时间戳是字符串形式的,Spark版本是2。3@RameshMaharjan:创建模式的问题是它将是静态结构类型,我在AWS S3文件夹中有10个不同的文件,我正在尝试推断模式。维护多个模式类型将很困难。