null
anahtarları/değerleri için null
metinlerini (yani new Text(null)
) kullanarak NullWritable
kullanmanın avantajları nelerdir? «Hadoop: Kesin Kılavuz» kitabından aşağıdakileri görüyorum. bu, sıfır uzunlukta bir seri olduğu gibiHadoop'ta NullWritable kullanmanın avantajları
NullWritable
,Writable
özel bir türüdür. Akışın baytına yazılmadığı veya akıştan okunamadığı. Bir yer tutucu olarak kullanılır; Örneğin, MapReduce içinde bir anahtar veya değerNullWritable
olarak bildirilebilir ve bu konumu kullanmak için 'a ihtiyaç duymazsınız; bu, sabit bir boş değeri etkin bir şekilde depolar. NullWritable, numaralı anahtarın, anahtar değer çiftlerine karşı bir değer listesini saklamak istediğinizdeSequenceFile
anahtarında da yararlı olabilir. Bu değişmez bir tekil geçerli: örneğiNullWritable.get()
açıkça çıkış NullWritable
kullanılarak yazılır anlamıyorum arayarak geri alınabilir mi? Bu dosyanın anahtarlarının veya değerlerinin null
olduğunu belirten başlangıç çıktı dosyasında tek bir sabit değer olacak, böylece MapReduce çerçevesi null
anahtarlarını/değerlerini (hangisi null
ise) okumayı yoksayabilir mi? Ayrıca, null
metinleri nasıl serileştirilir?
sayesinde
Venkat
Teşekkür Mehmet sizi zaman ve cevap. Şimdi, NullWritable'ın nasıl çalıştığını anlıyorum. Boş metinle ilgili olarak, üzgünüm, Metin olarak anahtarların/değerlerin olması ve sonra context.write (boş değer) yapılması (anahtarın metnin olduğunu varsayalım) hakkında konuşmak istedim. –
Bu da bir NullPointerException atmalıdır. boş anahtarlar ve değerler çalışmıyor. Boş bir anahtar veya değere gerçekten ihtiyacınız varsa, bunun için boş bir dize veya -1 gibi başka bir gösterim düşünmelisiniz. –
'bağlamı.write (null, value) 'aslında bazı çıktı biçimleri için çalışacaktır (örneğin TextOutputFormat, sadece anahtar ve yapılandırılmış sınırlayıcı olmadan değeri çıkarır) –