在pyspark中将一列转换为日期格式(ddmmmyyyy)我将整列(日期)设置为null

3zwjbxry  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(421)

在将week\u end\u date列的格式从string更改为date时,我将整列设置为null。

from pyspark.sql.functions import unix_timestamp, from_unixtime
df = spark.read.csv('dbfs:/location/abc.txt', 
header=True)

df2 = df.select(
'week_end_date', 
from_unixtime(unix_timestamp('week_end_date', 'MM-dd-yyyy')).alias('date')
).show()

print(df2)

a0x5cqrl

a0x5cqrl1#

您的日期格式不正确。应该是的 ddMMMyy . 您也可以直接使用 to_date 而不是unix时间戳函数。

import pyspark.sql.functions as F

df = spark.read.csv('dbfs:/location/abc.txt', header=True)

df2 = df.select(
    'week_end_date', 
    F.to_date('week_end_date', 'ddMMMyy').alias('date')
)

如果要将格式转换为 MM-dd-yyyy ,您可以使用 date_format :

df2 = df.select(
    'week_end_date', 
    F.date_format(F.to_date('week_end_date', 'ddMMMyy'), 'MM-dd-yyyy').alias('date')
)

相关问题