Привет, все, перед которым я столкнулся с проблемой при преобразовании метки времени в POSIXlt, позже из этой временной метки o необходимо извлечь год, месяц, день, час , мин, сек
2015-12-01 00:04:39 is my timestamp
и вот моя попытка
getwd()
rm(list=ls())
library(ggplot2)
library(plyr)
library(reshape)
library(scales)
library(gridExtra)
library(SparkR)
Sys.setenv(SPARK_HOME="/usr/local/spark").libPaths(c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"), .libPaths()))
sc <- sparkR.init(master="local","RwordCount")
args <- commandArgs(trailing = TRUE)
sqlContext <- sparkRSQL.init(sc)
df1 <- read.df(sqlContext, "hdfs://master:9000/test.csv", header='true', source = "com.databricks.spark.csv", inferSchema='true', stringsAsFactors = F)
if("timestamp" %in% colnames(df1)){
df1$pTime <- as.POSIXlt(df1$timestamp, format= "%Y-%m-%d %H:%M:%S")
}else {
df1$pTime <- as.POSIXlt(df1$Timestamp, format= "%Y-%m-%d %H:%M:%S")
}
но получить здесь ошибка не знаю, как преобразовать 'df1 $ временную метку' для класса «POSIXlt»
позже, мне нужно узнать год, месяц, DayOfMonth, Hors, мин, сек для этого у меня есть этот фрагмент
df1$Year <- df1$pTime$year-100 #Year
df1$Month <- df1$pTime$mon+1 #Month 1-12
df1$Day <- df1$pTime$mday #day of month
df1$Hour <- df1$pTime$hour #0â??23: hours
df1$Min <- df1$pTime$min
df1$Sec <- df1$pTime$sec
df1$WeekOfYear <- strftime(df1$pTime, format="%W")
и я выполняющийся выше сценария, используя следующий синтаксис,
bin/spark-submit --packages com.databricks:spark-csv_2.11:1.3.0 /home/script/analysis.R
**Error in as.POSIXlt.default(df1$timestamp, format = "%Y-%m-%d %H:%M:%S") :
do not know how to convert 'df1$timestamp' to class “POSIXlt”
Calls: as.POSIXlt -> as.POSIXlt.default
Execution halted**
Как я могу избавиться от ошибки, любая помощь будет оценена. Благодаря
У меня нет ошибок с кодом. Я попробовал с символьным символом таких дат, как тот, который вы цитируете. вы должны предоставить нам 'str (df1)'. – agenis
Потому что я использую это в скрипте sparkR. –