如何在Foundry Code工作簿中将字符串列具有4位数字的年值转换为DATE类型?

问题描述

是否可以将具有4位数字的年份值的列转换为DATE类型,并使其在Foundry中显示出来?

现在,我正在使用名为year的列,该列包含类似1999,2001,2010的值,其类型为STRING。

当我编写代码将其转换为日期时,它会像2010-01-01那样将4位数字的年份转换为10位数字的年,月和日。

这是我尝试过的一些代码

  1. df = df.withColumn('year_mfr',F.trunc(df.year_mfr,'yyyy'))
  2. df = df.withColumn('year_mfr',F.to_date(df.year_mfr,'yyyy'))

解决方法

spark中的日期类型被定义为10位数字的年月日,因此很遗憾,无法截断它...

https://spark.apache.org/docs/1.5.0/api/java/org/apache/spark/sql/types/DateType.html

一种解决方法是将年份转换为整数。