联合多个表的 Sparklyr 堆栈溢出错误

Sparklyr stack overflow error unioning multiple tables

我有一个用例,我想将许多 table 放入 spark(因为它们是单独的 Cassandra 分区),并将它们结合在一起,这样我就可以处理生成的大 table 使用 dplyrgroup_by

我无法完全独立地处理所有 table,因为,假设我单独的 table 是

(a1), (a2), (a3), (a4), (b1), (b2), (b3), (b4)

我需要向 tables

提交查询
((a1, a2, a3, a4), (b1, b2, b3, b4))

因此我至少需要做一些分组。然后在概念上更容易,将所有内容合并并按上面的 "letter" 分组。

我正在使用的产生堆栈溢出错误的代码的 MWE 如下:

# Removing this option results in an evaluation nested too deeply error
options( expressions = 5e5 )

library(sparklyr)
library(dplyr)
sc <- spark_connect(master = "local", spark_home = spark_home_dir())

n = 500

l = as.list(1:n)

for (i in 1:n) {
  l[[i]] <- copy_to(
    dest = sc, 
    iris, 
    name = paste0("iris", i), 
    overwrite = TRUE, 
    cache = TRUE)
}

dt = l %>% purrr::reduce(dplyr::union_all)
dt

任何人都可以帮助我更好的方法吗?我知道问题是我正在向 SQL 构建器提交 500 个联合字符串,这样就会出现大量可笑的函数嵌套,但不确定是否有更简单的方法,除了重构大量代码.

谢谢

这已通过 sparklyr 错误报告解决 here