Spark“分发依据”爆炸了原始数据的大小

时间:2019-04-03 21:41:34

标签: apache-spark pyspark apache-spark-sql amazon-emr

我试图弄清楚为什么在我对它进行简单查询时,我的15 GB表膨胀到182 GB的原因。

首先,我将表从Redshift读入Spark。当我告诉Spark对表进行简单计数时,它可以正常工作。但是,当我尝试创建表时,遇到了各种YARN故障,最终我的某些任务将182 GB的溢出内存洗牌了。

这是有问题的查询(我更改了一些名称):

CREATE TABLE output
  SELECT
    *
  FROM inputs
  DISTRIBUTE BY id
  SORT BY snapshot_date

这是怎么回事?混洗溢出如何超出输入的总大小?我不是在做笛卡尔联接,或者类似的事情。这是一个非常简单的查询。

我知道Red Hat Linux(我在AWS上使用EMR)存在虚拟内存问题,因为我遇到了主题here,但是我已经向我添加了推荐的配置classification=yarn-site,properties=[yarn.nodemanager.vmem-check-enabled=false] EMR属性,问题仍然存在。

以下是Spark UI的屏幕截图,如果有帮助的话:

enter image description here

0 个答案:

没有答案