1

文字列とテキストの違いがわかりました。 Hadoop におけるテキストと文字列の違い

問題は、文字列の最大ストレージ サイズが 32767 バイトであると言っている場合です。

Text t = new Text("Hadoo... 2GB of content");
...
String c = t.toString();

サイズ制限がある場合、「c」はどのように2GBのデータを保持しますか?

ここで何が欠けていますか?

4

1 に答える 1

2

Java String の最大サイズは 32k バイトではありません。これは、文字を保存するために必要なサイズでInteger.MAX_VALUE、2^31 - 1 (~20 億) で、約 4GB です (この記事を参照)。

あなたが言及した投稿は、Javaの String クラスではなく、非推奨のUTF-8 クラスのサイズ制限について言及しています。

とにかく、単一の Text インスタンスに非常に多くのスペースが必要な場合は、アルゴリズムを再検討することをお勧めします。Peter Lawrey が前述の投稿で述べているように、「JK Rowling のすべての作品は 1 つの文字列に収まると思います」。

于 2014-08-13T10:05:23.723 に答える