В нашем продукте мы написали искровой код, который выполняет следующие шаги.
- считывает файл CSV в файл данных df (количество 3253549).
- Выполните команду SQL сверху указанного выше фрейма данных и назначил новый фрейм данных для purgeDF (счетчик 3253549).
- Захваченный счетчик кадра данных step2 (счетчик 3253549).
- Запись кадра данных в HDFS в формате Parquet (mode = overwrite) (count 3074305)
Иногда мы наблюдали, что счетчик данных выглядит правильно, например, 3253549. но когда я выполняю подсчет на постоянном пути к фрейму данных с помощью spark-shell, это показывает, что неправильный счет, например, 3074305
Мое наблюдение таково: размер раздела искры по умолчанию равен 200. На шаге 4 я вижу файл случайной детали отсутствует в указанном пути.
- Ожидаемое количество: 3253549
- Количество разделов 3253549/200 ~ = 16267.745
- 189 Количество разделов 16267.745 * 189 ~ = 3074603.805
- Пропущенные записи 3253549-3074603.805 ~ = 178945.195
Подсвеченный счетчик почти равен пропущенному счету.
Заранее спасибо.