从具有不同时间戳/日期格式的CSV中读取Pyspark Dataframe

ma8fv8wu  于 2022-11-28  发布在  Spark
关注(0)|答案(1)|浏览(125)

我有一个CSV文件,我需要阅读与Pyspark。
CSV具有各种日期和时间戳字段,时间戳格式为yyyyMMddHHmmss,日期为yyyMMdd
现在我需要用StructType([StructField()])声明模式,我可以对那些字段使用DateType()TimestampType()吗?否则我的格式会有问题。

rqqzpn5f

rqqzpn5f1#

您可以使用DateType表示日期,TimestampType表示日期时间。此外,您需要提供dateFormattimestampFormat选项,如here所述。

schema = StructType([StructField('datetime_col', TimestampType()), StructField('date_col', DateType())])

df = spark.read.option("header", True).option("dateFormat", "yyyyMMdd").option("timestampFormat", "yyyyMMddHHmmss").schema(schema).csv("/content/sample_data/test.csv")

df.show(truncate=False)

+---------------+------------+
|datetime_col   |date_col    |
+---------------+------------+
|20221103191500 |20221103    |
+---------------+------------+

df.printSchema()

root
 |-- datetime_col: string (nullable = true)
 |-- date_col: string (nullable = true)

使用的CSV文件示例:

datetime_col, date_col
20221103191500, 20221103

相关问题