Искра "распространяй" взрывает размер исходных данных - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь выяснить, почему мои 15 ГБ таблицы увеличиваются до 182 ГБ, когда я запускаю простой запрос к нему.

Сначала я читаю таблицу в Spark из Redshift.Когда я говорю Spark сделать простой подсчет на столе, он работает нормально.Однако, когда я пытаюсь создать таблицу, я получаю всевозможные сбои YARN, и в конечном итоге некоторые из моих задач имеют объемную память разлива 182 ГБ.

Вот проблемный запрос (я изменил некоторые имена):

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

Что происходит?Как случайный разлив может превысить общий размер ввода?Я не делаю декартово соединение или что-то в этом роде.Это очень простой запрос.

Я знаю, что в Red Hat Linux (я использую EMR в AWS) есть проблемы с виртуальной памятью, так как я столкнулся с этой темой здесь , но я 'мы добавили рекомендованную конфигурацию classification=yarn-site,properties=[yarn.nodemanager.vmem-check-enabled=false] в мои свойства EMR, и проблема не исчезла.

Вот снимок экрана из интерфейса Spark, если он помогает:

enter image description here

...