Apache Spark — какая структура данных лучше всего подходит для трехмерных данных

Я работаю над приложением с огромным количеством различных трехмерных данных. Трехмерные данные относительно малы (например, 100 х 100 х 1000), но, вероятно, миллионы таких объектов. Теперь мне интересно, есть ли у кого-нибудь опыт работы с такими данными на ветру. Хотя я могу использовать вложенные структуры данных, такие как матрица векторов, важно обращаться к отдельным значениям этой структуры с помощью индексации (x, y, z). Лучше ли определить собственную структуру, такую ​​​​как Point3d (x, y, z) - но x, y, z сами являются векторами - или использовать предопределенные классы бриза, такие как DenseMatrix. Мой вопрос заключается в том, как эти альтернативы влияют на производительность.

Спасибо за ваши ответы Рольф-Дитер


person kumaro    schedule 01.07.2016    source источник
comment
Чего вы хотите достичь? Для простого индексирования ветер может быть не тем, что вам нужно, даже apache-sparc может быть излишним для нескольких миллионов объектов, в зависимости от ваших требований...   -  person TilmannZ    schedule 02.07.2016


Ответы (1)


По моему опыту, для производительности чем проще объект, тем лучше. Это означает использование только примитивного типа, без вложенных объектов и т. д. Простые объекты быстрее сериализуются и меньше, поэтому вы можете упаковать их больше в память.

В ваших случаях я думаю, что использование одного 9-элементного кортежа лучше, чем 3 3-элементного кортежа.

(x1, x2, x3, y1, y2, y3, z1, z2, z3)
is better than
((x1, x2, x3), (y1, y2, y3), (z1, z2, z3))
person Kien Truong    schedule 01.07.2016
comment
Спасибо Dikei, сделал как вы предложили - очень большую плоскую карту. Требуется некоторая логика для извлечения правильных значений для обработки, но я вижу, что у него хорошая производительность. - person kumaro; 08.07.2016