我正在处理一个巨大的spark表(约1000亿行),它需要用缺失的组合来完成。
我正试图找到一种方法,用sparklyr复制tidyr::complete()函数。这个问题可以用一个简单的例子来概括:
dplyr公司
library("dplyr"); library("tidyr")
df <- tibble(var1 = c("a", "a", "b", "b", "b"),
var2 = c("x", "x", "x", "y", "y"),
obs = c("obs1", "obs3", "obs1", "obs1", "obs2"),
value = c(10, 3, 4, 7, 5))
df
all.obs <- c("obs1", "obs2", "obs3")
tidyr::complete(data = df, nesting(var1, var2), obs = all.obs)
因此,每个组合(var1,var2)都出现在每个观察值的表中:obs1,obs2和obs3。
为obs2添加了一对(a,x)。
尚未添加偶(a,y),因为它不在初始表中。
为obs2和obs3添加了耦合(b,x)。
为obs3添加了偶(b,y)。
Spark
它不适用于sparklyr,因为tidyr::complete()尚未在sparklyr中实现:
library("sparklyr")
sc <- spark_connect(master = "local")
df_tbl <- sdf_copy_to(sc = sc, x = df, name = "df_tbl", overwrite = TRUE)
complete(data = df_tbl, nesting(var1, var2), obs = all.obs)
usemethod(“complete”中出错:没有适用于“complete”的方法应用于类“c”('tbl\u spark','tbl\u sql','tbl\u lazy','tbl')的对象
那么如何在sparklyr中复制tidyr::complete()函数呢?
暂无答案!
目前还没有任何答案,快来回答吧!