首页 文章

SparkR - 从日期字段中提取月份

提问于
浏览
0

我正在使用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

有任何想法吗?

谢谢

2 回答

  • 0

    如果没有可重现的示例,我无法确定,但请先尝试将列转换为时间戳 .

    df$Net_due_date_month <- month(cast(df$Net_due_date, 'timestamp'))
    
  • 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'))
    

相关问题