如何在 sparkR 中测试 DataFrame 中的条目
How to test entries in a DataFrame in sparkR
我在 sparkR 中有一个名为 pgz
的 DataFrame。它包含 user_id
和 time
。对于固定的 user_id k
我得到
y <- filter(pgz, pgz$user_id == k)
当我输入 head(y)
时,我可以看到 user_id k
的一些时间。 "2005-02-04" , "2005-06-06" .. 它们都是排序的,因此它们会增加。
对于这个user_id
我想测试他的times
是否大于我设置的固定时间
fixtime <- "2010-01-01"
我想保存所有时间大于 fixtime 的 user_id。
如何做到这一点?
首先,让我们创建一些示例数据进行测试
set.seed(1)
dd = data.frame(id = base::sample(1:3, 4,TRUE),
times = base::sample(c("2005-02-04" , "2005-06-06", "2007-02-04" , "2006-06-06"),
12, TRUE))
dd$times = as.Date(dd$times)
NROW(dd[dd$id==1 & dd$times > as.Date("2006-01-01"),])
对于这个数据集,我们应该得到答案2。
创建 Spark 数据框
dd_sp = createDataFrame(sqlContext, dd)
然后筛选
dd_sp_k = filter(dd_sp, dd_sp$id== 1 &
dd_sp$times > as.Date("2006-01-01"))
然后我们可以用summarise
得到data frame的长度
## This seems a bit clunky, bit it works.
summarize(dd_sp_k, count = n(dd_sp_k$times)) %>%
head
给出 2。
我在 sparkR 中有一个名为 pgz
的 DataFrame。它包含 user_id
和 time
。对于固定的 user_id k
我得到
y <- filter(pgz, pgz$user_id == k)
当我输入 head(y)
时,我可以看到 user_id k
的一些时间。 "2005-02-04" , "2005-06-06" .. 它们都是排序的,因此它们会增加。
对于这个user_id
我想测试他的times
是否大于我设置的固定时间
fixtime <- "2010-01-01"
我想保存所有时间大于 fixtime 的 user_id。 如何做到这一点?
首先,让我们创建一些示例数据进行测试
set.seed(1)
dd = data.frame(id = base::sample(1:3, 4,TRUE),
times = base::sample(c("2005-02-04" , "2005-06-06", "2007-02-04" , "2006-06-06"),
12, TRUE))
dd$times = as.Date(dd$times)
NROW(dd[dd$id==1 & dd$times > as.Date("2006-01-01"),])
对于这个数据集,我们应该得到答案2。
创建 Spark 数据框
dd_sp = createDataFrame(sqlContext, dd)
然后筛选
dd_sp_k = filter(dd_sp, dd_sp$id== 1 &
dd_sp$times > as.Date("2006-01-01"))
然后我们可以用summarise
得到data frame的长度
## This seems a bit clunky, bit it works.
summarize(dd_sp_k, count = n(dd_sp_k$times)) %>%
head
给出 2。