2016-07-01 4 views
0

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

Спасибо за ваши ответы Rolf-Dieter

+0

Чего вы хотите достичь? Для простой индексации, ветер может быть не таким, какой вы хотите, даже apache-sparc может быть излишним для нескольких миллионов объектов, в зависимости от ваших требований ... – TilmannZ

ответ

0

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

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

(x1, x2, x3, y1, y2, y3, z1, z2, z3) 
is better than 
((x1, x2, x3), (y1, y2, y3), (z1, z2, z3)) 
+0

Спасибо Dikei, я сделал это, как вы предложили, - очень большую плоскую карту. Для получения правильных значений для обработки требуется определенная логика, но я вижу хорошую производительность. – kumaro