我需要使用银行家四舍五入(其中0.5四舍五入到最近的偶数)对PySpark中的一列进行四舍五入.
到目前为止,我已经试过了:
from pyspark.sql.functions round as _round
df = df.withColumn(new_name, col(old_name) * col('ExchangeRate'))
df = df.select("*", _round(col(new_name)))
即使我在Python 3+中运行这个函数,PySpark的舍入函数仍将应用半向上舍入方法.我不能使用Python的round(),因为它不适用于列对象.
有没有办法强制PySpark的舍入()使用银行家舍入?