2015-03-07 2 views
2

Теперь у меня есть набор чисел, таких как 1,4,10,23,..., и я хотел бы построить для них b-tree index, используя Apache Spark. Формат соответствует каждой строке (раздел «/ n»). И у меня также представлений о формате выходного файла, я просто хочу найти рекомендую одинКак создать индекс B-дерева с помощью Apache Spark?

Регулярный способ построения b-tree индекса приведены в https://en.wikipedia.org/wiki/B-tree, но сейчас я хотел бы распределенную параллельную версию в Apache Spark.

Кроме того, в Wiki от B-tree был введен способ построения B-дерева для представления большой существующей коллекции данных (см. https://en.wikipedia.org/wiki/B-tree) Кажется, что я должен сортировать ее заранее, и я думаю, что для большого набора данных, сортировка довольно трудоемка и даже не может быть выполнена для ограниченной памяти. Этот метод, упомянутый выше, рекомендует?

ответ

1

Сортировка RDD с RDD.sort, если он еще не отсортирован. Используйте RDD.mapPartitions для создания индекса для каждого раздела. Затем создайте индекс верхнего уровня, который соединяет индексы каждого раздела.

+0

Предположим, что входной файл находится из 'HDFS', и я хотел бы сохранить индекс b-tree в другой' HDFS' для сохранения. Можете ли вы дать мне более конкретный ответ? – chenzhongpu

+0

Нет. В вашем вопросе нет никаких подробностей о том, как ввод и вывод структурированы и отформатированы. Это настолько точно, насколько это возможно. –

+0

Теперь предположим, что входной файл из 'HDFS' содержит набор чисел, а формат - по каждой строке на запись. И я также не знаю формат выходного файла, я просто хочу найти рекомендацию. Вы можете посмотреть на http://spatialhadoop.cs.umn.edu/spatial-index.html, и на этой странице показан формат индекса r-tree и 'grid' выходного файла. – chenzhongpu

Смежные вопросы