在一年中完全缺失的观测值

1aaf6o9v  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(286)

我正在处理一个巨大的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()函数呢?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题