Как к BSWAP более низкий 32-разрядный из 64-разрядного регистра?

Объединение на фрейме данных вызывает много перетасовки данных между исполнителями. В вашем случае вы можете обойтись без объединения. Используйте спецификацию окна для разделения данных на «lable» и «year» и агрегирования в окне.

from pyspark.sql.window import *

windowSpec = Window.partitionBy('lable','year')\
                   .rowsBetween(Window.unboundedPreceding, Window.unboundedFollowing)

df = df.withColumn("std", f.round(f.stddev("val").over(windowSpec), 2))
8
задан jww 9 April 2017 в 09:20
поделиться

2 ответа

А-ч, да, я понимаю проблему теперь:

x86-64 процессоры неявно обнуляют - расширяют 32-разрядные регистры до 64-разрядного при выполнении 32-разрядных операций (на %eax, %ebx, и т.д.). Это должно поддержать совместимость с унаследованным кодом, который ожидает 32-разрядную семантику для этих регистров, насколько я понимаю.

Таким образом, я боюсь, что нет никакого способа сделать ror на просто более низких 32 битах 64-разрядного регистра. Необходимо будет сделать, используют ряд нескольких инструкций...

5
ответ дан 6 December 2019 в 00:08
поделиться

Проверьте вывод блока, сгенерированный gcc! Используйте gcc -s отметьте, чтобы скомпилировать код и генерировать вывод asm.

IIRC, x86-64 использует 32-разрядные целые числа по умолчанию если не, явно предписал делать иначе, таким образом, это может быть (часть) проблемой.

-1
ответ дан 6 December 2019 в 00:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: