使用dapply时,如何在时间戳中保留NA?

时间:2017-01-18 16:57:34

标签: sparkr

我尝试使用dapply将许多日期字符列转换为时间戳格式。但是,空字符行将转换为原始日期" 1970-01-01"。

df <- data.frame(a = c("12/31/2016", "12/31/2016", "12/31/2016"), 
             b = c("01/01/2016", "01/01/2017", ""))

ddf <- as.DataFrame(df)

schema <- structType(
    structField("a", 'timestamp'),
    structField("b", 'timestamp'))

converted_dates <- dapply(ddf, 
            function(x){ as.data.frame(lapply(x, function(y) as.POSIXct(y, format = "%m/%d/%Y"))) },
            schema)

 head(converted_dates)
       a          b
1 2016-12-31 2016-01-01
2 2016-12-31 2017-01-01
3 2016-12-31 1970-01-01

在R data.frame上的dapply调用中运行函数时,保留空日期值的NA结果

as.data.frame(lapply(df, function(y) as.POSIXct(y, format = "%m/%d/%Y")))
       a          b
1 2016-12-31 2016-01-01
2 2016-12-31 2017-01-01
3 2016-12-31       <NA>

使用Spark 2.0.1

0 个答案:

没有答案