联合多个表的 Sparklyr 堆栈溢出错误
Sparklyr stack overflow error unioning multiple tables
我有一个用例,我想将许多 table 放入 spark(因为它们是单独的 Cassandra 分区),并将它们结合在一起,这样我就可以处理生成的大 table 使用 dplyr
和 group_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
我有一个用例,我想将许多 table 放入 spark(因为它们是单独的 Cassandra 分区),并将它们结合在一起,这样我就可以处理生成的大 table 使用 dplyr
和 group_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