2016-07-01 10 views
0

膨大な量の異なる3次元データを持つアプリケーションを作成しています。 3次元データは相対的に小さく(100 x 100 x 1000のように)、おそらく数百万のこれらのオブジェクトです。今私は誰もが風でそのようなデータを扱う経験を持っているのだろうかと思います。ベクトルの行列のようなネストされたデータ構造を使用することはできますが、インデックス付け(x、y、z)によってその構造の単一値を扱うことが重要です。 Point3d(x、y、z)のような独自の構造を定義する方が良いですか?しかし、x、y、zはベクトル自体であるか、DenseMatrixのような定義済みのブリーズクラスを使用します。私の質問は、パフォーマンスがこれらの選択肢によってどのように影響を受けるかです。オブジェクトが良くApache Spark - 3次元データ用に最適なデータ構造は何ですか?

私の経験で、あなたの回答をありがとう ロルフ・ディーター

+0

達成したいことはありますか?簡単なインデックス作成のために、あなたが望むものではないかもしれません。たとえapache-sparcがあなたの要求に応じて、数百万のオブジェクトに対して過度のものとなるかもしれません... – TilmannZ

答えて

0

、パフォーマンスのために、単純に。これは、プリミティブ型、ネストされたオブジェクトなどを使用しないことを意味します。シンプルなオブジェクトは、シリアル化するのが速く、小さいので、それらをメモリにパックすることができます。

あなたの場合、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)) 
+0

Dikei、ありがとうございました。処理のために適切な値を抽出するには何らかのロジックが必要ですが、わかりやすいパフォーマンスがあります。 – kumaro

関連する問題