我正在使用Databricks和SparkR,尝试从Date字段中提取月份,但在尝试使用功能month()时始终出现以下错误:
as.POSIXlt.default(x,tz = tz(x))中的错误: as.POSIXlt.default(x,tz = tz(x))中的错误: 不知道如何将“ x”转换为“ POSIXlt”类
如果我使用dayofmonth(),它可以完美运行,所以我不确定自己在做什么错。
这里是我尝试使用的字段的示例。
$ Net_due_date:日期2017-10-06 2017-10-05 2018-01-17 2017-12-23 2017-08-20 2018-01-17 $ Clearing_Date:日期2017-10-06 2017-10-17 1900-01-01 2017-12-26 2017-08-24 2018-01-19
有什么想法吗?
谢谢
答案 0 :(得分:0)
我不确定没有可复制的示例,但请尝试先将列强制转换为时间戳。
df$Net_due_date_month <- month(cast(df$Net_due_date, 'timestamp'))
答案 1 :(得分:0)
您可以提供一小部分数据,以便复制错误。我怀疑您的日期列不是日期格式。
您可以尝试以下任何一种方法:
library(lubridate)
df$Net_due_date_month <- month(as.Date(df$Net_due_date, format = '%Y-%m-%d'))
或
df$Net_due_date_month <- month(as.POSIXlt(df$Net_due_date, format = '%Y-%m-%d'))