2017-06-26 7 views

答えて

1

現在の実装では、上位31ビット、 にパーティションIDを置き、下位33ビットは、各 パーティション内のレコード数を表します。データフレームには1個のパーティションがあり、各パーティションには80億個未満のレコードが含まれていると仮定しています( )。

パーティション0の値が低くなり、他のすべてのパーティションの値が非常に高くなります。

しかし、これはあなたが依存してはならない実装の詳細です。単調に増加する性質だけが同じままであることが保証される。

+0

実際にはあまり役に立ちません。 – thebluephantom

1

これはmonotonicallyIncreasingId()

単調64ビット 整数を増加生成列発現のためfunction DOCには明らかです。生成されたIDは単調に増加することが保証されます。 は増加し、ユニークですが連続しません。現在の実装 は、パーティションIDを上位31ビットに、レコード番号 を下位33ビットの各パーティション内に配置します。データフレームが のデータフレームには10億未満のパーティションがあり、各パーティションには 未満の80億レコードがあると仮定しています。

例として、の場合、3つのパーティションがあり、それぞれに3つの レコードがあるDataFrameがあるとします。この式は、以下のIDを返します:0、1、2、 8589934592(1L < < 33)、8589934593、8589934594.

は、この情報がお役に立てば幸い!

+0

あなたの努力のためにもthx – thebluephantom

関連する問題