Пользовательский разделитель набора данных Spark

Не могли бы вы помочь мне найти Java API для переразбиения sales набора данных на N фрагментов одинакового размера? Под одинаковым размером я подразумеваю равное количество строк.

Dataset<Row> sales = sparkSession.read().parquet(salesPath);
sales.toJavaRDD().partitions().size(); // returns 1

person VB_    schedule 06.02.2017    source источник
comment
@BradleyKaiser нет, я уверен, что ответ плохой по двум причинам: 1) ответ показывает код разделителя, но не указывает, как передать пользовательский разделитель в RDD API, что на самом деле является вопросом 2) код разделителя находится в Scala , Scala API может отличаться от Java API   -  person VB_    schedule 08.02.2017


Ответы (1)


Пользовательские разделители AFAIK не поддерживаются для наборов данных. Вся идея API-интерфейсов Dataset и Dataframe в Spark 2+ заключается в том, чтобы абстрагироваться от необходимости вмешиваться в пользовательские разделители. И поэтому, если мы столкнемся с необходимостью иметь дело с искажением данных и придем к точке, где пользовательский разделитель является единственным вариантом, я думаю, мы перейдем к манипулированию RDD более низкого уровня.

Например: Исследование примера использования Facebook и саммит Spark обсуждение, связанное с примерами использования

Для определения разделителей для RDD это хорошо задокументировано в Документация по API

person TheGT    schedule 24.02.2017