我正在尝试将csv文件读取到数据帧中,csv fileThe csv文件如下所示。

单元格值仅包含小时信息和缺少日期信息。我想将这个csv文件读入数据帧,并将计时信息转换为类似2021-05-07 04:04.00的格式,即,我想添加日期信息。如何做到这一点呢?
我使用了以下代码,但似乎pyspark只是将日期信息添加为1970-01-01,这是一种系统设置。
spark = SparkSession.builder.getOrCreate()
spark.conf.set("spark.sql.legacy.timeParserPolicy","LEGACY")
df_1 = spark.read.csv('test1.csv', header = True)
df_1 = df_1.withColumn('Timestamp', to_timestamp(col('Timing'), 'HH:mm'))
df_1.show(truncate=False)我得到了以下结果。
+-------+-------------------+
| Timing| Timestamp|
+-------+-------------------+
|04:04.0|1970-01-01 04:04:00|
|19:04.0|1970-01-01 19:04:00|发布于 2021-05-08 16:09:06
您可以在调用to_timestamp之前连接日期字符串
import pyspark.sql.functions as F
df2 = df_1.withColumn(
'Timestamp',
F.to_timestamp(
F.concat_ws(' ', F.lit('2021-05-07'), 'Timing'),
'yyyy-MM-dd HH:mm.s'
)
)
df2.show()
+-------+-------------------+
| Timing| Timestamp|
+-------+-------------------+
|04:04.0|2021-05-07 04:04:00|
|19:04.0|2021-05-07 19:04:00|
+-------+-------------------+https://stackoverflow.com/questions/67444579
复制相似问题