gpt4 book ai didi

apache-spark - 如何在将 CSV 读取到 Spark 中的数据帧时指定多个 TimestampType 和 DataType 格式?

转载 作者:行者123 更新时间:2023-12-04 05:04:25 25 4
gpt4 key购买 nike

我正在阅读的 CSV 文件包含 3 列。以下是列的格式。

  1. DateTime1 的格式为 "mm/dd/yyyy hh:mm:ss"
  2. DateTime2 格式为"dd/mm/yy hh:mm:ss"
  3. 日期格式为"mm/dd/yyyy"

下面的代码允许所有列使用一种时间格式。

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

谢谢

最佳答案

我也有类似的需求。我使用以下代码使用推断模式选项读取 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")));

关于apache-spark - 如何在将 CSV 读取到 Spark 中的数据帧时指定多个 TimestampType 和 DataType 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46724364/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com