我正在尝试使用 SparkR 从数据库中提取一个非常大的数据集到我的 Databricks 集群上,以在其上运行一些 R 函数。 然而,我遇到了一个问题,尽管我的集群确实足够大,但我遇到了错误:
66个任务的序列化结果总大小(4.0 GiB)大于spark.driver.maxResultSize 4.0 GiB。
(是的,可能应该重构代码,但现在最重要的是让它正常工作。)
根据Spark文档,可以将其设置为“0”以使设置不受限制。 但是,我在 R 中找不到任何有关如何执行此操作的信息(Python 上的一堆信息!)。
如何更新此设置以取消该值的上限?
使用 SparkR 时,您可以使用
sparkConfig
函数的 SparkR::sparkR.session()
参数设置 Spark 配置。
同时,您当前的 Spark 配置可通过
SparkR::sparkR.conf()
命令获取,并以列表形式返回。
因此,在这种情况下,您需要使用除要更新的一个参数之外的整个现有配置。
下面的代码应该:
我希望这有帮助!
orig_spark_conf <- sparkR.conf()
updated_spark_conf <- orig_spark_conf
updated_spark_conf$spark.driver.maxResultSize <- "0"
sparkR.session(sparkConfig=updated_spark_conf)