2017-02-06 20 views
1

Не могли бы вы помочь мне найти Java API для перераспределения sales dataset для N паттернов равного размера? В равном размере я имею в виду равное количество строк.Spark dataset custom partitioner

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

Возможного дубликате [Как определить пользовательские разметки для Спарка РДА разбиения одинакового размера, где каждый раздел имеет равное количество элементов?] (http://stackoverflow.com/questions/23127329/how-to-define-custom-partitioner-for-spark-rdds-of-equally-sized-partition-where) –

+0

@BradleyKaiser no, Я уверен, что ответ плох по двум причинам: 1) ответ показывает код разделителя, но не указывайте, как передать пользовательский разделитель в RDD API, что на самом деле квест на 2) код разделителя находится в Scala, Scala API может отличаться от Java API –

ответ

2

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

Для например: Facebook use-case-study и Spark summit talk related to the use-case-study

Для определения редактирования разделов для РДА, хорошо документирован в API doc