Большое спасибо за ваш ответ. Я думаю, я посмотрю, сработает ли сбор данных в R для моей программы. Если нет, я посмотрю в расширениях Scala.

я есть широкий фрейм данных из нескольких тысяч столбцов примерно на миллион строк, для которого я хотел бы рассчитать итоговые суммы строк. Мое решение пока ниже. Я использовал:dplyr - сумма нескольких столбцов с использованием регулярных выражений а такжеhttps://github.com/tidyverse/rlang/issues/116

library(sparklyr)
library(DBI)
library(dplyr)
library(rlang)

sc1 <- spark_connect(master = "local")
wide_df = as.data.frame(matrix(ceiling(runif(2000, 0, 20)), 10, 200))
wide_sdf = sdf_copy_to(sc1, wide_df, overwrite = TRUE, name = "wide_sdf")

col_eqn = paste0(colnames(wide_df), collapse = "+" )

# build up the SQL query and send to spark with DBI
query = paste0("SELECT (",
               col_eqn,
               ") as total FROM wide_sdf")

dbGetQuery(sc1, query)

# Equivalent approach using dplyr instead
col_eqn2 = quo(!! parse_expr(col_eqn))

wide_sdf %>% 
    transmute("total" := !!col_eqn2) %>%
        collect() %>%
            as.data.frame()

Проблемы возникают, когда количество столбцов увеличивается. По искровому SQL, кажется, он рассчитывается по одному элементу за раз, т.е. (((V1 + V1) + V3) + V4) ...) Это приводит к ошибкам из-за очень высокой рекурсии.

У кого-нибудь есть альтернативный, более эффективный подход? Любая помощь приветствуется.

Ответы на вопрос(1)

Ваш ответ на вопрос