Я хочу рассчитать хэш для строк в улье без написания UDF только с использованием существующих функций. Чтобы я мог использовать подобный подход, чтобы получить согласованный хеш на других языках. например: существуют ли какие-либо функции, с помощью которых я могу сделать что-то вроде добавления символов или принятия Xor.Вычислить хеш без использования существующей хэш-функции в улье
ответ
Это зависит от версии Улья, ср. https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-Misc.Functions
select XYZ, hash(XYZ) from ABC
был доступен в течение многих лет и применяется обычная старая java.lang.String.hashCode()
, возвращая INT (32 бит хэша)
select XYZ, crc32(XYZ) from ABC
требует Hive 1,3 и применяется обычный старый Циклические Redundancy Check (вероятно, через java.util.zip.CRC32
), возвращая BIGINT (32 бита хеш)
select XYZ, md5(XYZ), sha1(XYZ), sha2(XYZ,256), sha2(XYZ,512) from ABC
требует улей 1.3 и применяет сильные, криптографической хэш-функции, возвращая строку с шестнадцатеричное представление бинарных (128, 160, 256 и 512 битных хешей)
[Редактировать] ответ на that post также имеет очень хорошую обходной путь для применения криптографических хэш-функций с более старые версии Hive, используя статические методы Apache Commons и reflect()
.
- 1. Вычислить статистический режим в улье
- 2. Вычислить без использования массивов
- 3. Эффективный поиск хеш-таблицы без использования ключа
- 4. C++ хеш-таблица без использования STL
- 5. Javascript: document.url без анкера (хеш)
- 6. AWS Невозможно вычислить MD5 хеш Android
- 7. AWS/Android Невозможно вычислить хеш md5
- 8. Как вычислить пересечения и объединения двух массивов в Улье?
- 9. Пропустить хеш по ссылке на подпрограмму без использования «\»: my_subroutine (% my_hash)
- 10. Выберите элемент из хеш-таблицы PowerShell без использования Foreach
- 11. Вычисление перекос в улье?
- 12. Как оптимизировать объединение без равных в улье?
- 13. Как отключить функцию без группы в Улье
- 14. Как вычислить общее количество в SQL без использования курсора?
- 15. анализ использования простых чисел в хеш-функциях
- 16. Линукс-дистрибутив для использования в существующей среде
- 17. Расчет длительности в Улье
- 18. Как рассчитать медиану в улье
- 19. Вычислить значение, основанное на предыдущем дне без использования соединения
- 20. Вычислить и напечатать длину строки без использования strlen()
- 21. Преобразованные примитивы - вычислить обратную матрицу без использования какой-либо функции
- 22. Как вычислить кумулятивное значение без использования python или php?
- 23. Вычислить хеш, не имея сразу всего буфера в памяти
- 24. назначить хеш в хеш
- 25. Как вычислить квадратный корень из числа без использования встроенных функций?
- 26. как вычислить эту формулу без использования для цикла
- 27. Фильтра Массив в улье
- 28. Развернуть хеш-таблицу без перефразирования?
- 29. Создать таблицу улья из другой существующей таблицы без определения схемы
- 30. Разрешение гранта в улье
Ваше название говорит * «без использования exhit hash fuction» *, но ваш вопрос говорит * «только с использованием существующих функций» *, что является абсолютно противоположным. Что вы хотите, на самом деле? –
Вы должны быть более конкретными относительно используемой вами версии Hive и других языков, на которые вы ссылаетесь, –
«Чтобы я мог использовать аналогичный подход для получения согласованного хэша на других языках». Поэтому, если я использую существующую хеш-функцию, это не будет быть похожим, если я рассчитываю его на каком-то другом языке. Поэтому я хочу рассчитать простейший хеш, используя «другие» существующие функции, которые я также смогу повторить на других языках. Для Ex: я хочу bucketize строки, поэтому я могу сделать ASCII («abc»)% NoofBuckets, это даст мне ascii первого символа, но распределение по ведрам не будет таким хорошим. Поэтому мне нужно что-то более разумное. –