Огромное количество заданий, созданных для spark join - PullRequest
0 голосов
/ 28 октября 2019

У меня есть набор данных с примерно 500 тыс. Строк и 20 столбцов.
Данные разбиты на уровни, всего их 10 (см. Изображение внизу, отображающее 5 уровней), а нижний - уровеньбольше данных, которые он содержит (на самом деле это одни и те же данные для всех уровней, но для более низких уровней данные более детализированы), моя цель состоит в том, чтобы зафиксировать некоторые значения на более низких уровнях (сверху вниз), чтобы сделать это итеративноразбить основной набор данных и собрать один (родительский) уровень и его прямой дочерний элемент:

1&2
2&3
3&4
4&5....

Затем я объединяю родительский и дочерний набор данных на основе некоторых общих столбцов и выполняю исправление значений:

 for (Triple<String, String, Seq<String>> aggregationTriple : getAggregationLevels())
      {
        String parentLevel = aggregationTriple.getLeft();
        String childLevel = aggregationTriple.getMiddle();
        Seq<String> aggregationCols = aggregationTriple.getRight();
        Dataset<Row> parents = finalDataset.where(col(agg).equalTo(lit(parentLevel)));
        Dataset<Row> children = data.where(col(agg).equalTo(lit(childLevel)));
        Dataset<Row> joined = parents.join(children, aggregationCols, "inner");
        //Add new calculated metrics
        for(int i=0; i < METRICS.length; i++)
        {
          String metric = METRICS[i];
          String newMetricName = NEW_METRICS[i];
          //We work only on metrics here
          joined = joined
              .withColumn(PERFORM VALUE FIX HERE);
        }
        finalDataset = finalDataset.union(joined.select(ArrayUtils.addAll(COLUMNS_KEYS, NEW_COLUMNS_METRICS)));
      }
    return finalDataset;
  }

public void run(){
  finalDataset.write().text()
}

Когда я запускаю его локально, я замечаю, что внутренняя искра создает огромное количество задач: (26004). enter image description here
Для относительно небольшого файла паркета (6 МБ)
Означает ли это, что мой набор данных разделен на такое количество разделов? Кроме того, в визуализации DAG я вижу огромное дерево, в котором листья более или менее имеют одинаковое представление: enter image description here
Я не могу понять, почему так много задач создано для такого относительно небольшого файла,Просьба любое предложение очень приветствуется.
here a little example

...