首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减去sparkR列中的所有元素

减去sparkR列中的所有元素
EN

Stack Overflow用户
提问于 2015-08-17 11:54:44
回答 1查看 262关注 0票数 0

我在sparkR有DataFrame 'res‘。“‘res”包含ID和日期。第一个条目看起来是'ID‘=12,3.“日期”= "2012-6-5“、"2013-5-5”、"2015-10-11“.

我想要创建一个新的数据集,其中所有的‘日期’被减去"2010-01-01“。这是如何做到的呢?如果我只想用整数减去DataFrame中的所有元素,我就会遇到同样的问题。

在sparkR我试过这个

代码语言:javascript
复制
newres <- withColumn(res, "subtract", res$date - as.Date("2010-01-01") )

这是运行,但是当我输入head(newres)时,会得到一个错误:mesage:"returnstatus==0不是真“。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-18 05:35:32

在前面的问题(Convert string to date in sparkR)中,我看到类型转换不是在R中执行的问题,而不是SparkR中的问题。在我的设置中,我可以将所有内容转换为R中的整数,并在SparkR中进行如下减法:

代码语言:javascript
复制
df <- data.frame(user_id=c(1,1,2,2),
                time=c("2015-7-10","2015-8-04","2015-8-8","2015-7-10"))

df$time <- as.Date(df$time)
df$time <- as.numeric(df$time)

date <- as.numeric(as.Date("2010-01-01"))

res <- createDataFrame(sqlContext, df)

newRes <- withColumn(res, "subtract",res$time - date)

collect(newRes)

这给了我

代码语言:javascript
复制
  user_id  time subtract
1       1 16626     2016
2       1 16651     2041
3       2 16655     2045
4       2 16626     2016

我希望这有用,因为你说你也有整数减法的问题.这个解决方案的唯一“问题”是R中的时间转换:现在您只能使用完全适合于记忆R环境的DataFrames。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32049717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档