擅长:python、mysql、java
<p>如果列中有<code>NULL</code>个值,PySpark将为这些值传递<code>None</code>,而<code>round()</code>函数不处理<code>None</code>。类似于以下的操作应该可以做到:</p>
<pre><code>@udf(returnType=DecimalType())
def round_half_even(number):
return round(number, 0) if number is not None else None
</code></pre>
<p>注意,对非<code>None</code>值的正确检查是<code>var is not None</code>。在布尔上下文中,整数和浮点零的计算结果为false</p>