Pyspark:将儒略日期转换为日历日期

Pyspark : Convert Julian Date to Calendar date

我有一个带有儒略日期的 pySpark DataFrame 列。我尝试将日期转换为日历日期。

number julian_date
1 17196
2 17199
3 17281

我尝试使用以下代码:

spdf = spdf.withColumn('date_new',functions.to_date(functions.from_unixtime("julian_date")))

但是,我得到的输出为:

number julian_date date_new
1 17196 1970-01-01
2 17199 1970-01-01
3 17281 1970-01-01

请帮忙。提前致谢

儒略日期由 day-of-year 的 2 个年份数字和 3 个数字组成。

例如:17196是2017年的第196天,也就是2017-07-15

因此,您可以使用 to_date 并使用年 (y) 和 day-of-year (D) 格式。 (参考:date pattern

df.withColumn('date_new', functions.to_date(df.julian_date, 'yyDDD'))

# If julian_date is not String type.
# df.julian_date.cast(StringType())