gpt4 book ai didi

sparklyr 堆空间不足,但内存充足

转载 作者:行者123 更新时间:2023-12-01 00:35:40 26 4
gpt4 key购买 nike

即使在相当小的数据集上,我也会遇到堆空间错误。我可以确定我没有耗尽系统内存。例如,考虑一个包含大约 20M 行和 9 列的数据集,它在磁盘上占用 1GB。我在具有 30GB 内存的 Google Compute 节点上使用它。

假设我在名为 df 的数据框中有这些数据.以下工作正常,虽然有点慢:

library(tidyverse) 
uniques <- search_raw_lt %>%
group_by(my_key) %>%
summarise() %>%
ungroup()

以下抛出 java.lang.OutOfMemoryError: Java heap space .
library(tidyverse)
library(sparklyr)
sc <- spark_connect(master = "local")

df_tbl <- copy_to(sc, df)

unique_spark <- df_tbl %>%
group_by(my_key) %>%
summarise() %>%
ungroup() %>%
collect()

我试过 this suggestion用于将堆空间增加到 Spark。问题仍然存在。在 htop 上查看机器状态,我看到总内存使用量永远不会超过大约 10GB。
library(tidyverse)
library(sparklyr)

config <- spark_config()
config[["sparklyr.shell.conf"]] <- "spark.driver.extraJavaOptions=-XX:MaxHeapSize=24G"

sc <- spark_connect(master = "local")

df_tbl <- copy_to(sc, df)

unique_spark <- df_tbl %>%
group_by(my_key) %>%
summarise() %>%
ungroup() %>%
collect()

最后,根据 Sandeep 的评论,我尝试降低 MaxHeapSize4G . ( MaxHeapSize 是每个虚拟 worker 还是整个 Spark 本地实例?)我仍然遇到堆空间错误,而且我没有使用太多系统内存。

最佳答案

在查看 Sandeep 的建议时,我开始深入研究 sparklyr deployment notes .这些提到驱动程序在此阶段可能会耗尽内存,并调整一些设置以纠正它。

这些设置并没有解决问题,至少在最初没有解决。但是,将问题隔离到 collect舞台让我找到了similar problems在 SO 上使用 SparkR。

这些答案部分取决于设置环境变量 SPARK_MEM .把它们放在一起,我让它按如下方式工作:

library(tidyverse)
library(sparklyr)

# Set memory allocation for whole local Spark instance
Sys.setenv("SPARK_MEM" = "13g")

# Set driver and executor memory allocations
config <- spark_config()
config$spark.driver.memory <- "4G"
config$spark.executor.memory <- "1G"

# Connect to Spark instance
sc <- spark_connect(master = "local")

# Load data into Spark
df_tbl <- copy_to(sc, df)

# Summarise data
uniques <- df_tbl %>%
group_by(my_key) %>%
summarise() %>%
ungroup() %>%
collect()

关于sparklyr 堆空间不足,但内存充足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41384336/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com