我正在阅读的CSV文件包含3列。以下是列的格式。
以下代码允许对所有列进行一次时间格式化。
schema_datatype = StructType([StructField('DateTime1',TimestampType(),True),
StructField('DateTime2',TimestampType(),True),
StructField('Date',DataType(),True)])
df= spark.read.csv(header=True,\
path="sample.csv",\
schema=schema_datatype, \
timestampFormat="mm/dd/yyyy hh:mm:ss")
但是如何在使用read.csv时指定每列的日期格式。 PS:我使用Spark 2.1.0
由于
答案 0 :(得分:0)
我也有类似的要求。我使用下面的代码使用推断模式选项读取csv。
Dataset<Row> data = sparkSession.read().format(fileType).option("header",header).option("inferSchema", "true").option("delimiter",delimeter).option("mode", "DROPMALFORMED").load(filePath);
Then i formatted the date using the below statement.
data=data.withColumn("the_date", to_date(unix_timestamp(col("the_date"), "mm/dd/yyyy").cast("timestamp")));