Почему Cast (Hashbytes ('sha2_256', ...) как bigint) в Synapse SQL не совпадает с хэшем Pyspark Sha-256 с Bigint ConversPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему Cast (Hashbytes ('sha2_256', ...) как bigint) в Synapse SQL не совпадает с хэшем Pyspark Sha-256 с Bigint Convers

Сообщение Anonymous »

Я пытаюсь воспроизвести логику синапса SQL Hashbytes в Pyspark. В SQL мы используем эту строку для генерации хэш -ключа ETL: < /p>

Код: Выделить всё

SELECT CAST(HASHBYTES('SHA2_256', CONCAT_WS('|', [col1], [col2], ...)) AS BIGINT) AS EtlHashKey
FROM sample_table;
< /code>
Этот хэш используется в качестве уникального идентификатора строк. Теперь я хочу генерировать тот же хэш -ключ в Pyspark, используя DataFrame. Вот что я попробовал: < /p>
import hashlib
import struct

def compute_hashkey(*values):
concat = '|'.join(['' if v is None else str(v) for v in values])
hash_bytes = hashlib.sha256(concat.encode('utf-8')).digest()
hashkey = struct.unpack('
Пример ввода: < /p>
 


 col> < /table1 < /table1 < /br />

   col> < /table1 < /table1 < /table1 < /table1 < /table1 < /table /> < /tr>
< /thead>


 abc < /td>
 123 < /td>
< /tr>
< /tbode>
< /table> < /div>
sql: etbys -7418430994879866706 < /p>
pyspark: etlhashkey = -58658072614401666157 < /p>
 in intish> int -intism> intish> intish> intish> intish> intising> < /p>
  intish> < /p> < /p>

 intis < /li>
 Нулевая обработка: обрабатывается с использованием пустых строк (''), как и concat_ws. ...). < /li>
< /ul>
 my ask: < /strong>
Как именно SQL Server /Synapse выпускает вывод хэшбитов в Bigint? Почему шестнадцатеричная хэш-стоимость соответствует, но не хэшишн 
Каков правильный путь в Python для воспроизведения актеров (хэшбит ('sha2_256', ...) как bigint), чтобы получить 64-битные целочисленные матчи?> 

Подробнее здесь: [url]https://stackoverflow.com/questions/79713386/why-does-casthashbytessha2-256-as-bigint-in-synapse-sql-not-match-pys[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»