В чем преимущества использования NullWritable
для null
ключей/значений с использованием текстов null
(т.е. new Text(null)
). Я вижу следующее из книги "Hadoop: The Definitive Guide".
NullWritable
является специальным типомWritable
, так как он имеет сериализацию нулевой длины. Нет байтов записываются в поток или считываются с него. Он используется в качестве заполнителя; например, в MapReduce, ключ или значение можно объявить какNullWritable
, когда вам не нужно для использования этой позиции - она эффективно сохраняет постоянное пустое значение. NullWritable также может быть полезным в качестве ключа вSequenceFile
, если вы хотите сохранить список значений, в противоположность для пар ключ-значение. Это неизменный синглтон: экземпляр можно получить, вызвавNullWritable.get()
Я не понимаю, как выписывается вывод с помощью NullWritable
? Будет ли в исходном выходном файле одно постоянное значение, указывающее, что ключи или значения этого файла null
, так что среда MapReduce может игнорировать чтение ключей/значений null
(в зависимости от того, что null
)? Кроме того, как на самом деле тексты null
сериализованы?
Спасибо,
Венкат