问题描述
是否可以将具有4位数字的年份值的列转换为DATE类型,并使其在Foundry中显示出来?
现在,我正在使用名为year
的列,该列包含类似1999,2001,2010
的值,其类型为STRING。
当我编写代码将其转换为日期时,它会像2010-01-01
那样将4位数字的年份转换为10位数字的年,月和日。
这是我尝试过的一些代码:
-
df = df.withColumn('year_mfr',F.trunc(df.year_mfr,'yyyy'))
-
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
一种解决方法是将年份转换为整数。