Существование целых и IntWritable типов - PullRequest
0 голосов
/ 17 сентября 2018

Мой вопрос может быть очень глупым, но, пожалуйста, не торопитесь со мной.

В Java int - это тип данных, а Integer - это тип, в который упаковывается int.Если говорить о Hadoop, то вместо Integer есть IntWritable.(Если я не ошибаюсь)

При изучении большую часть времени говорят, что в hadoop они используют IntWritable, потому что это хорошо для передачи большого количества данных по сети.Это нормально ..!

Одна вещь, с которой я столкнулся при этом, будь то Integer или IntWritable, как иначе они обертываются вокруг int?Где я могу увидеть код, который может показать разницу между int?Если я вижу класс IntWritable или класс Integer, они кажутся простыми классами, но где различие происходит, когда int извлекается из Integer или IntWritable?

Сейчас я думаю о int как о базовом типе Java и ищу, что происходит, когда int находится внутри Integer или IntWritable в бэкэнде?Как он становится Integer или IntWritable?Я надеюсь, что мой вопрос очищен ..!:)

1 Ответ

0 голосов
/ 17 сентября 2018

Да, есть разница.

IntWritable - это вариант Hadoop для Integer, оптимизированный для сериализации в среде Hadoop. integer будет использовать сериализацию Java по умолчанию, которая очень дорогостоящая в среде Hadoop.

IntWritable реализует Comparable<IntWritable>, Writable, WritableComparable<IntWritable> интерфейсы.

  • Comparable - интерфейс, абстрактные методы которого дают нам возможность сравнивать два объекта.
  • Writable предназначен для записи данных на локальный диск и является форматом сериализации. Можно реализовать собственные Writables в Hadoop. Сериализация Java слишком громоздка и медленна в системе. Вот почему Сообщество Hadoop поставило Writable на место.
  • WritableComparable является комбинацией двух вышеупомянутых интерфейсов.

Дополнительная информация:

Почему Hadoop нужны классы типа Text или IntWritable вместо String или Integer?

Для внутренней структуры Integer класса:

https://www.geeksforgeeks.org/java-lang-integer-class-java/

Документация Hadoop для IntWriable:

http://hadoop.apache.org/docs/r2.7.1/api/org/apache/hadoop/io/IntWritable.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...