Apache spark OutOfMemoryError:筛选多个分区时超出了GC开销限制

Apache spark OutOfMemoryError:筛选多个分区时超出了GC开销限制,apache-spark,Apache Spark,我有一张分开的蜂箱桌。分区格式为yyyyymmdd\u P,其中yyyyMMdd为日期,P为区域,可以有9个值(A、B、C等) 我需要一次约会的所有类型 当我尝试一个partition时 spark.table(TABLE_NAME).filter($"date_region" === "20180801_A") 它很好用 但是当我尝试所有9个时,我得到了OutOfMemoryError 我试过了 $"date_region" rlike "20180801_*" substring($"da

我有一张分开的蜂箱桌。分区格式为
yyyyymmdd\u P
,其中
yyyyMMdd
为日期,
P
为区域,可以有9个值(A、B、C等)

我需要一次约会的所有类型

当我尝试一个partition时

spark.table(TABLE_NAME).filter($"date_region" === "20180801_A")
它很好用

但是当我尝试所有9个时,我得到了
OutOfMemoryError

我试过了

$"date_region" rlike "20180801_*"
substring($"date_region",1,8) === "20180801"
$"date_region".isin(list:_*)
我的印象是spark试图阅读所有日期,但我不确定。每个分区相对较小(2-4 GB)

我为任务分配以下资源

--num-executors 10 \
--executor-cores 5 \
--driver-memory 4G \
--executor-memory 8G \
我怎么看这张桌子


PS我尝试时收到错误。在spark shell中显示或尝试将结果写入光盘。

何时遇到OOM错误?您正在调用哪个操作?请提供一个参数。@phil这是在我尝试
.show
或将结果写入DISC时,您是在没有参数的情况下执行.show(),还是在nb\u行较大的情况下执行.show(nb\u行)?你是想用.collect()在hdfs上写还是在光盘上写?@Furry我试着在没有参数的情况下显示,我试着在有合并和没有合并的情况下都写。我没有试着收集。试着增加你的执行者记忆