简单的问题。我有美国国库券利率的数据,有两列 - 1)日期和2)费率。数据的范围可以追溯到1960年。我希望将1990年以后的费率分组,即根据日期。
代码: -
val rdd=sc.parallelize(List(1,3,2,4,5,6,7,8),4)
val sqlContext = new SQLContext(m_sparkCtx)
import sqlContext.implicits._
val result = rdd.toDF("values").withColumn("csum", sum(col("values")).over(Window.orderBy("values"))).rdd
println(result.getNumPartitions+"rdd2")
所以,我只想要一个t-bill费率的载体,但从1990年开始。 我该怎么写条件?
答案 0 :(得分:0)
我们需要先转换日期'到Date
班级,用format
提取年份,检查它是否大于1990,并将' Rates'基于那个逻辑vector
data$Rate[format(as.Date(data$Date), "%Y") >= 1990]
如果'日期'列仅包括年份部分,更容易
data$Rate[data$Date >= 1990]
以防万一,如果我们需要tidyverse
library(tidyverse)
data %>%
filter(year(ymd(Date)) >= 1990) %>%
select(Rate)
或使用data.table
library(data.table)
setDT(data)[year(as.IDate(Date)) >= 1990, Rate]