使用 sparkly 中的过滤器或 select 后的样本数据

Sample data after using filter or select from sparkly

我有一个大型数据框要分析,所以我使用 sparklyr 来快速管理它。我的目标是获取数据样本,但在此之前我需要 select 一些感兴趣的变量并过滤某些列的某些值。 我尝试 select and/or 过滤数据然后使用函数 sample_n 但它总是给我这个错误:

Error in vapply(dots(...), escape_expr, character(1)) : values must be length 1, but FUN(X[[2]]) result is length 8

下面是一个行为示例:

library(sparklyr)
library(dplyr)

sc<-spark_connect(master='local')

data_example<-copy_to(sc,iris,'iris')

data_select<-select(data_example,Sepal_Length,Sepal_Width,Petal_Length)
data_sample<-sample_n(data_select,25)

data_sample

我不知道是不是我做错了什么,因为我几天前开始使用这个包,但我找不到任何解决这个问题的方法。任何帮助不胜感激!

您 select/mutate/filter 数据时返回的对象类型似乎有问题。 因此,我设法通过使用 compute() 命令将数据发送到 spark,然后对数据进行采样来解决这个问题。

library(sparklyr)
library(dplyr)

sc<-spark_connect(master='local')

data_example<-copy_to(sc,iris,'iris')

data_select<-data_example %>% 
  select(Sepal_Length,Sepal_Width,Petal_Length) %>% 
  compute('data_select')

data_sample<-sample_n(data_select,25)

data_sample

不幸的是,这种方法需要很长时间 运行 并且会消耗大量内存,所以我希望有一天我会找到更好的解决方案。

我之前也遇到过同样的问题,然后我尝试了以下操作:

data_sample = data_select %>% head(25)